Skip to content

Commit 8f56ac6

Browse files
Merge branch 'master' into pm/add-data-transfer-api
2 parents 8e71271 + df4129f commit 8f56ac6

File tree

8 files changed

+97
-4
lines changed

8 files changed

+97
-4
lines changed

CHANGELOG.md

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,11 +8,22 @@ Breaking changes:
88

99
New features:
1010
- Added `items` function for `DataTransfer` and related types (`DataTransferItem`, `DataTransferItemList`) (#55 by @ptrfrncsmrph)
11+
- Added `languages` value for `Navigator` (#59 by @toastal)
12+
- Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal)
13+
- Added `onLine` value for `Navigator` (#61 by @toastal)
1114

1215
Bugfixes:
1316

1417
Other improvements:
1518

19+
## [v3.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.1.0) - 2021-05-06
20+
21+
New features:
22+
- Exported `fromHTMLMediaElement`, `stepUp`, and `stepDown` (#57 by @JordanMartinez)
23+
24+
Other improvements:
25+
- Fixed warnings found by v0.14.1 PS release (#57 by @JordanMartinez)
26+
1627
## [v3.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.1) - 2021-03-13
1728

1829
New features:
@@ -33,8 +44,6 @@ New features:
3344
- Added missing attributes for `HTMLImage`, including `srcset`, `currentSrc`, `sizes`, `referrerPolicy`, `decoding`, `loading` (#40)
3445
- Added common `PropName`, `AttrName`, and `ClassName` which can be reused across libraries representing properties, attributes, and CSS classes (#30)
3546

36-
Bugfixes:
37-
3847
Other improvements:
3948
- Migrated CI to GitHub Actions and updated installation instructions to use Spago (#41)
4049
- Removed primes from foreign modules exports in preparation for PureScript 0.15 (#24)

src/Web/HTML/HTMLAudioElement.purs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
module Web.HTML.HTMLAudioElement
22
( HTMLAudioElement
3+
, fromHTMLMediaElement
34
, fromHTMLElement
45
, fromElement
56
, fromNode

src/Web/HTML/HTMLDocument.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,11 @@
11
"use strict";
22

3+
exports._documentElement = function (doc) {
4+
return function () {
5+
return doc.documentElement;
6+
};
7+
};
8+
39
exports._head = function (doc) {
410
return function () {
511
return doc.head;

src/Web/HTML/HTMLDocument.purs

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@ module Web.HTML.HTMLDocument
1010
, toParentNode
1111
, toNonElementParentNode
1212
, toEventTarget
13+
, documentElement
1314
, head
1415
, body
1516
, readyState
@@ -34,6 +35,7 @@ import Web.Event.EventTarget (EventTarget)
3435
import Web.HTML.HTMLDocument.ReadyState (ReadyState)
3536
import Web.HTML.HTMLDocument.ReadyState as ReadyState
3637
import Web.HTML.HTMLElement (HTMLElement)
38+
import Web.HTML.HTMLHtmlElement (HTMLHtmlElement)
3739
import Web.HTML.HTMLScriptElement (HTMLScriptElement)
3840
import Web.Internal.FFI (unsafeReadProtoTagged)
3941

@@ -69,6 +71,11 @@ toNonElementParentNode = unsafeCoerce
6971
toEventTarget :: HTMLDocument -> EventTarget
7072
toEventTarget = unsafeCoerce
7173

74+
foreign import _documentElement :: HTMLDocument -> Effect (Nullable HTMLHtmlElement)
75+
76+
documentElement :: HTMLDocument -> Effect (Maybe HTMLHtmlElement)
77+
documentElement = map toMaybe <<< _documentElement
78+
7279
foreign import _head :: HTMLDocument -> Effect (Nullable HTMLElement)
7380

7481
head :: HTMLDocument -> Effect (Maybe HTMLElement)

src/Web/HTML/HTMLHtmlElement.purs

Lines changed: 52 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,52 @@
1+
module Web.HTML.HTMLHtmlElement where
2+
3+
import Data.Maybe (Maybe)
4+
import Unsafe.Coerce (unsafeCoerce)
5+
import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode)
6+
import Web.Event.EventTarget (EventTarget)
7+
import Web.HTML.HTMLElement (HTMLElement)
8+
import Web.Internal.FFI (unsafeReadProtoTagged)
9+
10+
foreign import data HTMLHtmlElement :: Type
11+
12+
fromHTMLElement :: HTMLElement -> Maybe HTMLHtmlElement
13+
fromHTMLElement = unsafeReadProtoTagged "HTMLHtmlElement"
14+
15+
fromElement :: Element -> Maybe HTMLHtmlElement
16+
fromElement = unsafeReadProtoTagged "HTMLHtmlElement"
17+
18+
fromNode :: Node -> Maybe HTMLHtmlElement
19+
fromNode = unsafeReadProtoTagged "HTMLHtmlElement"
20+
21+
fromChildNode :: ChildNode -> Maybe HTMLHtmlElement
22+
fromChildNode = unsafeReadProtoTagged "HTMLHtmlElement"
23+
24+
fromNonDocumentTypeChildNode :: NonDocumentTypeChildNode -> Maybe HTMLHtmlElement
25+
fromNonDocumentTypeChildNode = unsafeReadProtoTagged "HTMLHtmlElement"
26+
27+
fromParentNode :: ParentNode -> Maybe HTMLHtmlElement
28+
fromParentNode = unsafeReadProtoTagged "HTMLHtmlElement"
29+
30+
fromEventTarget :: EventTarget -> Maybe HTMLHtmlElement
31+
fromEventTarget = unsafeReadProtoTagged "HTMLHtmlElement"
32+
33+
toHTMLElement :: HTMLHtmlElement -> HTMLElement
34+
toHTMLElement = unsafeCoerce
35+
36+
toElement :: HTMLHtmlElement -> Element
37+
toElement = unsafeCoerce
38+
39+
toNode :: HTMLHtmlElement -> Node
40+
toNode = unsafeCoerce
41+
42+
toChildNode :: HTMLHtmlElement -> ChildNode
43+
toChildNode = unsafeCoerce
44+
45+
toNonDocumentTypeChildNode :: HTMLHtmlElement -> NonDocumentTypeChildNode
46+
toNonDocumentTypeChildNode = unsafeCoerce
47+
48+
toParentNode :: HTMLHtmlElement -> ParentNode
49+
toParentNode = unsafeCoerce
50+
51+
toEventTarget :: HTMLHtmlElement -> EventTarget
52+
toEventTarget = unsafeCoerce

src/Web/HTML/HTMLInputElement.purs

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -85,7 +85,9 @@ module Web.HTML.HTMLInputElement
8585
, setValueAsNumber
8686
, width
8787
, setWidth
88+
, stepUp
8889
, stepUp'
90+
, stepDown
8991
, stepDown'
9092
, willValidate
9193
, validity

src/Web/HTML/Navigator.js

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,18 @@ exports.language = function (navigator) {
66
};
77
};
88

9+
exports.languages = function (navigator) {
10+
return function () {
11+
return navigator.languages;
12+
};
13+
};
14+
15+
exports.onLine = function (navigator) {
16+
return function () {
17+
return navigator.onLine;
18+
};
19+
};
20+
921
exports.platform = function (navigator) {
1022
return function () {
1123
return navigator.platform;
@@ -16,4 +28,4 @@ exports.userAgent = function (navigator) {
1628
return function () {
1729
return navigator.userAgent;
1830
};
19-
};
31+
};

src/Web/HTML/Navigator.purs

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ foreign import data Navigator :: Type
66

77
foreign import language :: Navigator -> Effect String
88

9+
foreign import languages :: Navigator -> Effect (Array String)
10+
11+
foreign import onLine :: Navigator -> Effect Boolean
12+
913
foreign import platform :: Navigator -> Effect String
1014

11-
foreign import userAgent :: Navigator -> Effect String
15+
foreign import userAgent :: Navigator -> Effect String

0 commit comments

Comments
 (0)