From 5db90696bffa4c1e609266f600f10ab61e8d978d Mon Sep 17 00:00:00 2001 From: Connor Prussin Date: Tue, 11 Sep 2018 20:57:11 -0700 Subject: [PATCH 1/2] Add `HTMLDocument.currentScript` and `HTMLElement.getAttribute`. --- src/Web/HTML/HTMLDocument.js | 6 ++++++ src/Web/HTML/HTMLDocument.purs | 6 ++++++ src/Web/HTML/HTMLElement.js | 14 ++++++++++++++ src/Web/HTML/HTMLElement.purs | 6 ++++++ 4 files changed, 32 insertions(+) diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index 753f0d0..6f28e1e 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -17,3 +17,9 @@ exports._activeElement = function (doc) { return doc.activeElement; }; }; + +exports._currentScript = function (doc) { + return function () { + return doc.currentScript; + }; +}; diff --git a/src/Web/HTML/HTMLDocument.purs b/src/Web/HTML/HTMLDocument.purs index 44d2720..79cacde 100644 --- a/src/Web/HTML/HTMLDocument.purs +++ b/src/Web/HTML/HTMLDocument.purs @@ -29,6 +29,7 @@ import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLDocument.ReadyState (ReadyState) import Web.HTML.HTMLDocument.ReadyState as ReadyState import Web.HTML.HTMLElement (HTMLElement) +import Web.HTML.HTMLScriptElement (HTMLScriptElement) import Web.Internal.FFI (unsafeReadProtoTagged) foreign import data HTMLDocument :: Type @@ -77,3 +78,8 @@ foreign import _activeElement :: HTMLDocument -> Effect (Nullable HTMLElement) activeElement :: HTMLDocument -> Effect (Maybe HTMLElement) activeElement = map toMaybe <<< _activeElement + +foreign import _currentScript :: HTMLDocument -> Effect (Nullable HTMLScriptElement) + +currentScript :: HTMLDocument -> Effect (Maybe HTMLScriptElement) +currentScript = map toMaybe <<< _currentScript diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index c8a7e49..1d796e7 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -85,6 +85,20 @@ exports.classList = function (element) { // ---------------------------------------------------------------------------- +exports._getAttribute = function (element) { + return function (attr) { + return function () { + if (element.hasAttribute(attr)) { + return element.getAttribute(attr); + } else { + return null; + } + }; + }; +}; + +// ---------------------------------------------------------------------------- + exports.hidden = function (elt) { return function () { return elt.hidden; diff --git a/src/Web/HTML/HTMLElement.purs b/src/Web/HTML/HTMLElement.purs index 93e0d1f..cbef626 100644 --- a/src/Web/HTML/HTMLElement.purs +++ b/src/Web/HTML/HTMLElement.purs @@ -21,6 +21,7 @@ module Web.HTML.HTMLElement , className , setClassName , classList + , getAttribute , hidden , setHidden , tabIndex @@ -113,6 +114,11 @@ foreign import setClassName :: String -> HTMLElement -> Effect Unit foreign import classList :: HTMLElement -> Effect DOMTokenList +foreign import _getAttribute :: HTMLElement -> String -> Effect (Nullable String) + +getAttribute :: HTMLElement -> String -> Effect (Maybe String) +getAttribute elem = map toMaybe <<< _getAttribute elem + foreign import hidden :: HTMLElement -> Effect Boolean foreign import setHidden :: Boolean -> HTMLElement -> Effect Unit From e129f7da90ca2da75929f078a81b3b99b867453d Mon Sep 17 00:00:00 2001 From: Connor Prussin Date: Fri, 21 Sep 2018 08:19:39 -0700 Subject: [PATCH 2/2] Remove HTMLElement.getAttribute since it's in purescript-web-dom --- src/Web/HTML/HTMLElement.js | 14 -------------- src/Web/HTML/HTMLElement.purs | 6 ------ 2 files changed, 20 deletions(-) diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index 1d796e7..c8a7e49 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -85,20 +85,6 @@ exports.classList = function (element) { // ---------------------------------------------------------------------------- -exports._getAttribute = function (element) { - return function (attr) { - return function () { - if (element.hasAttribute(attr)) { - return element.getAttribute(attr); - } else { - return null; - } - }; - }; -}; - -// ---------------------------------------------------------------------------- - exports.hidden = function (elt) { return function () { return elt.hidden; diff --git a/src/Web/HTML/HTMLElement.purs b/src/Web/HTML/HTMLElement.purs index cbef626..93e0d1f 100644 --- a/src/Web/HTML/HTMLElement.purs +++ b/src/Web/HTML/HTMLElement.purs @@ -21,7 +21,6 @@ module Web.HTML.HTMLElement , className , setClassName , classList - , getAttribute , hidden , setHidden , tabIndex @@ -114,11 +113,6 @@ foreign import setClassName :: String -> HTMLElement -> Effect Unit foreign import classList :: HTMLElement -> Effect DOMTokenList -foreign import _getAttribute :: HTMLElement -> String -> Effect (Nullable String) - -getAttribute :: HTMLElement -> String -> Effect (Maybe String) -getAttribute elem = map toMaybe <<< _getAttribute elem - foreign import hidden :: HTMLElement -> Effect Boolean foreign import setHidden :: Boolean -> HTMLElement -> Effect Unit