happy-dom 12.10.2 → 12.10.3
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/cjs/nodes/html-input-element/HTMLInputElementDateUtility.cjs +13 -12
- package/cjs/nodes/html-input-element/HTMLInputElementDateUtility.cjs.map +1 -1
- package/cjs/nodes/html-input-element/HTMLInputElementDateUtility.d.ts +1 -0
- package/cjs/nodes/html-input-element/HTMLInputElementDateUtility.d.ts.map +1 -1
- package/cjs/version.cjs +1 -1
- package/lib/nodes/html-input-element/HTMLInputElementDateUtility.d.ts +1 -0
- package/lib/nodes/html-input-element/HTMLInputElementDateUtility.d.ts.map +1 -1
- package/lib/nodes/html-input-element/HTMLInputElementDateUtility.js +13 -12
- package/lib/nodes/html-input-element/HTMLInputElementDateUtility.js.map +1 -1
- package/lib/version.js +1 -1
- package/package.json +1 -1
- package/src/nodes/html-input-element/HTMLInputElementDateUtility.ts +15 -13
@@ -7,21 +7,22 @@ class HTMLInputElementDateUtility {
|
|
7
7
|
/**
|
8
8
|
* Returns iso week number from given date
|
9
9
|
*
|
10
|
+
* @see https://stackoverflow.com/a/6117889
|
10
11
|
* @param date Date or number.
|
11
12
|
* @returns Iso-week string.
|
12
13
|
*/
|
13
14
|
static dateIsoWeek(date) {
|
14
|
-
date = new Date(date);
|
15
|
-
|
16
|
-
date.
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
15
|
+
date = typeof date === 'number' ? new Date(date) : date;
|
16
|
+
// Copy date so don't modify original
|
17
|
+
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
18
|
+
// Set to nearest Thursday: current date + 4 - current day number
|
19
|
+
// Make Sunday's day number 7
|
20
|
+
date.setUTCDate(date.getUTCDate() + 4 - (date.getUTCDay() || 7));
|
21
|
+
// Get first day of year
|
22
|
+
const yearStart = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
23
|
+
// Calculate full weeks to nearest Thursday
|
24
|
+
const weekNo = Math.ceil(((date - yearStart) / 86400000 + 1) / 7);
|
25
|
+
return `${date.getUTCFullYear()}-W${weekNo < 10 ? '0' : ''}${weekNo}`;
|
25
26
|
}
|
26
27
|
/**
|
27
28
|
* Returns a date object for monday of given iso week string (\d\d\d\d-W\d\d)
|
@@ -37,7 +38,7 @@ class HTMLInputElementDateUtility {
|
|
37
38
|
}
|
38
39
|
const date = new Date(`${Y}-01-01T00:00Z`);
|
39
40
|
const jan4th = new Date(`${Y}-01-04T00:00Z`);
|
40
|
-
const jan4thDay = (jan4th.
|
41
|
+
const jan4thDay = (jan4th.getUTCDay() + 6) % 7;
|
41
42
|
const ordinalDate = 1 + (Number(W) - 1) * 7 - jan4thDay + 3;
|
42
43
|
date.setUTCDate(ordinalDate);
|
43
44
|
if (date.getUTCFullYear() > Number(Y)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLInputElementDateUtility.cjs","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,2BAA2B;IAC/C
|
1
|
+
{"version":3,"file":"HTMLInputElementDateUtility.cjs","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":";;AAAA;;GAEG;AACH,MAAqB,2BAA2B;IAC/C;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,IAAmB;QAC5C,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,qCAAqC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/E,iEAAiE;QACjE,6BAA6B;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjE,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,CAAmB,IAAK,GAAqB,SAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAC7E,CAAC;QACF,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,OAAe;QACxC,qEAAqE;QACrE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;SAC/C;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACtC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;SAC/C;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD;AA9CD,8CA8CC"}
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLInputElementDateUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C
|
1
|
+
{"version":3,"file":"HTMLInputElementDateUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C;;;;;;OAMG;WACW,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAgBtD;;;;;OAKG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAgBhD"}
|
package/cjs/version.cjs
CHANGED
@@ -1 +1 @@
|
|
1
|
-
module.exports = { default: { version: '12.10.
|
1
|
+
module.exports = { default: { version: '12.10.3' } };
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLInputElementDateUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C
|
1
|
+
{"version":3,"file":"HTMLInputElementDateUtility.d.ts","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C;;;;;;OAMG;WACW,WAAW,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,GAAG,MAAM;IAgBtD;;;;;OAKG;WACW,WAAW,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;CAgBhD"}
|
@@ -5,21 +5,22 @@ export default class HTMLInputElementDateUtility {
|
|
5
5
|
/**
|
6
6
|
* Returns iso week number from given date
|
7
7
|
*
|
8
|
+
* @see https://stackoverflow.com/a/6117889
|
8
9
|
* @param date Date or number.
|
9
10
|
* @returns Iso-week string.
|
10
11
|
*/
|
11
12
|
static dateIsoWeek(date) {
|
12
|
-
date = new Date(date);
|
13
|
-
|
14
|
-
date.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
13
|
+
date = typeof date === 'number' ? new Date(date) : date;
|
14
|
+
// Copy date so don't modify original
|
15
|
+
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
16
|
+
// Set to nearest Thursday: current date + 4 - current day number
|
17
|
+
// Make Sunday's day number 7
|
18
|
+
date.setUTCDate(date.getUTCDate() + 4 - (date.getUTCDay() || 7));
|
19
|
+
// Get first day of year
|
20
|
+
const yearStart = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
21
|
+
// Calculate full weeks to nearest Thursday
|
22
|
+
const weekNo = Math.ceil(((date - yearStart) / 86400000 + 1) / 7);
|
23
|
+
return `${date.getUTCFullYear()}-W${weekNo < 10 ? '0' : ''}${weekNo}`;
|
23
24
|
}
|
24
25
|
/**
|
25
26
|
* Returns a date object for monday of given iso week string (\d\d\d\d-W\d\d)
|
@@ -35,7 +36,7 @@ export default class HTMLInputElementDateUtility {
|
|
35
36
|
}
|
36
37
|
const date = new Date(`${Y}-01-01T00:00Z`);
|
37
38
|
const jan4th = new Date(`${Y}-01-04T00:00Z`);
|
38
|
-
const jan4thDay = (jan4th.
|
39
|
+
const jan4thDay = (jan4th.getUTCDay() + 6) % 7;
|
39
40
|
const ordinalDate = 1 + (Number(W) - 1) * 7 - jan4thDay + 3;
|
40
41
|
date.setUTCDate(ordinalDate);
|
41
42
|
if (date.getUTCFullYear() > Number(Y)) {
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"HTMLInputElementDateUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C
|
1
|
+
{"version":3,"file":"HTMLInputElementDateUtility.js","sourceRoot":"","sources":["../../../src/nodes/html-input-element/HTMLInputElementDateUtility.ts"],"names":[],"mappings":"AAAA;;GAEG;AACH,MAAM,CAAC,OAAO,OAAO,2BAA2B;IAC/C;;;;;;OAMG;IACI,MAAM,CAAC,WAAW,CAAC,IAAmB;QAC5C,IAAI,GAAG,OAAO,IAAI,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QACxD,qCAAqC;QACrC,IAAI,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,EAAE,IAAI,CAAC,QAAQ,EAAE,EAAE,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC;QAC/E,iEAAiE;QACjE,6BAA6B;QAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;QACjE,wBAAwB;QACxB,MAAM,SAAS,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,cAAc,EAAE,EAAE,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC;QAClE,2CAA2C;QAC3C,MAAM,MAAM,GAAG,IAAI,CAAC,IAAI,CACvB,CAAC,CAAmB,IAAK,GAAqB,SAAU,CAAC,GAAG,QAAQ,GAAG,CAAC,CAAC,GAAG,CAAC,CAC7E,CAAC;QACF,OAAO,GAAG,IAAI,CAAC,cAAc,EAAE,KAAK,MAAM,GAAG,EAAE,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,GAAG,MAAM,EAAE,CAAC;IACvE,CAAC;IAED;;;;;OAKG;IACI,MAAM,CAAC,WAAW,CAAC,OAAe;QACxC,qEAAqE;QACrE,MAAM,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC,GAAG,OAAO,CAAC,KAAK,CAAC,oBAAoB,CAAC,IAAI,EAAE,CAAC;QAC3D,IAAI,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,EAAE,IAAI,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE;YAChD,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;SAC/C;QACD,MAAM,IAAI,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,eAAe,CAAC,CAAC;QAC7C,MAAM,SAAS,GAAG,CAAC,MAAM,CAAC,SAAS,EAAE,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC;QAC/C,MAAM,WAAW,GAAG,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,CAAC,CAAC;QAC5D,IAAI,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAC7B,IAAI,IAAI,CAAC,cAAc,EAAE,GAAG,MAAM,CAAC,CAAC,CAAC,EAAE;YACtC,OAAO,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,yBAAyB;SAC/C;QACD,OAAO,IAAI,CAAC;IACb,CAAC;CACD"}
|
package/lib/version.js
CHANGED
@@ -1 +1 @@
|
|
1
|
-
export default { version: '12.10.
|
1
|
+
export default { version: '12.10.3' };
|
package/package.json
CHANGED
@@ -5,24 +5,26 @@ export default class HTMLInputElementDateUtility {
|
|
5
5
|
/**
|
6
6
|
* Returns iso week number from given date
|
7
7
|
*
|
8
|
+
* @see https://stackoverflow.com/a/6117889
|
8
9
|
* @param date Date or number.
|
9
10
|
* @returns Iso-week string.
|
10
11
|
*/
|
11
12
|
public static dateIsoWeek(date: Date | number): string {
|
12
|
-
date = new Date(date);
|
13
|
-
|
14
|
-
date.
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
String(1 + Math.ceil((firstThursday - date.getTime()) / 604800000)).padStart(2, '0')
|
13
|
+
date = typeof date === 'number' ? new Date(date) : date;
|
14
|
+
// Copy date so don't modify original
|
15
|
+
date = new Date(Date.UTC(date.getFullYear(), date.getMonth(), date.getDate()));
|
16
|
+
// Set to nearest Thursday: current date + 4 - current day number
|
17
|
+
// Make Sunday's day number 7
|
18
|
+
date.setUTCDate(date.getUTCDate() + 4 - (date.getUTCDay() || 7));
|
19
|
+
// Get first day of year
|
20
|
+
const yearStart = new Date(Date.UTC(date.getUTCFullYear(), 0, 1));
|
21
|
+
// Calculate full weeks to nearest Thursday
|
22
|
+
const weekNo = Math.ceil(
|
23
|
+
((<number>(<unknown>date) - <number>(<unknown>yearStart)) / 86400000 + 1) / 7
|
24
24
|
);
|
25
|
+
return `${date.getUTCFullYear()}-W${weekNo < 10 ? '0' : ''}${weekNo}`;
|
25
26
|
}
|
27
|
+
|
26
28
|
/**
|
27
29
|
* Returns a date object for monday of given iso week string (\d\d\d\d-W\d\d)
|
28
30
|
*
|
@@ -37,7 +39,7 @@ export default class HTMLInputElementDateUtility {
|
|
37
39
|
}
|
38
40
|
const date = new Date(`${Y}-01-01T00:00Z`);
|
39
41
|
const jan4th = new Date(`${Y}-01-04T00:00Z`);
|
40
|
-
const jan4thDay = (jan4th.
|
42
|
+
const jan4thDay = (jan4th.getUTCDay() + 6) % 7;
|
41
43
|
const ordinalDate = 1 + (Number(W) - 1) * 7 - jan4thDay + 3;
|
42
44
|
date.setUTCDate(ordinalDate);
|
43
45
|
if (date.getUTCFullYear() > Number(Y)) {
|