From be7dbcc89e0b1028a82f68bd305b14d3ccfbe72c Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sun, 18 Aug 2019 14:49:09 +0100 Subject: [PATCH 01/51] Raise upper bound for purescript-web-dom --- bower.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bower.json b/bower.json index c83b7d4..b521de2 100644 --- a/bower.json +++ b/bower.json @@ -16,7 +16,7 @@ ], "dependencies": { "purescript-js-date": "6", - "purescript-web-dom": "2 - 3", + "purescript-web-dom": "2 - 4", "purescript-web-file": "2", "purescript-web-storage": "3" } From e6e399986c89d88ead7c52386266feaaf2b097cd Mon Sep 17 00:00:00 2001 From: Elliot Davies Date: Tue, 10 Sep 2019 18:09:29 +0100 Subject: [PATCH 02/51] Add `head` function to HTMLDocument --- src/Web/HTML/HTMLDocument.js | 8 +++++++- src/Web/HTML/HTMLDocument.purs | 8 +++++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index 3e934a2..b51891d 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -1,5 +1,11 @@ "use strict"; +exports._head = function (doc) { + return function () { + return doc.head; + }; +}; + exports._body = function (doc) { return function () { return doc.body; @@ -43,4 +49,4 @@ exports.setTitle = function (title) { return {}; }; }; -}; \ No newline at end of file +}; diff --git a/src/Web/HTML/HTMLDocument.purs b/src/Web/HTML/HTMLDocument.purs index 894420a..32055ec 100644 --- a/src/Web/HTML/HTMLDocument.purs +++ b/src/Web/HTML/HTMLDocument.purs @@ -10,6 +10,7 @@ module Web.HTML.HTMLDocument , toParentNode , toNonElementParentNode , toEventTarget + , head , body , readyState , activeElement @@ -68,6 +69,11 @@ toNonElementParentNode = unsafeCoerce toEventTarget :: HTMLDocument -> EventTarget toEventTarget = unsafeCoerce +foreign import _head :: HTMLDocument -> Effect (Nullable HTMLElement) + +head :: HTMLDocument -> Effect (Maybe HTMLElement) +head = map toMaybe <<< _head + foreign import _body :: HTMLDocument -> Effect (Nullable HTMLElement) body :: HTMLDocument -> Effect (Maybe HTMLElement) @@ -91,4 +97,4 @@ currentScript = map toMaybe <<< _currentScript foreign import referrer :: HTMLDocument -> Effect String foreign import title :: HTMLDocument -> Effect String -foreign import setTitle :: String -> HTMLDocument -> Effect Unit \ No newline at end of file +foreign import setTitle :: String -> HTMLDocument -> Effect Unit From 4b00217a7211003ce53b98a18a46bc90d282b0b5 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Fri, 13 Mar 2020 17:50:14 +0100 Subject: [PATCH 03/51] Remove primes from foreign modules exports --- src/Web/HTML/HTMLImageElement.js | 2 +- src/Web/HTML/HTMLImageElement.purs | 42 +++++++++++++++++++++-- src/Web/HTML/HTMLInputElement.js | 4 +-- src/Web/HTML/HTMLInputElement.purs | 10 ++++-- src/Web/HTML/HTMLTableElement.js | 2 +- src/Web/HTML/HTMLTableElement.purs | 5 ++- src/Web/HTML/HTMLTableRowElement.js | 2 +- src/Web/HTML/HTMLTableRowElement.purs | 29 ++++++++++++++-- src/Web/HTML/HTMLTableSectionElement.js | 2 +- src/Web/HTML/HTMLTableSectionElement.purs | 27 +++++++++++++-- 10 files changed, 110 insertions(+), 15 deletions(-) diff --git a/src/Web/HTML/HTMLImageElement.js b/src/Web/HTML/HTMLImageElement.js index 7687e2c..ef9c36b 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -7,7 +7,7 @@ exports.create = function () { }; }; -exports["create'"] = function (width) { +exports.createWithDimensions = function (width) { return function (height) { return function () { return new Image(width, height); diff --git a/src/Web/HTML/HTMLImageElement.purs b/src/Web/HTML/HTMLImageElement.purs index d313223..1b330d2 100644 --- a/src/Web/HTML/HTMLImageElement.purs +++ b/src/Web/HTML/HTMLImageElement.purs @@ -1,4 +1,39 @@ -module Web.HTML.HTMLImageElement where +module Web.HTML.HTMLImageElement + ( HTMLImageElement + , fromHTMLElement + , fromElement + , fromNode + , fromChildNode + , fromNonDocumentTypeChildNode + , fromParentNode + , fromEventTarget + , toHTMLElement + , toElement + , toNode + , toChildNode + , toNonDocumentTypeChildNode + , toParentNode + , toEventTarget + , create + , create' + , alt + , setAlt + , src + , setSrc + , crossOrigin + , setCrossOrigin + , useMap + , setUseMap + , isMap + , setIsMap + , width + , setWidth + , height + , setHeight + , naturalWidth + , naturalHeight + , complete + ) where import Data.Maybe (Maybe) import Effect (Effect) @@ -55,7 +90,10 @@ toEventTarget = unsafeCoerce foreign import create :: Unit -> Effect HTMLImageElement -foreign import create' :: Int -> Int -> Effect HTMLImageElement +foreign import createWithDimensions :: Int -> Int -> Effect HTMLImageElement + +create' :: Int -> Int -> Effect HTMLImageElement +create' = createWithDimensions foreign import alt :: HTMLImageElement -> Effect String foreign import setAlt :: String -> HTMLImageElement -> Effect Unit diff --git a/src/Web/HTML/HTMLInputElement.js b/src/Web/HTML/HTMLInputElement.js index 2dfe66e..f2aa040 100644 --- a/src/Web/HTML/HTMLInputElement.js +++ b/src/Web/HTML/HTMLInputElement.js @@ -568,7 +568,7 @@ exports.setWidth = function (width) { // ---------------------------------------------------------------------------- -exports["stepUp'"] = function (n) { +exports.stepUpBy = function (n) { return function (input) { return function () { input.stepUp(n); @@ -578,7 +578,7 @@ exports["stepUp'"] = function (n) { // ---------------------------------------------------------------------------- -exports["stepDown'"] = function (n) { +exports.stepDownBy = function (n) { return function (input) { return function () { input.stepDown(n); diff --git a/src/Web/HTML/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index 3f36ed3..cb55615 100644 --- a/src/Web/HTML/HTMLInputElement.purs +++ b/src/Web/HTML/HTMLInputElement.purs @@ -290,12 +290,18 @@ foreign import setWidth :: Int -> HTMLInputElement -> Effect Unit stepUp :: HTMLInputElement -> Effect Unit stepUp = stepUp' 1 -foreign import stepUp' :: Int -> HTMLInputElement -> Effect Unit +foreign import stepUpBy :: Int -> HTMLInputElement -> Effect Unit + +stepUp' :: Int -> HTMLInputElement -> Effect Unit +stepUp' = stepUpBy stepDown :: HTMLInputElement -> Effect Unit stepDown = stepDown' 1 -foreign import stepDown' :: Int -> HTMLInputElement -> Effect Unit +foreign import stepDownBy :: Int -> HTMLInputElement -> Effect Unit + +stepDown' :: Int -> HTMLInputElement -> Effect Unit +stepDown' = stepDownBy foreign import willValidate :: HTMLInputElement -> Effect Boolean diff --git a/src/Web/HTML/HTMLTableElement.js b/src/Web/HTML/HTMLTableElement.js index 9fae7fa..9fc1fc7 100644 --- a/src/Web/HTML/HTMLTableElement.js +++ b/src/Web/HTML/HTMLTableElement.js @@ -120,7 +120,7 @@ exports.rows = function (table) { // ---------------------------------------------------------------------------- -exports["insertRow'"] = function (index) { +exports.insertRowAt = function (index) { return function (table) { return function () { return table.insertRow(index); diff --git a/src/Web/HTML/HTMLTableElement.purs b/src/Web/HTML/HTMLTableElement.purs index 275fbb0..da7bfa5 100644 --- a/src/Web/HTML/HTMLTableElement.purs +++ b/src/Web/HTML/HTMLTableElement.purs @@ -138,7 +138,10 @@ foreign import rows :: HTMLTableElement -> Effect HTMLCollection insertRow :: HTMLTableElement -> Effect HTMLElement insertRow = insertRow' (-1) -foreign import insertRow' :: Int -> HTMLTableElement -> Effect HTMLElement +foreign import insertRowAt :: Int -> HTMLTableElement -> Effect HTMLElement + +insertRow' :: Int -> HTMLTableElement -> Effect HTMLElement +insertRow' = insertRowAt foreign import deleteRow :: Int -> HTMLTableElement -> Effect Unit diff --git a/src/Web/HTML/HTMLTableRowElement.js b/src/Web/HTML/HTMLTableRowElement.js index 82c5c17..775169d 100644 --- a/src/Web/HTML/HTMLTableRowElement.js +++ b/src/Web/HTML/HTMLTableRowElement.js @@ -32,7 +32,7 @@ exports.cells = function (row) { // ---------------------------------------------------------------------------- -exports["insertCell'"] = function (index) { +exports.insertCellAt = function (index) { return function (row) { return function () { return row.insertCell(index); diff --git a/src/Web/HTML/HTMLTableRowElement.purs b/src/Web/HTML/HTMLTableRowElement.purs index ed043c6..4976b42 100644 --- a/src/Web/HTML/HTMLTableRowElement.purs +++ b/src/Web/HTML/HTMLTableRowElement.purs @@ -1,4 +1,26 @@ -module Web.HTML.HTMLTableRowElement where +module Web.HTML.HTMLTableRowElement + ( HTMLTableRowElement + , fromHTMLElement + , fromElement + , fromNode + , fromChildNode + , fromNonDocumentTypeChildNode + , fromParentNode + , fromEventTarget + , toHTMLElement + , toElement + , toNode + , toChildNode + , toNonDocumentTypeChildNode + , toParentNode + , toEventTarget + , rowIndex + , sectionRowIndex + , cells + , insertCell + , insertCell' + , deleteCell + ) where import Data.Maybe (Maybe) import Effect (Effect) @@ -63,6 +85,9 @@ foreign import cells :: HTMLTableRowElement -> Effect HTMLCollection insertCell :: HTMLTableRowElement -> Effect HTMLElement insertCell = insertCell' (-1) -foreign import insertCell' :: Int -> HTMLTableRowElement -> Effect HTMLElement +foreign import insertCellAt :: Int -> HTMLTableRowElement -> Effect HTMLElement + +insertCell' :: Int -> HTMLTableRowElement -> Effect HTMLElement +insertCell' = insertCellAt foreign import deleteCell :: Int -> HTMLTableRowElement -> Effect Unit diff --git a/src/Web/HTML/HTMLTableSectionElement.js b/src/Web/HTML/HTMLTableSectionElement.js index 527eb46..f571cc2 100644 --- a/src/Web/HTML/HTMLTableSectionElement.js +++ b/src/Web/HTML/HTMLTableSectionElement.js @@ -8,7 +8,7 @@ exports.rows = function (section) { // ---------------------------------------------------------------------------- -exports["insertRow'"] = function (index) { +exports.insertRowAt = function (index) { return function (section) { return function () { return section.insertRow(index); diff --git a/src/Web/HTML/HTMLTableSectionElement.purs b/src/Web/HTML/HTMLTableSectionElement.purs index 6846ac5..4a24fef 100644 --- a/src/Web/HTML/HTMLTableSectionElement.purs +++ b/src/Web/HTML/HTMLTableSectionElement.purs @@ -1,4 +1,24 @@ -module Web.HTML.HTMLTableSectionElement where +module Web.HTML.HTMLTableSectionElement + ( HTMLTableSectionElement + , fromHTMLElement + , fromElement + , fromNode + , fromChildNode + , fromNonDocumentTypeChildNode + , fromParentNode + , fromEventTarget + , toHTMLElement + , toElement + , toNode + , toChildNode + , toNonDocumentTypeChildNode + , toParentNode + , toEventTarget + , rows + , insertRow + , insertRow' + , deleteRow + ) where import Prelude @@ -60,6 +80,9 @@ foreign import rows :: HTMLTableSectionElement -> Effect HTMLCollection insertRow :: HTMLTableSectionElement -> Effect HTMLElement insertRow = insertRow' (-1) -foreign import insertRow' :: Int -> HTMLTableSectionElement -> Effect HTMLElement +foreign import insertRowAt :: Int -> HTMLTableSectionElement -> Effect HTMLElement + +insertRow' :: Int -> HTMLTableSectionElement -> Effect HTMLElement +insertRow' = insertRowAt foreign import deleteRow :: Int -> HTMLTableSectionElement -> Effect Unit From 20c2cba5da27b4d592d101ab2a796a29183cb63e Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Fri, 13 Mar 2020 19:32:44 +0100 Subject: [PATCH 04/51] Fix the retrieval of the latest compiler version tag See https://discourse.purescript.org/t/new-404-ci-failures-in-core-libraries/1225. --- .travis.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/.travis.yml b/.travis.yml index 37fead9..24c0cb3 100644 --- a/.travis.yml +++ b/.travis.yml @@ -5,8 +5,8 @@ node_js: stable env: - PATH=$HOME/purescript:$PATH install: - - TAG=$(wget -q -O - https://github.com/purescript/purescript/releases/latest --server-response --max-redirect 0 2>&1 | sed -n -e 's/.*Location:.*tag\///p') - - wget -O $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz + - TAG=$(basename $(curl --location --silent --output /dev/null -w %{url_effective} https://github.com/purescript/purescript/releases/latest)) + - curl --location --output $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz - tar -xvf $HOME/purescript.tar.gz -C $HOME/ - chmod a+x $HOME/purescript - npm install -g bower From 73ed5e2027ec16d1e39185b3a7015f8cb4753715 Mon Sep 17 00:00:00 2001 From: mhmdanas <32234660+mhmdanas@users.noreply.github.com> Date: Thu, 16 Jul 2020 23:45:10 +0300 Subject: [PATCH 05/51] Remove `return {}` from FFI functions --- src/Web/HTML/HTMLDocument.js | 1 - src/Web/HTML/HTMLElement.js | 9 --------- src/Web/HTML/Window.js | 8 -------- 3 files changed, 18 deletions(-) diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index b51891d..cb28e70 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -46,7 +46,6 @@ exports.setTitle = function (title) { return function (doc) { return function () { doc.title = title; - return {}; }; }; }; diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index c8a7e49..4f8401d 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -21,7 +21,6 @@ exports.setTitle = function (title) { return function (elt) { return function () { elt.title = title; - return {}; }; }; }; @@ -38,7 +37,6 @@ exports.setLang = function (lang) { return function (elt) { return function () { elt.lang = lang; - return {}; }; }; }; @@ -55,7 +53,6 @@ exports.setDir = function (dir) { return function (elt) { return function () { elt.dir = dir; - return {}; }; }; }; @@ -72,7 +69,6 @@ exports.setClassName = function (className) { return function (elt) { return function () { elt.className = className; - return {}; }; }; }; @@ -95,7 +91,6 @@ exports.setHidden = function (hidden) { return function (elt) { return function () { elt.hidden = hidden; - return {}; }; }; }; @@ -112,7 +107,6 @@ exports.setTabIndex = function (tabIndex) { return function (elt) { return function () { elt.tabIndex = tabIndex; - return {}; }; }; }; @@ -129,7 +123,6 @@ exports.setDraggable = function (draggable) { return function (elt) { return function () { elt.draggable = draggable; - return {}; }; }; }; @@ -146,7 +139,6 @@ exports.setContentEditable = function (contentEditable) { return function (elt) { return function () { elt.contentEditable = contentEditable; - return {}; }; }; }; @@ -169,7 +161,6 @@ exports.setSpellcheck = function (spellcheck) { return function (elt) { return function () { elt.spellcheck = spellcheck; - return {}; }; }; }; diff --git a/src/Web/HTML/Window.js b/src/Web/HTML/Window.js index 72d9db6..e15e560 100644 --- a/src/Web/HTML/Window.js +++ b/src/Web/HTML/Window.js @@ -40,7 +40,6 @@ exports.alert = function (str) { return function (window) { return function () { window.alert(str); - return {}; }; }; }; @@ -58,7 +57,6 @@ exports.moveBy = function (xDelta) { return function (window) { return function () { window.moveBy(xDelta, yDelta); - return {}; }; }; }; @@ -69,7 +67,6 @@ exports.moveTo = function (width) { return function (window) { return function () { window.moveTo(width, height); - return {}; }; }; }; @@ -102,7 +99,6 @@ exports.outerWidth = function (window) { exports.print = function (window) { return function () { window.print(); - return {}; }; }; @@ -121,7 +117,6 @@ exports.resizeBy = function (xDelta) { return function (window) { return function () { window.resizeBy(xDelta, yDelta); - return {}; }; }; }; @@ -132,7 +127,6 @@ exports.resizeTo = function (width) { return function (window) { return function () { window.resizeTo(width, height); - return {}; }; }; }; @@ -155,7 +149,6 @@ exports.scroll = function (xCoord) { return function (window) { return function () { window.scroll(xCoord, yCoord); - return {}; }; }; }; @@ -166,7 +159,6 @@ exports.scrollBy = function (xCoord) { return function (window) { return function () { window.scrollBy(xCoord, yCoord); - return {}; }; }; }; From 3eca5eb647e2369e8811a75c4d7448c005feda91 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Thu, 5 Nov 2020 14:43:57 +0000 Subject: [PATCH 06/51] Add issue templates --- .github/ISSUE_TEMPLATE/bug_report.md | 10 ++++++++++ .github/ISSUE_TEMPLATE/feature-request.md | 16 ++++++++++++++++ .github/pull_request_template.md | 7 +++++++ README.md | 2 +- 4 files changed, 34 insertions(+), 1 deletion(-) create mode 100644 .github/ISSUE_TEMPLATE/bug_report.md create mode 100644 .github/ISSUE_TEMPLATE/feature-request.md create mode 100644 .github/pull_request_template.md diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 0000000..1b182fe --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,10 @@ +--- +name: Bug report +about: Create a report to help us improve +title: '' +labels: '' +assignees: '' + +--- + + diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 0000000..206b0a3 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,16 @@ +--- +name: Feature request +about: Suggest types, functions, properties that may be missing +title: '' +labels: enhancement +assignees: '' + +--- + +### Prerequisites + +- [ ] Before opening an issue, please check the DOM standard (https://html.spec.whatwg.org). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. + +### Description + + diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md new file mode 100644 index 0000000..e4eaaa0 --- /dev/null +++ b/.github/pull_request_template.md @@ -0,0 +1,7 @@ +### Prerequisites + +- [ ] Before opening a pull request, please check the DOM standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. + +### Description + + diff --git a/README.md b/README.md index 4093773..d07070b 100644 --- a/README.md +++ b/README.md @@ -3,7 +3,7 @@ [![Latest release](http://img.shields.io/github/release/purescript-web/purescript-web-html.svg)](https://github.com/purescript-web/purescript-web-html/releases) [![Build status](https://travis-ci.org/purescript-web/purescript-web-html.svg?branch=master)](https://travis-ci.org/purescript-web/purescript-web-html) -Type definitions and low level interface implementations for the [W3C HTML5 API](https://www.w3.org/TR/html5). +Type definitions and low level interface implementations for the [WHATWG HTML Standard](https://html.spec.whatwg.org). ## Installation From dad3c35f517c382c3aab5c624d806d94a9788098 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Thu, 5 Nov 2020 14:45:04 +0000 Subject: [PATCH 07/51] DOM -> HTML in templates --- .github/ISSUE_TEMPLATE/feature-request.md | 2 +- .github/pull_request_template.md | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md index 206b0a3..ae7917b 100644 --- a/.github/ISSUE_TEMPLATE/feature-request.md +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -9,7 +9,7 @@ assignees: '' ### Prerequisites -- [ ] Before opening an issue, please check the DOM standard (https://html.spec.whatwg.org). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. +- [ ] Before opening an issue, please check the HTML standard (https://html.spec.whatwg.org). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. ### Description diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md index e4eaaa0..bc63733 100644 --- a/.github/pull_request_template.md +++ b/.github/pull_request_template.md @@ -1,6 +1,6 @@ ### Prerequisites -- [ ] Before opening a pull request, please check the DOM standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. +- [ ] Before opening a pull request, please check the HTML standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. ### Description From 48ffadbfa6a59d7a548db9018227ed9cbddb7beb Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Sat, 18 Jul 2020 18:24:30 +0200 Subject: [PATCH 08/51] Fix `HiddenConstructors` warnings --- src/Web/HTML/Window.js | 8 ++++---- src/Web/HTML/Window.purs | 23 ++++------------------- 2 files changed, 8 insertions(+), 23 deletions(-) diff --git a/src/Web/HTML/Window.js b/src/Web/HTML/Window.js index e15e560..0048eac 100644 --- a/src/Web/HTML/Window.js +++ b/src/Web/HTML/Window.js @@ -188,7 +188,7 @@ exports.sessionStorage = function (window) { }; }; -exports._requestAnimationFrame = function(fn) { +exports.requestAnimationFrame = function(fn) { return function(window) { return function() { return window.requestAnimationFrame(fn); @@ -196,7 +196,7 @@ exports._requestAnimationFrame = function(fn) { }; }; -exports._cancelAnimationFrame = function(id) { +exports.cancelAnimationFrame = function(id) { return function(window) { return function() { return window.cancelAnimationFrame(id); @@ -204,7 +204,7 @@ exports._cancelAnimationFrame = function(id) { }; }; -exports._requestIdleCallback = function(opts) { +exports.requestIdleCallback = function(opts) { return function(fn) { return function(window) { return function() { @@ -214,7 +214,7 @@ exports._requestIdleCallback = function(opts) { }; }; -exports._cancelIdleCallback = function(id) { +exports.cancelIdleCallback = function(id) { return function(window) { return function() { return window.cancelIdleCallback(id); diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index ab6bd33..f8181b2 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -38,7 +38,6 @@ module Web.HTML.Window ) where import Data.Maybe (Maybe) -import Data.Newtype (class Newtype, unwrap) import Data.Nullable (Nullable, toMaybe) import Effect (Effect) import Prelude (class Eq, class Ord, Unit, (<$>), (<<<), map) @@ -121,37 +120,23 @@ foreign import sessionStorage :: Window -> Effect Storage newtype RequestAnimationFrameId = RequestAnimationFrameId Int -derive instance newtypeRequestAnimationFrameId :: Newtype RequestAnimationFrameId _ derive instance eqRequestAnimationFrameId :: Eq RequestAnimationFrameId derive instance ordRequestAnimationFrameId :: Ord RequestAnimationFrameId -foreign import _requestAnimationFrame :: Effect Unit -> Window -> Effect Int +foreign import requestAnimationFrame :: Effect Unit -> Window -> Effect RequestAnimationFrameId -requestAnimationFrame :: Effect Unit -> Window -> Effect RequestAnimationFrameId -requestAnimationFrame fn = map RequestAnimationFrameId <<< _requestAnimationFrame fn - -foreign import _cancelAnimationFrame :: Int -> Window -> Effect Unit - -cancelAnimationFrame :: RequestAnimationFrameId -> Window -> Effect Unit -cancelAnimationFrame idAF = _cancelAnimationFrame (unwrap idAF) +foreign import cancelAnimationFrame :: RequestAnimationFrameId -> Window -> Effect Unit newtype RequestIdleCallbackId = RequestIdleCallbackId Int -derive instance newtypeRequestIdleCallbackId :: Newtype RequestIdleCallbackId _ derive instance eqRequestIdleCallbackId :: Eq RequestIdleCallbackId derive instance ordRequestIdleCallbackId :: Ord RequestIdleCallbackId -foreign import _requestIdleCallback :: { timeout :: Int } -> Effect Unit -> Window -> Effect Int - -- | Set timeout to `0` to get the same behaviour as when it is `undefined` in -- | [JavaScript](https://w3c.github.io/requestidlecallback/#h-the-requestidle-callback-method). -requestIdleCallback :: { timeout :: Int } -> Effect Unit -> Window -> Effect RequestIdleCallbackId -requestIdleCallback opts fn = map RequestIdleCallbackId <<< _requestIdleCallback opts fn - -foreign import _cancelIdleCallback :: Int -> Window -> Effect Unit +foreign import requestIdleCallback :: { timeout :: Int } -> Effect Unit -> Window -> Effect RequestIdleCallbackId -cancelIdleCallback :: RequestIdleCallbackId -> Window -> Effect Unit -cancelIdleCallback idAF = _cancelIdleCallback (unwrap idAF) +foreign import cancelIdleCallback :: RequestIdleCallbackId -> Window -> Effect Unit foreign import parent :: Window -> Effect Window From ad504b84f868f1f34618edf835d5e9552fa7ffd4 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Thu, 26 Nov 2020 19:45:44 +0100 Subject: [PATCH 09/51] Remove unused explicit imports --- src/Web/HTML/Window.purs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index f8181b2..bd9a82f 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -40,7 +40,7 @@ module Web.HTML.Window import Data.Maybe (Maybe) import Data.Nullable (Nullable, toMaybe) import Effect (Effect) -import Prelude (class Eq, class Ord, Unit, (<$>), (<<<), map) +import Prelude (class Eq, class Ord, Unit, (<$>)) import Unsafe.Coerce (unsafeCoerce) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLDocument (HTMLDocument) From eaa5a115eb221af6df8da6c823e4605313b1a913 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Mon, 7 Dec 2020 15:53:43 -0800 Subject: [PATCH 10/51] Migrate to GitHub Actions (#41) * Migrate to GitHub Actions and update installation instructions. --- .github/workflows/ci.yml | 29 +++++++++++++++++++++++++++++ .gitignore | 2 +- .travis.yml | 21 --------------------- README.md | 5 +++-- 4 files changed, 33 insertions(+), 24 deletions(-) create mode 100644 .github/workflows/ci.yml delete mode 100644 .travis.yml diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml new file mode 100644 index 0000000..49aff92 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,29 @@ +name: CI + +on: push + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: purescript-contrib/setup-purescript@main + + - uses: actions/setup-node@v1 + with: + node-version: "10" + + - name: Install dependencies + run: | + npm install -g bower + npm install + bower install --production + + - name: Build source + run: npm run-script build + + - name: Run tests + run: | + bower install + npm run-script test --if-present diff --git a/.gitignore b/.gitignore index 709fd09..7224331 100644 --- a/.gitignore +++ b/.gitignore @@ -1,7 +1,7 @@ /.* !/.gitignore !/.eslintrc.json -!/.travis.yml +!/.github/ package-lock.json /bower_components/ /node_modules/ diff --git a/.travis.yml b/.travis.yml deleted file mode 100644 index 24c0cb3..0000000 --- a/.travis.yml +++ /dev/null @@ -1,21 +0,0 @@ -language: node_js -dist: trusty -sudo: required -node_js: stable -env: - - PATH=$HOME/purescript:$PATH -install: - - TAG=$(basename $(curl --location --silent --output /dev/null -w %{url_effective} https://github.com/purescript/purescript/releases/latest)) - - curl --location --output $HOME/purescript.tar.gz https://github.com/purescript/purescript/releases/download/$TAG/linux64.tar.gz - - tar -xvf $HOME/purescript.tar.gz -C $HOME/ - - chmod a+x $HOME/purescript - - npm install -g bower - - npm install -script: - - bower install - - npm run -s build -after_success: -- >- - test $TRAVIS_TAG && - echo $GITHUB_TOKEN | pulp login && - echo y | pulp publish --no-push diff --git a/README.md b/README.md index d07070b..7c9c8fc 100644 --- a/README.md +++ b/README.md @@ -1,14 +1,15 @@ # purescript-web-html [![Latest release](http://img.shields.io/github/release/purescript-web/purescript-web-html.svg)](https://github.com/purescript-web/purescript-web-html/releases) -[![Build status](https://travis-ci.org/purescript-web/purescript-web-html.svg?branch=master)](https://travis-ci.org/purescript-web/purescript-web-html) +[![Build status](https://github.com/purescript/purescript-web-html/workflows/CI/badge.svg?branch=master)](https://github.com/purescript/purescript-web-html/actions?query=workflow%3ACI+branch%3Amaster) +[![Pursuit](https://pursuit.purescript.org/packages/purescript-web-html/badge)](https://pursuit.purescript.org/packages/purescript-web-html) Type definitions and low level interface implementations for the [WHATWG HTML Standard](https://html.spec.whatwg.org). ## Installation ``` -bower install purescript-web-html +spago install web-html ``` ## Documentation From 213e6aa3e682f11de1e84df1c81d2d5c5a7c6486 Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Tue, 8 Dec 2020 18:57:18 +0100 Subject: [PATCH 11/51] Run CI on push / pull_request to master --- .github/workflows/ci.yml | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 49aff92..063845e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -1,6 +1,10 @@ name: CI -on: push +on: + push: + branches: [master] + pull_request: + branches: [master] jobs: build: From 2f7d7a1f855a6ea960f9860296bc5986467a3fff Mon Sep 17 00:00:00 2001 From: Cyril Sobierajewicz Date: Tue, 8 Dec 2020 18:57:32 +0100 Subject: [PATCH 12/51] Fix build status badge --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c9c8fc..0ed0983 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ # purescript-web-html [![Latest release](http://img.shields.io/github/release/purescript-web/purescript-web-html.svg)](https://github.com/purescript-web/purescript-web-html/releases) -[![Build status](https://github.com/purescript/purescript-web-html/workflows/CI/badge.svg?branch=master)](https://github.com/purescript/purescript-web-html/actions?query=workflow%3ACI+branch%3Amaster) +[![Build status](https://github.com/purescript-web/purescript-web-html/workflows/CI/badge.svg?branch=master)](https://github.com/purescript-web/purescript-web-html/actions?query=workflow%3ACI+branch%3Amaster) [![Pursuit](https://pursuit.purescript.org/packages/purescript-web-html/badge)](https://pursuit.purescript.org/packages/purescript-web-html) Type definitions and low level interface implementations for the [WHATWG HTML Standard](https://html.spec.whatwg.org). From b305b22cfb58294ffa47ef77dbef844b5f992a59 Mon Sep 17 00:00:00 2001 From: Serhii Khoma Date: Tue, 8 Dec 2020 22:22:36 +0200 Subject: [PATCH 13/51] feat(#8): Add HTMLHyperlinkElementUtils module (#44) --- src/Web/HTML/HTMLAnchorElement.purs | 4 + src/Web/HTML/HTMLHyperlinkElementUtils.js | 167 ++++++++++++++++++++ src/Web/HTML/HTMLHyperlinkElementUtils.purs | 39 +++++ 3 files changed, 210 insertions(+) create mode 100644 src/Web/HTML/HTMLHyperlinkElementUtils.js create mode 100644 src/Web/HTML/HTMLHyperlinkElementUtils.purs diff --git a/src/Web/HTML/HTMLAnchorElement.purs b/src/Web/HTML/HTMLAnchorElement.purs index e4a637f..c9adaab 100644 --- a/src/Web/HTML/HTMLAnchorElement.purs +++ b/src/Web/HTML/HTMLAnchorElement.purs @@ -9,6 +9,7 @@ import Web.DOM.DOMTokenList (DOMTokenList) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLElement (HTMLElement) import Web.Internal.FFI (unsafeReadProtoTagged) +import Web.HTML.HTMLHyperlinkElementUtils (HTMLHyperlinkElementUtils) foreign import data HTMLAnchorElement :: Type @@ -54,6 +55,9 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLAnchorElement -> EventTarget toEventTarget = unsafeCoerce +toHTMLHyperlinkElementUtils :: HTMLAnchorElement -> HTMLHyperlinkElementUtils +toHTMLHyperlinkElementUtils = unsafeCoerce + foreign import target :: HTMLAnchorElement -> Effect String foreign import setTarget :: String -> HTMLAnchorElement -> Effect Unit diff --git a/src/Web/HTML/HTMLHyperlinkElementUtils.js b/src/Web/HTML/HTMLHyperlinkElementUtils.js new file mode 100644 index 0000000..ea449ea --- /dev/null +++ b/src/Web/HTML/HTMLHyperlinkElementUtils.js @@ -0,0 +1,167 @@ +"use strict"; + +exports.href = function (u) { + return function () { + return u.href; + }; +}; + +exports.setHref = function (href) { + return function (u) { + return function () { + u.href = href; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.origin = function (u) { + return function () { + return u.origin; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.protocol = function (u) { + return function () { + return u.protocol; + }; +}; + +exports.setProtocol = function (protocol) { + return function (u) { + return function () { + u.protocol = protocol; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.username = function (u) { + return function () { + return u.username; + }; +}; + +exports.setUsername = function (username) { + return function (u) { + return function () { + u.username = username; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.password = function (u) { + return function () { + return u.password; + }; +}; + +exports.setPassword = function (password) { + return function (u) { + return function () { + u.password = password; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.host = function (u) { + return function () { + return u.host; + }; +}; + +exports.setHost = function (host) { + return function (u) { + return function () { + u.host = host; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.hostname = function (u) { + return function () { + return u.hostname; + }; +}; + +exports.setHostname = function (hostname) { + return function (u) { + return function () { + u.hostname = hostname; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.port = function (u) { + return function () { + return u.port; + }; +}; + +exports.setPort = function (port) { + return function (u) { + return function () { + u.port = port; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.pathname = function (u) { + return function () { + return u.pathname; + }; +}; + +exports.setPathname = function (pathname) { + return function (u) { + return function () { + u.pathname = pathname; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.search = function (u) { + return function () { + return u.search; + }; +}; + +exports.setSearch = function (search) { + return function (u) { + return function () { + u.search = search; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.hash = function (u) { + return function () { + return u.hash; + }; +}; + +exports.setHash = function (hash) { + return function (u) { + return function () { + u.hash = hash; + }; + }; +}; diff --git a/src/Web/HTML/HTMLHyperlinkElementUtils.purs b/src/Web/HTML/HTMLHyperlinkElementUtils.purs new file mode 100644 index 0000000..a41554b --- /dev/null +++ b/src/Web/HTML/HTMLHyperlinkElementUtils.purs @@ -0,0 +1,39 @@ +-- https://html.spec.whatwg.org/multipage/links.html#htmlhyperlinkelementutils +module Web.HTML.HTMLHyperlinkElementUtils where + +import Effect (Effect) +import Prelude (Unit) + +foreign import data HTMLHyperlinkElementUtils :: Type + +foreign import href :: HTMLHyperlinkElementUtils -> Effect String +foreign import setHref :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import origin :: HTMLHyperlinkElementUtils -> Effect String + +foreign import protocol :: HTMLHyperlinkElementUtils -> Effect String +foreign import setProtocol :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import username :: HTMLHyperlinkElementUtils -> Effect String +foreign import setUsername :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import password :: HTMLHyperlinkElementUtils -> Effect String +foreign import setPassword :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import host :: HTMLHyperlinkElementUtils -> Effect String +foreign import setHost :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import hostname :: HTMLHyperlinkElementUtils -> Effect String +foreign import setHostname :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import port :: HTMLHyperlinkElementUtils -> Effect String +foreign import setPort :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import pathname :: HTMLHyperlinkElementUtils -> Effect String +foreign import setPathname :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import search :: HTMLHyperlinkElementUtils -> Effect String +foreign import setSearch :: String -> HTMLHyperlinkElementUtils -> Effect Unit + +foreign import hash :: HTMLHyperlinkElementUtils -> Effect String +foreign import setHash :: String -> HTMLHyperlinkElementUtils -> Effect Unit From aba4793287338b05f917be5261c26e2c92c85d9a Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Thu, 10 Dec 2020 13:02:37 -0800 Subject: [PATCH 14/51] Update to v0.14.0-rc3 (#45) --- .github/workflows/ci.yml | 2 ++ bower.json | 8 ++++---- package.json | 8 ++++---- src/Web/HTML.js | 1 - src/Web/HTML/HTMLImageElement.js | 1 - 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 063845e..2e4c7a1 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,6 +13,8 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main + with: + purescript: "0.14.0-rc3" - uses: actions/setup-node@v1 with: diff --git a/bower.json b/bower.json index b521de2..c0edf30 100644 --- a/bower.json +++ b/bower.json @@ -15,9 +15,9 @@ "package.json" ], "dependencies": { - "purescript-js-date": "6", - "purescript-web-dom": "2 - 4", - "purescript-web-file": "2", - "purescript-web-storage": "3" + "purescript-js-date": "main", + "purescript-web-dom": "master", + "purescript-web-file": "master", + "purescript-web-storage": "master" } } diff --git a/package.json b/package.json index 02e36ea..1c67b54 100644 --- a/package.json +++ b/package.json @@ -5,9 +5,9 @@ "build": "eslint src && pulp build -- --censor-lib --strict" }, "devDependencies": { - "eslint": "^4.19.1", - "pulp": "^12.2.0", - "purescript-psa": "^0.6.0", - "rimraf": "^2.6.2" + "eslint": "^7.15.0", + "pulp": "^15.0.0", + "purescript-psa": "^0.8.0", + "rimraf": "^3.0.2" } } diff --git a/src/Web/HTML.js b/src/Web/HTML.js index 90d68be..b24a3e4 100644 --- a/src/Web/HTML.js +++ b/src/Web/HTML.js @@ -1,4 +1,3 @@ -/* global window */ "use strict"; exports.window = function () { diff --git a/src/Web/HTML/HTMLImageElement.js b/src/Web/HTML/HTMLImageElement.js index ef9c36b..9640906 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -1,4 +1,3 @@ -/* global Image */ "use strict"; exports.create = function () { From 6da0fcb8a13918ef69201ea9a3680155ee528c5f Mon Sep 17 00:00:00 2001 From: Colin Wahl Date: Thu, 10 Dec 2020 17:37:40 -0500 Subject: [PATCH 15/51] scrollX and scrollY should have type Window -> Effect Number (#17) --- src/Web/HTML/Window.purs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index bd9a82f..047fac7 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -110,9 +110,9 @@ foreign import scroll :: Int -> Int -> Window -> Effect Unit foreign import scrollBy :: Int -> Int -> Window -> Effect Unit -foreign import scrollX :: Window -> Effect Int +foreign import scrollX :: Window -> Effect Number -foreign import scrollY :: Window -> Effect Int +foreign import scrollY :: Window -> Effect Number foreign import localStorage :: Window -> Effect Storage From aaa38f3be549c31856ca49f4625abeed986513af Mon Sep 17 00:00:00 2001 From: Mason Mackaman Date: Thu, 10 Dec 2020 17:42:47 -0500 Subject: [PATCH 16/51] Update HTML spec link and text (#34) Co-authored-by: Thomas Honeyman --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 0ed0983..c34ff98 100644 --- a/README.md +++ b/README.md @@ -4,7 +4,7 @@ [![Build status](https://github.com/purescript-web/purescript-web-html/workflows/CI/badge.svg?branch=master)](https://github.com/purescript-web/purescript-web-html/actions?query=workflow%3ACI+branch%3Amaster) [![Pursuit](https://pursuit.purescript.org/packages/purescript-web-html/badge)](https://pursuit.purescript.org/packages/purescript-web-html) -Type definitions and low level interface implementations for the [WHATWG HTML Standard](https://html.spec.whatwg.org). +Type definitions and low level interface implementations for the [WHATWG HTML Living Standard](https://html.spec.whatwg.org). ## Installation From bb37b2937eb423c4ed4e3f630bb33a202a7053dc Mon Sep 17 00:00:00 2001 From: toastal Date: Fri, 11 Dec 2020 06:06:08 +0000 Subject: [PATCH 17/51] Add image attributes: srcset, currentSrc, sizes, referrerPolicy, decoding, loading (#40) * img attrs: srcset, currentSrc, sizes, referrerPolicy, decoding, loading * adts for some attrs + sizes exports --- src/Web/HTML/HTMLImageElement.js | 79 ++++++++++++++++++- src/Web/HTML/HTMLImageElement.purs | 67 +++++++++++++++- src/Web/HTML/HTMLImageElement/CORSMode.purs | 32 ++++++++ .../HTML/HTMLImageElement/DecodingHint.purs | 36 +++++++++ src/Web/HTML/HTMLImageElement/Laziness.purs | 33 ++++++++ 5 files changed, 239 insertions(+), 8 deletions(-) create mode 100644 src/Web/HTML/HTMLImageElement/CORSMode.purs create mode 100644 src/Web/HTML/HTMLImageElement/DecodingHint.purs create mode 100644 src/Web/HTML/HTMLImageElement/Laziness.purs diff --git a/src/Web/HTML/HTMLImageElement.js b/src/Web/HTML/HTMLImageElement.js index 9640906..0878d39 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -48,22 +48,56 @@ exports.setSrc = function (src) { // ---------------------------------------------------------------------------- -exports.crossOrigin = function (image) { +exports.srcset = function (image) { return function () { - return image.crossOrigin; + return image.srcset; }; }; -exports.setCrossOrigin = function (crossOrigin) { +exports.setSrcset = function (srcset) { return function (image) { return function () { - image.crossOrigin = crossOrigin; + image.srcset = srcset; }; }; }; // ---------------------------------------------------------------------------- +exports.sizes = function (image) { + return function () { + return image.sizes; + }; +}; + +exports.setSizes = function (sizes) { + return function (image) { + return function () { + image.sizes = sizes; + }; + }; +}; + +// ---------------------------------------------------------------------------- + +exports.currentSrc = function (image) { + return function () { + return image.currentSrc; + }; +}; + +// ---------------------------------------------------------------------------- + +exports._crossOrigin = function (image) { + return image.crossOrigin; +}; + +exports._setCrossOrigin = function (crossOrigin, image) { + image.crossOrigin = crossOrigin; +}; + +// ---------------------------------------------------------------------------- + exports.useMap = function (image) { return function () { return image.useMap; @@ -142,6 +176,43 @@ exports.naturalHeight = function (image) { // ---------------------------------------------------------------------------- +exports.referrerPolicy = function (image) { + return function () { + return image.referrerPolicy; + }; +}; + +exports.setReferrerPolicy = function (referrerPolicy) { + return function (image) { + return function () { + image.referrerPolicy = referrerPolicy; + }; + }; +}; + + +// ---------------------------------------------------------------------------- + +exports._decoding = function (image) { + return image.decoding; +}; + +exports._setDecoding = function (decoding, image) { + image.decoding = decoding; +}; + +// ---------------------------------------------------------------------------- + +exports._loading = function (image) { + return image.loading; +}; + +exports._setLoading = function (loading, image) { + image.loading = loading; +}; + +// ---------------------------------------------------------------------------- + exports.complete = function (image) { return function () { return image.complete; diff --git a/src/Web/HTML/HTMLImageElement.purs b/src/Web/HTML/HTMLImageElement.purs index 1b330d2..c049d4a 100644 --- a/src/Web/HTML/HTMLImageElement.purs +++ b/src/Web/HTML/HTMLImageElement.purs @@ -20,6 +20,11 @@ module Web.HTML.HTMLImageElement , setAlt , src , setSrc + , srcset + , setSrcset + , currentSrc + , sizes + , setSizes , crossOrigin , setCrossOrigin , useMap @@ -32,16 +37,31 @@ module Web.HTML.HTMLImageElement , setHeight , naturalWidth , naturalHeight + , referrerPolicy + , setReferrerPolicy + , decoding + , setDecoding + , loading + , setLoading , complete ) where -import Data.Maybe (Maybe) +import Data.Nullable (Nullable) +import Data.Nullable as Nullable +import Data.Maybe (Maybe, fromMaybe) import Effect (Effect) -import Prelude (Unit) +import Effect.Uncurried (EffectFn1, EffectFn2, runEffectFn1, runEffectFn2) +import Prelude (Unit, map, (<<<), (<=<)) import Unsafe.Coerce (unsafeCoerce) import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLElement (HTMLElement) +import Web.HTML.HTMLImageElement.CORSMode (CORSMode) +import Web.HTML.HTMLImageElement.CORSMode as CORSMode +import Web.HTML.HTMLImageElement.DecodingHint (DecodingHint) +import Web.HTML.HTMLImageElement.DecodingHint as DecodingHint +import Web.HTML.HTMLImageElement.Laziness (Laziness) +import Web.HTML.HTMLImageElement.Laziness as Laziness import Web.Internal.FFI (unsafeReadProtoTagged) foreign import data HTMLImageElement :: Type @@ -101,8 +121,23 @@ foreign import setAlt :: String -> HTMLImageElement -> Effect Unit foreign import src :: HTMLImageElement -> Effect String foreign import setSrc :: String -> HTMLImageElement -> Effect Unit -foreign import crossOrigin :: HTMLImageElement -> Effect String -foreign import setCrossOrigin :: String -> HTMLImageElement -> Effect Unit +foreign import srcset :: HTMLImageElement -> Effect String +foreign import setSrcset :: String -> HTMLImageElement -> Effect Unit + +foreign import currentSrc :: HTMLImageElement -> Effect String + +foreign import sizes :: HTMLImageElement -> Effect String +foreign import setSizes :: String -> HTMLImageElement -> Effect Unit + +foreign import _crossOrigin :: EffectFn1 HTMLImageElement (Nullable String) + +crossOrigin :: HTMLImageElement -> Effect (Maybe CORSMode) +crossOrigin = map (CORSMode.parse <=< Nullable.toMaybe) <<< runEffectFn1 _crossOrigin + +foreign import _setCrossOrigin :: EffectFn2 String HTMLImageElement Unit + +setCrossOrigin :: CORSMode -> HTMLImageElement -> Effect Unit +setCrossOrigin mode = runEffectFn2 _setCrossOrigin (CORSMode.print mode) foreign import useMap :: HTMLImageElement -> Effect String foreign import setUseMap :: String -> HTMLImageElement -> Effect Unit @@ -118,4 +153,28 @@ foreign import setHeight :: Int -> HTMLImageElement -> Effect Unit foreign import naturalWidth :: HTMLImageElement -> Effect Int foreign import naturalHeight :: HTMLImageElement -> Effect Int + +foreign import referrerPolicy :: HTMLImageElement -> Effect String +foreign import setReferrerPolicy :: String -> HTMLImageElement -> Effect Unit + +foreign import _decoding :: EffectFn1 HTMLImageElement String + +decoding :: HTMLImageElement -> Effect DecodingHint +decoding = map (fromMaybe DecodingHint.Auto <<< DecodingHint.parse) <<< runEffectFn1 _decoding + +foreign import _setDecoding :: EffectFn2 String HTMLImageElement Unit + +setDecoding :: DecodingHint -> HTMLImageElement -> Effect Unit +setDecoding hint = runEffectFn2 _setDecoding (DecodingHint.print hint) + +foreign import _loading :: EffectFn1 HTMLImageElement String + +loading :: HTMLImageElement -> Effect Laziness +loading = map (fromMaybe Laziness.Eager <<< Laziness.parse) <<< runEffectFn1 _loading + +foreign import _setLoading :: EffectFn2 String HTMLImageElement Unit + +setLoading :: Laziness -> HTMLImageElement -> Effect Unit +setLoading laziness = runEffectFn2 _setLoading (Laziness.print laziness) + foreign import complete :: HTMLImageElement -> Effect Boolean diff --git a/src/Web/HTML/HTMLImageElement/CORSMode.purs b/src/Web/HTML/HTMLImageElement/CORSMode.purs new file mode 100644 index 0000000..a6ae4d7 --- /dev/null +++ b/src/Web/HTML/HTMLImageElement/CORSMode.purs @@ -0,0 +1,32 @@ +module Web.HTML.HTMLImageElement.CORSMode + ( CORSMode(..) + , parse + , print + ) where + +import Data.Maybe (Maybe(..)) +import Prelude (class Eq, class Ord, class Show) + +data CORSMode + = Anonymous + | UseCredentials + +derive instance eqCORSMode :: Eq CORSMode +derive instance ordCORSMode :: Ord CORSMode + +instance showDecodingHint :: Show CORSMode where + show = case _ of + Anonymous -> "Anonymous" + UseCredentials -> "UseCredentials" + +parse :: String -> Maybe CORSMode +parse = case _ of + "" -> Just Anonymous + "anonymous" -> Just Anonymous + "use-credentials" -> Just UseCredentials + _ -> Nothing + +print :: CORSMode -> String +print = case _ of + Anonymous -> "anonymous" + UseCredentials -> "use-credentials" diff --git a/src/Web/HTML/HTMLImageElement/DecodingHint.purs b/src/Web/HTML/HTMLImageElement/DecodingHint.purs new file mode 100644 index 0000000..f7f9b85 --- /dev/null +++ b/src/Web/HTML/HTMLImageElement/DecodingHint.purs @@ -0,0 +1,36 @@ +module Web.HTML.HTMLImageElement.DecodingHint + ( DecodingHint(..) + , parse + , print + ) where + +import Data.Maybe (Maybe(..)) +import Prelude (class Eq, class Ord, class Show) + +data DecodingHint + = Sync + | Async + | Auto + +derive instance eqDecodingHint :: Eq DecodingHint +derive instance ordDecodingHint :: Ord DecodingHint + +instance showDecodingHint :: Show DecodingHint where + show = case _ of + Sync -> "Sync" + Async -> "Async" + Auto -> "Auto" + +parse :: String -> Maybe DecodingHint +parse = case _ of + "" -> Just Auto + "sync" -> Just Sync + "async" -> Just Async + "auto" -> Just Auto + _ -> Nothing + +print :: DecodingHint -> String +print = case _ of + Sync -> "sync" + Async -> "async" + Auto -> "auto" diff --git a/src/Web/HTML/HTMLImageElement/Laziness.purs b/src/Web/HTML/HTMLImageElement/Laziness.purs new file mode 100644 index 0000000..bb8b1a5 --- /dev/null +++ b/src/Web/HTML/HTMLImageElement/Laziness.purs @@ -0,0 +1,33 @@ +module Web.HTML.HTMLImageElement.Laziness + ( Laziness(..) + , parse + , print + ) where + +import Data.Maybe (Maybe(..)) +import Prelude (class Eq, class Ord, class Show) + +data Laziness + = Eager + | Lazy + +derive instance eqDecodingHint :: Eq Laziness +derive instance ordDecodingHint :: Ord Laziness + +instance showDecodingHint :: Show Laziness where + show = case _ of + Eager -> "Eager" + Lazy -> "Lazy" + +parse :: String -> Maybe Laziness +parse = case _ of + "" -> Just Eager + "eager" -> Just Eager + "lazy" -> Just Lazy + _ -> Nothing + + +print :: Laziness -> String +print = case _ of + Eager -> "eager" + Lazy -> "lazy" From ef295dbde6f59f47b8777668e38915a173eccc8e Mon Sep 17 00:00:00 2001 From: toastal Date: Sat, 12 Dec 2020 03:09:31 +0000 Subject: [PATCH 18/51] create new Audio (#32) --- src/Web/HTML/HTMLAudioElement.js | 14 ++++++++++++++ src/Web/HTML/HTMLAudioElement.purs | 29 ++++++++++++++++++++++++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 src/Web/HTML/HTMLAudioElement.js diff --git a/src/Web/HTML/HTMLAudioElement.js b/src/Web/HTML/HTMLAudioElement.js new file mode 100644 index 0000000..cded82b --- /dev/null +++ b/src/Web/HTML/HTMLAudioElement.js @@ -0,0 +1,14 @@ +/* global Audio */ +"use strict"; + +exports.create = function () { + return function () { + return new Audio(); + }; +}; + +exports.createWithURL = function (url) { + return function () { + return new Audio(url); + }; +}; diff --git a/src/Web/HTML/HTMLAudioElement.purs b/src/Web/HTML/HTMLAudioElement.purs index 18b6c6d..536e1de 100644 --- a/src/Web/HTML/HTMLAudioElement.purs +++ b/src/Web/HTML/HTMLAudioElement.purs @@ -1,6 +1,27 @@ -module Web.HTML.HTMLAudioElement where +module Web.HTML.HTMLAudioElement + ( HTMLAudioElement + , fromHTMLElement + , fromElement + , fromNode + , fromChildNode + , fromNonDocumentTypeChildNode + , fromParentNode + , fromEventTarget + , toHTMLMediaElement + , toHTMLElement + , toElement + , toNode + , toChildNode + , toNonDocumentTypeChildNode + , toParentNode + , toEventTarget + , create + , create' + ) where import Data.Maybe (Maybe) +import Effect (Effect) +import Prelude (Unit) import Unsafe.Coerce (unsafeCoerce) import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode) import Web.Event.EventTarget (EventTarget) @@ -57,3 +78,9 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLAudioElement -> EventTarget toEventTarget = unsafeCoerce + +foreign import create :: Unit -> Effect HTMLAudioElement +foreign import createWithURL :: String -> Effect HTMLAudioElement + +create' :: String -> Effect HTMLAudioElement +create' = createWithURL From cc6c964e8a27bb2be15775e1f72880aaa342687d Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Fri, 11 Dec 2020 19:50:41 -0800 Subject: [PATCH 19/51] Update HTMLAudioElement.js --- src/Web/HTML/HTMLAudioElement.js | 1 - 1 file changed, 1 deletion(-) diff --git a/src/Web/HTML/HTMLAudioElement.js b/src/Web/HTML/HTMLAudioElement.js index cded82b..efa1323 100644 --- a/src/Web/HTML/HTMLAudioElement.js +++ b/src/Web/HTML/HTMLAudioElement.js @@ -1,4 +1,3 @@ -/* global Audio */ "use strict"; exports.create = function () { From ed0036025b3371a9b3ce74968e36ec99718ceabc Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Sat, 12 Dec 2020 10:29:09 -0800 Subject: [PATCH 20/51] Remove Unit argument from create functions. (#46) * Remove Unit argument from create functions. * Remove unused Unit import Co-authored-by: JordanMartinez --- src/Web/HTML/HTMLAudioElement.js | 4 +--- src/Web/HTML/HTMLAudioElement.purs | 5 ++--- src/Web/HTML/HTMLImageElement.js | 5 +---- src/Web/HTML/HTMLImageElement.purs | 3 +-- 4 files changed, 5 insertions(+), 12 deletions(-) diff --git a/src/Web/HTML/HTMLAudioElement.js b/src/Web/HTML/HTMLAudioElement.js index efa1323..7741b38 100644 --- a/src/Web/HTML/HTMLAudioElement.js +++ b/src/Web/HTML/HTMLAudioElement.js @@ -1,9 +1,7 @@ "use strict"; exports.create = function () { - return function () { - return new Audio(); - }; + return new Audio(); }; exports.createWithURL = function (url) { diff --git a/src/Web/HTML/HTMLAudioElement.purs b/src/Web/HTML/HTMLAudioElement.purs index 536e1de..4d99110 100644 --- a/src/Web/HTML/HTMLAudioElement.purs +++ b/src/Web/HTML/HTMLAudioElement.purs @@ -1,4 +1,4 @@ -module Web.HTML.HTMLAudioElement +module Web.HTML.HTMLAudioElement ( HTMLAudioElement , fromHTMLElement , fromElement @@ -21,7 +21,6 @@ module Web.HTML.HTMLAudioElement import Data.Maybe (Maybe) import Effect (Effect) -import Prelude (Unit) import Unsafe.Coerce (unsafeCoerce) import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode) import Web.Event.EventTarget (EventTarget) @@ -79,7 +78,7 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLAudioElement -> EventTarget toEventTarget = unsafeCoerce -foreign import create :: Unit -> Effect HTMLAudioElement +foreign import create :: Effect HTMLAudioElement foreign import createWithURL :: String -> Effect HTMLAudioElement create' :: String -> Effect HTMLAudioElement diff --git a/src/Web/HTML/HTMLImageElement.js b/src/Web/HTML/HTMLImageElement.js index 0878d39..60c01bd 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -1,9 +1,7 @@ "use strict"; exports.create = function () { - return function () { - return new Image(); - }; + return new Image(); }; exports.createWithDimensions = function (width) { @@ -190,7 +188,6 @@ exports.setReferrerPolicy = function (referrerPolicy) { }; }; - // ---------------------------------------------------------------------------- exports._decoding = function (image) { diff --git a/src/Web/HTML/HTMLImageElement.purs b/src/Web/HTML/HTMLImageElement.purs index c049d4a..0ef8f78 100644 --- a/src/Web/HTML/HTMLImageElement.purs +++ b/src/Web/HTML/HTMLImageElement.purs @@ -108,8 +108,7 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLImageElement -> EventTarget toEventTarget = unsafeCoerce - -foreign import create :: Unit -> Effect HTMLImageElement +foreign import create :: Effect HTMLImageElement foreign import createWithDimensions :: Int -> Int -> Effect HTMLImageElement create' :: Int -> Int -> Effect HTMLImageElement From f98d267ec8da51c4ce24b7036493b6819dcaf5a3 Mon Sep 17 00:00:00 2001 From: milesfrain Date: Thu, 17 Dec 2020 11:52:13 -0800 Subject: [PATCH 21/51] Add common PropName, AttrName, ClassName (#30) --- src/Web/HTML.purs | 1 + src/Web/HTML/Common.purs | 30 ++++++++++++++++++++++++++++++ 2 files changed, 31 insertions(+) create mode 100644 src/Web/HTML/Common.purs diff --git a/src/Web/HTML.purs b/src/Web/HTML.purs index 16172e9..ae31a1f 100644 --- a/src/Web/HTML.purs +++ b/src/Web/HTML.purs @@ -5,6 +5,7 @@ module Web.HTML import Effect (Effect) import Web.HTML.Window (Window) +import Web.HTML.Common (PropName, AttrName, ClassName) as Exports import Web.HTML.History (History) as Exports import Web.HTML.HTMLAnchorElement (HTMLAnchorElement) as Exports import Web.HTML.HTMLAreaElement (HTMLAreaElement) as Exports diff --git a/src/Web/HTML/Common.purs b/src/Web/HTML/Common.purs new file mode 100644 index 0000000..6e5d8fa --- /dev/null +++ b/src/Web/HTML/Common.purs @@ -0,0 +1,30 @@ +module Web.HTML.Common where + +import Prelude + +import Data.Newtype (class Newtype) + +-- | A wrapper for property names. +-- | +-- | The phantom type `value` describes the type of value which this property +-- | requires. +newtype PropName :: Type -> Type +newtype PropName value = PropName String + +derive instance newtypePropName :: Newtype (PropName value) _ +derive newtype instance eqPropName :: Eq (PropName value) +derive newtype instance ordPropName :: Ord (PropName value) + +-- | A wrapper for attribute names. +newtype AttrName = AttrName String + +derive instance newtypeAttrName :: Newtype AttrName _ +derive newtype instance eqAttrName :: Eq AttrName +derive newtype instance ordAttrName :: Ord AttrName + +-- | A wrapper for strings which are used as CSS classes. +newtype ClassName = ClassName String + +derive instance newtypeClassName :: Newtype ClassName _ +derive newtype instance eqClassName :: Eq ClassName +derive newtype instance ordClassName :: Ord ClassName From 678a079f42463f9a08d277e3b37f84f28b137d50 Mon Sep 17 00:00:00 2001 From: paluh Date: Wed, 23 Dec 2020 02:00:59 +0100 Subject: [PATCH 22/51] Change `HTMLInputElement.accept` attribute type to `String` (#47) --- src/Web/HTML/HTMLInputElement.purs | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/Web/HTML/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index cb55615..5053c9a 100644 --- a/src/Web/HTML/HTMLInputElement.purs +++ b/src/Web/HTML/HTMLInputElement.purs @@ -170,8 +170,8 @@ toEventTarget :: HTMLInputElement -> EventTarget toEventTarget = unsafeCoerce -foreign import accept :: HTMLInputElement -> Effect Boolean -foreign import setAccept :: Boolean -> HTMLInputElement -> Effect Unit +foreign import accept :: HTMLInputElement -> Effect String +foreign import setAccept :: String -> HTMLInputElement -> Effect Unit foreign import alt :: HTMLInputElement -> Effect Boolean foreign import setAlt :: Boolean -> HTMLInputElement -> Effect Unit From b34c43121cd4346ca9fe7961a207538e3a285320 Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Tue, 12 Jan 2021 17:35:03 -0800 Subject: [PATCH 23/51] Generate changelog and add PR template (#48) * Generate CHANGELOG.md file using notes from previous GH releases * Add pull request template * Update CI in PS to v0.14.0-rc5 --- .github/PULL_REQUEST_TEMPLATE.md | 12 +++++++ .github/workflows/ci.yml | 2 +- CHANGELOG.md | 59 ++++++++++++++++++++++++++++++++ 3 files changed, 72 insertions(+), 1 deletion(-) create mode 100644 .github/PULL_REQUEST_TEMPLATE.md create mode 100644 CHANGELOG.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md new file mode 100644 index 0000000..4435abb --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,12 @@ +**Description of the change** + +Clearly and concisely describe the purpose of the pull request. If this PR relates to an existing issue or change proposal, please link to it. Include any other background context that would help reviewers understand the motivation for this PR. + +--- + +**Checklist:** + +- [ ] Added the change to the changelog's "Unreleased" section with a reference to this PR (e.g. "- Made a change (#0000)") +- [ ] Linked any existing issues or proposals that this pull request should close +- [ ] Updated or added relevant documentation +- [ ] Added a test for the contribution (if applicable) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 2e4c7a1..66354b4 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -14,7 +14,7 @@ jobs: - uses: purescript-contrib/setup-purescript@main with: - purescript: "0.14.0-rc3" + purescript: "0.14.0-rc5" - uses: actions/setup-node@v1 with: diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..7a17f4b --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,59 @@ +# Changelog + +Notable changes to this project are documented in this file. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +Breaking changes: + +New features: + +Bugfixes: + +Other improvements: + +## [v2.3.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.3.0) - 2019-09-15 + +Added `head` for `HTMLDocument` (@elliotdavies) + +## [v2.2.2](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.2) - 2019-08-18 + +Raised upper bound for `purescript-web-dom` + +## [v2.2.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.1) - 2019-06-02 + +Updated dependency ranges for compatibility with latest `purescript-web-dom` + +## [v2.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.0) - 2019-05-26 + +Added `opener` and `parent` for `Window` (@jonathanlking) + +## [v2.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.1.0) - 2019-05-08 + +Fixed `checkValidity` functions and added `reportValidity` (@bosyi) + +## [v2.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.0.1) - 2019-04-13 + +Corrected type for `HTMLDocument.fromDocument` (@galenhuntington) + +## [v2.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.0.0) - 2019-02-23 + +Bumped `-web-events` dependency, `Event.defaultPrevented` is now effectful. + +## [v1.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.2.0) - 2018-10-06 + +- Added `referrer`, `title`, `setTitle` for `HTMLDocument` (@elliotdavies) +- Added `language` and `userAgent` for `navigator` (@elliotdavies) + +## [v1.1.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.1.1) - 2018-09-22 + +- Added missing export for `currentScript` + +## [v1.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.1.0) - 2018-09-21 + +- Added `currentScript` for `HTMLDocument` (@cprussin) + +## [v1.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.0.0) - 2018-05-25 + +Initial release + From de457357d5be9ce442c9f189220afe1f59f8fb8f Mon Sep 17 00:00:00 2001 From: toastal Date: Thu, 14 Jan 2021 13:59:07 +0000 Subject: [PATCH 24/51] remove old pull request template (#49) * remove old pull request template * add old prereq --- .github/PULL_REQUEST_TEMPLATE.md | 5 +++++ .github/pull_request_template.md | 7 ------- 2 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 .github/pull_request_template.md diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index 4435abb..c8b4682 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,3 +1,8 @@ +**Prerequisites** + +- [ ] Before opening a pull request, please check the HTML standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. + + **Description of the change** Clearly and concisely describe the purpose of the pull request. If this PR relates to an existing issue or change proposal, please link to it. Include any other background context that would help reviewers understand the motivation for this PR. diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md deleted file mode 100644 index bc63733..0000000 --- a/.github/pull_request_template.md +++ /dev/null @@ -1,7 +0,0 @@ -### Prerequisites - -- [ ] Before opening a pull request, please check the HTML standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. - -### Description - - From 3349306ad13aa7c751af860c210554f72202305c Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Tue, 19 Jan 2021 18:18:52 -0800 Subject: [PATCH 25/51] Update changelog for changes since v2.3.0 (#50) --- CHANGELOG.md | 32 +++++++++++++++++++++++--------- 1 file changed, 23 insertions(+), 9 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a17f4b..3f7b3a2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,40 +5,55 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Added support for PureScript 0.14 and dropped support for all previous versions (#45) +- Removed unnecessary `Unit` argument in creation functions for `HTMLImageElement` and `HTMLAudioElement` (#46) +- Fixed return type of `scrollX` and `scrollY` to be `Effect Number`, as these can return subpixel values (#17) +- Removed `Newtype` instances for types with hidden constructors (#39) +- Changed `HTMLInputElement.accept` attribute type to `String` (#47) New features: +- Added `HTMLHyperlinkElementUtils` module (#44) +- Added `create` and `create'` functions for `Audio` (#32) +- Added missing attributes for `HTMLImage`, including `srcset`, `currentSrc`, `sizes`, `referrerPolicy`, `decoding`, `loading` (#40) +- Added common `PropName`, `AttrName`, and `ClassName` which can be reused across libraries representing properties, attributes, and CSS classes (#30) Bugfixes: Other improvements: +- Migrated CI to GitHub Actions and updated installation instructions to use Spago (#41) +- Removed primes from foreign modules exports in preparation for PureScript 0.15 (#24) +- Removed `return {}` from FFI implementations for a small performance improvement (#35) +- Removed unused explicit exports (#39) +- Updated HTML spec link (#34) +- Added a CHANGELOG.md file and new pull request template (#48, #49, #50) ## [v2.3.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.3.0) - 2019-09-15 -Added `head` for `HTMLDocument` (@elliotdavies) +- Added `head` for `HTMLDocument` (@elliotdavies) ## [v2.2.2](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.2) - 2019-08-18 -Raised upper bound for `purescript-web-dom` +- Raised upper bound for `purescript-web-dom` ## [v2.2.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.1) - 2019-06-02 -Updated dependency ranges for compatibility with latest `purescript-web-dom` +- Updated dependency ranges for compatibility with latest `purescript-web-dom` ## [v2.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.2.0) - 2019-05-26 -Added `opener` and `parent` for `Window` (@jonathanlking) +- Added `opener` and `parent` for `Window` (@jonathanlking) ## [v2.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.1.0) - 2019-05-08 -Fixed `checkValidity` functions and added `reportValidity` (@bosyi) +- Fixed `checkValidity` functions and added `reportValidity` (@bosyi) ## [v2.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.0.1) - 2019-04-13 -Corrected type for `HTMLDocument.fromDocument` (@galenhuntington) +- Corrected type for `HTMLDocument.fromDocument` (@galenhuntington) ## [v2.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v2.0.0) - 2019-02-23 -Bumped `-web-events` dependency, `Event.defaultPrevented` is now effectful. +- Bumped `-web-events` dependency, `Event.defaultPrevented` is now effectful. ## [v1.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.2.0) - 2018-10-06 @@ -55,5 +70,4 @@ Bumped `-web-events` dependency, `Event.defaultPrevented` is now effectful. ## [v1.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v1.0.0) - 2018-05-25 -Initial release - +- Initial release From 0fa9b8dbb55fcebdb614568ead6bc87d7c88c667 Mon Sep 17 00:00:00 2001 From: Cyril Date: Fri, 26 Feb 2021 22:09:59 +0100 Subject: [PATCH 26/51] Prepare v3.0.0 release (#52) * Update CI to build with the latest version of the compiler * Update the bower repository URL to match the URL in the registry * Upgrade bower dependencies * Update the changelog --- .github/workflows/ci.yml | 2 -- CHANGELOG.md | 10 ++++++++++ bower.json | 10 +++++----- 3 files changed, 15 insertions(+), 7 deletions(-) diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 66354b4..063845e 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,8 +13,6 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main - with: - purescript: "0.14.0-rc5" - uses: actions/setup-node@v1 with: diff --git a/CHANGELOG.md b/CHANGELOG.md index 3f7b3a2..1a29096 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,16 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] +Breaking changes: + +New features: + +Bugfixes: + +Other improvements: + +## [v3.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.0) - 2021-02-26 + Breaking changes: - Added support for PureScript 0.14 and dropped support for all previous versions (#45) - Removed unnecessary `Unit` argument in creation functions for `HTMLImageElement` and `HTMLAudioElement` (#46) diff --git a/bower.json b/bower.json index c0edf30..62836a2 100644 --- a/bower.json +++ b/bower.json @@ -4,7 +4,7 @@ "license": "MIT", "repository": { "type": "git", - "url": "git://github.com/purescript-web/purescript-web-html.git" + "url": "https://github.com/purescript-web/purescript-web-html.git" }, "ignore": [ "**/.*", @@ -15,9 +15,9 @@ "package.json" ], "dependencies": { - "purescript-js-date": "main", - "purescript-web-dom": "master", - "purescript-web-file": "master", - "purescript-web-storage": "master" + "purescript-js-date": "^7.0.0", + "purescript-web-dom": "^5.0.0", + "purescript-web-file": "^3.0.0", + "purescript-web-storage": "^4.0.0" } } From e0574693ce344ca294c7b404b2bcab5d70ae9647 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Sat, 13 Mar 2021 11:51:45 -0800 Subject: [PATCH 27/51] Add fromEventTarget to Window (#53) --- CHANGELOG.md | 1 + src/Web/HTML/Window.purs | 5 +++++ 2 files changed, 6 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 1a29096..095bf07 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `fromEventTarget` function for `Window` (#53 by @thomashoneyman) Bugfixes: diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index 047fac7..89ce6a8 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -1,6 +1,7 @@ module Web.HTML.Window ( Window , toEventTarget + , fromEventTarget , document , navigator , location @@ -48,12 +49,16 @@ import Web.HTML.History (History) import Web.HTML.Location (Location) import Web.HTML.Navigator (Navigator) import Web.Storage.Storage (Storage) +import Web.Internal.FFI (unsafeReadProtoTagged) foreign import data Window :: Type toEventTarget :: Window -> EventTarget toEventTarget = unsafeCoerce +fromEventTarget :: EventTarget -> Maybe Window +fromEventTarget = unsafeReadProtoTagged "Window" + foreign import document :: Window -> Effect HTMLDocument foreign import navigator :: Window -> Effect Navigator From 8f2eee5981c2e30671e5c1a668b9ed8f8f5d5807 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Sat, 13 Mar 2021 11:53:02 -0800 Subject: [PATCH 28/51] Update changelog for v3.0.1 --- CHANGELOG.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 095bf07..47dc806 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -13,6 +13,11 @@ Bugfixes: Other improvements: +## [v3.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.1) - 2021-03-13 + +New features: +- Added `fromEventTarget` function for `Window` (#53 by @thomashoneyman) + ## [v3.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.0) - 2021-02-26 Breaking changes: From 9e0e3fd78cd5b4e2f956a272247ec0af6808bfd2 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Sat, 13 Mar 2021 11:53:14 -0800 Subject: [PATCH 29/51] Update CHANGELOG.md --- CHANGELOG.md | 1 - 1 file changed, 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 47dc806..0854c6e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Added `fromEventTarget` function for `Window` (#53 by @thomashoneyman) Bugfixes: From 5cfe1ac96b23cc33f13bb23a3ab1882e6e9767be Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Thu, 6 May 2021 09:46:24 -0700 Subject: [PATCH 30/51] Fix warnings revealed by v0.14.1 PS release (#57) * Export fromHTMLMediaElement, stepUp, and stepDown * Update changelog --- CHANGELOG.md | 2 ++ src/Web/HTML/HTMLAudioElement.purs | 1 + src/Web/HTML/HTMLInputElement.purs | 2 ++ 3 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0854c6e..7a1c18d 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,10 +7,12 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Export `fromHTMLMediaElement`, `stepUp`, and `stepDown` (#57 by @JordanMartinez) Bugfixes: Other improvements: +- Fix warnings found by v0.14.1 PS release (#57 by @JordanMartinez) ## [v3.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.1) - 2021-03-13 diff --git a/src/Web/HTML/HTMLAudioElement.purs b/src/Web/HTML/HTMLAudioElement.purs index 4d99110..8302ff5 100644 --- a/src/Web/HTML/HTMLAudioElement.purs +++ b/src/Web/HTML/HTMLAudioElement.purs @@ -1,5 +1,6 @@ module Web.HTML.HTMLAudioElement ( HTMLAudioElement + , fromHTMLMediaElement , fromHTMLElement , fromElement , fromNode diff --git a/src/Web/HTML/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index 5053c9a..304a956 100644 --- a/src/Web/HTML/HTMLInputElement.purs +++ b/src/Web/HTML/HTMLInputElement.purs @@ -85,7 +85,9 @@ module Web.HTML.HTMLInputElement , setValueAsNumber , width , setWidth + , stepUp , stepUp' + , stepDown , stepDown' , willValidate , validity From 9e657a0632f7f6514c3d5d2eb4b7dbbfe0d97185 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Thu, 6 May 2021 09:48:10 -0700 Subject: [PATCH 31/51] Update changelog for v3.1.0 --- CHANGELOG.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 7a1c18d..c035de5 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,12 +7,18 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Export `fromHTMLMediaElement`, `stepUp`, and `stepDown` (#57 by @JordanMartinez) Bugfixes: Other improvements: -- Fix warnings found by v0.14.1 PS release (#57 by @JordanMartinez) + +## [v3.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.1.0) - 2021-05-06 + +New features: +- Exported `fromHTMLMediaElement`, `stepUp`, and `stepDown` (#57 by @JordanMartinez) + +Other improvements: +- Fixed warnings found by v0.14.1 PS release (#57 by @JordanMartinez) ## [v3.0.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.0.1) - 2021-03-13 @@ -34,8 +40,6 @@ New features: - Added missing attributes for `HTMLImage`, including `srcset`, `currentSrc`, `sizes`, `referrerPolicy`, `decoding`, `loading` (#40) - Added common `PropName`, `AttrName`, and `ClassName` which can be reused across libraries representing properties, attributes, and CSS classes (#30) -Bugfixes: - Other improvements: - Migrated CI to GitHub Actions and updated installation instructions to use Spago (#41) - Removed primes from foreign modules exports in preparation for PureScript 0.15 (#24) From 2310c6818ba3b7012287bdb0f361d04d46349f65 Mon Sep 17 00:00:00 2001 From: toastal <561087+toastal@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:54:42 +0000 Subject: [PATCH 32/51] Add HTMLHtmlElement (#60) --- CHANGELOG.md | 1 + src/Web/HTML/HTMLDocument.js | 6 ++++ src/Web/HTML/HTMLDocument.purs | 7 +++++ src/Web/HTML/HTMLHtmlElement.purs | 52 +++++++++++++++++++++++++++++++ 4 files changed, 66 insertions(+) create mode 100644 src/Web/HTML/HTMLHtmlElement.purs diff --git a/CHANGELOG.md b/CHANGELOG.md index c035de5..b306e53 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) Bugfixes: diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index cb28e70..d3efb08 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -1,5 +1,11 @@ "use strict"; +exports._documentElement = function (doc) { + return function () { + return doc.documentElement; + }; +}; + exports._head = function (doc) { return function () { return doc.head; diff --git a/src/Web/HTML/HTMLDocument.purs b/src/Web/HTML/HTMLDocument.purs index 32055ec..11d2ef0 100644 --- a/src/Web/HTML/HTMLDocument.purs +++ b/src/Web/HTML/HTMLDocument.purs @@ -10,6 +10,7 @@ module Web.HTML.HTMLDocument , toParentNode , toNonElementParentNode , toEventTarget + , documentElement , head , body , readyState @@ -34,6 +35,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.HTMLHtmlElement (HTMLHtmlElement) import Web.HTML.HTMLScriptElement (HTMLScriptElement) import Web.Internal.FFI (unsafeReadProtoTagged) @@ -69,6 +71,11 @@ toNonElementParentNode = unsafeCoerce toEventTarget :: HTMLDocument -> EventTarget toEventTarget = unsafeCoerce +foreign import _documentElement :: HTMLDocument -> Effect (Nullable HTMLHtmlElement) + +documentElement :: HTMLDocument -> Effect (Maybe HTMLHtmlElement) +documentElement = map toMaybe <<< _documentElement + foreign import _head :: HTMLDocument -> Effect (Nullable HTMLElement) head :: HTMLDocument -> Effect (Maybe HTMLElement) diff --git a/src/Web/HTML/HTMLHtmlElement.purs b/src/Web/HTML/HTMLHtmlElement.purs new file mode 100644 index 0000000..6303565 --- /dev/null +++ b/src/Web/HTML/HTMLHtmlElement.purs @@ -0,0 +1,52 @@ +module Web.HTML.HTMLHtmlElement where + +import Data.Maybe (Maybe) +import Unsafe.Coerce (unsafeCoerce) +import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode) +import Web.Event.EventTarget (EventTarget) +import Web.HTML.HTMLElement (HTMLElement) +import Web.Internal.FFI (unsafeReadProtoTagged) + +foreign import data HTMLHtmlElement :: Type + +fromHTMLElement :: HTMLElement -> Maybe HTMLHtmlElement +fromHTMLElement = unsafeReadProtoTagged "HTMLHtmlElement" + +fromElement :: Element -> Maybe HTMLHtmlElement +fromElement = unsafeReadProtoTagged "HTMLHtmlElement" + +fromNode :: Node -> Maybe HTMLHtmlElement +fromNode = unsafeReadProtoTagged "HTMLHtmlElement" + +fromChildNode :: ChildNode -> Maybe HTMLHtmlElement +fromChildNode = unsafeReadProtoTagged "HTMLHtmlElement" + +fromNonDocumentTypeChildNode :: NonDocumentTypeChildNode -> Maybe HTMLHtmlElement +fromNonDocumentTypeChildNode = unsafeReadProtoTagged "HTMLHtmlElement" + +fromParentNode :: ParentNode -> Maybe HTMLHtmlElement +fromParentNode = unsafeReadProtoTagged "HTMLHtmlElement" + +fromEventTarget :: EventTarget -> Maybe HTMLHtmlElement +fromEventTarget = unsafeReadProtoTagged "HTMLHtmlElement" + +toHTMLElement :: HTMLHtmlElement -> HTMLElement +toHTMLElement = unsafeCoerce + +toElement :: HTMLHtmlElement -> Element +toElement = unsafeCoerce + +toNode :: HTMLHtmlElement -> Node +toNode = unsafeCoerce + +toChildNode :: HTMLHtmlElement -> ChildNode +toChildNode = unsafeCoerce + +toNonDocumentTypeChildNode :: HTMLHtmlElement -> NonDocumentTypeChildNode +toNonDocumentTypeChildNode = unsafeCoerce + +toParentNode :: HTMLHtmlElement -> ParentNode +toParentNode = unsafeCoerce + +toEventTarget :: HTMLHtmlElement -> EventTarget +toEventTarget = unsafeCoerce From 82ec70a2b3217d4fb381b1a8b32ea81e302c7bd8 Mon Sep 17 00:00:00 2001 From: toastal <561087+toastal@users.noreply.github.com> Date: Mon, 19 Jul 2021 17:57:12 +0000 Subject: [PATCH 33/51] Add navigator.languages (#59) Co-authored-by: Thomas Honeyman --- CHANGELOG.md | 1 + src/Web/HTML/Navigator.js | 8 +++++++- src/Web/HTML/Navigator.purs | 4 +++- 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b306e53..ce31436 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `languages` value for `Navigator` (#59 by @toastal) - Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) Bugfixes: diff --git a/src/Web/HTML/Navigator.js b/src/Web/HTML/Navigator.js index 474d9e3..d03fc12 100644 --- a/src/Web/HTML/Navigator.js +++ b/src/Web/HTML/Navigator.js @@ -6,6 +6,12 @@ exports.language = function (navigator) { }; }; +exports.languages = function (navigator) { + return function () { + return navigator.languages; + }; +}; + exports.platform = function (navigator) { return function () { return navigator.platform; @@ -16,4 +22,4 @@ exports.userAgent = function (navigator) { return function () { return navigator.userAgent; }; -}; \ No newline at end of file +}; diff --git a/src/Web/HTML/Navigator.purs b/src/Web/HTML/Navigator.purs index 3ecb00b..f2f2452 100644 --- a/src/Web/HTML/Navigator.purs +++ b/src/Web/HTML/Navigator.purs @@ -6,6 +6,8 @@ foreign import data Navigator :: Type foreign import language :: Navigator -> Effect String +foreign import languages :: Navigator -> Effect (Array String) + foreign import platform :: Navigator -> Effect String -foreign import userAgent :: Navigator -> Effect String \ No newline at end of file +foreign import userAgent :: Navigator -> Effect String From df4129f9c2579ad8b2b72a50df9a4d01ac6b90c0 Mon Sep 17 00:00:00 2001 From: toastal <561087+toastal@users.noreply.github.com> Date: Sat, 31 Jul 2021 13:42:20 +0000 Subject: [PATCH 34/51] Add Navigator.onLine (#61) https://html.spec.whatwg.org/multipage/system-state.html#dom-navigator-online-dev --- CHANGELOG.md | 1 + src/Web/HTML/Navigator.js | 6 ++++++ src/Web/HTML/Navigator.purs | 2 ++ 3 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index ce31436..79b9224 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Breaking changes: New features: - Added `languages` value for `Navigator` (#59 by @toastal) - Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) +- Added `onLine` value for `Navigator` (#61 by @toastal) Bugfixes: diff --git a/src/Web/HTML/Navigator.js b/src/Web/HTML/Navigator.js index d03fc12..66c5e23 100644 --- a/src/Web/HTML/Navigator.js +++ b/src/Web/HTML/Navigator.js @@ -12,6 +12,12 @@ exports.languages = function (navigator) { }; }; +exports.onLine = function (navigator) { + return function () { + return navigator.onLine; + }; +}; + exports.platform = function (navigator) { return function () { return navigator.platform; diff --git a/src/Web/HTML/Navigator.purs b/src/Web/HTML/Navigator.purs index f2f2452..ae99fd9 100644 --- a/src/Web/HTML/Navigator.purs +++ b/src/Web/HTML/Navigator.purs @@ -8,6 +8,8 @@ foreign import language :: Navigator -> Effect String foreign import languages :: Navigator -> Effect (Array String) +foreign import onLine :: Navigator -> Effect Boolean + foreign import platform :: Navigator -> Effect String foreign import userAgent :: Navigator -> Effect String From c84529246c535a7f22fd100f7dc3dba11135e0cc Mon Sep 17 00:00:00 2001 From: ajarista <83229478+ajarista@users.noreply.github.com> Date: Wed, 6 Oct 2021 23:55:41 +0530 Subject: [PATCH 35/51] Add DataTransfer.setDragImage (#65) --- CHANGELOG.md | 1 + src/Web/HTML/Event/DataTransfer.js | 12 ++++++++++++ src/Web/HTML/Event/DataTransfer.purs | 9 +++++++++ 3 files changed, 22 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 79b9224..a4736a6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -10,6 +10,7 @@ New features: - Added `languages` value for `Navigator` (#59 by @toastal) - Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) - Added `onLine` value for `Navigator` (#61 by @toastal) +- Added `setDragImage` function for `DataTransfer` (#65 by @ajarista) Bugfixes: diff --git a/src/Web/HTML/Event/DataTransfer.js b/src/Web/HTML/Event/DataTransfer.js index 8cec0ca..fce2d7c 100644 --- a/src/Web/HTML/Event/DataTransfer.js +++ b/src/Web/HTML/Event/DataTransfer.js @@ -26,6 +26,18 @@ exports._setData = function (format) { }; }; +exports._setDragImage = function (dataTransfer) { + return function (image) { + return function (x) { + return function (y) { + return function () { + return dataTransfer.setDragImage(image, x, y); + }; + }; + }; + }; +}; + exports._dropEffect = function (dataTransfer) { return function () { return dataTransfer.dropEffect; diff --git a/src/Web/HTML/Event/DataTransfer.purs b/src/Web/HTML/Event/DataTransfer.purs index b63d127..fe66863 100644 --- a/src/Web/HTML/Event/DataTransfer.purs +++ b/src/Web/HTML/Event/DataTransfer.purs @@ -4,6 +4,7 @@ module Web.HTML.Event.DataTransfer , types , getData , setData + , setDragImage , DropEffect(..) , dropEffect , setDropEffect @@ -15,6 +16,7 @@ import Data.Maybe (Maybe) import Data.MediaType (MediaType(..)) import Data.Nullable (Nullable, toMaybe) import Effect (Effect) +import Web.DOM.Element (Element) import Web.File.FileList (FileList) foreign import data DataTransfer :: Type @@ -57,6 +59,13 @@ setData -> Effect Unit setData (MediaType format) dat dt = _setData format dat dt +foreign import _setDragImage :: DataTransfer -> Element -> Int -> Int -> Effect Unit + +-- | Sets the image to be used for dragging if a custom one is desired. +-- | The image will typically be an but could be any other *visible* element. +-- | The x and y coordinates define where the image appears relative to the mouse. +setDragImage :: DataTransfer -> Element -> Int -> Int -> Effect Unit +setDragImage = _setDragImage foreign import _dropEffect :: DataTransfer -> Effect String data DropEffect = Copy | Link | Move | None From df90b59cf2c0453b66b3d2bff361804f53cc58b8 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Wed, 6 Oct 2021 20:26:37 +0200 Subject: [PATCH 36/51] Update CHANGELOG.md --- CHANGELOG.md | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index a4736a6..0cbdd1e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,15 +7,19 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Added `languages` value for `Navigator` (#59 by @toastal) -- Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) -- Added `onLine` value for `Navigator` (#61 by @toastal) -- Added `setDragImage` function for `DataTransfer` (#65 by @ajarista) Bugfixes: Other improvements: +## [v3.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.2.0) - 2021-10-06 + +New features: +- Added `languages` value for `Navigator` (#59 by @toastal) +- Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) +- Added `onLine` value for `Navigator` (#61 by @toastal) +- Added `setDragImage` function for `DataTransfer` (#65 by @ajarista) + ## [v3.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.1.0) - 2021-05-06 New features: From 61cb302bb10bdd3505906602a9bf111bf252e1b8 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Wed, 6 Oct 2021 21:10:34 +0200 Subject: [PATCH 37/51] Remove duplicate cells export from HTMLTableRowElement (#66) --- CHANGELOG.md | 3 +++ src/Web/HTML/HTMLTableRowElement.js | 8 -------- 2 files changed, 3 insertions(+), 8 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 0cbdd1e..ae37021 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -20,6 +20,9 @@ New features: - Added `onLine` value for `Navigator` (#61 by @toastal) - Added `setDragImage` function for `DataTransfer` (#65 by @ajarista) +Bugfixes: +- Removed duplicated `cells` export from the FFI in HTMLTableRowElement.js (#58 by @thomashoneyman) + ## [v3.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.1.0) - 2021-05-06 New features: diff --git a/src/Web/HTML/HTMLTableRowElement.js b/src/Web/HTML/HTMLTableRowElement.js index 775169d..75d8ecb 100644 --- a/src/Web/HTML/HTMLTableRowElement.js +++ b/src/Web/HTML/HTMLTableRowElement.js @@ -24,14 +24,6 @@ exports.cells = function (row) { // ---------------------------------------------------------------------------- -exports.cells = function (row) { - return function () { - return row.cells; - }; -}; - -// ---------------------------------------------------------------------------- - exports.insertCellAt = function (index) { return function (row) { return function () { From 0c497781bf2ee1cabb0e35ecceed0b66dea5b214 Mon Sep 17 00:00:00 2001 From: Peter Murphy <26548438+ptrfrncsmrph@users.noreply.github.com> Date: Fri, 8 Oct 2021 13:39:25 -0400 Subject: [PATCH 38/51] Add DataTransferItem and related API (#55) --- CHANGELOG.md | 1 + src/Web/HTML/Event/DataTransfer.js | 4 ++ src/Web/HTML/Event/DataTransfer.purs | 6 ++ .../Event/DataTransfer/DataTransferItem.js | 25 ++++++++ .../Event/DataTransfer/DataTransferItem.purs | 64 +++++++++++++++++++ 5 files changed, 100 insertions(+) create mode 100644 src/Web/HTML/Event/DataTransfer/DataTransferItem.js create mode 100644 src/Web/HTML/Event/DataTransfer/DataTransferItem.purs diff --git a/CHANGELOG.md b/CHANGELOG.md index ae37021..db57f45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `items` function for `DataTransfer` and related types (`DataTransferItem`, `DataTransferItemList`) (#55 by @ptrfrncsmrph) Bugfixes: diff --git a/src/Web/HTML/Event/DataTransfer.js b/src/Web/HTML/Event/DataTransfer.js index fce2d7c..f5ffb55 100644 --- a/src/Web/HTML/Event/DataTransfer.js +++ b/src/Web/HTML/Event/DataTransfer.js @@ -4,6 +4,10 @@ exports._files = function (dataTransfer) { return dataTransfer.files; }; +exports.items = function (dataTransfer) { + return dataTransfer.items; +}; + exports.types = function (dataTransfer) { return dataTransfer.types; }; diff --git a/src/Web/HTML/Event/DataTransfer.purs b/src/Web/HTML/Event/DataTransfer.purs index fe66863..9871e25 100644 --- a/src/Web/HTML/Event/DataTransfer.purs +++ b/src/Web/HTML/Event/DataTransfer.purs @@ -1,6 +1,7 @@ module Web.HTML.Event.DataTransfer ( DataTransfer , files + , items , types , getData , setData @@ -18,6 +19,7 @@ import Data.Nullable (Nullable, toMaybe) import Effect (Effect) import Web.DOM.Element (Element) import Web.File.FileList (FileList) +import Web.HTML.Event.DataTransfer.DataTransferItem (DataTransferItemList) foreign import data DataTransfer :: Type @@ -31,6 +33,10 @@ files = toMaybe <$> _files foreign import _files :: DataTransfer -> Nullable FileList +-- | Returns a `DataTransferItemList` object which is a list of all of the drag +-- | data. +foreign import items :: DataTransfer -> DataTransferItemList + -- | Returns an array of data formats used in the drag operation. -- | If the drag operation included no data, then the array is empty. foreign import types :: DataTransfer -> Array String diff --git a/src/Web/HTML/Event/DataTransfer/DataTransferItem.js b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js new file mode 100644 index 0000000..dd10c49 --- /dev/null +++ b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js @@ -0,0 +1,25 @@ +"use strict"; + +exports._kind = function (nothing, just, text, file, dataTransferItem) { + if (dataTransferItem.kind === "string") { + return just(text); + } else if (dataTransferItem.kind === "file") { + return just(file); + } else { + return nothing; + } +}; + +exports.type_ = function (dataTransferItem) { + return dataTransferItem.type; +}; + +exports._dataTransferItem = function (index) { + return function (dataTransferItemList) { + return dataTransferItemList[index]; + }; +}; + +exports._length = function (dataTransferItemList) { + return dataTransferItemList.length; +}; diff --git a/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs b/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs new file mode 100644 index 0000000..f71bc5f --- /dev/null +++ b/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs @@ -0,0 +1,64 @@ +module Web.HTML.Event.DataTransfer.DataTransferItem + ( DataTransferItem + , DataTransferItemKind(..) + , DataTransferItemList + , dataTransferItem + , kind + , length + , type_ + ) where + +import Prelude + +import Data.Function.Uncurried (Fn5) +import Data.Function.Uncurried as Uncurried +import Data.Maybe (Maybe(..)) +import Data.Nullable (Nullable) +import Data.Nullable as Nullable + +data DataTransferItemKind = Text | File + +derive instance Eq DataTransferItemKind +derive instance Ord DataTransferItemKind + +instance Show DataTransferItemKind where + show = case _ of + Text -> "Text" + File -> "File" + +foreign import _kind + :: Fn5 (forall x. Maybe x) + (forall x. x -> Maybe x) + DataTransferItemKind + DataTransferItemKind + DataTransferItem + (Maybe DataTransferItemKind) + +-- | Returns the drag data item kind of the `DataTransferItem`. In the case +-- | where the `DataTransferItem` object is in _disabled mode_, `Nothing` is +-- | returned. +kind :: DataTransferItem -> Maybe DataTransferItemKind +kind = Uncurried.runFn5 _kind Nothing Just Text File + +-- | A Unicode string giving the type or format of the data, generally given by +-- | a MIME type. Some values that are not MIME types are special-cased for +-- | legacy reasons. The API does not enforce the use of MIME types; other +-- | values can be used as well. In all cases, however, the values are all +-- | converted to ASCII lowercase by the API. +-- | There is a limit of one text item per item type string. +foreign import type_ :: DataTransferItem -> String + +foreign import _dataTransferItem :: Int -> DataTransferItemList -> Nullable DataTransferItem + +-- | Access an item in the `DataTransferItemList` by index. +dataTransferItem :: Int -> DataTransferItemList -> Maybe DataTransferItem +dataTransferItem = map Nullable.toMaybe <$> _dataTransferItem + +foreign import _length :: DataTransferItemList -> Int + +length :: DataTransferItemList -> Int +length = _length + +foreign import data DataTransferItem :: Type + +foreign import data DataTransferItemList :: Type From 3a249b966ee72c19874b4a2ec6db4059087500e4 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Fri, 8 Oct 2021 19:39:41 +0200 Subject: [PATCH 39/51] Update CHANGELOG.md --- CHANGELOG.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index db57f45..c49d35b 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,7 +7,6 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Added `items` function for `DataTransfer` and related types (`DataTransferItem`, `DataTransferItemList`) (#55 by @ptrfrncsmrph) Bugfixes: @@ -16,6 +15,7 @@ Other improvements: ## [v3.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.2.0) - 2021-10-06 New features: +- Added `items` function for `DataTransfer` and related types (`DataTransferItem`, `DataTransferItemList`) (#55 by @ptrfrncsmrph) - Added `languages` value for `Navigator` (#59 by @toastal) - Added `HTMLHtmlElement` module and `documentElement` function `HTMLDocument` (#60 by @toastal) - Added `onLine` value for `Navigator` (#61 by @toastal) From 54e3cabb7d9d9326331f52389d1bf979de4583f0 Mon Sep 17 00:00:00 2001 From: Peter Murphy <26548438+ptrfrncsmrph@users.noreply.github.com> Date: Wed, 9 Feb 2022 15:33:24 -0500 Subject: [PATCH 40/51] Add instance names (#69) --- CHANGELOG.md | 1 + src/Web/HTML/Event/DataTransfer/DataTransferItem.purs | 6 +++--- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index c49d35b..e083ea7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,6 +9,7 @@ Breaking changes: New features: Bugfixes: +- Added missing type class instance names for `DataTransferItemKind` (#69 by @ptrfrncsmrph) Other improvements: diff --git a/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs b/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs index f71bc5f..bdd7479 100644 --- a/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs +++ b/src/Web/HTML/Event/DataTransfer/DataTransferItem.purs @@ -18,10 +18,10 @@ import Data.Nullable as Nullable data DataTransferItemKind = Text | File -derive instance Eq DataTransferItemKind -derive instance Ord DataTransferItemKind +derive instance eqDataTransferItemKind :: Eq DataTransferItemKind +derive instance ordDataTransferItemKind :: Ord DataTransferItemKind -instance Show DataTransferItemKind where +instance showDataTransferItemKind :: Show DataTransferItemKind where show = case _ of Text -> "Text" File -> "File" From a06c04b6f1be43c5c9bda2a9d4dd411562fd0f04 Mon Sep 17 00:00:00 2001 From: Thomas Honeyman Date: Wed, 9 Feb 2022 12:34:28 -0800 Subject: [PATCH 41/51] Update CHANGELOG.md --- CHANGELOG.md | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index e083ea7..85fa04a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -9,10 +9,14 @@ Breaking changes: New features: Bugfixes: -- Added missing type class instance names for `DataTransferItemKind` (#69 by @ptrfrncsmrph) Other improvements: +## [v3.2.1](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.2.1) - 2021-02-09 + +Bugfixes: +- Added missing type class instance names for `DataTransferItemKind` (#69 by @ptrfrncsmrph) + ## [v3.2.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v3.2.0) - 2021-10-06 New features: From 12c06ef8d812992071804758517899e092947e49 Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Tue, 22 Mar 2022 17:14:08 -0500 Subject: [PATCH 42/51] Update to PureScript v0.15.0 (#71) * Migrated FFI to ES modules via 'lebab' * Removed '"use strict";' in FFI files * Update to CI to use 'unstable' purescript * Update Bower dependencies to master or main * Update pulp to 16.0.0-0 * Update psa to 0.8.2 * Update eslint to es6 * Fix FFI export * Update CI to use node 14 --- .eslintrc.json | 4 +- .github/workflows/ci.yml | 6 +- bower.json | 8 +- package.json | 4 +- src/Web/HTML.js | 6 +- src/Web/HTML/Event/BeforeUnloadEvent.js | 10 +- src/Web/HTML/Event/DataTransfer.js | 34 +- .../Event/DataTransfer/DataTransferItem.js | 18 +- src/Web/HTML/Event/DragEvent.js | 6 +- src/Web/HTML/Event/ErrorEvent.js | 18 +- src/Web/HTML/Event/HashChangeEvent.js | 10 +- src/Web/HTML/Event/PageTransitionEvent.js | 6 +- src/Web/HTML/Event/PopStateEvent.js | 6 +- src/Web/HTML/HTMLAnchorElement.js | 62 ++- src/Web/HTML/HTMLAreaElement.js | 70 ++-- src/Web/HTML/HTMLAudioElement.js | 10 +- src/Web/HTML/HTMLBaseElement.js | 18 +- src/Web/HTML/HTMLButtonElement.js | 114 +++--- src/Web/HTML/HTMLCanvasElement.js | 18 +- src/Web/HTML/HTMLDataElement.js | 10 +- src/Web/HTML/HTMLDataListElement.js | 6 +- src/Web/HTML/HTMLDocument.js | 38 +- src/Web/HTML/HTMLElement.js | 122 +++--- src/Web/HTML/HTMLEmbedElement.js | 34 +- src/Web/HTML/HTMLFieldSetElement.js | 54 ++- src/Web/HTML/HTMLFormElement.js | 94 +++-- src/Web/HTML/HTMLHyperlinkElementUtils.js | 86 ++--- src/Web/HTML/HTMLIFrameElement.js | 50 ++- src/Web/HTML/HTMLImageElement.js | 122 +++--- src/Web/HTML/HTMLInputElement.js | 363 +++++++++--------- src/Web/HTML/HTMLKeygenElement.js | 78 ++-- src/Web/HTML/HTMLLIElement.js | 10 +- src/Web/HTML/HTMLLabelElement.js | 18 +- src/Web/HTML/HTMLLegendElement.js | 6 +- src/Web/HTML/HTMLLinkElement.js | 70 ++-- src/Web/HTML/HTMLMapElement.js | 18 +- src/Web/HTML/HTMLMediaElement.js | 154 ++++---- src/Web/HTML/HTMLMetaElement.js | 26 +- src/Web/HTML/HTMLMeterElement.js | 54 ++- src/Web/HTML/HTMLModElement.js | 18 +- src/Web/HTML/HTMLOListElement.js | 26 +- src/Web/HTML/HTMLObjectElement.js | 86 ++--- src/Web/HTML/HTMLOptGroupElement.js | 18 +- src/Web/HTML/HTMLOptionElement.js | 58 ++- src/Web/HTML/HTMLOutputElement.js | 62 ++- src/Web/HTML/HTMLParamElement.js | 18 +- src/Web/HTML/HTMLProgressElement.js | 26 +- src/Web/HTML/HTMLQuoteElement.js | 10 +- src/Web/HTML/HTMLScriptElement.js | 58 ++- src/Web/HTML/HTMLSelectElement.js | 114 +++--- src/Web/HTML/HTMLSourceElement.js | 26 +- src/Web/HTML/HTMLStyleElement.js | 18 +- src/Web/HTML/HTMLTableCellElement.js | 22 +- src/Web/HTML/HTMLTableColElement.js | 10 +- src/Web/HTML/HTMLTableElement.js | 78 ++-- src/Web/HTML/HTMLTableHeaderCellElement.js | 18 +- src/Web/HTML/HTMLTableRowElement.js | 22 +- src/Web/HTML/HTMLTableSectionElement.js | 14 +- src/Web/HTML/HTMLTemplateElement.js | 6 +- src/Web/HTML/HTMLTextAreaElement.js | 202 +++++----- src/Web/HTML/HTMLTimeElement.js | 10 +- src/Web/HTML/HTMLTitleElement.js | 10 +- src/Web/HTML/HTMLTrackElement.js | 45 ++- src/Web/HTML/HTMLVideoElement.js | 34 +- src/Web/HTML/History.js | 31 +- src/Web/HTML/Location.js | 86 ++--- src/Web/HTML/Navigator.js | 22 +- src/Web/HTML/ValidityState.js | 6 +- src/Web/HTML/Window.js | 126 +++--- 69 files changed, 1500 insertions(+), 1621 deletions(-) diff --git a/.eslintrc.json b/.eslintrc.json index cb9c786..3a97d05 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -1,10 +1,10 @@ { "parserOptions": { - "ecmaVersion": 5 + "ecmaVersion": 6, + "sourceType": "module" }, "extends": "eslint:recommended", "env": { - "commonjs": true, "browser": true }, "rules": { diff --git a/.github/workflows/ci.yml b/.github/workflows/ci.yml index 063845e..06ed895 100644 --- a/.github/workflows/ci.yml +++ b/.github/workflows/ci.yml @@ -13,10 +13,12 @@ jobs: - uses: actions/checkout@v2 - uses: purescript-contrib/setup-purescript@main + with: + purescript: "unstable" - - uses: actions/setup-node@v1 + - uses: actions/setup-node@v2 with: - node-version: "10" + node-version: "14" - name: Install dependencies run: | diff --git a/bower.json b/bower.json index 62836a2..0f7a87a 100644 --- a/bower.json +++ b/bower.json @@ -15,9 +15,9 @@ "package.json" ], "dependencies": { - "purescript-js-date": "^7.0.0", - "purescript-web-dom": "^5.0.0", - "purescript-web-file": "^3.0.0", - "purescript-web-storage": "^4.0.0" + "purescript-js-date": "main", + "purescript-web-dom": "master", + "purescript-web-file": "master", + "purescript-web-storage": "master" } } diff --git a/package.json b/package.json index 1c67b54..4ea39f9 100644 --- a/package.json +++ b/package.json @@ -6,8 +6,8 @@ }, "devDependencies": { "eslint": "^7.15.0", - "pulp": "^15.0.0", - "purescript-psa": "^0.8.0", + "pulp": "16.0.0-0", + "purescript-psa": "^0.8.2", "rimraf": "^3.0.2" } } diff --git a/src/Web/HTML.js b/src/Web/HTML.js index b24a3e4..b6254b1 100644 --- a/src/Web/HTML.js +++ b/src/Web/HTML.js @@ -1,5 +1,3 @@ -"use strict"; - -exports.window = function () { +export function window() { return window; -}; +} diff --git a/src/Web/HTML/Event/BeforeUnloadEvent.js b/src/Web/HTML/Event/BeforeUnloadEvent.js index 1fc2dbf..a2f9992 100644 --- a/src/Web/HTML/Event/BeforeUnloadEvent.js +++ b/src/Web/HTML/Event/BeforeUnloadEvent.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.returnValue = function (e) { +export function returnValue(e) { return function () { return e.returnValue; }; -}; +} -exports.setReturnValue = function (v) { +export function setReturnValue(v) { return function (e) { return function () { e.returnValue = v; }; }; -}; +} diff --git a/src/Web/HTML/Event/DataTransfer.js b/src/Web/HTML/Event/DataTransfer.js index f5ffb55..8911445 100644 --- a/src/Web/HTML/Event/DataTransfer.js +++ b/src/Web/HTML/Event/DataTransfer.js @@ -1,26 +1,24 @@ -"use strict"; - -exports._files = function (dataTransfer) { +export function _files(dataTransfer) { return dataTransfer.files; -}; +} -exports.items = function (dataTransfer) { +export function items(dataTransfer) { return dataTransfer.items; -}; +} -exports.types = function (dataTransfer) { +export function types(dataTransfer) { return dataTransfer.types; -}; +} -exports._getData = function (format) { +export function _getData(format) { return function (dataTransfer) { return function () { return dataTransfer.getData(format); }; }; -}; +} -exports._setData = function (format) { +export function _setData(format) { return function (data) { return function (dataTransfer) { return function () { @@ -28,9 +26,9 @@ exports._setData = function (format) { }; }; }; -}; +} -exports._setDragImage = function (dataTransfer) { +export function _setDragImage(dataTransfer) { return function (image) { return function (x) { return function (y) { @@ -40,18 +38,18 @@ exports._setDragImage = function (dataTransfer) { }; }; }; -}; +} -exports._dropEffect = function (dataTransfer) { +export function _dropEffect(dataTransfer) { return function () { return dataTransfer.dropEffect; }; -}; +} -exports._setDropEffect = function (e) { +export function _setDropEffect(e) { return function (dataTransfer) { return function () { dataTransfer.dropEffect = e; }; }; -}; +} diff --git a/src/Web/HTML/Event/DataTransfer/DataTransferItem.js b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js index dd10c49..3b156b0 100644 --- a/src/Web/HTML/Event/DataTransfer/DataTransferItem.js +++ b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js @@ -1,6 +1,4 @@ -"use strict"; - -exports._kind = function (nothing, just, text, file, dataTransferItem) { +export function _kind(nothing, just, text, file, dataTransferItem) { if (dataTransferItem.kind === "string") { return just(text); } else if (dataTransferItem.kind === "file") { @@ -8,18 +6,18 @@ exports._kind = function (nothing, just, text, file, dataTransferItem) { } else { return nothing; } -}; +} -exports.type_ = function (dataTransferItem) { +export function type_(dataTransferItem) { return dataTransferItem.type; -}; +} -exports._dataTransferItem = function (index) { +export function _dataTransferItem(index) { return function (dataTransferItemList) { return dataTransferItemList[index]; }; -}; +} -exports._length = function (dataTransferItemList) { +export function _length(dataTransferItemList) { return dataTransferItemList.length; -}; +} diff --git a/src/Web/HTML/Event/DragEvent.js b/src/Web/HTML/Event/DragEvent.js index 6135178..c5e0264 100644 --- a/src/Web/HTML/Event/DragEvent.js +++ b/src/Web/HTML/Event/DragEvent.js @@ -1,5 +1,3 @@ -"use strict"; - -exports.dataTransfer = function (e) { +export function dataTransfer(e) { return e.dataTransfer; -}; +} diff --git a/src/Web/HTML/Event/ErrorEvent.js b/src/Web/HTML/Event/ErrorEvent.js index 4fb4ec5..04c45b3 100644 --- a/src/Web/HTML/Event/ErrorEvent.js +++ b/src/Web/HTML/Event/ErrorEvent.js @@ -1,17 +1,15 @@ -"use strict"; - -exports.message = function (e) { +export function message(e) { return e.message; -}; +} -exports.fileName = function (e) { +export function fileName(e) { return e.filename; -}; +} -exports.lineNo = function (e) { +export function lineNo(e) { return e.lineno; -}; +} -exports.colNo = function (e) { +export function colNo(e) { return e.colno; -}; +} diff --git a/src/Web/HTML/Event/HashChangeEvent.js b/src/Web/HTML/Event/HashChangeEvent.js index 9619f7c..8454af7 100644 --- a/src/Web/HTML/Event/HashChangeEvent.js +++ b/src/Web/HTML/Event/HashChangeEvent.js @@ -1,9 +1,7 @@ -"use strict"; - -exports.oldURL = function (e) { +export function oldURL(e) { return e.oldURL; -}; +} -exports.newURL = function (e) { +export function newURL(e) { return e.newURL; -}; +} diff --git a/src/Web/HTML/Event/PageTransitionEvent.js b/src/Web/HTML/Event/PageTransitionEvent.js index c2d0c44..53a50e8 100644 --- a/src/Web/HTML/Event/PageTransitionEvent.js +++ b/src/Web/HTML/Event/PageTransitionEvent.js @@ -1,5 +1,3 @@ -"use strict"; - -exports.persisted = function (e) { +export function persisted(e) { return e.persisted; -}; +} diff --git a/src/Web/HTML/Event/PopStateEvent.js b/src/Web/HTML/Event/PopStateEvent.js index 95adcc4..e0549ee 100644 --- a/src/Web/HTML/Event/PopStateEvent.js +++ b/src/Web/HTML/Event/PopStateEvent.js @@ -1,5 +1,3 @@ -"use strict"; - -exports.state = function (e) { +export function state(e) { return e.state; -}; +} diff --git a/src/Web/HTML/HTMLAnchorElement.js b/src/Web/HTML/HTMLAnchorElement.js index bddef8f..8df199b 100644 --- a/src/Web/HTML/HTMLAnchorElement.js +++ b/src/Web/HTML/HTMLAnchorElement.js @@ -1,119 +1,117 @@ -"use strict"; - -exports.target = function (a) { +export function target(a) { return function () { return a.target; }; -}; +} -exports.setTarget = function (target) { +export function setTarget(target) { return function (a) { return function () { a.target = target; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.download = function (a) { +export function download(a) { return function () { return a.download; }; -}; +} -exports.setDownload = function (download) { +export function setDownload(download) { return function (a) { return function () { a.download = download; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rel = function (a) { +export function rel(a) { return function () { return a.rel; }; -}; +} -exports.setRel = function (rel) { +export function setRel(rel) { return function (a) { return function () { a.rel = rel; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rev = function (a) { +export function rev(a) { return function () { return a.rev; }; -}; +} -exports.setRev = function (rev) { +export function setRev(rev) { return function (a) { return function () { a.rev = rev; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.relList = function (a) { +export function relList(a) { return function () { return a.relList; }; -}; +} // ---------------------------------------------------------------------------- -exports.hreflang = function (a) { +export function hreflang(a) { return function () { return a.hreflang; }; -}; +} -exports.setHreflang = function (hreflang) { +export function setHreflang(hreflang) { return function (a) { return function () { a.hreflang = hreflang; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (a) { +export function type_(a) { return function () { return a.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (a) { return function () { a.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.text = function (a) { +export function text(a) { return function () { return a.text; }; -}; +} -exports.setText = function (text) { +export function setText(text) { return function (a) { return function () { a.text = text; }; }; -}; +} diff --git a/src/Web/HTML/HTMLAreaElement.js b/src/Web/HTML/HTMLAreaElement.js index 9d7279a..b629e06 100644 --- a/src/Web/HTML/HTMLAreaElement.js +++ b/src/Web/HTML/HTMLAreaElement.js @@ -1,135 +1,133 @@ -"use strict"; - -exports.alt = function (area) { +export function alt(area) { return function () { return area.alt; }; -}; +} -exports.setAlt = function (alt) { +export function setAlt(alt) { return function (area) { return function () { area.alt = alt; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.coords = function (area) { +export function coords(area) { return function () { return area.coords; }; -}; +} -exports.setCoords = function (coords) { +export function setCoords(coords) { return function (area) { return function () { area.coords = coords; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.shape = function (area) { +export function shape(area) { return function () { return area.shape; }; -}; +} -exports.setShape = function (shape) { +export function setShape(shape) { return function (area) { return function () { area.shape = shape; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.target = function (area) { +export function target(area) { return function () { return area.target; }; -}; +} -exports.setTarget = function (target) { +export function setTarget(target) { return function (area) { return function () { area.target = target; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.download = function (area) { +export function download(area) { return function () { return area.download; }; -}; +} -exports.setDownload = function (download) { +export function setDownload(download) { return function (area) { return function () { area.download = download; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rel = function (area) { +export function rel(area) { return function () { return area.rel; }; -}; +} -exports.setRel = function (rel) { +export function setRel(rel) { return function (area) { return function () { area.rel = rel; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.relList = function (area) { +export function relList(area) { return function () { return area.relList; }; -}; +} // ---------------------------------------------------------------------------- -exports.hreflang = function (area) { +export function hreflang(area) { return function () { return area.hreflang; }; -}; +} -exports.setHreflang = function (hreflang) { +export function setHreflang(hreflang) { return function (area) { return function () { area.hreflang = hreflang; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (area) { +export function type_(area) { return function () { return area.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (area) { return function () { area.type = type; }; }; -}; +} diff --git a/src/Web/HTML/HTMLAudioElement.js b/src/Web/HTML/HTMLAudioElement.js index 7741b38..abcc0f0 100644 --- a/src/Web/HTML/HTMLAudioElement.js +++ b/src/Web/HTML/HTMLAudioElement.js @@ -1,11 +1,9 @@ -"use strict"; - -exports.create = function () { +export function create() { return new Audio(); -}; +} -exports.createWithURL = function (url) { +export function createWithURL(url) { return function () { return new Audio(url); }; -}; +} diff --git a/src/Web/HTML/HTMLBaseElement.js b/src/Web/HTML/HTMLBaseElement.js index 66962ae..bda69eb 100644 --- a/src/Web/HTML/HTMLBaseElement.js +++ b/src/Web/HTML/HTMLBaseElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.href = function (base) { +export function href(base) { return function () { return base.href; }; -}; +} -exports.setHref = function (href) { +export function setHref(href) { return function (base) { return function () { base.href = href; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.target = function (base) { +export function target(base) { return function () { return base.target; }; -}; +} -exports.setTarget = function (target) { +export function setTarget(target) { return function (base) { return function () { base.target = target; }; }; -}; +} diff --git a/src/Web/HTML/HTMLButtonElement.js b/src/Web/HTML/HTMLButtonElement.js index e586f79..c0e5d0f 100644 --- a/src/Web/HTML/HTMLButtonElement.js +++ b/src/Web/HTML/HTMLButtonElement.js @@ -1,225 +1,223 @@ -"use strict"; - -exports.autofocus = function (button) { +export function autofocus(button) { return function () { return button.autofocus; }; -}; +} -exports.setAutofocus = function (autofocus) { +export function setAutofocus(autofocus) { return function (button) { return function () { button.autofocus = autofocus; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.disabled = function (button) { +export function disabled(button) { return function () { return button.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (button) { return function () { button.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (button) { +export function _form(button) { return function () { return button.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.formAction = function (button) { +export function formAction(button) { return function () { return button.formAction; }; -}; +} -exports.setFormAction = function (formAction) { +export function setFormAction(formAction) { return function (button) { return function () { button.formAction = formAction; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formEnctype = function (button) { +export function formEnctype(button) { return function () { return button.formEnctype; }; -}; +} -exports.setFormEnctype = function (formEnctype) { +export function setFormEnctype(formEnctype) { return function (button) { return function () { button.formEnctype = formEnctype; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formMethod = function (button) { +export function formMethod(button) { return function () { return button.formMethod; }; -}; +} -exports.setFormMethod = function (formMethod) { +export function setFormMethod(formMethod) { return function (button) { return function () { button.formMethod = formMethod; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formNoValidate = function (button) { +export function formNoValidate(button) { return function () { return button.formNoValidate; }; -}; +} -exports.setFormNoValidate = function (formNoValidate) { +export function setFormNoValidate(formNoValidate) { return function (button) { return function () { button.formNoValidate = formNoValidate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formTarget = function (button) { +export function formTarget(button) { return function () { return button.formTarget; }; -}; +} -exports.setFormTarget = function (formTarget) { +export function setFormTarget(formTarget) { return function (button) { return function () { button.formTarget = formTarget; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (button) { +export function name(button) { return function () { return button.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (button) { return function () { button.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (button) { +export function type_(button) { return function () { return button.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (button) { return function () { button.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (button) { +export function value(button) { return function () { return button.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (button) { return function () { button.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (button) { +export function willValidate(button) { return function () { return button.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (button) { +export function validity(button) { return function () { return button.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (button) { +export function validationMessage(button) { return function () { return button.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (button) { +export function checkValidity(button) { return function () { return button.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (button) { +export function reportValidity(button) { return function () { return button.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (button) { return function () { button.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (button) { +export function labels(button) { return function () { return button.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLCanvasElement.js b/src/Web/HTML/HTMLCanvasElement.js index d08abb8..7b98501 100644 --- a/src/Web/HTML/HTMLCanvasElement.js +++ b/src/Web/HTML/HTMLCanvasElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.width = function (canvas) { +export function width(canvas) { return function () { return canvas.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (canvas) { return function () { canvas.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (canvas) { +export function height(canvas) { return function () { return canvas.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (canvas) { return function () { canvas.height = height; }; }; -}; +} diff --git a/src/Web/HTML/HTMLDataElement.js b/src/Web/HTML/HTMLDataElement.js index cf67d59..a1cb824 100644 --- a/src/Web/HTML/HTMLDataElement.js +++ b/src/Web/HTML/HTMLDataElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.value = function (data) { +export function value(data) { return function () { return data.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (data) { return function () { data.value = value; }; }; -}; +} diff --git a/src/Web/HTML/HTMLDataListElement.js b/src/Web/HTML/HTMLDataListElement.js index baf908f..3f8f914 100644 --- a/src/Web/HTML/HTMLDataListElement.js +++ b/src/Web/HTML/HTMLDataListElement.js @@ -1,7 +1,5 @@ -"use strict"; - -exports.options = function (dle) { +export function options(dle) { return function () { return dle.options; }; -}; +} diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index d3efb08..d0eaaf8 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -1,57 +1,55 @@ -"use strict"; - -exports._documentElement = function (doc) { +export function _documentElement(doc) { return function () { return doc.documentElement; }; -}; +} -exports._head = function (doc) { +export function _head(doc) { return function () { return doc.head; }; -}; +} -exports._body = function (doc) { +export function _body(doc) { return function () { return doc.body; }; -}; +} -exports._readyState = function (doc) { +export function _readyState(doc) { return function () { return doc.readyState; }; -}; +} -exports._activeElement = function (doc) { +export function _activeElement(doc) { return function () { return doc.activeElement; }; -}; +} -exports._currentScript = function (doc) { +export function _currentScript(doc) { return function () { return doc.currentScript; }; -}; +} -exports.referrer = function (doc) { +export function referrer(doc) { return function () { return doc.referrer; }; -}; +} -exports.title = function (doc) { +export function title(doc) { return function () { return doc.title; }; -}; +} -exports.setTitle = function (title) { +export function setTitle(title) { return function (doc) { return function () { doc.title = title; }; }; -}; +} diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index 4f8401d..aee4f0c 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -1,193 +1,191 @@ -"use strict"; - -exports._read = function (nothing, just, value) { +export function _read(nothing, just, value) { var tag = Object.prototype.toString.call(value); if (tag.indexOf("[object HTML") === 0 && tag.indexOf("Element]") === tag.length - 8) { return just(value); } else { return nothing; } -}; +} // ---------------------------------------------------------------------------- -exports.title = function (elt) { +export function title(elt) { return function () { return elt.title; }; -}; +} -exports.setTitle = function (title) { +export function setTitle(title) { return function (elt) { return function () { elt.title = title; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.lang = function (elt) { +export function lang(elt) { return function () { return elt.lang; }; -}; +} -exports.setLang = function (lang) { +export function setLang(lang) { return function (elt) { return function () { elt.lang = lang; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.dir = function (elt) { +export function dir(elt) { return function () { return elt.dir; }; -}; +} -exports.setDir = function (dir) { +export function setDir(dir) { return function (elt) { return function () { elt.dir = dir; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.className = function (elt) { +export function className(elt) { return function () { return elt.className; }; -}; +} -exports.setClassName = function (className) { +export function setClassName(className) { return function (elt) { return function () { elt.className = className; }; }; -}; +} -exports.classList = function (element) { +export function classList(element) { return function () { return element.classList; }; -}; +} // ---------------------------------------------------------------------------- -exports.hidden = function (elt) { +export function hidden(elt) { return function () { return elt.hidden; }; -}; +} -exports.setHidden = function (hidden) { +export function setHidden(hidden) { return function (elt) { return function () { elt.hidden = hidden; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.tabIndex = function (elt) { +export function tabIndex(elt) { return function () { return elt.tabIndex; }; -}; +} -exports.setTabIndex = function (tabIndex) { +export function setTabIndex(tabIndex) { return function (elt) { return function () { elt.tabIndex = tabIndex; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.draggable = function (elt) { +export function draggable(elt) { return function () { return elt.draggable; }; -}; +} -exports.setDraggable = function (draggable) { +export function setDraggable(draggable) { return function (elt) { return function () { elt.draggable = draggable; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.contentEditable = function (elt) { +export function contentEditable(elt) { return function () { return elt.contentEditable; }; -}; +} -exports.setContentEditable = function (contentEditable) { +export function setContentEditable(contentEditable) { return function (elt) { return function () { elt.contentEditable = contentEditable; }; }; -}; +} -exports.isContentEditable = function (elt) { +export function isContentEditable(elt) { return function () { return elt.isContentEditable; }; -}; +} // ---------------------------------------------------------------------------- -exports.spellcheck = function (elt) { +export function spellcheck(elt) { return function () { return elt.spellcheck; }; -}; +} -exports.setSpellcheck = function (spellcheck) { +export function setSpellcheck(spellcheck) { return function (elt) { return function () { elt.spellcheck = spellcheck; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.click = function (elt) { +export function click(elt) { return function () { return elt.click(); }; -}; +} -exports.focus = function (elt) { +export function focus(elt) { return function () { return elt.focus(); }; -}; +} -exports.blur = function (elt) { +export function blur(elt) { return function () { return elt.blur(); }; -}; +} // - CSSOM --------------------------------------------------------------------- -exports.getBoundingClientRect = function (el) { +export function getBoundingClientRect(el) { return function () { var rect = el.getBoundingClientRect(); return { @@ -199,34 +197,34 @@ exports.getBoundingClientRect = function (el) { height: rect.height }; }; -}; +} -exports._offsetParent = function (el) { +export function _offsetParent(el) { return function () { return el.offsetParent; }; -}; +} -exports.offsetTop = function (el) { +export function offsetTop(el) { return function () { return el.offsetTop; }; -}; +} -exports.offsetLeft = function (el) { +export function offsetLeft(el) { return function () { return el.offsetLeft; }; -}; +} -exports.offsetWidth = function (el) { +export function offsetWidth(el) { return function () { return el.offsetWidth; }; -}; +} -exports.offsetHeight = function (el) { +export function offsetHeight(el) { return function () { return el.offsetHeight; }; -}; +} diff --git a/src/Web/HTML/HTMLEmbedElement.js b/src/Web/HTML/HTMLEmbedElement.js index cd0f6f2..6e93e21 100644 --- a/src/Web/HTML/HTMLEmbedElement.js +++ b/src/Web/HTML/HTMLEmbedElement.js @@ -1,63 +1,61 @@ -"use strict"; - -exports.src = function (embed) { +export function src(embed) { return function () { return embed.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (embed) { return function () { embed.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (embed) { +export function type_(embed) { return function () { return embed.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (embed) { return function () { embed.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.width = function (embed) { +export function width(embed) { return function () { return embed.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (embed) { return function () { embed.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (embed) { +export function height(embed) { return function () { return embed.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (embed) { return function () { embed.height = height; }; }; -}; +} diff --git a/src/Web/HTML/HTMLFieldSetElement.js b/src/Web/HTML/HTMLFieldSetElement.js index 1579d19..c5bf74c 100644 --- a/src/Web/HTML/HTMLFieldSetElement.js +++ b/src/Web/HTML/HTMLFieldSetElement.js @@ -1,105 +1,103 @@ -"use strict"; - -exports.disabled = function (fieldset) { +export function disabled(fieldset) { return function () { return fieldset.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (fieldset) { return function () { fieldset.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (fieldset) { +export function _form(fieldset) { return function () { return fieldset.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (fieldset) { +export function name(fieldset) { return function () { return fieldset.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (fieldset) { return function () { fieldset.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (fieldset) { +export function type_(fieldset) { return function () { return fieldset.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (fieldset) { return function () { fieldset.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (fieldset) { +export function willValidate(fieldset) { return function () { return fieldset.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (fieldset) { +export function validity(fieldset) { return function () { return fieldset.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (fieldset) { +export function validationMessage(fieldset) { return function () { return fieldset.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (fieldset) { +export function checkValidity(fieldset) { return function () { return fieldset.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (fieldset) { +export function reportValidity(fieldset) { return function () { return fieldset.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (fieldset) { return function () { fieldset.setCustomValidity(value); }; }; -}; +} diff --git a/src/Web/HTML/HTMLFormElement.js b/src/Web/HTML/HTMLFormElement.js index 6f7abb2..44a63ad 100644 --- a/src/Web/HTML/HTMLFormElement.js +++ b/src/Web/HTML/HTMLFormElement.js @@ -1,183 +1,181 @@ -"use strict"; - -exports.acceptCharset = function (form) { +export function acceptCharset(form) { return function () { return form.acceptCharset; }; -}; +} -exports.setAcceptCharset = function (acceptCharset) { +export function setAcceptCharset(acceptCharset) { return function (form) { return function () { form.acceptCharset = acceptCharset; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.action = function (form) { +export function action(form) { return function () { return form.action; }; -}; +} -exports.setAction = function (action) { +export function setAction(action) { return function (form) { return function () { form.action = action; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.autocomplete = function (form) { +export function autocomplete(form) { return function () { return form.autocomplete; }; -}; +} -exports.setAutocomplete = function (autocomplete) { +export function setAutocomplete(autocomplete) { return function (form) { return function () { form.autocomplete = autocomplete; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.enctype = function (form) { +export function enctype(form) { return function () { return form.enctype; }; -}; +} -exports.setEnctype = function (enctype) { +export function setEnctype(enctype) { return function (form) { return function () { form.enctype = enctype; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.encoding = function (form) { +export function encoding(form) { return function () { return form.encoding; }; -}; +} -exports.setEncoding = function (encoding) { +export function setEncoding(encoding) { return function (form) { return function () { form.encoding = encoding; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.method = function (form) { +export function method(form) { return function () { return form.method; }; -}; +} -exports.setMethod = function (method) { +export function setMethod(method) { return function (form) { return function () { form.method = method; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (form) { +export function name(form) { return function () { return form.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (form) { return function () { form.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.noValidate = function (form) { +export function noValidate(form) { return function () { return form.noValidate; }; -}; +} -exports.setNoValidate = function (noValidate) { +export function setNoValidate(noValidate) { return function (form) { return function () { form.noValidate = noValidate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.target = function (form) { +export function target(form) { return function () { return form.target; }; -}; +} -exports.setTarget = function (target) { +export function setTarget(target) { return function (form) { return function () { form.target = target; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.length = function (form) { +export function length(form) { return function () { return form.length; }; -}; +} // ---------------------------------------------------------------------------- -exports.submit = function (form) { +export function submit(form) { return function () { form.submit(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reset = function (form) { +export function reset(form) { return function () { form.reset(); }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (form) { +export function checkValidity(form) { return function () { return form.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (form) { +export function reportValidity(form) { return function () { return form.reportValidity(); }; -}; +} diff --git a/src/Web/HTML/HTMLHyperlinkElementUtils.js b/src/Web/HTML/HTMLHyperlinkElementUtils.js index ea449ea..6a95ece 100644 --- a/src/Web/HTML/HTMLHyperlinkElementUtils.js +++ b/src/Web/HTML/HTMLHyperlinkElementUtils.js @@ -1,167 +1,165 @@ -"use strict"; - -exports.href = function (u) { +export function href(u) { return function () { return u.href; }; -}; +} -exports.setHref = function (href) { +export function setHref(href) { return function (u) { return function () { u.href = href; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.origin = function (u) { +export function origin(u) { return function () { return u.origin; }; -}; +} // ---------------------------------------------------------------------------- -exports.protocol = function (u) { +export function protocol(u) { return function () { return u.protocol; }; -}; +} -exports.setProtocol = function (protocol) { +export function setProtocol(protocol) { return function (u) { return function () { u.protocol = protocol; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.username = function (u) { +export function username(u) { return function () { return u.username; }; -}; +} -exports.setUsername = function (username) { +export function setUsername(username) { return function (u) { return function () { u.username = username; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.password = function (u) { +export function password(u) { return function () { return u.password; }; -}; +} -exports.setPassword = function (password) { +export function setPassword(password) { return function (u) { return function () { u.password = password; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.host = function (u) { +export function host(u) { return function () { return u.host; }; -}; +} -exports.setHost = function (host) { +export function setHost(host) { return function (u) { return function () { u.host = host; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.hostname = function (u) { +export function hostname(u) { return function () { return u.hostname; }; -}; +} -exports.setHostname = function (hostname) { +export function setHostname(hostname) { return function (u) { return function () { u.hostname = hostname; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.port = function (u) { +export function port(u) { return function () { return u.port; }; -}; +} -exports.setPort = function (port) { +export function setPort(port) { return function (u) { return function () { u.port = port; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.pathname = function (u) { +export function pathname(u) { return function () { return u.pathname; }; -}; +} -exports.setPathname = function (pathname) { +export function setPathname(pathname) { return function (u) { return function () { u.pathname = pathname; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.search = function (u) { +export function search(u) { return function () { return u.search; }; -}; +} -exports.setSearch = function (search) { +export function setSearch(search) { return function (u) { return function () { u.search = search; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.hash = function (u) { +export function hash(u) { return function () { return u.hash; }; -}; +} -exports.setHash = function (hash) { +export function setHash(hash) { return function (u) { return function () { u.hash = hash; }; }; -}; +} diff --git a/src/Web/HTML/HTMLIFrameElement.js b/src/Web/HTML/HTMLIFrameElement.js index 180688d..05e8a92 100644 --- a/src/Web/HTML/HTMLIFrameElement.js +++ b/src/Web/HTML/HTMLIFrameElement.js @@ -1,93 +1,91 @@ -"use strict"; - -exports.src = function (iframe) { +export function src(iframe) { return function () { return iframe.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (iframe) { return function () { iframe.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.srcdoc = function (iframe) { +export function srcdoc(iframe) { return function () { return iframe.srcdoc; }; -}; +} -exports.setSrcdoc = function (srcdoc) { +export function setSrcdoc(srcdoc) { return function (iframe) { return function () { iframe.srcdoc = srcdoc; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (iframe) { +export function name(iframe) { return function () { return iframe.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (iframe) { return function () { iframe.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.width = function (iframe) { +export function width(iframe) { return function () { return iframe.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (iframe) { return function () { iframe.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (iframe) { +export function height(iframe) { return function () { return iframe.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (iframe) { return function () { iframe.height = height; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._contentDocument = function (iframe) { +export function _contentDocument(iframe) { return function () { return iframe.contentDocument; }; -}; +} -exports._contentWindow = function (iframe) { +export function _contentWindow(iframe) { return function () { return iframe.contentWindow; }; -}; +} diff --git a/src/Web/HTML/HTMLImageElement.js b/src/Web/HTML/HTMLImageElement.js index 60c01bd..10b657f 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -1,217 +1,215 @@ -"use strict"; - -exports.create = function () { +export function create() { return new Image(); -}; +} -exports.createWithDimensions = function (width) { +export function createWithDimensions(width) { return function (height) { return function () { return new Image(width, height); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.alt = function (image) { +export function alt(image) { return function () { return image.alt; }; -}; +} -exports.setAlt = function (alt) { +export function setAlt(alt) { return function (image) { return function () { image.alt = alt; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.src = function (image) { +export function src(image) { return function () { return image.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (image) { return function () { image.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.srcset = function (image) { +export function srcset(image) { return function () { return image.srcset; }; -}; +} -exports.setSrcset = function (srcset) { +export function setSrcset(srcset) { return function (image) { return function () { image.srcset = srcset; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.sizes = function (image) { +export function sizes(image) { return function () { return image.sizes; }; -}; +} -exports.setSizes = function (sizes) { +export function setSizes(sizes) { return function (image) { return function () { image.sizes = sizes; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.currentSrc = function (image) { +export function currentSrc(image) { return function () { return image.currentSrc; }; -}; +} // ---------------------------------------------------------------------------- -exports._crossOrigin = function (image) { +export function _crossOrigin(image) { return image.crossOrigin; -}; +} -exports._setCrossOrigin = function (crossOrigin, image) { +export function _setCrossOrigin(crossOrigin, image) { image.crossOrigin = crossOrigin; -}; +} // ---------------------------------------------------------------------------- -exports.useMap = function (image) { +export function useMap(image) { return function () { return image.useMap; }; -}; +} -exports.setUseMap = function (useMap) { +export function setUseMap(useMap) { return function (image) { return function () { image.useMap = useMap; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.isMap = function (image) { +export function isMap(image) { return function () { return image.isMap; }; -}; +} -exports.setIsMap = function (isMap) { +export function setIsMap(isMap) { return function (image) { return function () { image.isMap = isMap; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.width = function (image) { +export function width(image) { return function () { return image.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (image) { return function () { image.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (image) { +export function height(image) { return function () { return image.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (image) { return function () { image.height = height; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.naturalWidth = function (image) { +export function naturalWidth(image) { return function () { return image.naturalWidth; }; -}; +} -exports.naturalHeight = function (image) { +export function naturalHeight(image) { return function () { return image.naturalHeight; }; -}; +} // ---------------------------------------------------------------------------- -exports.referrerPolicy = function (image) { +export function referrerPolicy(image) { return function () { return image.referrerPolicy; }; -}; +} -exports.setReferrerPolicy = function (referrerPolicy) { +export function setReferrerPolicy(referrerPolicy) { return function (image) { return function () { image.referrerPolicy = referrerPolicy; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._decoding = function (image) { +export function _decoding(image) { return image.decoding; -}; +} -exports._setDecoding = function (decoding, image) { +export function _setDecoding(decoding, image) { image.decoding = decoding; -}; +} // ---------------------------------------------------------------------------- -exports._loading = function (image) { +export function _loading(image) { return image.loading; -}; +} -exports._setLoading = function (loading, image) { +export function _setLoading(loading, image) { image.loading = loading; -}; +} // ---------------------------------------------------------------------------- -exports.complete = function (image) { +export function complete(image) { return function () { return image.complete; }; -}; +} diff --git a/src/Web/HTML/HTMLInputElement.js b/src/Web/HTML/HTMLInputElement.js index f2aa040..e69fae9 100644 --- a/src/Web/HTML/HTMLInputElement.js +++ b/src/Web/HTML/HTMLInputElement.js @@ -1,721 +1,720 @@ -"use strict"; - -exports.accept = function (input) { +export function accept(input) { return function () { return input.accept; }; -}; +} -exports.setAccept = function (accept) { +export function setAccept(accept) { return function (input) { return function () { input.accept = accept; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.alt = function (input) { +export function alt(input) { return function () { return input.alt; }; -}; +} -exports.setAlt = function (alt) { +export function setAlt(alt) { return function (input) { return function () { input.alt = alt; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.autocomplete = function (input) { +export function autocomplete(input) { return function () { return input.autocomplete; }; -}; +} -exports.setAutocomplete = function (autocomplete) { +export function setAutocomplete(autocomplete) { return function (input) { return function () { input.autocomplete = autocomplete; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.autofocus = function (input) { +export function autofocus(input) { return function () { return input.autofocus; }; -}; +} -exports.setAutofocus = function (autofocus) { +export function setAutofocus(autofocus) { return function (input) { return function () { input.autofocus = autofocus; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultChecked = function (input) { +export function defaultChecked(input) { return function () { return input.defaultChecked; }; -}; +} -exports.setDefaultChecked = function (defaultChecked) { +export function setDefaultChecked(defaultChecked) { return function (input) { return function () { input.defaultChecked = defaultChecked; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.checked = function (input) { +export function checked(input) { return function () { return input.checked; }; -}; +} -exports.setChecked = function (checked) { +export function setChecked(checked) { return function (input) { return function () { input.checked = checked; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.dirName = function (input) { +export function dirName(input) { return function () { return input.dirName; }; -}; +} -exports.setDirName = function (dirName) { +export function setDirName(dirName) { return function (input) { return function () { input.dirName = dirName; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.disabled = function (input) { +export function disabled(input) { return function () { return input.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (input) { return function () { input.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (input) { +export function _form(input) { return function () { return input.form; }; -}; +} // ---------------------------------------------------------------------------- -exports._files = function (input) { +export function _files(input) { return function () { return input.files; }; -}; +} // ---------------------------------------------------------------------------- -exports.formAction = function (input) { +export function formAction(input) { return function () { return input.formAction; }; -}; +} -exports.setFormAction = function (formAction) { +export function setFormAction(formAction) { return function (input) { return function () { input.formAction = formAction; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formEnctype = function (input) { +export function formEnctype(input) { return function () { return input.formEnctype; }; -}; +} -exports.setFormEnctype = function (formEnctype) { +export function setFormEnctype(formEnctype) { return function (input) { return function () { input.formEnctype = formEnctype; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formMethod = function (input) { +export function formMethod(input) { return function () { return input.formMethod; }; -}; +} -exports.setFormMethod = function (formMethod) { +export function setFormMethod(formMethod) { return function (input) { return function () { input.formMethod = formMethod; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formNoValidate = function (input) { +export function formNoValidate(input) { return function () { return input.formNoValidate; }; -}; +} -exports.setFormNoValidate = function (formNoValidate) { +export function setFormNoValidate(formNoValidate) { return function (input) { return function () { input.formNoValidate = formNoValidate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.formTarget = function (input) { +export function formTarget(input) { return function () { return input.formTarget; }; -}; +} -exports.setFormTarget = function (formTarget) { +export function setFormTarget(formTarget) { return function (input) { return function () { input.formTarget = formTarget; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (input) { +export function height(input) { return function () { return input.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (input) { return function () { input.height = height; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.indeterminate = function (input) { +export function indeterminate(input) { return function () { return input.indeterminate; }; -}; +} -exports.setIndeterminate = function (indeterminate) { +export function setIndeterminate(indeterminate) { return function (input) { return function () { input.indeterminate = indeterminate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._list = function (input) { +export function _list(input) { return function () { return input.list; }; -}; +} // ---------------------------------------------------------------------------- -exports.max = function (input) { +export function max(input) { return function () { return input.max; }; -}; +} -exports.setMax = function (max) { +export function setMax(max) { return function (input) { return function () { input.max = max; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.maxLength = function (input) { +export function maxLength(input) { return function () { return input.maxLength; }; -}; +} -exports.setMaxLength = function (maxLength) { +export function setMaxLength(maxLength) { return function (input) { return function () { input.maxLength = maxLength; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.min = function (input) { +export function min(input) { return function () { return input.min; }; -}; +} -exports.setMin = function (min) { +export function setMin(min) { return function (input) { return function () { input.min = min; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.minLength = function (input) { +export function minLength(input) { return function () { return input.minLength; }; -}; +} -exports.setMinLength = function (minLength) { +export function setMinLength(minLength) { return function (input) { return function () { input.minLength = minLength; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.multiple = function (input) { +export function multiple(input) { return function () { return input.multiple; }; -}; +} -exports.setMultiple = function (multiple) { +export function setMultiple(multiple) { return function (input) { return function () { input.multiple = multiple; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (input) { +export function name(input) { return function () { return input.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (input) { return function () { input.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.pattern = function (input) { +export function pattern(input) { return function () { return input.pattern; }; -}; +} -exports.setPattern = function (pattern) { +export function setPattern(pattern) { return function (input) { return function () { input.pattern = pattern; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.placeholder = function (input) { +export function placeholder(input) { return function () { return input.placeholder; }; -}; +} -exports.setPlaceholder = function (placeholder) { +export function setPlaceholder(placeholder) { return function (input) { return function () { input.placeholder = placeholder; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.readOnly = function (input) { +export function readOnly(input) { return function () { return input.readOnly; }; -}; +} -exports.setReadOnly = function (readOnly) { +export function setReadOnly(readOnly) { return function (input) { return function () { input.readOnly = readOnly; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.required = function (input) { +export function required(input) { return function () { return input.required; }; -}; +} -exports.setRequired = function (required) { +export function setRequired(required) { return function (input) { return function () { input.required = required; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.size = function (input) { +export function size(input) { return function () { return input.size; }; -}; +} -exports.setSize = function (size) { +export function setSize(size) { return function (input) { return function () { input.size = size; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.src = function (input) { +export function src(input) { return function () { return input.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (input) { return function () { input.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.step = function (input) { +export function step(input) { return function () { return input.step; }; -}; +} -exports.setStep = function (step) { +export function setStep(step) { return function (input) { return function () { input.step = step; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (input) { +export function type_(input) { return function () { return input.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (input) { return function () { input.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultValue = function (input) { +export function defaultValue(input) { return function () { return input.defaultValue; }; -}; +} -exports.setDefaultValue = function (defaultValue) { +export function setDefaultValue(defaultValue) { return function (input) { return function () { input.defaultValue = defaultValue; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (input) { +export function value(input) { return function () { return input.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (input) { return function () { input.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.valueAsDate = function (input) { +export function valueAsDate(input) { return function () { return input.valueAsDate; }; -}; +} -exports.setValueAsDate = function (valueAsDate) { +export function setValueAsDate(valueAsDate) { return function (input) { return function () { input.valueAsDate = valueAsDate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.valueAsNumber = function (input) { +export function valueAsNumber(input) { return function () { return input.valueAsNumber; }; -}; +} -exports.setValueAsNumber = function (valueAsNumber) { +export function setValueAsNumber(valueAsNumber) { return function (input) { return function () { input.valueAsNumber = valueAsNumber; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.width = function (input) { +export function width(input) { return function () { return input.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (input) { return function () { input.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.stepUpBy = function (n) { +export function stepUpBy(n) { return function (input) { return function () { input.stepUp(n); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.stepDownBy = function (n) { +export function stepDownBy(n) { return function (input) { return function () { input.stepDown(n); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (input) { +export function willValidate(input) { return function () { return input.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (input) { +export function validity(input) { return function () { return input.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (input) { +export function validationMessage(input) { return function () { return input.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (input) { +export function checkValidity(input) { return function () { return input.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (input) { +export function reportValidity(input) { return function () { return input.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (input) { return function () { input.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (input) { +export function labels(input) { return function () { return input.labels; }; -}; +} // ---------------------------------------------------------------------------- -exports.select = function (input) { +export function select(input) { return function () { input.select(); }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionStart = function (input) { +export function selectionStart(input) { return function () { return input.selectionStart; }; -}; +} -exports.setSelectionStart = function (selectionStart) { +export function setSelectionStart(selectionStart) { return function (input) { return function () { input.selectionStart = selectionStart; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionEnd = function (input) { +export function selectionEnd(input) { return function () { return input.selectionEnd; }; -}; +} -exports.setSelectionEnd = function (selectionEnd) { +export function setSelectionEnd(selectionEnd) { return function (input) { return function () { input.selectionEnd = selectionEnd; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionDirection = function (input) { +export function selectionDirection(input) { return function () { return input.selectionDirection; }; -}; +} -exports.setSelectionDirection = function (selectionDirection) { +export function setSelectionDirection(selectionDirection) { return function (input) { return function () { input.selectionDirection = selectionDirection; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.setRangeText = function (replacement) { +export function setRangeText(replacement) { return function (input) { return function () { input.setRangeText(replacement); }; }; -}; -exports._setRangeText = function (replacement, start, end, selectionMode, textarea) { +} + +export function _setRangeText(replacement, start, end, selectionMode, textarea) { textarea.setRangeText(replacement, start, end, selectionMode); -}; +} // ---------------------------------------------------------------------------- -exports.setSelectionRange = function (start) { +export function setSelectionRange(start) { return function (end) { return function (direction) { return function (input) { @@ -725,4 +724,4 @@ exports.setSelectionRange = function (start) { }; }; }; -}; +} diff --git a/src/Web/HTML/HTMLKeygenElement.js b/src/Web/HTML/HTMLKeygenElement.js index dd4f2cd..001a65b 100644 --- a/src/Web/HTML/HTMLKeygenElement.js +++ b/src/Web/HTML/HTMLKeygenElement.js @@ -1,153 +1,151 @@ -"use strict"; - -exports.autofocus = function (keygen) { +export function autofocus(keygen) { return function () { return keygen.autofocus; }; -}; +} -exports.setAutofocus = function (autofocus) { +export function setAutofocus(autofocus) { return function (keygen) { return function () { keygen.autofocus = autofocus; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.challenge = function (keygen) { +export function challenge(keygen) { return function () { return keygen.challenge; }; -}; +} -exports.setChallenge = function (challenge) { +export function setChallenge(challenge) { return function (keygen) { return function () { keygen.challenge = challenge; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.disabled = function (keygen) { +export function disabled(keygen) { return function () { return keygen.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (keygen) { return function () { keygen.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (keygen) { +export function _form(keygen) { return function () { return keygen.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.keytype = function (keygen) { +export function keytype(keygen) { return function () { return keygen.keytype; }; -}; +} -exports.setKeytype = function (keytype) { +export function setKeytype(keytype) { return function (keygen) { return function () { keygen.keytype = keytype; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (keygen) { +export function name(keygen) { return function () { return keygen.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (keygen) { return function () { keygen.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (keygen) { +export function type_(keygen) { return function () { return keygen.type; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (keygen) { +export function willValidate(keygen) { return function () { return keygen.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (keygen) { +export function validity(keygen) { return function () { return keygen.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (keygen) { +export function validationMessage(keygen) { return function () { return keygen.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (keygen) { +export function checkValidity(keygen) { return function () { return keygen.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (keygen) { +export function reportValidity(keygen) { return function () { return keygen.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (keygen) { return function () { keygen.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (keygen) { +export function labels(keygen) { return function () { return keygen.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLLIElement.js b/src/Web/HTML/HTMLLIElement.js index bb30ee5..1581bbb 100644 --- a/src/Web/HTML/HTMLLIElement.js +++ b/src/Web/HTML/HTMLLIElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.value = function (li) { +export function value(li) { return function () { return li.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (li) { return function () { li.value = value; }; }; -}; +} diff --git a/src/Web/HTML/HTMLLabelElement.js b/src/Web/HTML/HTMLLabelElement.js index 41101f3..a0915f8 100644 --- a/src/Web/HTML/HTMLLabelElement.js +++ b/src/Web/HTML/HTMLLabelElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports._form = function (label) { +export function _form(label) { return function () { return label.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.htmlFor = function (label) { +export function htmlFor(label) { return function () { return label.htmlFor; }; -}; +} -exports.setHtmlFor = function (htmlFor) { +export function setHtmlFor(htmlFor) { return function (label) { return function () { label.htmlFor = htmlFor; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._control = function (label) { +export function _control(label) { return function () { return label.control; }; -}; +} diff --git a/src/Web/HTML/HTMLLegendElement.js b/src/Web/HTML/HTMLLegendElement.js index 1a18899..7d7639a 100644 --- a/src/Web/HTML/HTMLLegendElement.js +++ b/src/Web/HTML/HTMLLegendElement.js @@ -1,7 +1,5 @@ -"use strict"; - -exports._form = function (le) { +export function _form(le) { return function () { return le.form; }; -}; +} diff --git a/src/Web/HTML/HTMLLinkElement.js b/src/Web/HTML/HTMLLinkElement.js index 3702221..6f4bb81 100644 --- a/src/Web/HTML/HTMLLinkElement.js +++ b/src/Web/HTML/HTMLLinkElement.js @@ -1,135 +1,133 @@ -"use strict"; - -exports.disabled = function (link) { +export function disabled(link) { return function () { return link.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (link) { return function () { link.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.href = function (link) { +export function href(link) { return function () { return link.href; }; -}; +} -exports.setHref = function (href) { +export function setHref(href) { return function (link) { return function () { link.href = href; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.crossOrigin = function (link) { +export function crossOrigin(link) { return function () { return link.crossOrigin; }; -}; +} -exports.setCrossOrigin = function (crossOrigin) { +export function setCrossOrigin(crossOrigin) { return function (link) { return function () { link.crossOrigin = crossOrigin; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rel = function (link) { +export function rel(link) { return function () { return link.rel; }; -}; +} -exports.setRel = function (rel) { +export function setRel(rel) { return function (link) { return function () { link.rel = rel; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rev = function (link) { +export function rev(link) { return function () { return link.rev; }; -}; +} -exports.setRev = function (rev) { +export function setRev(rev) { return function (link) { return function () { link.rev = rev; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.relList = function (link) { +export function relList(link) { return function () { return link.relList; }; -}; +} // ---------------------------------------------------------------------------- -exports.media = function (link) { +export function media(link) { return function () { return link.media; }; -}; +} -exports.setMedia = function (media) { +export function setMedia(media) { return function (link) { return function () { link.media = media; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.hreflang = function (link) { +export function hreflang(link) { return function () { return link.hreflang; }; -}; +} -exports.setHreflang = function (hreflang) { +export function setHreflang(hreflang) { return function (link) { return function () { link.hreflang = hreflang; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (link) { +export function type_(link) { return function () { return link.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (link) { return function () { link.type = type; }; }; -}; +} diff --git a/src/Web/HTML/HTMLMapElement.js b/src/Web/HTML/HTMLMapElement.js index b4b8dea..2352eeb 100644 --- a/src/Web/HTML/HTMLMapElement.js +++ b/src/Web/HTML/HTMLMapElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.name = function (map) { +export function name(map) { return function () { return map.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (map) { return function () { map.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.areas = function (map) { +export function areas(map) { return function () { return map.areas; }; -}; +} // ---------------------------------------------------------------------------- -exports.images = function (map) { +export function images(map) { return function () { return map.images; }; -}; +} diff --git a/src/Web/HTML/HTMLMediaElement.js b/src/Web/HTML/HTMLMediaElement.js index 56afc63..1f6be76 100644 --- a/src/Web/HTML/HTMLMediaElement.js +++ b/src/Web/HTML/HTMLMediaElement.js @@ -1,297 +1,295 @@ -"use strict"; - -exports.src = function (media) { +export function src(media) { return function () { return media.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (media) { return function () { media.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.currentSrc = function (media) { +export function currentSrc(media) { return function () { return media.currentSrc; }; -}; +} // ---------------------------------------------------------------------------- -exports.crossOrigin = function (media) { +export function crossOrigin(media) { return function () { return media.crossOrigin; }; -}; +} -exports.setCrossOrigin = function (crossOrigin) { +export function setCrossOrigin(crossOrigin) { return function (media) { return function () { media.crossOrigin = crossOrigin; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._networkState = function (media) { +export function _networkState(media) { return media.networkState; -}; +} // ---------------------------------------------------------------------------- -exports.preload = function (media) { +export function preload(media) { return function () { return media.preload; }; -}; +} -exports.setPreload = function (preload) { +export function setPreload(preload) { return function (media) { return function () { media.preload = preload; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.load = function (media) { +export function load(media) { return function () { return media.load(); }; -}; +} // ---------------------------------------------------------------------------- -exports._canPlayType = function (type, media) { +export function _canPlayType(type, media) { return media.canPlayType(type); -}; +} // ---------------------------------------------------------------------------- -exports._readyState = function (media) { +export function _readyState(media) { return media.readyState; -}; +} // ---------------------------------------------------------------------------- -exports.seeking = function (media) { +export function seeking(media) { return function () { return media.seeking; }; -}; +} // ---------------------------------------------------------------------------- -exports.currentTime = function (media) { +export function currentTime(media) { return function () { return media.currentTime; }; -}; +} -exports.setCurrentTime = function (currentTime) { +export function setCurrentTime(currentTime) { return function (media) { return function () { media.currentTime = currentTime; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.duration = function (media) { +export function duration(media) { return function () { return media.duration; }; -}; +} // ---------------------------------------------------------------------------- -exports.getStartDate = function (media) { +export function getStartDate(media) { return function () { return media.getStartDate(); }; -}; +} // ---------------------------------------------------------------------------- -exports.paused = function (media) { +export function paused(media) { return function () { return media.paused; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultPlaybackRate = function (media) { +export function defaultPlaybackRate(media) { return function () { return media.defaultPlaybackRate; }; -}; +} -exports.setDefaultPlaybackRate = function (defaultPlaybackRate) { +export function setDefaultPlaybackRate(defaultPlaybackRate) { return function (media) { return function () { media.defaultPlaybackRate = defaultPlaybackRate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.playbackRate = function (media) { +export function playbackRate(media) { return function () { return media.playbackRate; }; -}; +} -exports.setPlaybackRate = function (playbackRate) { +export function setPlaybackRate(playbackRate) { return function (media) { return function () { media.playbackRate = playbackRate; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.ended = function (media) { +export function ended(media) { return function () { return media.ended; }; -}; +} // ---------------------------------------------------------------------------- -exports.autoplay = function (media) { +export function autoplay(media) { return function () { return media.autoplay; }; -}; +} -exports.setAutoplay = function (autoplay) { +export function setAutoplay(autoplay) { return function (media) { return function () { media.autoplay = autoplay; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.loop = function (media) { +export function loop(media) { return function () { return media.loop; }; -}; +} -exports.setLoop = function (loop) { +export function setLoop(loop) { return function (media) { return function () { media.loop = loop; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.play = function (media) { +export function play(media) { return function () { media.play(); }; -}; +} // ---------------------------------------------------------------------------- -exports.pause = function (media) { +export function pause(media) { return function () { media.pause(); }; -}; +} // ---------------------------------------------------------------------------- -exports.mediaGroup = function (media) { +export function mediaGroup(media) { return function () { return media.mediaGroup; }; -}; +} -exports.setMediaGroup = function (mediaGroup) { +export function setMediaGroup(mediaGroup) { return function (media) { return function () { media.mediaGroup = mediaGroup; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.controls = function (media) { +export function controls(media) { return function () { return media.controls; }; -}; +} -exports.setControls = function (controls) { +export function setControls(controls) { return function (media) { return function () { media.controls = controls; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.volume = function (media) { +export function volume(media) { return function () { return media.volume; }; -}; +} -exports.setVolume = function (volume) { +export function setVolume(volume) { return function (media) { return function () { media.volume = volume; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.muted = function (media) { +export function muted(media) { return function () { return media.muted; }; -}; +} -exports.setMuted = function (muted) { +export function setMuted(muted) { return function (media) { return function () { media.muted = muted; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultMuted = function (media) { +export function defaultMuted(media) { return function () { return media.defaultMuted; }; -}; +} -exports.setDefaultMuted = function (defaultMuted) { +export function setDefaultMuted(defaultMuted) { return function (media) { return function () { media.defaultMuted = defaultMuted; }; }; -}; +} diff --git a/src/Web/HTML/HTMLMetaElement.js b/src/Web/HTML/HTMLMetaElement.js index 96308de..63a1071 100644 --- a/src/Web/HTML/HTMLMetaElement.js +++ b/src/Web/HTML/HTMLMetaElement.js @@ -1,47 +1,45 @@ -"use strict"; - -exports.name = function (meta) { +export function name(meta) { return function () { return meta.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (meta) { return function () { meta.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.httpEquiv = function (meta) { +export function httpEquiv(meta) { return function () { return meta.httpEquiv; }; -}; +} -exports.setHttpEquiv = function (httpEquiv) { +export function setHttpEquiv(httpEquiv) { return function (meta) { return function () { meta.httpEquiv = httpEquiv; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.content = function (meta) { +export function content(meta) { return function () { return meta.content; }; -}; +} -exports.setContent = function (content) { +export function setContent(content) { return function (meta) { return function () { meta.content = content; }; }; -}; +} diff --git a/src/Web/HTML/HTMLMeterElement.js b/src/Web/HTML/HTMLMeterElement.js index c529741..5618755 100644 --- a/src/Web/HTML/HTMLMeterElement.js +++ b/src/Web/HTML/HTMLMeterElement.js @@ -1,103 +1,101 @@ -"use strict"; - -exports.value = function (meter) { +export function value(meter) { return function () { return meter.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (meter) { return function () { meter.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.min = function (meter) { +export function min(meter) { return function () { return meter.min; }; -}; +} -exports.setMin = function (min) { +export function setMin(min) { return function (meter) { return function () { meter.min = min; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.max = function (meter) { +export function max(meter) { return function () { return meter.max; }; -}; +} -exports.setMax = function (max) { +export function setMax(max) { return function (meter) { return function () { meter.max = max; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.low = function (meter) { +export function low(meter) { return function () { return meter.low; }; -}; +} -exports.setLow = function (low) { +export function setLow(low) { return function (meter) { return function () { meter.low = low; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.high = function (meter) { +export function high(meter) { return function () { return meter.high; }; -}; +} -exports.setHigh = function (high) { +export function setHigh(high) { return function (meter) { return function () { meter.high = high; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.optimum = function (meter) { +export function optimum(meter) { return function () { return meter.optimum; }; -}; +} -exports.setOptimum = function (optimum) { +export function setOptimum(optimum) { return function (meter) { return function () { meter.optimum = optimum; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (meter) { +export function labels(meter) { return function () { return meter.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLModElement.js b/src/Web/HTML/HTMLModElement.js index 7b0b5c2..c453ba9 100644 --- a/src/Web/HTML/HTMLModElement.js +++ b/src/Web/HTML/HTMLModElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.cite = function (mod) { +export function cite(mod) { return function () { return mod.cite; }; -}; +} -exports.setCite = function (cite) { +export function setCite(cite) { return function (mod) { return function () { mod.cite = cite; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.dateTime = function (mod) { +export function dateTime(mod) { return function () { return mod.dateTime; }; -}; +} -exports.setDateTime = function (dateTime) { +export function setDateTime(dateTime) { return function (mod) { return function () { mod.dateTime = dateTime; }; }; -}; +} diff --git a/src/Web/HTML/HTMLOListElement.js b/src/Web/HTML/HTMLOListElement.js index bed83a5..e45d4a7 100644 --- a/src/Web/HTML/HTMLOListElement.js +++ b/src/Web/HTML/HTMLOListElement.js @@ -1,47 +1,45 @@ -"use strict"; - -exports.reversed = function (ol) { +export function reversed(ol) { return function () { return ol.reversed; }; -}; +} -exports.setReversed = function (reversed) { +export function setReversed(reversed) { return function (ol) { return function () { ol.reversed = reversed; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.start = function (ol) { +export function start(ol) { return function () { return ol.start; }; -}; +} -exports.setStart = function (start) { +export function setStart(start) { return function (ol) { return function () { ol.start = start; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (ol) { +export function type_(ol) { return function () { return ol.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (ol) { return function () { ol.type = type; }; }; -}; +} diff --git a/src/Web/HTML/HTMLObjectElement.js b/src/Web/HTML/HTMLObjectElement.js index c0cc3db..e170215 100644 --- a/src/Web/HTML/HTMLObjectElement.js +++ b/src/Web/HTML/HTMLObjectElement.js @@ -1,169 +1,167 @@ -"use strict"; - -exports.data_ = function (object) { +export function data_(object) { return function () { return object.data; }; -}; +} -exports.setData = function (data) { +export function setData(data) { return function (object) { return function () { object.data = data; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (object) { +export function type_(object) { return function () { return object.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (object) { return function () { object.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.typeMustMatch = function (object) { +export function typeMustMatch(object) { return function () { return object.typeMustMatch; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (object) { +export function name(object) { return function () { return object.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (object) { return function () { object.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.useMap = function (object) { +export function useMap(object) { return function () { return object.useMap; }; -}; +} -exports.setUseMap = function (useMap) { +export function setUseMap(useMap) { return function (object) { return function () { object.useMap = useMap; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (object) { +export function _form(object) { return function () { return object.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.width = function (object) { +export function width(object) { return function () { return object.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (object) { return function () { object.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (object) { +export function height(object) { return function () { return object.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (object) { return function () { object.height = height; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._contentDocument = function (object) { +export function _contentDocument(object) { return function () { return object.contentDocument; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (object) { +export function willValidate(object) { return function () { return object.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (object) { +export function validity(object) { return function () { return object.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (object) { +export function validationMessage(object) { return function () { return object.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (object) { +export function checkValidity(object) { return function () { return object.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (object) { +export function reportValidity(object) { return function () { return object.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (object) { return function () { object.setCustomValidity(value); }; }; -}; +} diff --git a/src/Web/HTML/HTMLOptGroupElement.js b/src/Web/HTML/HTMLOptGroupElement.js index c0257c6..d21c3b1 100644 --- a/src/Web/HTML/HTMLOptGroupElement.js +++ b/src/Web/HTML/HTMLOptGroupElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.disabled = function (optgroup) { +export function disabled(optgroup) { return function () { return optgroup.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (optgroup) { return function () { optgroup.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.label = function (optgroup) { +export function label(optgroup) { return function () { return optgroup.label; }; -}; +} -exports.setLabel = function (label) { +export function setLabel(label) { return function (optgroup) { return function () { optgroup.label = label; }; }; -}; +} diff --git a/src/Web/HTML/HTMLOptionElement.js b/src/Web/HTML/HTMLOptionElement.js index 9285741..e3e7b94 100644 --- a/src/Web/HTML/HTMLOptionElement.js +++ b/src/Web/HTML/HTMLOptionElement.js @@ -1,111 +1,109 @@ -"use strict"; - -exports.disabled = function (option) { +export function disabled(option) { return function () { return option.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (option) { return function () { option.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (option) { +export function _form(option) { return function () { return option.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.label = function (option) { +export function label(option) { return function () { return option.label; }; -}; +} -exports.setLabel = function (label) { +export function setLabel(label) { return function (option) { return function () { option.label = label; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultSelected = function (option) { +export function defaultSelected(option) { return function () { return option.defaultSelected; }; -}; +} -exports.setDefaultSelected = function (defaultSelected) { +export function setDefaultSelected(defaultSelected) { return function (option) { return function () { option.defaultSelected = defaultSelected; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selected = function (option) { +export function selected(option) { return function () { return option.selected; }; -}; +} -exports.setSelected = function (selected) { +export function setSelected(selected) { return function (option) { return function () { option.selected = selected; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (option) { +export function value(option) { return function () { return option.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (option) { return function () { option.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.text = function (option) { +export function text(option) { return function () { return option.text; }; -}; +} -exports.setText = function (text) { +export function setText(text) { return function (option) { return function () { option.text = text; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.index = function (option) { +export function index(option) { return function () { return option.index; }; -}; +} diff --git a/src/Web/HTML/HTMLOutputElement.js b/src/Web/HTML/HTMLOutputElement.js index bb391da..c6db94f 100644 --- a/src/Web/HTML/HTMLOutputElement.js +++ b/src/Web/HTML/HTMLOutputElement.js @@ -1,121 +1,119 @@ -"use strict"; - -exports._form = function (output) { +export function _form(output) { return function () { return output.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (output) { +export function name(output) { return function () { return output.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (output) { return function () { output.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (output) { +export function type_(output) { return function () { return output.type; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultValue = function (output) { +export function defaultValue(output) { return function () { return output.defaultValue; }; -}; +} -exports.setDefaultValue = function (defaultValue) { +export function setDefaultValue(defaultValue) { return function (output) { return function () { output.defaultValue = defaultValue; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (output) { +export function value(output) { return function () { return output.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (output) { return function () { output.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (output) { +export function willValidate(output) { return function () { return output.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (output) { +export function validity(output) { return function () { return output.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (output) { +export function validationMessage(output) { return function () { return output.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (output) { +export function checkValidity(output) { return function () { return output.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (output) { +export function reportValidity(output) { return function () { return output.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (output) { return function () { output.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (output) { +export function labels(output) { return function () { return output.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLParamElement.js b/src/Web/HTML/HTMLParamElement.js index f3a7864..0be1e0f 100644 --- a/src/Web/HTML/HTMLParamElement.js +++ b/src/Web/HTML/HTMLParamElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.name = function (param) { +export function name(param) { return function () { return param.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (param) { return function () { param.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (param) { +export function value(param) { return function () { return param.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (param) { return function () { param.value = value; }; }; -}; +} diff --git a/src/Web/HTML/HTMLProgressElement.js b/src/Web/HTML/HTMLProgressElement.js index 4d81b7a..0ee7a1d 100644 --- a/src/Web/HTML/HTMLProgressElement.js +++ b/src/Web/HTML/HTMLProgressElement.js @@ -1,47 +1,45 @@ -"use strict"; - -exports.value = function (progress) { +export function value(progress) { return function () { return progress.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (progress) { return function () { progress.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.max = function (progress) { +export function max(progress) { return function () { return progress.max; }; -}; +} -exports.setMax = function (max) { +export function setMax(max) { return function (progress) { return function () { progress.max = max; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.position = function (progress) { +export function position(progress) { return function () { return progress.position; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (progress) { +export function labels(progress) { return function () { return progress.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLQuoteElement.js b/src/Web/HTML/HTMLQuoteElement.js index 73812a1..2cb2c2d 100644 --- a/src/Web/HTML/HTMLQuoteElement.js +++ b/src/Web/HTML/HTMLQuoteElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.cite = function (quote) { +export function cite(quote) { return function () { return quote.cite; }; -}; +} -exports.setCite = function (cite) { +export function setCite(cite) { return function (quote) { return function () { quote.cite = cite; }; }; -}; +} diff --git a/src/Web/HTML/HTMLScriptElement.js b/src/Web/HTML/HTMLScriptElement.js index d202b2e..6252e57 100644 --- a/src/Web/HTML/HTMLScriptElement.js +++ b/src/Web/HTML/HTMLScriptElement.js @@ -1,111 +1,109 @@ -"use strict"; - -exports.src = function (script) { +export function src(script) { return function () { return script.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (script) { return function () { script.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (script) { +export function type_(script) { return function () { return script.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (script) { return function () { script.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.charset = function (script) { +export function charset(script) { return function () { return script.charset; }; -}; +} -exports.setCharset = function (charset) { +export function setCharset(charset) { return function (script) { return function () { script.charset = charset; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.async = function (script) { +export function async(script) { return function () { return script.async; }; -}; +} -exports.setAsync = function (async) { +export function setAsync(async) { return function (script) { return function () { script.async = async; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.defer = function (script) { +export function defer(script) { return function () { return script.defer; }; -}; +} -exports.setDefer = function (defer) { +export function setDefer(defer) { return function (script) { return function () { script.defer = defer; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.crossOrigin = function (script) { +export function crossOrigin(script) { return function () { return script.crossOrigin; }; -}; +} -exports.setCrossOrigin = function (crossOrigin) { +export function setCrossOrigin(crossOrigin) { return function (script) { return function () { script.crossOrigin = crossOrigin; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.text = function (script) { +export function text(script) { return function () { return script.text; }; -}; +} -exports.setText = function (text) { +export function setText(text) { return function (script) { return function () { script.text = text; }; }; -}; +} diff --git a/src/Web/HTML/HTMLSelectElement.js b/src/Web/HTML/HTMLSelectElement.js index 19b232e..8a0cc1d 100644 --- a/src/Web/HTML/HTMLSelectElement.js +++ b/src/Web/HTML/HTMLSelectElement.js @@ -1,225 +1,223 @@ -"use strict"; - -exports.autofocus = function (select) { +export function autofocus(select) { return function () { return select.autofocus; }; -}; +} -exports.setAutofocus = function (autofocus) { +export function setAutofocus(autofocus) { return function (select) { return function () { select.autofocus = autofocus; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.disabled = function (select) { +export function disabled(select) { return function () { return select.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (select) { return function () { select.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.multiple = function (select) { +export function multiple(select) { return function () { return select.multiple; }; -}; +} -exports.setMultiple = function (multiple) { +export function setMultiple(multiple) { return function (select) { return function () { select.multiple = multiple; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (select) { +export function _form(select) { return function () { return select.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (select) { +export function name(select) { return function () { return select.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (select) { return function () { select.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.required = function (select) { +export function required(select) { return function () { return select.required; }; -}; +} -exports.setRequired = function (required) { +export function setRequired(required) { return function (select) { return function () { select.required = required; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.size = function (select) { +export function size(select) { return function () { return select.size; }; -}; +} -exports.setSize = function (size) { +export function setSize(size) { return function (select) { return function () { select.size = size; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (select) { +export function type_(select) { return function () { return select.type; }; -}; +} // ---------------------------------------------------------------------------- -exports.length = function (select) { +export function length(select) { return function () { return select.length; }; -}; +} -exports.setLength = function (length) { +export function setLength(length) { return function (select) { return function () { select.length = length; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectedOptions = function (select) { +export function selectedOptions(select) { return function () { return select.selectedOptions; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectedIndex = function (select) { +export function selectedIndex(select) { return function () { return select.selectedIndex; }; -}; +} -exports.setSelectedIndex = function (selectedIndex) { +export function setSelectedIndex(selectedIndex) { return function (select) { return function () { select.selectedIndex = selectedIndex; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (select) { +export function value(select) { return function () { return select.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (select) { return function () { select.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (select) { +export function willValidate(select) { return function () { return select.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (select) { +export function validity(select) { return function () { return select.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (select) { +export function validationMessage(select) { return function () { return select.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (select) { +export function checkValidity(select) { return function () { return select.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (select) { +export function reportValidity(select) { return function () { return select.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (select) { return function () { select.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (select) { +export function labels(select) { return function () { return select.labels; }; -}; +} diff --git a/src/Web/HTML/HTMLSourceElement.js b/src/Web/HTML/HTMLSourceElement.js index 6b8bc4e..7ec032d 100644 --- a/src/Web/HTML/HTMLSourceElement.js +++ b/src/Web/HTML/HTMLSourceElement.js @@ -1,47 +1,45 @@ -"use strict"; - -exports.src = function (source) { +export function src(source) { return function () { return source.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (source) { return function () { source.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (source) { +export function type_(source) { return function () { return source.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (source) { return function () { source.type = type; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.media = function (source) { +export function media(source) { return function () { return source.media; }; -}; +} -exports.setMedia = function (media) { +export function setMedia(media) { return function (source) { return function () { source.media = media; }; }; -}; +} diff --git a/src/Web/HTML/HTMLStyleElement.js b/src/Web/HTML/HTMLStyleElement.js index ba4eae2..6a2ed7b 100644 --- a/src/Web/HTML/HTMLStyleElement.js +++ b/src/Web/HTML/HTMLStyleElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.media = function (style) { +export function media(style) { return function () { return style.media; }; -}; +} -exports.setMedia = function (media) { +export function setMedia(media) { return function (style) { return function () { style.media = media; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (style) { +export function type_(style) { return function () { return style.type; }; -}; +} -exports.setType = function (type) { +export function setType(type) { return function (style) { return function () { style.type = type; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTableCellElement.js b/src/Web/HTML/HTMLTableCellElement.js index 827bd80..564103e 100644 --- a/src/Web/HTML/HTMLTableCellElement.js +++ b/src/Web/HTML/HTMLTableCellElement.js @@ -1,39 +1,37 @@ -"use strict"; - -exports.colSpan = function (cell) { +export function colSpan(cell) { return function () { return cell.colSpan; }; -}; +} -exports.setColSpan = function (colSpan) { +export function setColSpan(colSpan) { return function (cell) { return function () { cell.colSpan = colSpan; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rowSpan = function (cell) { +export function rowSpan(cell) { return function () { return cell.rowSpan; }; -}; +} -exports.setRowSpan = function (rowSpan) { +export function setRowSpan(rowSpan) { return function (cell) { return function () { cell.rowSpan = rowSpan; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.cellIndex = function (cell) { +export function cellIndex(cell) { return function () { return cell.cellIndex; }; -}; +} diff --git a/src/Web/HTML/HTMLTableColElement.js b/src/Web/HTML/HTMLTableColElement.js index e29c5ec..114f05a 100644 --- a/src/Web/HTML/HTMLTableColElement.js +++ b/src/Web/HTML/HTMLTableColElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.span = function (col) { +export function span(col) { return function () { return col.span; }; -}; +} -exports.setSpan = function (span) { +export function setSpan(span) { return function (col) { return function () { col.span = span; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTableElement.js b/src/Web/HTML/HTMLTableElement.js index 9fc1fc7..0e26106 100644 --- a/src/Web/HTML/HTMLTableElement.js +++ b/src/Web/HTML/HTMLTableElement.js @@ -1,155 +1,153 @@ -"use strict"; - -exports._caption = function (table) { +export function _caption(table) { return function () { return table.caption; }; -}; +} -exports._setCaption = function (caption) { +export function _setCaption(caption) { return function (table) { return function () { table.caption = caption; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.createCaption = function (table) { +export function createCaption(table) { return function () { return table.createCaption(); }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteCaption = function (table) { +export function deleteCaption(table) { return function () { table.deleteCaption(); }; -}; +} // ---------------------------------------------------------------------------- -exports._tHead = function (table) { +export function _tHead(table) { return function () { return table.tHead; }; -}; +} -exports._setTHead = function (tHead) { +export function _setTHead(tHead) { return function (table) { return function () { table.tHead = tHead; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.createTHead = function (table) { +export function createTHead(table) { return function () { return table.createTHead(); }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteTHead = function (table) { +export function deleteTHead(table) { return function () { table.deleteTHead(); }; -}; +} // ---------------------------------------------------------------------------- -exports._tFoot = function (table) { +export function _tFoot(table) { return function () { return table.tFoot; }; -}; +} -exports._setTFoot = function (tFoot) { +export function _setTFoot(tFoot) { return function (table) { return function () { table.tFoot = tFoot; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.createTFoot = function (table) { +export function createTFoot(table) { return function () { return table.createTFoot(); }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteTFoot = function (table) { +export function deleteTFoot(table) { return function () { table.deleteTFoot(); }; -}; +} // ---------------------------------------------------------------------------- -exports.tBodies = function (table) { +export function tBodies(table) { return function () { return table.tBodies; }; -}; +} // ---------------------------------------------------------------------------- -exports.createTBody = function (table) { +export function createTBody(table) { return function () { return table.createTBody(); }; -}; +} // ---------------------------------------------------------------------------- -exports.rows = function (table) { +export function rows(table) { return function () { return table.rows; }; -}; +} // ---------------------------------------------------------------------------- -exports.insertRowAt = function (index) { +export function insertRowAt(index) { return function (table) { return function () { return table.insertRow(index); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteRow = function (index) { +export function deleteRow(index) { return function (table) { return function () { table.deleteRow(index); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.border = function (table) { +export function border(table) { return function () { return table.border; }; -}; +} -exports.setBorder = function (border) { +export function setBorder(border) { return function (table) { return function () { table.border = border; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTableHeaderCellElement.js b/src/Web/HTML/HTMLTableHeaderCellElement.js index 3c20a99..397bd71 100644 --- a/src/Web/HTML/HTMLTableHeaderCellElement.js +++ b/src/Web/HTML/HTMLTableHeaderCellElement.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.scope = function (cell) { +export function scope(cell) { return function () { return cell.scope; }; -}; +} -exports.setScope = function (scope) { +export function setScope(scope) { return function (cell) { return function () { cell.scope = scope; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.abbr = function (cell) { +export function abbr(cell) { return function () { return cell.abbr; }; -}; +} -exports.setAbbr = function (abbr) { +export function setAbbr(abbr) { return function (cell) { return function () { cell.abbr = abbr; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTableRowElement.js b/src/Web/HTML/HTMLTableRowElement.js index 75d8ecb..8d1a789 100644 --- a/src/Web/HTML/HTMLTableRowElement.js +++ b/src/Web/HTML/HTMLTableRowElement.js @@ -1,43 +1,41 @@ -"use strict"; - -exports.rowIndex = function (row) { +export function rowIndex(row) { return function () { return row.rowIndex; }; -}; +} // ---------------------------------------------------------------------------- -exports.sectionRowIndex = function (row) { +export function sectionRowIndex(row) { return function () { return row.sectionRowIndex; }; -}; +} // ---------------------------------------------------------------------------- -exports.cells = function (row) { +export function cells(row) { return function () { return row.cells; }; -}; +} // ---------------------------------------------------------------------------- -exports.insertCellAt = function (index) { +export function insertCellAt(index) { return function (row) { return function () { return row.insertCell(index); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteCell = function (index) { +export function deleteCell(index) { return function (row) { return function () { row.deleteCell(index); }; }; -}; +} diff --git a/src/Web/HTML/HTMLTableSectionElement.js b/src/Web/HTML/HTMLTableSectionElement.js index f571cc2..d32d897 100644 --- a/src/Web/HTML/HTMLTableSectionElement.js +++ b/src/Web/HTML/HTMLTableSectionElement.js @@ -1,27 +1,25 @@ -"use strict"; - -exports.rows = function (section) { +export function rows(section) { return function () { return section.rows; }; -}; +} // ---------------------------------------------------------------------------- -exports.insertRowAt = function (index) { +export function insertRowAt(index) { return function (section) { return function () { return section.insertRow(index); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.deleteRow = function (index) { +export function deleteRow(index) { return function (section) { return function () { section.deleteRow(index); }; }; -}; +} diff --git a/src/Web/HTML/HTMLTemplateElement.js b/src/Web/HTML/HTMLTemplateElement.js index 9e5508a..a964088 100644 --- a/src/Web/HTML/HTMLTemplateElement.js +++ b/src/Web/HTML/HTMLTemplateElement.js @@ -1,7 +1,5 @@ -"use strict"; - -exports.content = function (template) { +export function content(template) { return function () { return template.content; }; -}; +} diff --git a/src/Web/HTML/HTMLTextAreaElement.js b/src/Web/HTML/HTMLTextAreaElement.js index fc1d92f..5ec00cb 100644 --- a/src/Web/HTML/HTMLTextAreaElement.js +++ b/src/Web/HTML/HTMLTextAreaElement.js @@ -1,398 +1,396 @@ -"use strict"; - -exports.autocomplete = function (textarea) { +export function autocomplete(textarea) { return function () { return textarea.autocomplete; }; -}; +} -exports.setAutocomplete = function (autocomplete) { +export function setAutocomplete(autocomplete) { return function (textarea) { return function () { textarea.autocomplete = autocomplete; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.autofocus = function (textarea) { +export function autofocus(textarea) { return function () { return textarea.autofocus; }; -}; +} -exports.setAutofocus = function (autofocus) { +export function setAutofocus(autofocus) { return function (textarea) { return function () { textarea.autofocus = autofocus; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.cols = function (textarea) { +export function cols(textarea) { return function () { return textarea.cols; }; -}; +} -exports.setCols = function (cols) { +export function setCols(cols) { return function (textarea) { return function () { textarea.cols = cols; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.dirName = function (textarea) { +export function dirName(textarea) { return function () { return textarea.dirName; }; -}; +} -exports.setDirName = function (dirName) { +export function setDirName(dirName) { return function (textarea) { return function () { textarea.dirName = dirName; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.disabled = function (textarea) { +export function disabled(textarea) { return function () { return textarea.disabled; }; -}; +} -exports.setDisabled = function (disabled) { +export function setDisabled(disabled) { return function (textarea) { return function () { textarea.disabled = disabled; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._form = function (textarea) { +export function _form(textarea) { return function () { return textarea.form; }; -}; +} // ---------------------------------------------------------------------------- -exports.maxLength = function (textarea) { +export function maxLength(textarea) { return function () { return textarea.maxLength; }; -}; +} -exports.setMaxLength = function (maxLength) { +export function setMaxLength(maxLength) { return function (textarea) { return function () { textarea.maxLength = maxLength; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.minLength = function (textarea) { +export function minLength(textarea) { return function () { return textarea.minLength; }; -}; +} -exports.setMinLength = function (minLength) { +export function setMinLength(minLength) { return function (textarea) { return function () { textarea.minLength = minLength; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.name = function (textarea) { +export function name(textarea) { return function () { return textarea.name; }; -}; +} -exports.setName = function (name) { +export function setName(name) { return function (textarea) { return function () { textarea.name = name; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.placeholder = function (textarea) { +export function placeholder(textarea) { return function () { return textarea.placeholder; }; -}; +} -exports.setPlaceholder = function (placeholder) { +export function setPlaceholder(placeholder) { return function (textarea) { return function () { textarea.placeholder = placeholder; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.readOnly = function (textarea) { +export function readOnly(textarea) { return function () { return textarea.readOnly; }; -}; +} -exports.setReadOnly = function (readOnly) { +export function setReadOnly(readOnly) { return function (textarea) { return function () { textarea.readOnly = readOnly; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.required = function (textarea) { +export function required(textarea) { return function () { return textarea.required; }; -}; +} -exports.setRequired = function (required) { +export function setRequired(required) { return function (textarea) { return function () { textarea.required = required; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.rows = function (textarea) { +export function rows(textarea) { return function () { return textarea.rows; }; -}; +} -exports.setRows = function (rows) { +export function setRows(rows) { return function (textarea) { return function () { textarea.rows = rows; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.wrap = function (textarea) { +export function wrap(textarea) { return function () { return textarea.wrap; }; -}; +} -exports.setWrap = function (wrap) { +export function setWrap(wrap) { return function (textarea) { return function () { textarea.wrap = wrap; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.type_ = function (textarea) { +export function type_(textarea) { return function () { return textarea.type; }; -}; +} // ---------------------------------------------------------------------------- -exports.defaultValue = function (textarea) { +export function defaultValue(textarea) { return function () { return textarea.defaultValue; }; -}; +} -exports.setDefaultValue = function (defaultValue) { +export function setDefaultValue(defaultValue) { return function (textarea) { return function () { textarea.defaultValue = defaultValue; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.value = function (textarea) { +export function value(textarea) { return function () { return textarea.value; }; -}; +} -exports.setValue = function (value) { +export function setValue(value) { return function (textarea) { return function () { textarea.value = value; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.textLength = function (textarea) { +export function textLength(textarea) { return function () { return textarea.textLength; }; -}; +} // ---------------------------------------------------------------------------- -exports.willValidate = function (textarea) { +export function willValidate(textarea) { return function () { return textarea.willValidate; }; -}; +} // ---------------------------------------------------------------------------- -exports.validity = function (textarea) { +export function validity(textarea) { return function () { return textarea.validity; }; -}; +} // ---------------------------------------------------------------------------- -exports.validationMessage = function (textarea) { +export function validationMessage(textarea) { return function () { return textarea.validationMessage; }; -}; +} // ---------------------------------------------------------------------------- -exports.checkValidity = function (textarea) { +export function checkValidity(textarea) { return function () { return textarea.checkValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.reportValidity = function (textarea) { +export function reportValidity(textarea) { return function () { return textarea.reportValidity(); }; -}; +} // ---------------------------------------------------------------------------- -exports.setCustomValidity = function (value) { +export function setCustomValidity(value) { return function (textarea) { return function () { textarea.setCustomValidity(value); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.labels = function (textarea) { +export function labels(textarea) { return function () { return textarea.labels; }; -}; +} // ---------------------------------------------------------------------------- -exports.select = function (textarea) { +export function select(textarea) { return function () { textarea.select(); }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionStart = function (textarea) { +export function selectionStart(textarea) { return function () { return textarea.selectionStart; }; -}; +} -exports.setSelectionStart = function (selectionStart) { +export function setSelectionStart(selectionStart) { return function (textarea) { return function () { textarea.selectionStart = selectionStart; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionEnd = function (textarea) { +export function selectionEnd(textarea) { return function () { return textarea.selectionEnd; }; -}; +} -exports.setSelectionEnd = function (selectionEnd) { +export function setSelectionEnd(selectionEnd) { return function (textarea) { return function () { textarea.selectionEnd = selectionEnd; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.selectionDirection = function (textarea) { +export function selectionDirection(textarea) { return function () { return textarea.selectionDirection; }; -}; +} -exports.setSelectionDirection = function (selectionDirection) { +export function setSelectionDirection(selectionDirection) { return function (textarea) { return function () { textarea.selectionDirection = selectionDirection; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.setRangeText = function (replacement) { +export function setRangeText(replacement) { return function (textarea) { return function () { textarea.setRangeText(replacement); }; }; -}; +} -exports._setRangeText = function (replacement, start, end, selectionMode, textarea) { +export function _setRangeText(replacement, start, end, selectionMode, textarea) { textarea.setRangeText(replacement, start, end, selectionMode); -}; +} // ---------------------------------------------------------------------------- -exports.setSelectionRange = function (start) { +export function setSelectionRange(start) { return function (end) { return function (direction) { return function (textarea) { @@ -402,4 +400,4 @@ exports.setSelectionRange = function (start) { }; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTimeElement.js b/src/Web/HTML/HTMLTimeElement.js index 4117181..2e94390 100644 --- a/src/Web/HTML/HTMLTimeElement.js +++ b/src/Web/HTML/HTMLTimeElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.dateTime = function (time) { +export function dateTime(time) { return function () { return time.dateTime; }; -}; +} -exports.setDateTime = function (dateTime) { +export function setDateTime(dateTime) { return function (time) { return function () { time.dateTime = dateTime; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTitleElement.js b/src/Web/HTML/HTMLTitleElement.js index d3440f9..1855d47 100644 --- a/src/Web/HTML/HTMLTitleElement.js +++ b/src/Web/HTML/HTMLTitleElement.js @@ -1,15 +1,13 @@ -"use strict"; - -exports.text = function (title) { +export function text(title) { return function () { return title.text; }; -}; +} -exports.setText = function (text) { +export function setText(text) { return function (title) { return function () { title.text = text; }; }; -}; +} diff --git a/src/Web/HTML/HTMLTrackElement.js b/src/Web/HTML/HTMLTrackElement.js index 1050ce8..a1b6c22 100644 --- a/src/Web/HTML/HTMLTrackElement.js +++ b/src/Web/HTML/HTMLTrackElement.js @@ -1,85 +1,84 @@ -"use strict"; - -exports.kind = function (track) { +export function kind(track) { return function () { return track.kind; }; -}; +} -exports.setKind = function (kind) { +export function setKind(kind) { return function (track) { return function () { track.kind = kind; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.src = function (track) { +export function src(track) { return function () { return track.src; }; -}; +} -exports.setSrc = function (src) { +export function setSrc(src) { return function (track) { return function () { track.src = src; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.srclang = function (track) { +export function srclang(track) { return function () { return track.srclang; }; -}; +} -exports.setSrclang = function (srclang) { +export function setSrclang(srclang) { return function (track) { return function () { track.srclang = srclang; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.label = function (track) { +export function label(track) { return function () { return track.label; }; -}; +} -exports.setLabel = function (label) { +export function setLabel(label) { return function (track) { return function () { track.label = label; }; }; -}; +} // ---------------------------------------------------------------------------- -exports["default"] = function (track) { +const defaultImpl = function (track) { return function () { return track["default"]; }; }; +export { defaultImpl as default }; -exports.setDefault = function (def) { +export function setDefault(def) { return function (track) { return function () { track["default"] = def; }; }; -}; +} // ---------------------------------------------------------------------------- -exports._readyState = function (track) { +export function _readyState(track) { return track.readyState; -}; +} diff --git a/src/Web/HTML/HTMLVideoElement.js b/src/Web/HTML/HTMLVideoElement.js index 6249364..28b3bb5 100644 --- a/src/Web/HTML/HTMLVideoElement.js +++ b/src/Web/HTML/HTMLVideoElement.js @@ -1,65 +1,63 @@ -"use strict"; - // ---------------------------------------------------------------------------- -exports.width = function (video) { +export function width(video) { return function () { return video.width; }; -}; +} -exports.setWidth = function (width) { +export function setWidth(width) { return function (video) { return function () { video.width = width; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.height = function (video) { +export function height(video) { return function () { return video.height; }; -}; +} -exports.setHeight = function (height) { +export function setHeight(height) { return function (video) { return function () { video.height = height; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.videoWidth = function (video) { +export function videoWidth(video) { return function () { return video.videoWidth; }; -}; +} // ---------------------------------------------------------------------------- -exports.videoHeight = function (video) { +export function videoHeight(video) { return function () { return video.videoHeight; }; -}; +} // ---------------------------------------------------------------------------- -exports.poster = function (video) { +export function poster(video) { return function () { return video.poster; }; -}; +} -exports.setPoster = function (poster) { +export function setPoster(poster) { return function (video) { return function () { video.poster = poster; }; }; -}; +} diff --git a/src/Web/HTML/History.js b/src/Web/HTML/History.js index e161c66..6569fe1 100644 --- a/src/Web/HTML/History.js +++ b/src/Web/HTML/History.js @@ -1,23 +1,24 @@ -"use strict"; - -exports.back = function(history) { +export function back(history) { return function() { return history.back(); }; -}; -exports.forward = function(history) { +} + +export function forward(history) { return function() { return history.forward(); }; -}; -exports.go = function(delta) { +} + +export function go(delta) { return function(history) { return function() { return history.go(delta); }; }; -}; -exports.pushState = function(a) { +} + +export function pushState(a) { return function(docTitle) { return function(url) { return function(history) { @@ -27,8 +28,9 @@ exports.pushState = function(a) { }; }; }; -}; -exports.replaceState = function(a) { +} + +export function replaceState(a) { return function(docTitle) { return function(url) { return function(history) { @@ -38,9 +40,10 @@ exports.replaceState = function(a) { }; }; }; -}; -exports.state = function(history) { +} + +export function state(history) { return function() { return history.state; }; -}; +} diff --git a/src/Web/HTML/Location.js b/src/Web/HTML/Location.js index ecb47e9..0b97f15 100644 --- a/src/Web/HTML/Location.js +++ b/src/Web/HTML/Location.js @@ -1,171 +1,169 @@ -"use strict"; - -exports.hash = function (location) { +export function hash(location) { return function () { return location.hash; }; -}; +} -exports.setHash = function (hash) { +export function setHash(hash) { return function (location) { return function () { location.hash = hash; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.host = function (location) { +export function host(location) { return function () { return location.host; }; -}; +} -exports.setHost = function (host) { +export function setHost(host) { return function (location) { return function () { location.host = host; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.hostname = function (location) { +export function hostname(location) { return function () { return location.hostname; }; -}; +} -exports.setHostname = function (hostname) { +export function setHostname(hostname) { return function (location) { return function () { location.hostname = hostname; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.href = function (location) { +export function href(location) { return function () { return location.href; }; -}; +} -exports.setHref = function (href) { +export function setHref(href) { return function (location) { return function () { location.href = href; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.origin = function (location) { +export function origin(location) { return function () { return location.origin; }; -}; +} -exports.setOrigin = function (origin) { +export function setOrigin(origin) { return function (location) { return function () { location.origin = origin; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.pathname = function (location) { +export function pathname(location) { return function () { return location.pathname; }; -}; +} -exports.setPathname = function (pathname) { +export function setPathname(pathname) { return function (location) { return function () { location.pathname = pathname; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.port = function (location) { +export function port(location) { return function () { return location.port; }; -}; +} -exports.setPort = function (port) { +export function setPort(port) { return function (location) { return function () { location.port = port; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.protocol = function (location) { +export function protocol(location) { return function () { return location.protocol; }; -}; +} -exports.setProtocol = function (protocol) { +export function setProtocol(protocol) { return function (location) { return function () { location.protocol = protocol; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.search = function (location) { +export function search(location) { return function () { return location.search; }; -}; +} -exports.setSearch = function (search) { +export function setSearch(search) { return function (location) { return function () { location.search = search; }; }; -}; +} // ---------------------------------------------------------------------------- -exports.assign = function (url) { +export function assign(url) { return function (location) { return function () { location.assign(url); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.replace = function (url) { +export function replace(url) { return function (location) { return function () { location.replace(url); }; }; -}; +} // ---------------------------------------------------------------------------- -exports.reload = function (location) { +export function reload(location) { return function () { location.reload(); }; -}; +} diff --git a/src/Web/HTML/Navigator.js b/src/Web/HTML/Navigator.js index 66c5e23..631c243 100644 --- a/src/Web/HTML/Navigator.js +++ b/src/Web/HTML/Navigator.js @@ -1,31 +1,29 @@ -"use strict"; - -exports.language = function (navigator) { +export function language(navigator) { return function () { return navigator.language; }; -}; +} -exports.languages = function (navigator) { +export function languages(navigator) { return function () { return navigator.languages; }; -}; +} -exports.onLine = function (navigator) { +export function onLine(navigator) { return function () { return navigator.onLine; }; -}; +} -exports.platform = function (navigator) { +export function platform(navigator) { return function () { return navigator.platform; }; -}; +} -exports.userAgent = function (navigator) { +export function userAgent(navigator) { return function () { return navigator.userAgent; }; -}; +} diff --git a/src/Web/HTML/ValidityState.js b/src/Web/HTML/ValidityState.js index 366a780..8772350 100644 --- a/src/Web/HTML/ValidityState.js +++ b/src/Web/HTML/ValidityState.js @@ -1,5 +1,3 @@ -"use strict"; - -exports.readProp = function (prop, vs) { +export function readProp(prop, vs) { return vs[prop]; -}; +} diff --git a/src/Web/HTML/Window.js b/src/Web/HTML/Window.js index 0048eac..2d7bb0a 100644 --- a/src/Web/HTML/Window.js +++ b/src/Web/HTML/Window.js @@ -1,58 +1,56 @@ -"use strict"; - -exports.document = function (window) { +export function document(window) { return function () { return window.document; }; -}; +} -exports.navigator = function (window) { +export function navigator(window) { return function () { return window.navigator; }; -}; +} -exports.location = function (window) { +export function location(window) { return function () { return window.location; }; -}; +} -exports.history = function(window) { +export function history(window) { return function() { return window.history; }; -}; +} -exports.innerWidth = function (window) { +export function innerWidth(window) { return function () { return window.innerWidth; }; -}; +} -exports.innerHeight = function (window) { +export function innerHeight(window) { return function () { return window.innerHeight; }; -}; +} -exports.alert = function (str) { +export function alert(str) { return function (window) { return function () { window.alert(str); }; }; -}; +} -exports.confirm = function (str) { +export function confirm(str) { return function (window) { return function () { return window.confirm(str); }; }; -}; +} -exports.moveBy = function (xDelta) { +export function moveBy(xDelta) { return function (yDelta) { return function (window) { return function () { @@ -60,9 +58,9 @@ exports.moveBy = function (xDelta) { }; }; }; -}; +} -exports.moveTo = function (width) { +export function moveTo(width) { return function (height) { return function (window) { return function () { @@ -70,9 +68,9 @@ exports.moveTo = function (width) { }; }; }; -}; +} -exports._open = function (url) { +export function _open(url) { return function (name) { return function (features) { return function (window) { @@ -82,27 +80,27 @@ exports._open = function (url) { }; }; }; -}; +} -exports.outerHeight = function (window) { +export function outerHeight(window) { return function () { return window.outerHeight; }; -}; +} -exports.outerWidth = function (window) { +export function outerWidth(window) { return function () { return window.outerWidth; }; -}; +} -exports.print = function (window) { +export function print(window) { return function () { window.print(); }; -}; +} -exports._prompt = function (str) { +export function _prompt(str) { return function (defaultText) { return function (window) { return function () { @@ -110,9 +108,9 @@ exports._prompt = function (str) { }; }; }; -}; +} -exports.resizeBy = function (xDelta) { +export function resizeBy(xDelta) { return function (yDelta) { return function (window) { return function () { @@ -120,9 +118,9 @@ exports.resizeBy = function (xDelta) { }; }; }; -}; +} -exports.resizeTo = function (width) { +export function resizeTo(width) { return function (height) { return function (window) { return function () { @@ -130,21 +128,21 @@ exports.resizeTo = function (width) { }; }; }; -}; +} -exports.screenX = function (window) { +export function screenX(window) { return function () { return window.screenX; }; -}; +} -exports.screenY = function (window) { +export function screenY(window) { return function () { return window.screenY; }; -}; +} -exports.scroll = function (xCoord) { +export function scroll(xCoord) { return function (yCoord) { return function (window) { return function () { @@ -152,9 +150,9 @@ exports.scroll = function (xCoord) { }; }; }; -}; +} -exports.scrollBy = function (xCoord) { +export function scrollBy(xCoord) { return function (yCoord) { return function (window) { return function () { @@ -162,49 +160,49 @@ exports.scrollBy = function (xCoord) { }; }; }; -}; +} -exports.scrollX = function (window) { +export function scrollX(window) { return function () { return window.scrollX; }; -}; +} -exports.scrollY = function (window) { +export function scrollY(window) { return function () { return window.scrollY; }; -}; +} -exports.localStorage = function (window) { +export function localStorage(window) { return function () { return window.localStorage; }; -}; +} -exports.sessionStorage = function (window) { +export function sessionStorage(window) { return function () { return window.sessionStorage; }; -}; +} -exports.requestAnimationFrame = function(fn) { +export function requestAnimationFrame(fn) { return function(window) { return function() { return window.requestAnimationFrame(fn); }; }; -}; +} -exports.cancelAnimationFrame = function(id) { +export function cancelAnimationFrame(id) { return function(window) { return function() { return window.cancelAnimationFrame(id); }; }; -}; +} -exports.requestIdleCallback = function(opts) { +export function requestIdleCallback(opts) { return function(fn) { return function(window) { return function() { @@ -212,24 +210,24 @@ exports.requestIdleCallback = function(opts) { }; }; }; -}; +} -exports.cancelIdleCallback = function(id) { +export function cancelIdleCallback(id) { return function(window) { return function() { return window.cancelIdleCallback(id); }; }; -}; +} -exports.parent = function(window) { +export function parent(window) { return function() { return window.parent; }; -}; +} -exports._opener = function(window) { +export function _opener(window) { return function() { return window.opener; }; -}; +} From 469f30c121d8c7b5f6a04f1264624d11685a1691 Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Thu, 24 Mar 2022 21:37:24 -0500 Subject: [PATCH 43/51] Drop getBoundingClientRect (#73) --- CHANGELOG.md | 1 + src/Web/HTML/HTMLElement.js | 14 -------------- src/Web/HTML/HTMLElement.purs | 13 ------------- 3 files changed, 1 insertion(+), 27 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 85fa04a..8cd30b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Move `getBoundingClientRect` to `purescript-web-dom` (#73 by @JordanMartinez) New features: diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index aee4f0c..2349404 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -185,20 +185,6 @@ export function blur(elt) { // - CSSOM --------------------------------------------------------------------- -export function getBoundingClientRect(el) { - return function () { - var rect = el.getBoundingClientRect(); - return { - top: rect.top, - right: rect.right, - bottom: rect.bottom, - left: rect.left, - width: rect.width, - height: rect.height - }; - }; -} - export function _offsetParent(el) { return function () { return el.offsetParent; diff --git a/src/Web/HTML/HTMLElement.purs b/src/Web/HTML/HTMLElement.purs index 93e0d1f..d310cd3 100644 --- a/src/Web/HTML/HTMLElement.purs +++ b/src/Web/HTML/HTMLElement.purs @@ -35,8 +35,6 @@ module Web.HTML.HTMLElement , click , focus , blur - , getBoundingClientRect - , DOMRect , offsetParent , offsetTop , offsetLeft @@ -133,17 +131,6 @@ foreign import click :: HTMLElement -> Effect Unit foreign import focus :: HTMLElement -> Effect Unit foreign import blur :: HTMLElement -> Effect Unit -type DOMRect = - { top :: Number - , right :: Number - , bottom :: Number - , left :: Number - , width :: Number - , height :: Number - } - -foreign import getBoundingClientRect :: HTMLElement -> Effect DOMRect - foreign import _offsetParent :: HTMLElement -> Effect (Nullable Element) offsetParent :: HTMLElement -> Effect (Maybe Element) From 093071b10fc545397459e6993dbe44cf6ba93d46 Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Fri, 25 Mar 2022 09:37:22 -0500 Subject: [PATCH 44/51] Deduplicate get/setClassName and classList (#74) * Deduplicate set/getClassName & classList * Update changelog * Update HTMLElement.purs Co-authored-by: Thomas Honeyman --- CHANGELOG.md | 3 +++ src/Web/HTML/HTMLElement.js | 22 ---------------------- src/Web/HTML/HTMLElement.purs | 9 --------- 3 files changed, 3 insertions(+), 31 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 8cd30b3..98c33b6 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,9 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: - Move `getBoundingClientRect` to `purescript-web-dom` (#73 by @JordanMartinez) +- Drop duplicated `set/getClassName` and `classList` (#74 by @JordanMartinez) + + These three entities are already defined in `purescript-web-dom` New features: diff --git a/src/Web/HTML/HTMLElement.js b/src/Web/HTML/HTMLElement.js index 2349404..65e2431 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -57,28 +57,6 @@ export function setDir(dir) { // ---------------------------------------------------------------------------- -export function className(elt) { - return function () { - return elt.className; - }; -} - -export function setClassName(className) { - return function (elt) { - return function () { - elt.className = className; - }; - }; -} - -export function classList(element) { - return function () { - return element.classList; - }; -} - -// ---------------------------------------------------------------------------- - export function hidden(elt) { return function () { return elt.hidden; diff --git a/src/Web/HTML/HTMLElement.purs b/src/Web/HTML/HTMLElement.purs index d310cd3..0311f82 100644 --- a/src/Web/HTML/HTMLElement.purs +++ b/src/Web/HTML/HTMLElement.purs @@ -18,9 +18,6 @@ module Web.HTML.HTMLElement , setLang , dir , setDir - , className - , setClassName - , classList , hidden , setHidden , tabIndex @@ -50,7 +47,6 @@ import Data.Nullable (Nullable, toMaybe) import Effect (Effect) import Unsafe.Coerce (unsafeCoerce) import Web.DOM (ChildNode) -import Web.DOM.DOMTokenList (DOMTokenList) import Web.DOM.Element (Element) import Web.DOM.Internal.Types (Node) import Web.DOM.NonDocumentTypeChildNode (NonDocumentTypeChildNode) @@ -106,11 +102,6 @@ foreign import setLang :: String -> HTMLElement -> Effect Unit foreign import dir :: HTMLElement -> Effect String foreign import setDir :: String -> HTMLElement -> Effect Unit -foreign import className :: HTMLElement -> Effect String -foreign import setClassName :: String -> HTMLElement -> Effect Unit - -foreign import classList :: HTMLElement -> Effect DOMTokenList - foreign import hidden :: HTMLElement -> Effect Boolean foreign import setHidden :: Boolean -> HTMLElement -> Effect Unit From 6fc93e1c01c88b10b115371436781498d89d8254 Mon Sep 17 00:00:00 2001 From: sigma-andex <77549848+sigma-andex@users.noreply.github.com> Date: Thu, 14 Apr 2022 17:26:18 +0100 Subject: [PATCH 45/51] Fix broken window export, causing the function to return itself (#75) --- src/Web/HTML.js | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/Web/HTML.js b/src/Web/HTML.js index b6254b1..de9264c 100644 --- a/src/Web/HTML.js +++ b/src/Web/HTML.js @@ -1,3 +1,4 @@ -export function window() { +const windowImpl = function () { return window; -} +}; +export { windowImpl as window }; From c02e025dce15c42eb0fd41000fb7f89ce9236a5e Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Wed, 27 Apr 2022 05:50:05 -0500 Subject: [PATCH 46/51] Make autocomplete take/return a String (#72) * Make autocomplete take/return a String * Add changelog entry for ps 0.15.0 update * Add changelog entry for this PR Co-authored-by: Thomas Honeyman --- CHANGELOG.md | 2 ++ src/Web/HTML/HTMLInputElement.purs | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 98c33b6..911d8be 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,8 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] Breaking changes: +- Migrate FFI to ES modules (#71 by @JordanMartinez) +- Make `autocomplete` take a `String` arg, not Boolean (#72 by @JordanMartinez) - Move `getBoundingClientRect` to `purescript-web-dom` (#73 by @JordanMartinez) - Drop duplicated `set/getClassName` and `classList` (#74 by @JordanMartinez) diff --git a/src/Web/HTML/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index 304a956..9ce7919 100644 --- a/src/Web/HTML/HTMLInputElement.purs +++ b/src/Web/HTML/HTMLInputElement.purs @@ -178,8 +178,8 @@ foreign import setAccept :: String -> HTMLInputElement -> Effect Unit foreign import alt :: HTMLInputElement -> Effect Boolean foreign import setAlt :: Boolean -> HTMLInputElement -> Effect Unit -foreign import autocomplete :: HTMLInputElement -> Effect Boolean -foreign import setAutocomplete :: Boolean -> HTMLInputElement -> Effect Unit +foreign import autocomplete :: HTMLInputElement -> Effect String +foreign import setAutocomplete :: String -> HTMLInputElement -> Effect Unit foreign import autofocus :: HTMLInputElement -> Effect Boolean foreign import setAutofocus :: Boolean -> HTMLInputElement -> Effect Unit From be189cf91b9a19cf493637423522e2fe4a0088cc Mon Sep 17 00:00:00 2001 From: JordanMartinez Date: Wed, 27 Apr 2022 18:34:17 -0500 Subject: [PATCH 47/51] Prepare v4.0.0 release (1st PS 0.15.0-compatible release) (#76) * Update the bower dependencies * Update the changelog Co-authored-by: Thomas Honeyman --- CHANGELOG.md | 11 ++++++++++- bower.json | 8 ++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 911d8be..5dbb3dc 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,12 +4,21 @@ Notable changes to this project are documented in this file. The format is based ## [Unreleased] +Breaking changes: + +New features: + +Bugfixes: + +Other improvements: + +## [v4.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v4.0.0) - 2022-04-27 + Breaking changes: - Migrate FFI to ES modules (#71 by @JordanMartinez) - Make `autocomplete` take a `String` arg, not Boolean (#72 by @JordanMartinez) - Move `getBoundingClientRect` to `purescript-web-dom` (#73 by @JordanMartinez) - Drop duplicated `set/getClassName` and `classList` (#74 by @JordanMartinez) - These three entities are already defined in `purescript-web-dom` New features: diff --git a/bower.json b/bower.json index 0f7a87a..c4dfd9e 100644 --- a/bower.json +++ b/bower.json @@ -15,9 +15,9 @@ "package.json" ], "dependencies": { - "purescript-js-date": "main", - "purescript-web-dom": "master", - "purescript-web-file": "master", - "purescript-web-storage": "master" + "purescript-js-date": "^8.0.0", + "purescript-web-dom": "^6.0.0", + "purescript-web-file": "^4.0.0", + "purescript-web-storage": "^5.0.0" } } From eb51b808908f1d604672397113dce2a5db626553 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Sat, 20 Aug 2022 12:05:06 +0100 Subject: [PATCH 48/51] Fix link to the HTML spec in PR template --- .github/PULL_REQUEST_TEMPLATE.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/PULL_REQUEST_TEMPLATE.md b/.github/PULL_REQUEST_TEMPLATE.md index c8b4682..d8d8451 100644 --- a/.github/PULL_REQUEST_TEMPLATE.md +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -1,6 +1,6 @@ **Prerequisites** -- [ ] Before opening a pull request, please check the HTML standard (https://dom.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. +- [ ] Before opening a pull request, please check the HTML standard (https://html.spec.whatwg.org/). If it doesn't appear in this spec, it may be present in the spec for one of the other `purescript-web` projects. Although MDN is a great resource, it is not a suitable reference for this project. **Description of the change** From 7befd159fdd48d66b4d7787183915fe25981e808 Mon Sep 17 00:00:00 2001 From: jmp-0x7C0 <111574605+jmp-0x7C0@users.noreply.github.com> Date: Tue, 23 Aug 2022 18:26:31 +0200 Subject: [PATCH 49/51] Add window.close() (#78) --- CHANGELOG.md | 1 + src/Web/HTML/Window.js | 6 ++++++ src/Web/HTML/Window.purs | 3 +++ 3 files changed, 10 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5dbb3dc..79840c4 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,7 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: +- Added `close` function for `Window` (#78 by @jmp-0x7C0) Bugfixes: diff --git a/src/Web/HTML/Window.js b/src/Web/HTML/Window.js index 2d7bb0a..d14f8b0 100644 --- a/src/Web/HTML/Window.js +++ b/src/Web/HTML/Window.js @@ -82,6 +82,12 @@ export function _open(url) { }; } +export function close(window) { + return function () { + return window.close(); + }; +} + export function outerHeight(window) { return function () { return window.outerHeight; diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index 89ce6a8..6059cc1 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -13,6 +13,7 @@ module Web.HTML.Window , moveBy , moveTo , open + , close , outerHeight , outerWidth , print @@ -89,6 +90,8 @@ foreign import _open -> Window -> Effect (Nullable Window) +foreign import close :: Window -> Effect Unit + foreign import outerHeight :: Window -> Effect Int foreign import outerWidth :: Window -> Effect Int From c7c2169411c4987a40df8f4cf9ffe0a96741db14 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Mon, 19 Sep 2022 15:48:25 +0100 Subject: [PATCH 50/51] Add page visibility state functionality (#79) * Add document visibility state * Add `purs-tidy` * Use `EffectFn`s for `HTMLDocument` FFI * Update CHANGELOG.md * Fix `print` for `VisibilityState` --- .tidyrc.json | 10 ++++ CHANGELOG.md | 3 ++ package.json | 3 +- src/Web/HTML.purs | 16 +++--- src/Web/HTML/Event/DataTransfer.purs | 1 + src/Web/HTML/HTMLAnchorElement.purs | 2 +- src/Web/HTML/HTMLBaseElement.purs | 1 - src/Web/HTML/HTMLCanvasElement.purs | 1 - src/Web/HTML/HTMLDataElement.purs | 1 - src/Web/HTML/HTMLDataListElement.purs | 1 - src/Web/HTML/HTMLDocument.js | 48 ++++++------------ src/Web/HTML/HTMLDocument.purs | 49 +++++++++++++------ src/Web/HTML/HTMLDocument/ReadyState.purs | 1 + .../HTML/HTMLDocument/VisibilityState.purs | 28 +++++++++++ src/Web/HTML/HTMLEmbedElement.purs | 1 - src/Web/HTML/HTMLImageElement.purs | 2 +- src/Web/HTML/HTMLImageElement/CORSMode.purs | 2 +- .../HTML/HTMLImageElement/DecodingHint.purs | 2 +- src/Web/HTML/HTMLImageElement/Laziness.purs | 3 +- src/Web/HTML/HTMLInputElement.purs | 1 - src/Web/HTML/HTMLKeygenElement.purs | 1 - src/Web/HTML/HTMLLIElement.purs | 1 - src/Web/HTML/HTMLLabelElement.purs | 1 - src/Web/HTML/HTMLLegendElement.purs | 1 - src/Web/HTML/HTMLLinkElement.purs | 1 - src/Web/HTML/HTMLMapElement.purs | 1 - .../HTML/HTMLMediaElement/NetworkState.purs | 3 +- src/Web/HTML/HTMLMediaElement/ReadyState.purs | 3 +- src/Web/HTML/HTMLMetaElement.purs | 1 - src/Web/HTML/HTMLMeterElement.purs | 1 - src/Web/HTML/HTMLOListElement.purs | 1 - src/Web/HTML/HTMLOptGroupElement.purs | 1 - src/Web/HTML/HTMLTrackElement/ReadyState.purs | 3 +- src/Web/HTML/History.purs | 5 +- src/Web/HTML/Location.purs | 1 + src/Web/HTML/Window.purs | 2 +- 36 files changed, 120 insertions(+), 83 deletions(-) create mode 100644 .tidyrc.json create mode 100644 src/Web/HTML/HTMLDocument/VisibilityState.purs diff --git a/.tidyrc.json b/.tidyrc.json new file mode 100644 index 0000000..9e39cf1 --- /dev/null +++ b/.tidyrc.json @@ -0,0 +1,10 @@ +{ + "importSort": "ide", + "importWrap": "source", + "indent": 2, + "operatorsFile": null, + "ribbon": 1, + "typeArrowPlacement": "first", + "unicode": "never", + "width": null +} diff --git a/CHANGELOG.md b/CHANGELOG.md index 79840c4..86c587e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -8,10 +8,13 @@ Breaking changes: New features: - Added `close` function for `Window` (#78 by @jmp-0x7C0) +- Added `visibilityState` for `HTMLDocument` (#79 by @garyb) Bugfixes: Other improvements: +- Added `purs-tidy` config and format checking (#79 by @garyb) +- `HTMLDocument`'s FFI is now implemented in terms of `EffectFn` (#79 by @garyb) ## [v4.0.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v4.0.0) - 2022-04-27 diff --git a/package.json b/package.json index 4ea39f9..870f0cb 100644 --- a/package.json +++ b/package.json @@ -2,12 +2,13 @@ "private": true, "scripts": { "clean": "rimraf output && rimraf .pulp-cache", - "build": "eslint src && pulp build -- --censor-lib --strict" + "build": "eslint src && purs-tidy check --config-require src && pulp build -- --censor-lib --strict" }, "devDependencies": { "eslint": "^7.15.0", "pulp": "16.0.0-0", "purescript-psa": "^0.8.2", + "purs-tidy": "^0.9.2", "rimraf": "^3.0.2" } } diff --git a/src/Web/HTML.purs b/src/Web/HTML.purs index ae31a1f..1907b1e 100644 --- a/src/Web/HTML.purs +++ b/src/Web/HTML.purs @@ -4,44 +4,42 @@ module Web.HTML ) where import Effect (Effect) -import Web.HTML.Window (Window) -import Web.HTML.Common (PropName, AttrName, ClassName) as Exports -import Web.HTML.History (History) as Exports +import Web.HTML.Common (AttrName, ClassName, PropName) as Exports import Web.HTML.HTMLAnchorElement (HTMLAnchorElement) as Exports import Web.HTML.HTMLAreaElement (HTMLAreaElement) as Exports import Web.HTML.HTMLAudioElement (HTMLAudioElement) as Exports +import Web.HTML.HTMLBRElement (HTMLBRElement) as Exports import Web.HTML.HTMLBaseElement (HTMLBaseElement) as Exports import Web.HTML.HTMLBodyElement (HTMLBodyElement) as Exports -import Web.HTML.HTMLBRElement (HTMLBRElement) as Exports import Web.HTML.HTMLButtonElement (HTMLButtonElement) as Exports import Web.HTML.HTMLCanvasElement (HTMLCanvasElement) as Exports +import Web.HTML.HTMLDListElement (HTMLDListElement) as Exports import Web.HTML.HTMLDataElement (HTMLDataElement) as Exports import Web.HTML.HTMLDataListElement (HTMLDataListElement) as Exports import Web.HTML.HTMLDivElement (HTMLDivElement) as Exports -import Web.HTML.HTMLDListElement (HTMLDListElement) as Exports import Web.HTML.HTMLDocument (HTMLDocument) as Exports import Web.HTML.HTMLElement (HTMLElement) as Exports import Web.HTML.HTMLEmbedElement (HTMLEmbedElement) as Exports import Web.HTML.HTMLFieldSetElement (HTMLFieldSetElement) as Exports import Web.HTML.HTMLFormElement (HTMLFormElement) as Exports +import Web.HTML.HTMLHRElement (HTMLHRElement) as Exports import Web.HTML.HTMLHeadElement (HTMLHeadElement) as Exports import Web.HTML.HTMLHeadingElement (HTMLHeadingElement) as Exports -import Web.HTML.HTMLHRElement (HTMLHRElement) as Exports import Web.HTML.HTMLIFrameElement (HTMLIFrameElement) as Exports import Web.HTML.HTMLImageElement (HTMLImageElement) as Exports import Web.HTML.HTMLInputElement (HTMLInputElement) as Exports import Web.HTML.HTMLKeygenElement (HTMLKeygenElement) as Exports +import Web.HTML.HTMLLIElement (HTMLLIElement) as Exports import Web.HTML.HTMLLabelElement (HTMLLabelElement) as Exports import Web.HTML.HTMLLegendElement (HTMLLegendElement) as Exports -import Web.HTML.HTMLLIElement (HTMLLIElement) as Exports import Web.HTML.HTMLLinkElement (HTMLLinkElement) as Exports import Web.HTML.HTMLMapElement (HTMLMapElement) as Exports import Web.HTML.HTMLMediaElement (HTMLMediaElement) as Exports import Web.HTML.HTMLMetaElement (HTMLMetaElement) as Exports import Web.HTML.HTMLMeterElement (HTMLMeterElement) as Exports import Web.HTML.HTMLModElement (HTMLModElement) as Exports -import Web.HTML.HTMLObjectElement (HTMLObjectElement) as Exports import Web.HTML.HTMLOListElement (HTMLOListElement) as Exports +import Web.HTML.HTMLObjectElement (HTMLObjectElement) as Exports import Web.HTML.HTMLOptGroupElement (HTMLOptGroupElement) as Exports import Web.HTML.HTMLOptionElement (HTMLOptionElement) as Exports import Web.HTML.HTMLOutputElement (HTMLOutputElement) as Exports @@ -70,8 +68,10 @@ import Web.HTML.HTMLTitleElement (HTMLTitleElement) as Exports import Web.HTML.HTMLTrackElement (HTMLTrackElement) as Exports import Web.HTML.HTMLUListElement (HTMLUListElement) as Exports import Web.HTML.HTMLVideoElement (HTMLVideoElement) as Exports +import Web.HTML.History (History) as Exports import Web.HTML.Location (Location) as Exports import Web.HTML.Navigator (Navigator) as Exports +import Web.HTML.Window (Window) import Web.HTML.Window (Window) as Exports foreign import window :: Effect Window diff --git a/src/Web/HTML/Event/DataTransfer.purs b/src/Web/HTML/Event/DataTransfer.purs index 9871e25..4895daa 100644 --- a/src/Web/HTML/Event/DataTransfer.purs +++ b/src/Web/HTML/Event/DataTransfer.purs @@ -72,6 +72,7 @@ foreign import _setDragImage :: DataTransfer -> Element -> Int -> Int -> Effect -- | The x and y coordinates define where the image appears relative to the mouse. setDragImage :: DataTransfer -> Element -> Int -> Int -> Effect Unit setDragImage = _setDragImage + foreign import _dropEffect :: DataTransfer -> Effect String data DropEffect = Copy | Link | Move | None diff --git a/src/Web/HTML/HTMLAnchorElement.purs b/src/Web/HTML/HTMLAnchorElement.purs index c9adaab..6943a57 100644 --- a/src/Web/HTML/HTMLAnchorElement.purs +++ b/src/Web/HTML/HTMLAnchorElement.purs @@ -8,8 +8,8 @@ import Web.DOM (ChildNode, Element, Node, NonDocumentTypeChildNode, ParentNode) import Web.DOM.DOMTokenList (DOMTokenList) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLElement (HTMLElement) -import Web.Internal.FFI (unsafeReadProtoTagged) import Web.HTML.HTMLHyperlinkElementUtils (HTMLHyperlinkElementUtils) +import Web.Internal.FFI (unsafeReadProtoTagged) foreign import data HTMLAnchorElement :: Type diff --git a/src/Web/HTML/HTMLBaseElement.purs b/src/Web/HTML/HTMLBaseElement.purs index 310d790..2d28455 100644 --- a/src/Web/HTML/HTMLBaseElement.purs +++ b/src/Web/HTML/HTMLBaseElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLBaseElement -> EventTarget toEventTarget = unsafeCoerce - foreign import href :: HTMLBaseElement -> Effect String foreign import setHref :: String -> HTMLBaseElement -> Effect Unit diff --git a/src/Web/HTML/HTMLCanvasElement.purs b/src/Web/HTML/HTMLCanvasElement.purs index b73b27f..c24dfb2 100644 --- a/src/Web/HTML/HTMLCanvasElement.purs +++ b/src/Web/HTML/HTMLCanvasElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLCanvasElement -> EventTarget toEventTarget = unsafeCoerce - -- typedef (CanvasRenderingContext2D or WebGLRenderingContext) RenderingContext; foreign import width :: HTMLCanvasElement -> Effect Int diff --git a/src/Web/HTML/HTMLDataElement.purs b/src/Web/HTML/HTMLDataElement.purs index 1523709..825d61b 100644 --- a/src/Web/HTML/HTMLDataElement.purs +++ b/src/Web/HTML/HTMLDataElement.purs @@ -53,6 +53,5 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLDataElement -> EventTarget toEventTarget = unsafeCoerce - foreign import value :: HTMLDataElement -> Effect String foreign import setValue :: String -> HTMLDataElement -> Effect Unit diff --git a/src/Web/HTML/HTMLDataListElement.purs b/src/Web/HTML/HTMLDataListElement.purs index 42336aa..bbc0a50 100644 --- a/src/Web/HTML/HTMLDataListElement.purs +++ b/src/Web/HTML/HTMLDataListElement.purs @@ -53,5 +53,4 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLDataListElement -> EventTarget toEventTarget = unsafeCoerce - foreign import options :: HTMLDataListElement -> Effect HTMLCollection diff --git a/src/Web/HTML/HTMLDocument.js b/src/Web/HTML/HTMLDocument.js index d0eaaf8..7641f37 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -1,55 +1,39 @@ export function _documentElement(doc) { - return function () { - return doc.documentElement; - }; + return doc.documentElement; } export function _head(doc) { - return function () { - return doc.head; - }; + return doc.head; } export function _body(doc) { - return function () { - return doc.body; - }; + return doc.body; } export function _readyState(doc) { - return function () { - return doc.readyState; - }; + return doc.readyState; +} + +export function _visibilityState(doc) { + return doc.readyState; } export function _activeElement(doc) { - return function () { - return doc.activeElement; - }; + return doc.activeElement; } export function _currentScript(doc) { - return function () { - return doc.currentScript; - }; + return doc.currentScript; } -export function referrer(doc) { - return function () { - return doc.referrer; - }; +export function _referrer(doc) { + return doc.referrer; } -export function title(doc) { - return function () { - return doc.title; - }; +export function _title(doc) { + return doc.title; } -export function setTitle(title) { - return function (doc) { - return function () { - doc.title = title; - }; - }; +export function _setTitle(title, doc) { + doc.title = title; } diff --git a/src/Web/HTML/HTMLDocument.purs b/src/Web/HTML/HTMLDocument.purs index 11d2ef0..69a06c8 100644 --- a/src/Web/HTML/HTMLDocument.purs +++ b/src/Web/HTML/HTMLDocument.purs @@ -14,6 +14,7 @@ module Web.HTML.HTMLDocument , head , body , readyState + , visibilityState , activeElement , currentScript , referrer @@ -26,6 +27,7 @@ import Prelude import Data.Maybe (Maybe, fromMaybe) import Data.Nullable (Nullable, toMaybe) import Effect (Effect) +import Effect.Uncurried (EffectFn1, EffectFn2, runEffectFn1, runEffectFn2) import Unsafe.Coerce (unsafeCoerce) import Web.DOM.Document (Document) import Web.DOM.Internal.Types (Node) @@ -34,6 +36,8 @@ import Web.DOM.ParentNode (ParentNode) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLDocument.ReadyState (ReadyState) import Web.HTML.HTMLDocument.ReadyState as ReadyState +import Web.HTML.HTMLDocument.VisibilityState (VisibilityState) +import Web.HTML.HTMLDocument.VisibilityState as VisibilityState import Web.HTML.HTMLElement (HTMLElement) import Web.HTML.HTMLHtmlElement (HTMLHtmlElement) import Web.HTML.HTMLScriptElement (HTMLScriptElement) @@ -71,37 +75,52 @@ toNonElementParentNode = unsafeCoerce toEventTarget :: HTMLDocument -> EventTarget toEventTarget = unsafeCoerce -foreign import _documentElement :: HTMLDocument -> Effect (Nullable HTMLHtmlElement) +foreign import _documentElement :: EffectFn1 HTMLDocument (Nullable HTMLHtmlElement) documentElement :: HTMLDocument -> Effect (Maybe HTMLHtmlElement) -documentElement = map toMaybe <<< _documentElement +documentElement doc = toMaybe <$> runEffectFn1 _documentElement doc -foreign import _head :: HTMLDocument -> Effect (Nullable HTMLElement) +foreign import _head :: EffectFn1 HTMLDocument (Nullable HTMLElement) head :: HTMLDocument -> Effect (Maybe HTMLElement) -head = map toMaybe <<< _head +head doc = toMaybe <$> runEffectFn1 _head doc -foreign import _body :: HTMLDocument -> Effect (Nullable HTMLElement) +foreign import _body :: EffectFn1 HTMLDocument (Nullable HTMLElement) body :: HTMLDocument -> Effect (Maybe HTMLElement) -body = map toMaybe <<< _body +body doc = toMaybe <$> runEffectFn1 _body doc -foreign import _readyState :: HTMLDocument -> Effect String +foreign import _readyState :: EffectFn1 HTMLDocument String readyState :: HTMLDocument -> Effect ReadyState -readyState = map (fromMaybe ReadyState.Loading <<< ReadyState.parse) <<< _readyState +readyState doc = (fromMaybe ReadyState.Loading <<< ReadyState.parse) <$> (runEffectFn1 _readyState doc) -foreign import _activeElement :: HTMLDocument -> Effect (Nullable HTMLElement) +foreign import _visibilityState :: EffectFn1 HTMLDocument String + +visibilityState :: HTMLDocument -> Effect VisibilityState +visibilityState doc = (fromMaybe VisibilityState.Visible <<< VisibilityState.parse) <$> (runEffectFn1 _visibilityState doc) + +foreign import _activeElement :: EffectFn1 HTMLDocument (Nullable HTMLElement) activeElement :: HTMLDocument -> Effect (Maybe HTMLElement) -activeElement = map toMaybe <<< _activeElement +activeElement doc = toMaybe <$> (runEffectFn1 _activeElement doc) -foreign import _currentScript :: HTMLDocument -> Effect (Nullable HTMLScriptElement) +foreign import _currentScript :: EffectFn1 HTMLDocument (Nullable HTMLScriptElement) currentScript :: HTMLDocument -> Effect (Maybe HTMLScriptElement) -currentScript = map toMaybe <<< _currentScript +currentScript doc = toMaybe <$> (runEffectFn1 _currentScript doc) + +foreign import _referrer :: EffectFn1 HTMLDocument String + +referrer :: HTMLDocument -> Effect String +referrer doc = runEffectFn1 _referrer doc + +foreign import _title :: EffectFn1 HTMLDocument String + +title :: HTMLDocument -> Effect String +title doc = runEffectFn1 _title doc -foreign import referrer :: HTMLDocument -> Effect String +foreign import _setTitle :: EffectFn2 String HTMLDocument Unit -foreign import title :: HTMLDocument -> Effect String -foreign import setTitle :: String -> HTMLDocument -> Effect Unit +setTitle :: String -> HTMLDocument -> Effect Unit +setTitle newTitle doc = runEffectFn2 _setTitle newTitle doc diff --git a/src/Web/HTML/HTMLDocument/ReadyState.purs b/src/Web/HTML/HTMLDocument/ReadyState.purs index b134ae8..1ca428b 100644 --- a/src/Web/HTML/HTMLDocument/ReadyState.purs +++ b/src/Web/HTML/HTMLDocument/ReadyState.purs @@ -1,6 +1,7 @@ module Web.HTML.HTMLDocument.ReadyState where import Prelude + import Data.Maybe (Maybe(..)) data ReadyState diff --git a/src/Web/HTML/HTMLDocument/VisibilityState.purs b/src/Web/HTML/HTMLDocument/VisibilityState.purs new file mode 100644 index 0000000..7b13b63 --- /dev/null +++ b/src/Web/HTML/HTMLDocument/VisibilityState.purs @@ -0,0 +1,28 @@ +module Web.HTML.HTMLDocument.VisibilityState where + +import Prelude + +import Data.Maybe (Maybe(..)) + +data VisibilityState + = Visible + | Hidden + +derive instance eqVisibilityState :: Eq VisibilityState +derive instance ordVisibilityState :: Ord VisibilityState + +instance showVisibilityState :: Show VisibilityState where + show = case _ of + Visible -> "Visible" + Hidden -> "Hidden" + +print :: VisibilityState -> String +print = case _ of + Visible -> "visible" + Hidden -> "hidden" + +parse :: String -> Maybe VisibilityState +parse = case _ of + "visible" -> Just Visible + "hidden" -> Just Hidden + _ -> Nothing diff --git a/src/Web/HTML/HTMLEmbedElement.purs b/src/Web/HTML/HTMLEmbedElement.purs index 8ca443d..d75a934 100644 --- a/src/Web/HTML/HTMLEmbedElement.purs +++ b/src/Web/HTML/HTMLEmbedElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLEmbedElement -> EventTarget toEventTarget = unsafeCoerce - foreign import src :: HTMLEmbedElement -> Effect String foreign import setSrc :: String -> HTMLEmbedElement -> Effect Unit diff --git a/src/Web/HTML/HTMLImageElement.purs b/src/Web/HTML/HTMLImageElement.purs index 0ef8f78..640c219 100644 --- a/src/Web/HTML/HTMLImageElement.purs +++ b/src/Web/HTML/HTMLImageElement.purs @@ -46,9 +46,9 @@ module Web.HTML.HTMLImageElement , complete ) where +import Data.Maybe (Maybe, fromMaybe) import Data.Nullable (Nullable) import Data.Nullable as Nullable -import Data.Maybe (Maybe, fromMaybe) import Effect (Effect) import Effect.Uncurried (EffectFn1, EffectFn2, runEffectFn1, runEffectFn2) import Prelude (Unit, map, (<<<), (<=<)) diff --git a/src/Web/HTML/HTMLImageElement/CORSMode.purs b/src/Web/HTML/HTMLImageElement/CORSMode.purs index a6ae4d7..6e2b4e3 100644 --- a/src/Web/HTML/HTMLImageElement/CORSMode.purs +++ b/src/Web/HTML/HTMLImageElement/CORSMode.purs @@ -9,7 +9,7 @@ import Prelude (class Eq, class Ord, class Show) data CORSMode = Anonymous - | UseCredentials + | UseCredentials derive instance eqCORSMode :: Eq CORSMode derive instance ordCORSMode :: Ord CORSMode diff --git a/src/Web/HTML/HTMLImageElement/DecodingHint.purs b/src/Web/HTML/HTMLImageElement/DecodingHint.purs index f7f9b85..fd75dc1 100644 --- a/src/Web/HTML/HTMLImageElement/DecodingHint.purs +++ b/src/Web/HTML/HTMLImageElement/DecodingHint.purs @@ -9,7 +9,7 @@ import Prelude (class Eq, class Ord, class Show) data DecodingHint = Sync - | Async + | Async | Auto derive instance eqDecodingHint :: Eq DecodingHint diff --git a/src/Web/HTML/HTMLImageElement/Laziness.purs b/src/Web/HTML/HTMLImageElement/Laziness.purs index bb8b1a5..df768c6 100644 --- a/src/Web/HTML/HTMLImageElement/Laziness.purs +++ b/src/Web/HTML/HTMLImageElement/Laziness.purs @@ -9,7 +9,7 @@ import Prelude (class Eq, class Ord, class Show) data Laziness = Eager - | Lazy + | Lazy derive instance eqDecodingHint :: Eq Laziness derive instance ordDecodingHint :: Ord Laziness @@ -26,7 +26,6 @@ parse = case _ of "lazy" -> Just Lazy _ -> Nothing - print :: Laziness -> String print = case _ of Eager -> "eager" diff --git a/src/Web/HTML/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index 9ce7919..7b910a5 100644 --- a/src/Web/HTML/HTMLInputElement.purs +++ b/src/Web/HTML/HTMLInputElement.purs @@ -171,7 +171,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLInputElement -> EventTarget toEventTarget = unsafeCoerce - foreign import accept :: HTMLInputElement -> Effect String foreign import setAccept :: String -> HTMLInputElement -> Effect Unit diff --git a/src/Web/HTML/HTMLKeygenElement.purs b/src/Web/HTML/HTMLKeygenElement.purs index 106ef0b..e52062d 100644 --- a/src/Web/HTML/HTMLKeygenElement.purs +++ b/src/Web/HTML/HTMLKeygenElement.purs @@ -93,7 +93,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLKeygenElement -> EventTarget toEventTarget = unsafeCoerce - foreign import autofocus :: HTMLKeygenElement -> Effect Boolean foreign import setAutofocus :: Boolean -> HTMLKeygenElement -> Effect Unit diff --git a/src/Web/HTML/HTMLLIElement.purs b/src/Web/HTML/HTMLLIElement.purs index 9fedf15..b8f3fd3 100644 --- a/src/Web/HTML/HTMLLIElement.purs +++ b/src/Web/HTML/HTMLLIElement.purs @@ -53,6 +53,5 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLLIElement -> EventTarget toEventTarget = unsafeCoerce - foreign import value :: HTMLLIElement -> Effect Int foreign import setValue :: Int -> HTMLLIElement -> Effect Unit diff --git a/src/Web/HTML/HTMLLabelElement.purs b/src/Web/HTML/HTMLLabelElement.purs index 776ef4b..ad1b552 100644 --- a/src/Web/HTML/HTMLLabelElement.purs +++ b/src/Web/HTML/HTMLLabelElement.purs @@ -76,7 +76,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLLabelElement -> EventTarget toEventTarget = unsafeCoerce - form :: HTMLLabelElement -> Effect (Maybe HTMLFormElement) form = map toMaybe <<< _form diff --git a/src/Web/HTML/HTMLLegendElement.purs b/src/Web/HTML/HTMLLegendElement.purs index f926a05..86174e1 100644 --- a/src/Web/HTML/HTMLLegendElement.purs +++ b/src/Web/HTML/HTMLLegendElement.purs @@ -73,7 +73,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLLegendElement -> EventTarget toEventTarget = unsafeCoerce - form :: HTMLLegendElement -> Effect (Maybe HTMLFormElement) form = map toMaybe <<< _form diff --git a/src/Web/HTML/HTMLLinkElement.purs b/src/Web/HTML/HTMLLinkElement.purs index 0594846..f1fdecc 100644 --- a/src/Web/HTML/HTMLLinkElement.purs +++ b/src/Web/HTML/HTMLLinkElement.purs @@ -54,7 +54,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLLinkElement -> EventTarget toEventTarget = unsafeCoerce - foreign import disabled :: HTMLLinkElement -> Effect Boolean foreign import setDisabled :: Boolean -> HTMLLinkElement -> Effect Unit diff --git a/src/Web/HTML/HTMLMapElement.purs b/src/Web/HTML/HTMLMapElement.purs index c0b7b14..f4c1b9a 100644 --- a/src/Web/HTML/HTMLMapElement.purs +++ b/src/Web/HTML/HTMLMapElement.purs @@ -54,7 +54,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLMapElement -> EventTarget toEventTarget = unsafeCoerce - foreign import name :: HTMLMapElement -> Effect String foreign import setName :: String -> HTMLMapElement -> Effect Unit diff --git a/src/Web/HTML/HTMLMediaElement/NetworkState.purs b/src/Web/HTML/HTMLMediaElement/NetworkState.purs index 57def03..b4d2492 100644 --- a/src/Web/HTML/HTMLMediaElement/NetworkState.purs +++ b/src/Web/HTML/HTMLMediaElement/NetworkState.purs @@ -1,8 +1,9 @@ module Web.HTML.HTMLMediaElement.NetworkState (NetworkState(..)) where import Prelude + +import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc) import Data.Maybe (Maybe(..)) -import Data.Enum (class Enum, class BoundedEnum, Cardinality(..), defaultSucc, defaultPred) data NetworkState = Empty diff --git a/src/Web/HTML/HTMLMediaElement/ReadyState.purs b/src/Web/HTML/HTMLMediaElement/ReadyState.purs index 6a41556..a6ddd76 100644 --- a/src/Web/HTML/HTMLMediaElement/ReadyState.purs +++ b/src/Web/HTML/HTMLMediaElement/ReadyState.purs @@ -1,8 +1,9 @@ module Web.HTML.HTMLMediaElement.ReadyState (ReadyState(..)) where import Prelude + +import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc) import Data.Maybe (Maybe(..)) -import Data.Enum (class Enum, class BoundedEnum, Cardinality(..), defaultSucc, defaultPred) data ReadyState = HaveNothing diff --git a/src/Web/HTML/HTMLMetaElement.purs b/src/Web/HTML/HTMLMetaElement.purs index 6b145fc..c7640d8 100644 --- a/src/Web/HTML/HTMLMetaElement.purs +++ b/src/Web/HTML/HTMLMetaElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLMetaElement -> EventTarget toEventTarget = unsafeCoerce - foreign import name :: HTMLMetaElement -> Effect String foreign import setName :: String -> HTMLMetaElement -> Effect Unit diff --git a/src/Web/HTML/HTMLMeterElement.purs b/src/Web/HTML/HTMLMeterElement.purs index 887b8e6..92cd80b 100644 --- a/src/Web/HTML/HTMLMeterElement.purs +++ b/src/Web/HTML/HTMLMeterElement.purs @@ -54,7 +54,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLMeterElement -> EventTarget toEventTarget = unsafeCoerce - foreign import value :: HTMLMeterElement -> Effect Number foreign import setValue :: Number -> HTMLMeterElement -> Effect Unit diff --git a/src/Web/HTML/HTMLOListElement.purs b/src/Web/HTML/HTMLOListElement.purs index c7f666d..f4b5151 100644 --- a/src/Web/HTML/HTMLOListElement.purs +++ b/src/Web/HTML/HTMLOListElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLOListElement -> EventTarget toEventTarget = unsafeCoerce - foreign import reversed :: HTMLOListElement -> Effect Boolean foreign import setReversed :: Boolean -> HTMLOListElement -> Effect Unit diff --git a/src/Web/HTML/HTMLOptGroupElement.purs b/src/Web/HTML/HTMLOptGroupElement.purs index 93d94a6..d422505 100644 --- a/src/Web/HTML/HTMLOptGroupElement.purs +++ b/src/Web/HTML/HTMLOptGroupElement.purs @@ -53,7 +53,6 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLOptGroupElement -> EventTarget toEventTarget = unsafeCoerce - foreign import disabled :: HTMLOptGroupElement -> Effect Boolean foreign import setDisabled :: Boolean -> HTMLOptGroupElement -> Effect Unit diff --git a/src/Web/HTML/HTMLTrackElement/ReadyState.purs b/src/Web/HTML/HTMLTrackElement/ReadyState.purs index bb6103c..d5a1e0d 100644 --- a/src/Web/HTML/HTMLTrackElement/ReadyState.purs +++ b/src/Web/HTML/HTMLTrackElement/ReadyState.purs @@ -1,8 +1,9 @@ module Web.HTML.HTMLTrackElement.ReadyState where import Prelude + +import Data.Enum (class BoundedEnum, class Enum, Cardinality(..), defaultPred, defaultSucc) import Data.Maybe (Maybe(..)) -import Data.Enum (class Enum, class BoundedEnum, Cardinality(..), defaultSucc, defaultPred) data ReadyState = None diff --git a/src/Web/HTML/History.purs b/src/Web/HTML/History.purs index a7c1ea4..468c44a 100644 --- a/src/Web/HTML/History.purs +++ b/src/Web/HTML/History.purs @@ -1,24 +1,27 @@ module Web.HTML.History where +import Data.Newtype (class Newtype) import Effect (Effect) import Foreign (Foreign) -import Data.Newtype (class Newtype) import Prelude (class Eq, class Ord, Unit) foreign import data History :: Type -- DocumentTitle will set value of `document.title` newtype DocumentTitle = DocumentTitle String + derive instance eqDocumentTitle :: Eq DocumentTitle derive instance ordDocumentTitle :: Ord DocumentTitle derive instance newtypeDocumentTitle :: Newtype DocumentTitle _ newtype Delta = Delta Int + derive instance eqDelta :: Eq Delta derive instance ordDelta :: Ord Delta derive instance newtypeDelta :: Newtype Delta _ newtype URL = URL String + derive instance eqURL :: Eq URL derive instance ordURL :: Ord URL derive instance newtypeURL :: Newtype URL _ diff --git a/src/Web/HTML/Location.purs b/src/Web/HTML/Location.purs index fa6fd33..bcfd156 100644 --- a/src/Web/HTML/Location.purs +++ b/src/Web/HTML/Location.purs @@ -25,6 +25,7 @@ module Web.HTML.Location ) where import Prelude + import Effect (Effect) foreign import data Location :: Type diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index 6059cc1..490ab04 100644 --- a/src/Web/HTML/Window.purs +++ b/src/Web/HTML/Window.purs @@ -49,8 +49,8 @@ import Web.HTML.HTMLDocument (HTMLDocument) import Web.HTML.History (History) import Web.HTML.Location (Location) import Web.HTML.Navigator (Navigator) -import Web.Storage.Storage (Storage) import Web.Internal.FFI (unsafeReadProtoTagged) +import Web.Storage.Storage (Storage) foreign import data Window :: Type From 40e9a0c5c927e4d9f7ba7c1204e4792f4d24cc27 Mon Sep 17 00:00:00 2001 From: Gary Burgess Date: Mon, 19 Sep 2022 23:37:49 +0100 Subject: [PATCH 51/51] Update CHANGELOG.md --- CHANGELOG.md | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86c587e..20f26bb 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,11 +7,17 @@ Notable changes to this project are documented in this file. The format is based Breaking changes: New features: -- Added `close` function for `Window` (#78 by @jmp-0x7C0) -- Added `visibilityState` for `HTMLDocument` (#79 by @garyb) Bugfixes: +Other improvements: + +## [v4.1.0](https://github.com/purescript-web/purescript-web-html/releases/tag/v4.1.0) - 2022-09-19 + +New features: +- Added `close` function for `Window` (#78 by @jmp-0x7C0) +- Added `visibilityState` for `HTMLDocument` (#79 by @garyb) + Other improvements: - Added `purs-tidy` config and format checking (#79 by @garyb) - `HTMLDocument`'s FFI is now implemented in terms of `EffectFn` (#79 by @garyb)