happy-dom 7.0.6 → 7.1.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.

Potentially problematic release.


This version of happy-dom might be problematic. Click here for more details.

@@ -17,6 +17,7 @@ import HTMLSelectElement from '../nodes/html-select-element/HTMLSelectElement';
17
17
  import HTMLOptionElement from '../nodes/html-option-element/HTMLOptionElement';
18
18
  import HTMLOptGroupElement from '../nodes/html-opt-group-element/HTMLOptGroupElement';
19
19
  import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
20
+ import HTMLButtonElement from '../nodes/html-button-element/HTMLButtonElement';
20
21
  declare const _default: {
21
22
  A: typeof HTMLElement;
22
23
  ABBR: typeof HTMLElement;
@@ -54,7 +55,7 @@ declare const _default: {
54
55
  META: typeof HTMLMetaElement;
55
56
  BLOCKQUOTE: typeof HTMLElement;
56
57
  BR: typeof HTMLElement;
57
- BUTTON: typeof HTMLElement;
58
+ BUTTON: typeof HTMLButtonElement;
58
59
  CANVAS: typeof HTMLElement;
59
60
  CAPTION: typeof HTMLElement;
60
61
  CITE: typeof HTMLElement;
@@ -22,6 +22,7 @@ const HTMLSelectElement_1 = __importDefault(require("../nodes/html-select-elemen
22
22
  const HTMLOptionElement_1 = __importDefault(require("../nodes/html-option-element/HTMLOptionElement"));
23
23
  const HTMLOptGroupElement_1 = __importDefault(require("../nodes/html-opt-group-element/HTMLOptGroupElement"));
24
24
  const HTMLDialogElement_1 = __importDefault(require("../nodes/html-dialog-element/HTMLDialogElement"));
25
+ const HTMLButtonElement_1 = __importDefault(require("../nodes/html-button-element/HTMLButtonElement"));
25
26
  exports.default = {
26
27
  A: HTMLElement_1.default,
27
28
  ABBR: HTMLElement_1.default,
@@ -59,7 +60,7 @@ exports.default = {
59
60
  META: HTMLMetaElement_1.default,
60
61
  BLOCKQUOTE: HTMLElement_1.default,
61
62
  BR: HTMLElement_1.default,
62
- BUTTON: HTMLElement_1.default,
63
+ BUTTON: HTMLButtonElement_1.default,
63
64
  CANVAS: HTMLElement_1.default,
64
65
  CAPTION: HTMLElement_1.default,
65
66
  CITE: HTMLElement_1.default,
@@ -1 +1 @@
1
- {"version":3,"file":"ElementTag.js","sourceRoot":"","sources":["../../src/config/ElementTag.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ElementTag.js","sourceRoot":"","sources":["../../src/config/ElementTag.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,53 @@
1
+ import HTMLElement from '../html-element/HTMLElement';
2
+ import IHTMLButtonElement from './IHTMLButtonElement';
3
+ /**
4
+
5
+ We can improve performance a bit if we make the types as a constant.
6
+ * HTML Button Element.
7
+ *
8
+ * Reference:
9
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
10
+ */
11
+ export default class HTMLButtonElement extends HTMLElement implements IHTMLButtonElement {
12
+ /**
13
+ * Returns value.
14
+ *
15
+ * @returns Value.
16
+ */
17
+ get value(): string;
18
+ /**
19
+ * Sets value.
20
+ *
21
+ * @param value Value.
22
+ */
23
+ set value(value: string);
24
+ /**
25
+ * Returns disabled.
26
+ *
27
+ * @returns Disabled.
28
+ */
29
+ get disabled(): boolean;
30
+ /**
31
+ * Sets disabled.
32
+ *
33
+ * @param disabled Disabled.
34
+ */
35
+ set disabled(disabled: boolean);
36
+ /**
37
+ * Returns type
38
+ *
39
+ * @returns Type
40
+ */
41
+ get type(): string;
42
+ /**
43
+ * Sets type
44
+ *
45
+ * @param v Type
46
+ */
47
+ set type(v: string);
48
+ /**
49
+ *
50
+ * @param type
51
+ */
52
+ protected _sanitizeType(type: string): string;
53
+ }
@@ -0,0 +1,83 @@
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 BUTTON_TYPES = ['submit', 'reset', 'button', 'menu'];
8
+ /**
9
+
10
+ We can improve performance a bit if we make the types as a constant.
11
+ * HTML Button Element.
12
+ *
13
+ * Reference:
14
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
15
+ */
16
+ class HTMLButtonElement extends HTMLElement_1.default {
17
+ /**
18
+ * Returns value.
19
+ *
20
+ * @returns Value.
21
+ */
22
+ get value() {
23
+ return this.getAttributeNS(null, 'value');
24
+ }
25
+ /**
26
+ * Sets value.
27
+ *
28
+ * @param value Value.
29
+ */
30
+ set value(value) {
31
+ this.setAttributeNS(null, 'value', value);
32
+ }
33
+ /**
34
+ * Returns disabled.
35
+ *
36
+ * @returns Disabled.
37
+ */
38
+ get disabled() {
39
+ return this.getAttributeNS(null, 'disabled') !== null;
40
+ }
41
+ /**
42
+ * Sets disabled.
43
+ *
44
+ * @param disabled Disabled.
45
+ */
46
+ set disabled(disabled) {
47
+ if (!disabled) {
48
+ this.removeAttributeNS(null, 'disabled');
49
+ }
50
+ else {
51
+ this.setAttributeNS(null, 'disabled', '');
52
+ }
53
+ }
54
+ /**
55
+ * Returns type
56
+ *
57
+ * @returns Type
58
+ */
59
+ get type() {
60
+ return this._sanitizeType(this.getAttributeNS(null, 'type'));
61
+ }
62
+ /**
63
+ * Sets type
64
+ *
65
+ * @param v Type
66
+ */
67
+ set type(v) {
68
+ this.setAttributeNS(null, 'type', this._sanitizeType(v));
69
+ }
70
+ /**
71
+ *
72
+ * @param type
73
+ */
74
+ _sanitizeType(type) {
75
+ type = (type && type.toLowerCase()) || 'submit';
76
+ if (!BUTTON_TYPES.includes(type)) {
77
+ type = 'submit';
78
+ }
79
+ return type;
80
+ }
81
+ }
82
+ exports.default = HTMLButtonElement;
83
+ //# sourceMappingURL=HTMLButtonElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HTMLButtonElement.js","sourceRoot":"","sources":["../../../src/nodes/html-button-element/HTMLButtonElement.ts"],"names":[],"mappings":";;;;;AAAA,8EAAsD;AAGtD,MAAM,YAAY,GAAG,CAAC,QAAQ,EAAE,OAAO,EAAE,QAAQ,EAAE,MAAM,CAAC,CAAC;AAE3D;;;;;;;GAOG;AACH,MAAqB,iBAAkB,SAAQ,qBAAW;IACzD;;;;OAIG;IACH,IAAW,KAAK;QACf,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAW,KAAK,CAAC,KAAa;QAC7B,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,OAAO,EAAE,KAAK,CAAC,CAAC;IAC3C,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ;QAClB,OAAO,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,CAAC,KAAK,IAAI,CAAC;IACvD,CAAC;IAED;;;;OAIG;IACH,IAAW,QAAQ,CAAC,QAAiB;QACpC,IAAI,CAAC,QAAQ,EAAE;YACd,IAAI,CAAC,iBAAiB,CAAC,IAAI,EAAE,UAAU,CAAC,CAAC;SACzC;aAAM;YACN,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,UAAU,EAAE,EAAE,CAAC,CAAC;SAC1C;IACF,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI;QACd,OAAO,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED;;;;OAIG;IACH,IAAW,IAAI,CAAC,CAAS;QACxB,IAAI,CAAC,cAAc,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;IAED;;;OAGG;IACO,aAAa,CAAC,IAAY;QACnC,IAAI,GAAG,CAAC,IAAI,IAAI,IAAI,CAAC,WAAW,EAAE,CAAC,IAAI,QAAQ,CAAC;QAEhD,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE;YACjC,IAAI,GAAG,QAAQ,CAAC;SAChB;QAED,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AAxED,oCAwEC"}
@@ -0,0 +1,12 @@
1
+ import IHTMLElement from '../html-element/IHTMLElement';
2
+ /**
3
+ * HTML Button Element.
4
+ *
5
+ * Reference:
6
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
7
+ */
8
+ export default interface IHTMLButtonElement extends IHTMLElement {
9
+ type: string;
10
+ disabled: boolean;
11
+ value: string;
12
+ }
@@ -0,0 +1,3 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ //# sourceMappingURL=IHTMLButtonElement.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"IHTMLButtonElement.js","sourceRoot":"","sources":["../../../src/nodes/html-button-element/IHTMLButtonElement.ts"],"names":[],"mappings":""}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "happy-dom",
3
- "version": "7.0.6",
3
+ "version": "7.1.1",
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": "98a7c1dccdc0b5dd0bec2f78e2775bcb9e80edf8"
78
+ "gitHead": "aceea50591ed13d89c8dcceee2ba716a4595a0f2"
79
79
  }
@@ -17,6 +17,7 @@ import HTMLSelectElement from '../nodes/html-select-element/HTMLSelectElement';
17
17
  import HTMLOptionElement from '../nodes/html-option-element/HTMLOptionElement';
18
18
  import HTMLOptGroupElement from '../nodes/html-opt-group-element/HTMLOptGroupElement';
19
19
  import HTMLDialogElement from '../nodes/html-dialog-element/HTMLDialogElement';
20
+ import HTMLButtonElement from '../nodes/html-button-element/HTMLButtonElement';
20
21
 
21
22
  export default {
22
23
  A: HTMLElement,
@@ -55,7 +56,7 @@ export default {
55
56
  META: HTMLMetaElement,
56
57
  BLOCKQUOTE: HTMLElement,
57
58
  BR: HTMLElement,
58
- BUTTON: HTMLElement,
59
+ BUTTON: HTMLButtonElement,
59
60
  CANVAS: HTMLElement,
60
61
  CAPTION: HTMLElement,
61
62
  CITE: HTMLElement,
@@ -0,0 +1,86 @@
1
+ import HTMLElement from '../html-element/HTMLElement';
2
+ import IHTMLButtonElement from './IHTMLButtonElement';
3
+
4
+ const BUTTON_TYPES = ['submit', 'reset', 'button', 'menu'];
5
+
6
+ /**
7
+
8
+ We can improve performance a bit if we make the types as a constant.
9
+ * HTML Button Element.
10
+ *
11
+ * Reference:
12
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
13
+ */
14
+ export default class HTMLButtonElement extends HTMLElement implements IHTMLButtonElement {
15
+ /**
16
+ * Returns value.
17
+ *
18
+ * @returns Value.
19
+ */
20
+ public get value(): string {
21
+ return this.getAttributeNS(null, 'value');
22
+ }
23
+
24
+ /**
25
+ * Sets value.
26
+ *
27
+ * @param value Value.
28
+ */
29
+ public set value(value: string) {
30
+ this.setAttributeNS(null, 'value', value);
31
+ }
32
+
33
+ /**
34
+ * Returns disabled.
35
+ *
36
+ * @returns Disabled.
37
+ */
38
+ public get disabled(): boolean {
39
+ return this.getAttributeNS(null, 'disabled') !== null;
40
+ }
41
+
42
+ /**
43
+ * Sets disabled.
44
+ *
45
+ * @param disabled Disabled.
46
+ */
47
+ public set disabled(disabled: boolean) {
48
+ if (!disabled) {
49
+ this.removeAttributeNS(null, 'disabled');
50
+ } else {
51
+ this.setAttributeNS(null, 'disabled', '');
52
+ }
53
+ }
54
+
55
+ /**
56
+ * Returns type
57
+ *
58
+ * @returns Type
59
+ */
60
+ public get type(): string {
61
+ return this._sanitizeType(this.getAttributeNS(null, 'type'));
62
+ }
63
+
64
+ /**
65
+ * Sets type
66
+ *
67
+ * @param v Type
68
+ */
69
+ public set type(v: string) {
70
+ this.setAttributeNS(null, 'type', this._sanitizeType(v));
71
+ }
72
+
73
+ /**
74
+ *
75
+ * @param type
76
+ */
77
+ protected _sanitizeType(type: string): string {
78
+ type = (type && type.toLowerCase()) || 'submit';
79
+
80
+ if (!BUTTON_TYPES.includes(type)) {
81
+ type = 'submit';
82
+ }
83
+
84
+ return type;
85
+ }
86
+ }
@@ -0,0 +1,13 @@
1
+ import IHTMLElement from '../html-element/IHTMLElement';
2
+
3
+ /**
4
+ * HTML Button Element.
5
+ *
6
+ * Reference:
7
+ * https://developer.mozilla.org/en-US/docs/Web/API/HTMLButtonElement.
8
+ */
9
+ export default interface IHTMLButtonElement extends IHTMLElement {
10
+ type: string;
11
+ disabled: boolean;
12
+ value: string;
13
+ }