happy-dom 7.6.7 → 7.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Potentially problematic release.
This version of happy-dom might be problematic. Click here for more details.
- package/lib/config/ElementTag.d.ts +2 -1
- package/lib/config/ElementTag.js +2 -1
- package/lib/config/ElementTag.js.map +1 -1
- package/lib/dom-token-list/DOMTokenList.js +1 -1
- package/lib/dom-token-list/DOMTokenList.js.map +1 -1
- package/lib/nodes/element/Element.d.ts +0 -4
- package/lib/nodes/element/Element.js +6 -10
- package/lib/nodes/element/Element.js.map +1 -1
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.d.ts +250 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js +395 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElement.js.map +1 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementUtility.d.ts +29 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementUtility.js +45 -0
- package/lib/nodes/html-anchor-element/HTMLAnchorElementUtility.js.map +1 -0
- package/lib/nodes/html-anchor-element/IHTMLAnchorElement.d.ts +20 -0
- package/lib/nodes/html-anchor-element/IHTMLAnchorElement.js +3 -0
- package/lib/nodes/html-anchor-element/IHTMLAnchorElement.js.map +1 -0
- package/lib/nodes/html-anchor-element/IHTMLHyperlinkElementUtils.d.ts +19 -0
- package/lib/nodes/html-anchor-element/IHTMLHyperlinkElementUtils.js +3 -0
- package/lib/nodes/html-anchor-element/IHTMLHyperlinkElementUtils.js.map +1 -0
- package/lib/nodes/html-link-element/HTMLLinkElement.d.ts +3 -7
- package/lib/nodes/html-link-element/HTMLLinkElement.js +13 -13
- package/lib/nodes/html-link-element/HTMLLinkElement.js.map +1 -1
- package/package.json +2 -2
- package/src/config/ElementTag.ts +2 -1
- package/src/dom-token-list/DOMTokenList.ts +1 -1
- package/src/nodes/element/Element.ts +6 -11
- package/src/nodes/html-anchor-element/HTMLAnchorElement.ts +439 -0
- package/src/nodes/html-anchor-element/HTMLAnchorElementUtility.ts +48 -0
- package/src/nodes/html-anchor-element/IHTMLAnchorElement.ts +21 -0
- package/src/nodes/html-anchor-element/IHTMLHyperlinkElementUtils.ts +19 -0
- package/src/nodes/html-link-element/HTMLLinkElement.ts +18 -16
@@ -0,0 +1,395 @@
|
|
1
|
+
"use strict";
|
2
|
+
var __importDefault = (this && this.__importDefault) || function (mod) {
|
3
|
+
return (mod && mod.__esModule) ? mod : { "default": mod };
|
4
|
+
};
|
5
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
6
|
+
const HTMLElement_1 = __importDefault(require("../html-element/HTMLElement"));
|
7
|
+
const DOMTokenList_1 = __importDefault(require("../../dom-token-list/DOMTokenList"));
|
8
|
+
const HTMLAnchorElementUtility_1 = __importDefault(require("./HTMLAnchorElementUtility"));
|
9
|
+
/**
|
10
|
+
* HTML Anchor Element.
|
11
|
+
*
|
12
|
+
* Reference:
|
13
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.
|
14
|
+
*/
|
15
|
+
class HTMLAnchorElement extends HTMLElement_1.default {
|
16
|
+
constructor() {
|
17
|
+
super(...arguments);
|
18
|
+
this._relList = null;
|
19
|
+
this._url = null;
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* Returns download.
|
23
|
+
*
|
24
|
+
* @returns download.
|
25
|
+
*/
|
26
|
+
get download() {
|
27
|
+
return this.getAttribute('download') || '';
|
28
|
+
}
|
29
|
+
/**
|
30
|
+
* Sets download.
|
31
|
+
*
|
32
|
+
* @param download Download.
|
33
|
+
*/
|
34
|
+
set download(download) {
|
35
|
+
this.setAttributeNS(null, 'download', download);
|
36
|
+
}
|
37
|
+
/**
|
38
|
+
* Returns hash.
|
39
|
+
*
|
40
|
+
* @returns Hash.
|
41
|
+
*/
|
42
|
+
get hash() {
|
43
|
+
return this._url?.hash ?? '';
|
44
|
+
}
|
45
|
+
/**
|
46
|
+
* Sets hash.
|
47
|
+
*
|
48
|
+
* @param hash Hash.
|
49
|
+
*/
|
50
|
+
set hash(hash) {
|
51
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
52
|
+
this._url.hash = hash;
|
53
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
54
|
+
}
|
55
|
+
}
|
56
|
+
/**
|
57
|
+
* Returns href.
|
58
|
+
*
|
59
|
+
* @returns Href.
|
60
|
+
*/
|
61
|
+
get href() {
|
62
|
+
if (this._url) {
|
63
|
+
return this._url.toString();
|
64
|
+
}
|
65
|
+
return this.getAttributeNS(null, 'href') || '';
|
66
|
+
}
|
67
|
+
/**
|
68
|
+
* Sets href.
|
69
|
+
*
|
70
|
+
* @param href Href.
|
71
|
+
*/
|
72
|
+
set href(href) {
|
73
|
+
this.setAttributeNS(null, 'href', href);
|
74
|
+
}
|
75
|
+
/**
|
76
|
+
* Returns hreflang.
|
77
|
+
*
|
78
|
+
* @returns Hreflang.
|
79
|
+
*/
|
80
|
+
get hreflang() {
|
81
|
+
return this.getAttributeNS(null, 'hreflang') || '';
|
82
|
+
}
|
83
|
+
/**
|
84
|
+
* Sets hreflang.
|
85
|
+
*
|
86
|
+
* @param hreflang Hreflang.
|
87
|
+
*/
|
88
|
+
set hreflang(hreflang) {
|
89
|
+
this.setAttributeNS(null, 'hreflang', hreflang);
|
90
|
+
}
|
91
|
+
/**
|
92
|
+
* Returns the hyperlink's URL's origin.
|
93
|
+
*
|
94
|
+
* @returns Origin.
|
95
|
+
*/
|
96
|
+
get origin() {
|
97
|
+
return this._url?.origin ?? '';
|
98
|
+
}
|
99
|
+
/**
|
100
|
+
* Returns ping.
|
101
|
+
*
|
102
|
+
* @returns Ping.
|
103
|
+
*/
|
104
|
+
get ping() {
|
105
|
+
return this.getAttributeNS(null, 'ping') || '';
|
106
|
+
}
|
107
|
+
/**
|
108
|
+
* Sets ping.
|
109
|
+
*
|
110
|
+
* @param ping Ping.
|
111
|
+
*/
|
112
|
+
set ping(ping) {
|
113
|
+
this.setAttributeNS(null, 'ping', ping);
|
114
|
+
}
|
115
|
+
/**
|
116
|
+
* Returns protocol.
|
117
|
+
*
|
118
|
+
* @returns Protocol.
|
119
|
+
*/
|
120
|
+
get protocol() {
|
121
|
+
return this._url?.protocol ?? '';
|
122
|
+
}
|
123
|
+
/**
|
124
|
+
* Sets protocol.
|
125
|
+
*
|
126
|
+
* @param protocol Protocol.
|
127
|
+
*/
|
128
|
+
set protocol(protocol) {
|
129
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
130
|
+
this._url.protocol = protocol;
|
131
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
132
|
+
}
|
133
|
+
}
|
134
|
+
/**
|
135
|
+
* Returns username.
|
136
|
+
*
|
137
|
+
* @returns Username.
|
138
|
+
*/
|
139
|
+
get username() {
|
140
|
+
return this._url?.username ?? '';
|
141
|
+
}
|
142
|
+
/**
|
143
|
+
* Sets username.
|
144
|
+
*
|
145
|
+
* @param username Username.
|
146
|
+
*/
|
147
|
+
set username(username) {
|
148
|
+
if (this._url &&
|
149
|
+
!HTMLAnchorElementUtility_1.default.isBlobURL(this._url) &&
|
150
|
+
this._url.host &&
|
151
|
+
this._url.protocol != 'file') {
|
152
|
+
this._url.username = username;
|
153
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
154
|
+
}
|
155
|
+
}
|
156
|
+
/**
|
157
|
+
* Returns password.
|
158
|
+
*
|
159
|
+
* @returns Password.
|
160
|
+
*/
|
161
|
+
get password() {
|
162
|
+
return this._url?.password ?? '';
|
163
|
+
}
|
164
|
+
/**
|
165
|
+
* Sets password.
|
166
|
+
*
|
167
|
+
* @param password Password.
|
168
|
+
*/
|
169
|
+
set password(password) {
|
170
|
+
if (this._url &&
|
171
|
+
!HTMLAnchorElementUtility_1.default.isBlobURL(this._url) &&
|
172
|
+
this._url.host &&
|
173
|
+
this._url.protocol != 'file') {
|
174
|
+
this._url.password = password;
|
175
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
176
|
+
}
|
177
|
+
}
|
178
|
+
/**
|
179
|
+
* Returns pathname.
|
180
|
+
*
|
181
|
+
* @returns Pathname.
|
182
|
+
*/
|
183
|
+
get pathname() {
|
184
|
+
return this._url?.pathname ?? '';
|
185
|
+
}
|
186
|
+
/**
|
187
|
+
* Sets pathname.
|
188
|
+
*
|
189
|
+
* @param pathname Pathname.
|
190
|
+
*/
|
191
|
+
set pathname(pathname) {
|
192
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
193
|
+
this._url.pathname = pathname;
|
194
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
195
|
+
}
|
196
|
+
}
|
197
|
+
/**
|
198
|
+
* Returns port.
|
199
|
+
*
|
200
|
+
* @returns Port.
|
201
|
+
*/
|
202
|
+
get port() {
|
203
|
+
return this._url?.port ?? '';
|
204
|
+
}
|
205
|
+
/**
|
206
|
+
* Sets port.
|
207
|
+
*
|
208
|
+
* @param port Port.
|
209
|
+
*/
|
210
|
+
set port(port) {
|
211
|
+
if (this._url &&
|
212
|
+
!HTMLAnchorElementUtility_1.default.isBlobURL(this._url) &&
|
213
|
+
this._url.host &&
|
214
|
+
this._url.protocol != 'file') {
|
215
|
+
this._url.port = port;
|
216
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
217
|
+
}
|
218
|
+
}
|
219
|
+
/**
|
220
|
+
* Returns host.
|
221
|
+
*
|
222
|
+
* @returns Host.
|
223
|
+
*/
|
224
|
+
get host() {
|
225
|
+
return this._url?.host ?? '';
|
226
|
+
}
|
227
|
+
/**
|
228
|
+
* Sets host.
|
229
|
+
*
|
230
|
+
* @param host Host.
|
231
|
+
*/
|
232
|
+
set host(host) {
|
233
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
234
|
+
this._url.host = host;
|
235
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
236
|
+
}
|
237
|
+
}
|
238
|
+
/**
|
239
|
+
* Returns hostname.
|
240
|
+
*
|
241
|
+
* @returns Hostname.
|
242
|
+
*/
|
243
|
+
get hostname() {
|
244
|
+
return this._url?.hostname ?? '';
|
245
|
+
}
|
246
|
+
/**
|
247
|
+
* Sets hostname.
|
248
|
+
*
|
249
|
+
* @param hostname Hostname.
|
250
|
+
*/
|
251
|
+
set hostname(hostname) {
|
252
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
253
|
+
this._url.hostname = hostname;
|
254
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
255
|
+
}
|
256
|
+
}
|
257
|
+
/**
|
258
|
+
* Returns referrerPolicy.
|
259
|
+
*
|
260
|
+
* @returns Referrer Policy.
|
261
|
+
*/
|
262
|
+
get referrerPolicy() {
|
263
|
+
return this.getAttributeNS(null, 'referrerPolicy') || '';
|
264
|
+
}
|
265
|
+
/**
|
266
|
+
* Sets referrerPolicy.
|
267
|
+
*
|
268
|
+
* @param referrerPolicy Referrer Policy.
|
269
|
+
*/
|
270
|
+
set referrerPolicy(referrerPolicy) {
|
271
|
+
this.setAttributeNS(null, 'referrerPolicy', referrerPolicy);
|
272
|
+
}
|
273
|
+
/**
|
274
|
+
* Returns rel.
|
275
|
+
*
|
276
|
+
* @returns Rel.
|
277
|
+
*/
|
278
|
+
get rel() {
|
279
|
+
return this.getAttributeNS(null, 'rel') || '';
|
280
|
+
}
|
281
|
+
/**
|
282
|
+
* Sets rel.
|
283
|
+
*
|
284
|
+
* @param rel Rel.
|
285
|
+
*/
|
286
|
+
set rel(rel) {
|
287
|
+
this.setAttributeNS(null, 'rel', rel);
|
288
|
+
}
|
289
|
+
/**
|
290
|
+
* Returns rel list.
|
291
|
+
*
|
292
|
+
* @returns Rel list.
|
293
|
+
*/
|
294
|
+
get relList() {
|
295
|
+
if (!this._relList) {
|
296
|
+
this._relList = new DOMTokenList_1.default(this, 'rel');
|
297
|
+
}
|
298
|
+
return this._relList;
|
299
|
+
}
|
300
|
+
/**
|
301
|
+
* Returns search.
|
302
|
+
*
|
303
|
+
* @returns Search.
|
304
|
+
*/
|
305
|
+
get search() {
|
306
|
+
return this._url?.search ?? '';
|
307
|
+
}
|
308
|
+
/**
|
309
|
+
* Sets search.
|
310
|
+
*
|
311
|
+
* @param search Search.
|
312
|
+
*/
|
313
|
+
set search(search) {
|
314
|
+
if (this._url && !HTMLAnchorElementUtility_1.default.isBlobURL(this._url)) {
|
315
|
+
this._url.search = search;
|
316
|
+
this.setAttributeNS(null, 'href', this._url.toString());
|
317
|
+
}
|
318
|
+
}
|
319
|
+
/**
|
320
|
+
* Returns target.
|
321
|
+
*
|
322
|
+
* @returns target.
|
323
|
+
*/
|
324
|
+
get target() {
|
325
|
+
return this.getAttributeNS(null, 'target') || '';
|
326
|
+
}
|
327
|
+
/**
|
328
|
+
* Sets target.
|
329
|
+
*
|
330
|
+
* @param target Target.
|
331
|
+
*/
|
332
|
+
set target(target) {
|
333
|
+
this.setAttributeNS(null, 'target', target);
|
334
|
+
}
|
335
|
+
/**
|
336
|
+
* Returns text.
|
337
|
+
*
|
338
|
+
* @returns text.
|
339
|
+
*/
|
340
|
+
get text() {
|
341
|
+
return this.textContent;
|
342
|
+
}
|
343
|
+
/**
|
344
|
+
* Sets text.
|
345
|
+
*
|
346
|
+
* @param text Text.
|
347
|
+
*/
|
348
|
+
set text(text) {
|
349
|
+
this.textContent = text;
|
350
|
+
}
|
351
|
+
/**
|
352
|
+
* Returns type.
|
353
|
+
*
|
354
|
+
* @returns Type.
|
355
|
+
*/
|
356
|
+
get type() {
|
357
|
+
return this.getAttributeNS(null, 'type') || '';
|
358
|
+
}
|
359
|
+
/**
|
360
|
+
* Sets type.
|
361
|
+
*
|
362
|
+
* @param type Type.
|
363
|
+
*/
|
364
|
+
set type(type) {
|
365
|
+
this.setAttributeNS(null, 'type', type);
|
366
|
+
}
|
367
|
+
/**
|
368
|
+
* @override
|
369
|
+
*/
|
370
|
+
setAttributeNode(attribute) {
|
371
|
+
const replacedAttribute = super.setAttributeNode(attribute);
|
372
|
+
if (attribute.name === 'rel' && this._relList) {
|
373
|
+
this._relList._updateIndices();
|
374
|
+
}
|
375
|
+
else if (attribute.name === 'href') {
|
376
|
+
this._url = HTMLAnchorElementUtility_1.default.getUrl(this.ownerDocument, attribute.value);
|
377
|
+
}
|
378
|
+
return replacedAttribute;
|
379
|
+
}
|
380
|
+
/**
|
381
|
+
* @override
|
382
|
+
*/
|
383
|
+
removeAttributeNode(attribute) {
|
384
|
+
super.removeAttributeNode(attribute);
|
385
|
+
if (attribute.name === 'rel' && this._relList) {
|
386
|
+
this._relList._updateIndices();
|
387
|
+
}
|
388
|
+
else if (attribute.name === 'href') {
|
389
|
+
this._url = null;
|
390
|
+
}
|
391
|
+
return attribute;
|
392
|
+
}
|
393
|
+
}
|
394
|
+
exports.default = HTMLAnchorElement;
|
395
|
+
//# sourceMappingURL=HTMLAnchorElement.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"HTMLAnchorElement.js","sourceRoot":"","sources":["../../../src/nodes/html-anchor-element/HTMLAnchorElement.ts"],"names":[],"mappings":"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"}
|
@@ -0,0 +1,29 @@
|
|
1
|
+
/// <reference types="node" />
|
2
|
+
import IDocument from '../document/IDocument';
|
3
|
+
import { URL } from 'url';
|
4
|
+
/**
|
5
|
+
* HTML Anchor Element utility.
|
6
|
+
*/
|
7
|
+
export default class HTMLAnchorElementUtility {
|
8
|
+
/**
|
9
|
+
* Returns "true" if it is a blob URL.
|
10
|
+
*
|
11
|
+
* According to spec, if element's url is non-null, its scheme is "blob", and it has an opaque path, then the process of updating properties on the URL should be terminated.
|
12
|
+
*
|
13
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#reinitialise-url
|
14
|
+
* @param url
|
15
|
+
* @param url URL.
|
16
|
+
* @returns "true" if blob URL.
|
17
|
+
*/
|
18
|
+
static isBlobURL(url: URL): boolean;
|
19
|
+
/**
|
20
|
+
* Returns URL.
|
21
|
+
*
|
22
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#dom-hyperlink-href
|
23
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#hyperlink
|
24
|
+
* @param document Document.
|
25
|
+
* @param href Href.
|
26
|
+
* @returns URL.
|
27
|
+
*/
|
28
|
+
static getUrl(document: IDocument, href: string | null): URL;
|
29
|
+
}
|
@@ -0,0 +1,45 @@
|
|
1
|
+
"use strict";
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
3
|
+
const url_1 = require("url");
|
4
|
+
/**
|
5
|
+
* HTML Anchor Element utility.
|
6
|
+
*/
|
7
|
+
class HTMLAnchorElementUtility {
|
8
|
+
/**
|
9
|
+
* Returns "true" if it is a blob URL.
|
10
|
+
*
|
11
|
+
* According to spec, if element's url is non-null, its scheme is "blob", and it has an opaque path, then the process of updating properties on the URL should be terminated.
|
12
|
+
*
|
13
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#reinitialise-url
|
14
|
+
* @param url
|
15
|
+
* @param url URL.
|
16
|
+
* @returns "true" if blob URL.
|
17
|
+
*/
|
18
|
+
static isBlobURL(url) {
|
19
|
+
return (url && url.protocol === 'blob:' && url.pathname.length > 1 && url.pathname.includes('://'));
|
20
|
+
}
|
21
|
+
/**
|
22
|
+
* Returns URL.
|
23
|
+
*
|
24
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#dom-hyperlink-href
|
25
|
+
* @see https://html.spec.whatwg.org/multipage/links.html#hyperlink
|
26
|
+
* @param document Document.
|
27
|
+
* @param href Href.
|
28
|
+
* @returns URL.
|
29
|
+
*/
|
30
|
+
static getUrl(document, href) {
|
31
|
+
if (!href) {
|
32
|
+
return null;
|
33
|
+
}
|
34
|
+
const documentUrl = document.location.href;
|
35
|
+
try {
|
36
|
+
return new url_1.URL(href.trim(), documentUrl);
|
37
|
+
}
|
38
|
+
catch (TypeError) {
|
39
|
+
// Ignore error
|
40
|
+
}
|
41
|
+
return null;
|
42
|
+
}
|
43
|
+
}
|
44
|
+
exports.default = HTMLAnchorElementUtility;
|
45
|
+
//# sourceMappingURL=HTMLAnchorElementUtility.js.map
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"HTMLAnchorElementUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-anchor-element/HTMLAnchorElementUtility.ts"],"names":[],"mappings":";;AACA,6BAA0B;AAE1B;;GAEG;AACH,MAAqB,wBAAwB;IAC5C;;;;;;;;;OASG;IACI,MAAM,CAAC,SAAS,CAAC,GAAQ;QAC/B,OAAO,CACN,GAAG,IAAI,GAAG,CAAC,QAAQ,KAAK,OAAO,IAAI,GAAG,CAAC,QAAQ,CAAC,MAAM,GAAG,CAAC,IAAI,GAAG,CAAC,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,CAC1F,CAAC;IACH,CAAC;IAED;;;;;;;;OAQG;IACI,MAAM,CAAC,MAAM,CAAC,QAAmB,EAAE,IAAmB;QAC5D,IAAI,CAAC,IAAI,EAAE;YACV,OAAO,IAAI,CAAC;SACZ;QAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;QAE3C,IAAI;YACH,OAAO,IAAI,SAAG,CAAC,IAAI,CAAC,IAAI,EAAE,EAAE,WAAW,CAAC,CAAC;SACzC;QAAC,OAAO,SAAS,EAAE;YACnB,eAAe;SACf;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAzCD,2CAyCC"}
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import IDOMTokenList from '../../dom-token-list/IDOMTokenList';
|
2
|
+
import IHTMLElement from '../html-element/IHTMLElement';
|
3
|
+
import IHTMLHyperlinkElementUtils from './IHTMLHyperlinkElementUtils';
|
4
|
+
/**
|
5
|
+
* HTML Anchor Element.
|
6
|
+
*
|
7
|
+
* Reference:
|
8
|
+
* https://developer.mozilla.org/en-US/docs/Web/API/HTMLAnchorElement.
|
9
|
+
*/
|
10
|
+
export default interface IHTMLAnchorElement extends IHTMLElement, IHTMLHyperlinkElementUtils {
|
11
|
+
readonly relList: IDOMTokenList;
|
12
|
+
download: string;
|
13
|
+
ping: string;
|
14
|
+
hreflang: string;
|
15
|
+
referrerPolicy: string;
|
16
|
+
rel: string;
|
17
|
+
target: string;
|
18
|
+
text: string;
|
19
|
+
type: string;
|
20
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IHTMLAnchorElement.js","sourceRoot":"","sources":["../../../src/nodes/html-anchor-element/IHTMLAnchorElement.ts"],"names":[],"mappings":""}
|
@@ -0,0 +1,19 @@
|
|
1
|
+
/**
|
2
|
+
* HTMLHyperlinkElementUtils.
|
3
|
+
*
|
4
|
+
* Reference:
|
5
|
+
* https://html.spec.whatwg.org/multipage/links.html#htmlhyperlinkelementutils.
|
6
|
+
*/
|
7
|
+
export default interface IHTMLHyperlinkElementUtils {
|
8
|
+
readonly origin: string;
|
9
|
+
href: string;
|
10
|
+
protocol: string;
|
11
|
+
username: string;
|
12
|
+
password: string;
|
13
|
+
host: string;
|
14
|
+
hostname: string;
|
15
|
+
port: string;
|
16
|
+
pathname: string;
|
17
|
+
search: string;
|
18
|
+
hash: string;
|
19
|
+
}
|
@@ -0,0 +1 @@
|
|
1
|
+
{"version":3,"file":"IHTMLHyperlinkElementUtils.js","sourceRoot":"","sources":["../../../src/nodes/html-anchor-element/IHTMLHyperlinkElementUtils.ts"],"names":[],"mappings":""}
|
@@ -121,19 +121,15 @@ export default class HTMLLinkElement extends HTMLElement implements IHTMLLinkEle
|
|
121
121
|
*/
|
122
122
|
set type(type: string);
|
123
123
|
/**
|
124
|
-
* The setAttributeNode() method adds a new Attr node to the specified element.
|
125
|
-
*
|
126
124
|
* @override
|
127
|
-
* @param attribute Attribute.
|
128
|
-
* @returns Replaced attribute.
|
129
125
|
*/
|
130
126
|
setAttributeNode(attribute: IAttr): IAttr;
|
131
127
|
/**
|
132
128
|
* @override
|
133
129
|
*/
|
134
|
-
|
130
|
+
removeAttributeNode(attribute: IAttr): IAttr;
|
135
131
|
/**
|
136
|
-
*
|
132
|
+
* @override
|
137
133
|
*/
|
138
|
-
|
134
|
+
_connectToNode(parentNode?: INode): void;
|
139
135
|
}
|
@@ -164,16 +164,15 @@ class HTMLLinkElement extends HTMLElement_1.default {
|
|
164
164
|
this.setAttributeNS(null, 'type', type);
|
165
165
|
}
|
166
166
|
/**
|
167
|
-
* The setAttributeNode() method adds a new Attr node to the specified element.
|
168
|
-
*
|
169
167
|
* @override
|
170
|
-
* @param attribute Attribute.
|
171
|
-
* @returns Replaced attribute.
|
172
168
|
*/
|
173
169
|
setAttributeNode(attribute) {
|
174
170
|
const replacedAttribute = super.setAttributeNode(attribute);
|
175
171
|
const rel = this.getAttributeNS(null, 'rel');
|
176
172
|
const href = this.getAttributeNS(null, 'href');
|
173
|
+
if (attribute.name === 'rel' && this._relList) {
|
174
|
+
this._relList._updateIndices();
|
175
|
+
}
|
177
176
|
if ((attribute.name === 'rel' || attribute.name === 'href') &&
|
178
177
|
href !== null &&
|
179
178
|
rel &&
|
@@ -206,6 +205,16 @@ class HTMLLinkElement extends HTMLElement_1.default {
|
|
206
205
|
}
|
207
206
|
return replacedAttribute;
|
208
207
|
}
|
208
|
+
/**
|
209
|
+
* @override
|
210
|
+
*/
|
211
|
+
removeAttributeNode(attribute) {
|
212
|
+
super.removeAttributeNode(attribute);
|
213
|
+
if (attribute.name === 'rel' && this._relList) {
|
214
|
+
this._relList._updateIndices();
|
215
|
+
}
|
216
|
+
return attribute;
|
217
|
+
}
|
209
218
|
/**
|
210
219
|
* @override
|
211
220
|
*/
|
@@ -244,15 +253,6 @@ class HTMLLinkElement extends HTMLElement_1.default {
|
|
244
253
|
}
|
245
254
|
}
|
246
255
|
}
|
247
|
-
/**
|
248
|
-
* Updates DOM list indices.
|
249
|
-
*/
|
250
|
-
_updateDomListIndices() {
|
251
|
-
super._updateDomListIndices();
|
252
|
-
if (this._relList) {
|
253
|
-
this._relList._updateIndices();
|
254
|
-
}
|
255
|
-
}
|
256
256
|
}
|
257
257
|
exports.default = HTMLLinkElement;
|
258
258
|
//# sourceMappingURL=HTMLLinkElement.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":";;;;;AACA,4EAAoD;AACpD,4FAAoE;AACpE,8EAAsD;AAGtD,8DAAsC;AACtC,+EAAuD;AAEvD,qFAA6D;AAG7D;;;;;GAKG;AACH,MAAqB,eAAgB,SAAQ,qBAAW;IAAxD;;QACQ,YAAO,GAAgC,IAAI,CAAC;QAC5C,WAAM,GAA2B,IAAI,CAAC;QAC7B,UAAK,GAAkB,IAAI,CAAC;QACrC,iBAAY,GAAG,IAAI,CAAC;QACnB,aAAQ,GAAiB,IAAI,CAAC;
|
1
|
+
{"version":3,"file":"HTMLLinkElement.js","sourceRoot":"","sources":["../../../src/nodes/html-link-element/HTMLLinkElement.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
{
|
2
2
|
"name": "happy-dom",
|
3
|
-
"version": "7.
|
3
|
+
"version": "7.7.0",
|
4
4
|
"license": "MIT",
|
5
5
|
"homepage": "https://github.com/capricorn86/happy-dom",
|
6
6
|
"repository": "https://github.com/capricorn86/happy-dom",
|
@@ -75,5 +75,5 @@
|
|
75
75
|
"ts-jest": "^27.1.3",
|
76
76
|
"typescript": "^4.6.2"
|
77
77
|
},
|
78
|
-
"gitHead": "
|
78
|
+
"gitHead": "9eb21a6f922278fe17ff2d4b99f2a2898fe2053f"
|
79
79
|
}
|
package/src/config/ElementTag.ts
CHANGED
@@ -20,9 +20,10 @@ import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
|
|
20
20
|
import HTMLButtonElement from '../nodes/html-button-element/HTMLButtonElement';
|
21
21
|
import HTMLAudioElement from '../nodes/html-audio-element/HTMLAudioElement';
|
22
22
|
import HTMLVideoElement from '../nodes/html-video-element/HTMLVideoElement';
|
23
|
+
import HTMLAnchorElement from '../nodes/html-anchor-element/HTMLAnchorElement';
|
23
24
|
|
24
25
|
export default {
|
25
|
-
A:
|
26
|
+
A: HTMLAnchorElement,
|
26
27
|
ABBR: HTMLElement,
|
27
28
|
ADDRESS: HTMLElement,
|
28
29
|
AREA: HTMLElement,
|