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/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..ae7917b --- /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 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 new file mode 100644 index 0000000..d8d8451 --- /dev/null +++ b/.github/PULL_REQUEST_TEMPLATE.md @@ -0,0 +1,17 @@ +**Prerequisites** + +- [ ] 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** + +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 new file mode 100644 index 0000000..06ed895 --- /dev/null +++ b/.github/workflows/ci.yml @@ -0,0 +1,35 @@ +name: CI + +on: + push: + branches: [master] + pull_request: + branches: [master] + +jobs: + build: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v2 + + - uses: purescript-contrib/setup-purescript@main + with: + purescript: "unstable" + + - uses: actions/setup-node@v2 + with: + node-version: "14" + + - 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/.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/.travis.yml b/.travis.yml deleted file mode 100644 index 37fead9..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=$(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 - - 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/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..20f26bb --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,136 @@ +# 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: + +## [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) + +## [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: + +Bugfixes: + +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: +- 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) +- 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: +- 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 + +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: +- 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) + +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) + +## [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 diff --git a/README.md b/README.md index 4093773..c34ff98 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-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 [W3C HTML5 API](https://www.w3.org/TR/html5). +Type definitions and low level interface implementations for the [WHATWG HTML Living Standard](https://html.spec.whatwg.org). ## Installation ``` -bower install purescript-web-html +spago install web-html ``` ## Documentation diff --git a/bower.json b/bower.json index c83b7d4..c4dfd9e 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": "6", - "purescript-web-dom": "2 - 3", - "purescript-web-file": "2", - "purescript-web-storage": "3" + "purescript-js-date": "^8.0.0", + "purescript-web-dom": "^6.0.0", + "purescript-web-file": "^4.0.0", + "purescript-web-storage": "^5.0.0" } } diff --git a/package.json b/package.json index 02e36ea..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": "^4.19.1", - "pulp": "^12.2.0", - "purescript-psa": "^0.6.0", - "rimraf": "^2.6.2" + "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.js b/src/Web/HTML.js index 90d68be..de9264c 100644 --- a/src/Web/HTML.js +++ b/src/Web/HTML.js @@ -1,6 +1,4 @@ -/* global window */ -"use strict"; - -exports.window = function () { +const windowImpl = function () { return window; }; +export { windowImpl as window }; diff --git a/src/Web/HTML.purs b/src/Web/HTML.purs index 16172e9..1907b1e 100644 --- a/src/Web/HTML.purs +++ b/src/Web/HTML.purs @@ -4,43 +4,42 @@ module Web.HTML ) where import Effect (Effect) -import Web.HTML.Window (Window) -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 @@ -69,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/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 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 8cec0ca..8911445 100644 --- a/src/Web/HTML/Event/DataTransfer.js +++ b/src/Web/HTML/Event/DataTransfer.js @@ -1,22 +1,24 @@ -"use strict"; - -exports._files = function (dataTransfer) { +export function _files(dataTransfer) { return dataTransfer.files; -}; +} + +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 () { @@ -24,18 +26,30 @@ exports._setData = function (format) { }; }; }; -}; +} + +export function _setDragImage(dataTransfer) { + return function (image) { + return function (x) { + return function (y) { + return function () { + return dataTransfer.setDragImage(image, x, y); + }; + }; + }; + }; +} -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.purs b/src/Web/HTML/Event/DataTransfer.purs index b63d127..4895daa 100644 --- a/src/Web/HTML/Event/DataTransfer.purs +++ b/src/Web/HTML/Event/DataTransfer.purs @@ -1,9 +1,11 @@ module Web.HTML.Event.DataTransfer ( DataTransfer , files + , items , types , getData , setData + , setDragImage , DropEffect(..) , dropEffect , setDropEffect @@ -15,7 +17,9 @@ 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) +import Web.HTML.Event.DataTransfer.DataTransferItem (DataTransferItemList) foreign import data DataTransfer :: Type @@ -29,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 @@ -57,6 +65,14 @@ 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 diff --git a/src/Web/HTML/Event/DataTransfer/DataTransferItem.js b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js new file mode 100644 index 0000000..3b156b0 --- /dev/null +++ b/src/Web/HTML/Event/DataTransfer/DataTransferItem.js @@ -0,0 +1,23 @@ +export function _kind(nothing, just, text, file, dataTransferItem) { + if (dataTransferItem.kind === "string") { + return just(text); + } else if (dataTransferItem.kind === "file") { + return just(file); + } else { + return nothing; + } +} + +export function type_(dataTransferItem) { + return dataTransferItem.type; +} + +export function _dataTransferItem(index) { + return function (dataTransferItemList) { + return dataTransferItemList[index]; + }; +} + +export function _length(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..bdd7479 --- /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 eqDataTransferItemKind :: Eq DataTransferItemKind +derive instance ordDataTransferItemKind :: Ord DataTransferItemKind + +instance showDataTransferItemKind :: 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 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/HTMLAnchorElement.purs b/src/Web/HTML/HTMLAnchorElement.purs index e4a637f..6943a57 100644 --- a/src/Web/HTML/HTMLAnchorElement.purs +++ b/src/Web/HTML/HTMLAnchorElement.purs @@ -8,6 +8,7 @@ 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.HTML.HTMLHyperlinkElementUtils (HTMLHyperlinkElementUtils) import Web.Internal.FFI (unsafeReadProtoTagged) 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/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 new file mode 100644 index 0000000..abcc0f0 --- /dev/null +++ b/src/Web/HTML/HTMLAudioElement.js @@ -0,0 +1,9 @@ +export function create() { + return new Audio(); +} + +export function createWithURL(url) { + return function () { + return new Audio(url); + }; +} diff --git a/src/Web/HTML/HTMLAudioElement.purs b/src/Web/HTML/HTMLAudioElement.purs index 18b6c6d..8302ff5 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 + , fromHTMLMediaElement + , 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 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 :: Effect HTMLAudioElement +foreign import createWithURL :: String -> Effect HTMLAudioElement + +create' :: String -> Effect HTMLAudioElement +create' = createWithURL 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/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/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/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.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/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.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/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 3e934a2..7641f37 100644 --- a/src/Web/HTML/HTMLDocument.js +++ b/src/Web/HTML/HTMLDocument.js @@ -1,46 +1,39 @@ -"use strict"; - -exports._body = function (doc) { - return function () { - return doc.body; - }; -}; - -exports._readyState = function (doc) { - return function () { - return doc.readyState; - }; -}; - -exports._activeElement = function (doc) { - return function () { - return doc.activeElement; - }; -}; - -exports._currentScript = function (doc) { - return function () { - return doc.currentScript; - }; -}; - -exports.referrer = function (doc) { - return function () { - return doc.referrer; - }; -}; - -exports.title = function (doc) { - return function () { - return doc.title; - }; -}; - -exports.setTitle = function (title) { - return function (doc) { - return function () { - doc.title = title; - return {}; - }; - }; -}; \ No newline at end of file +export function _documentElement(doc) { + return doc.documentElement; +} + +export function _head(doc) { + return doc.head; +} + +export function _body(doc) { + return doc.body; +} + +export function _readyState(doc) { + return doc.readyState; +} + +export function _visibilityState(doc) { + return doc.readyState; +} + +export function _activeElement(doc) { + return doc.activeElement; +} + +export function _currentScript(doc) { + return doc.currentScript; +} + +export function _referrer(doc) { + return doc.referrer; +} + +export function _title(doc) { + return doc.title; +} + +export function _setTitle(title, doc) { + doc.title = title; +} diff --git a/src/Web/HTML/HTMLDocument.purs b/src/Web/HTML/HTMLDocument.purs index 894420a..69a06c8 100644 --- a/src/Web/HTML/HTMLDocument.purs +++ b/src/Web/HTML/HTMLDocument.purs @@ -10,8 +10,11 @@ module Web.HTML.HTMLDocument , toParentNode , toNonElementParentNode , toEventTarget + , documentElement + , head , body , readyState + , visibilityState , activeElement , currentScript , referrer @@ -24,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) @@ -32,7 +36,10 @@ 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) import Web.Internal.FFI (unsafeReadProtoTagged) @@ -68,27 +75,52 @@ toNonElementParentNode = unsafeCoerce toEventTarget :: HTMLDocument -> EventTarget toEventTarget = unsafeCoerce -foreign import _body :: HTMLDocument -> Effect (Nullable HTMLElement) +foreign import _documentElement :: EffectFn1 HTMLDocument (Nullable HTMLHtmlElement) + +documentElement :: HTMLDocument -> Effect (Maybe HTMLHtmlElement) +documentElement doc = toMaybe <$> runEffectFn1 _documentElement doc + +foreign import _head :: EffectFn1 HTMLDocument (Nullable HTMLElement) + +head :: HTMLDocument -> Effect (Maybe HTMLElement) +head doc = toMaybe <$> runEffectFn1 _head doc + +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 _visibilityState :: EffectFn1 HTMLDocument String -foreign import _activeElement :: HTMLDocument -> Effect (Nullable HTMLElement) +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 \ No newline at end of file +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/HTMLElement.js b/src/Web/HTML/HTMLElement.js index c8a7e49..65e2431 100644 --- a/src/Web/HTML/HTMLElement.js +++ b/src/Web/HTML/HTMLElement.js @@ -1,241 +1,194 @@ -"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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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; - return {}; - }; - }; -}; - -// ---------------------------------------------------------------------------- - -exports.className = function (elt) { - return function () { - return elt.className; - }; -}; - -exports.setClassName = function (className) { - return function (elt) { - return function () { - elt.className = className; - return {}; }; }; -}; - -exports.classList = function (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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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; - return {}; }; }; -}; +} -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; - return {}; }; }; -}; +} // ---------------------------------------------------------------------------- -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) { - 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 - }; - }; -}; - -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/HTMLElement.purs b/src/Web/HTML/HTMLElement.purs index 93e0d1f..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 @@ -35,8 +32,6 @@ module Web.HTML.HTMLElement , click , focus , blur - , getBoundingClientRect - , DOMRect , offsetParent , offsetTop , offsetLeft @@ -52,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) @@ -108,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 @@ -133,17 +122,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) 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/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/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/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 diff --git a/src/Web/HTML/HTMLHyperlinkElementUtils.js b/src/Web/HTML/HTMLHyperlinkElementUtils.js new file mode 100644 index 0000000..6a95ece --- /dev/null +++ b/src/Web/HTML/HTMLHyperlinkElementUtils.js @@ -0,0 +1,165 @@ +export function href(u) { + return function () { + return u.href; + }; +} + +export function setHref(href) { + return function (u) { + return function () { + u.href = href; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function origin(u) { + return function () { + return u.origin; + }; +} + +// ---------------------------------------------------------------------------- + +export function protocol(u) { + return function () { + return u.protocol; + }; +} + +export function setProtocol(protocol) { + return function (u) { + return function () { + u.protocol = protocol; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function username(u) { + return function () { + return u.username; + }; +} + +export function setUsername(username) { + return function (u) { + return function () { + u.username = username; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function password(u) { + return function () { + return u.password; + }; +} + +export function setPassword(password) { + return function (u) { + return function () { + u.password = password; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function host(u) { + return function () { + return u.host; + }; +} + +export function setHost(host) { + return function (u) { + return function () { + u.host = host; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function hostname(u) { + return function () { + return u.hostname; + }; +} + +export function setHostname(hostname) { + return function (u) { + return function () { + u.hostname = hostname; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function port(u) { + return function () { + return u.port; + }; +} + +export function setPort(port) { + return function (u) { + return function () { + u.port = port; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function pathname(u) { + return function () { + return u.pathname; + }; +} + +export function setPathname(pathname) { + return function (u) { + return function () { + u.pathname = pathname; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function search(u) { + return function () { + return u.search; + }; +} + +export function setSearch(search) { + return function (u) { + return function () { + u.search = search; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function hash(u) { + return function () { + return u.hash; + }; +} + +export function setHash(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 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 7687e2c..10b657f 100644 --- a/src/Web/HTML/HTMLImageElement.js +++ b/src/Web/HTML/HTMLImageElement.js @@ -1,150 +1,215 @@ -/* global Image */ -"use strict"; +export function create() { + return new Image(); +} -exports.create = function () { - return function () { - return new Image(); - }; -}; - -exports["create'"] = 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; }; }; -}; +} + +// ---------------------------------------------------------------------------- + +export function srcset(image) { + return function () { + return image.srcset; + }; +} + +export function setSrcset(srcset) { + return function (image) { + return function () { + image.srcset = srcset; + }; + }; +} // ---------------------------------------------------------------------------- -exports.crossOrigin = function (image) { +export function sizes(image) { return function () { - return image.crossOrigin; + return image.sizes; }; -}; +} -exports.setCrossOrigin = function (crossOrigin) { +export function setSizes(sizes) { return function (image) { return function () { - image.crossOrigin = crossOrigin; + image.sizes = sizes; }; }; -}; +} + +// ---------------------------------------------------------------------------- + +export function currentSrc(image) { + return function () { + return image.currentSrc; + }; +} + +// ---------------------------------------------------------------------------- + +export function _crossOrigin(image) { + return image.crossOrigin; +} + +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; }; -}; +} + +// ---------------------------------------------------------------------------- + +export function referrerPolicy(image) { + return function () { + return image.referrerPolicy; + }; +} + +export function setReferrerPolicy(referrerPolicy) { + return function (image) { + return function () { + image.referrerPolicy = referrerPolicy; + }; + }; +} + +// ---------------------------------------------------------------------------- + +export function _decoding(image) { + return image.decoding; +} + +export function _setDecoding(decoding, image) { + image.decoding = decoding; +} + +// ---------------------------------------------------------------------------- + +export function _loading(image) { + return image.loading; +} + +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/HTMLImageElement.purs b/src/Web/HTML/HTMLImageElement.purs index d313223..640c219 100644 --- a/src/Web/HTML/HTMLImageElement.purs +++ b/src/Web/HTML/HTMLImageElement.purs @@ -1,12 +1,67 @@ -module Web.HTML.HTMLImageElement where - -import Data.Maybe (Maybe) +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 + , srcset + , setSrcset + , currentSrc + , sizes + , setSizes + , crossOrigin + , setCrossOrigin + , useMap + , setUseMap + , isMap + , setIsMap + , width + , setWidth + , height + , setHeight + , naturalWidth + , naturalHeight + , referrerPolicy + , setReferrerPolicy + , decoding + , setDecoding + , loading + , setLoading + , complete + ) where + +import Data.Maybe (Maybe, fromMaybe) +import Data.Nullable (Nullable) +import Data.Nullable as Nullable 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 @@ -53,9 +108,11 @@ toParentNode = unsafeCoerce toEventTarget :: HTMLImageElement -> EventTarget toEventTarget = unsafeCoerce +foreign import create :: Effect HTMLImageElement +foreign import createWithDimensions :: Int -> Int -> Effect HTMLImageElement -foreign import create :: Unit -> Effect HTMLImageElement -foreign import create' :: Int -> Int -> Effect HTMLImageElement +create' :: Int -> Int -> Effect HTMLImageElement +create' = createWithDimensions foreign import alt :: HTMLImageElement -> Effect String foreign import setAlt :: String -> HTMLImageElement -> Effect Unit @@ -63,8 +120,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 @@ -80,4 +152,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..6e2b4e3 --- /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..fd75dc1 --- /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..df768c6 --- /dev/null +++ b/src/Web/HTML/HTMLImageElement/Laziness.purs @@ -0,0 +1,32 @@ +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" diff --git a/src/Web/HTML/HTMLInputElement.js b/src/Web/HTML/HTMLInputElement.js index 2dfe66e..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["stepUp'"] = function (n) { +export function stepUpBy(n) { return function (input) { return function () { input.stepUp(n); }; }; -}; +} // ---------------------------------------------------------------------------- -exports["stepDown'"] = 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/HTMLInputElement.purs b/src/Web/HTML/HTMLInputElement.purs index 3f36ed3..7b910a5 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 @@ -169,15 +171,14 @@ toParentNode = unsafeCoerce 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 -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 @@ -290,12 +291,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/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/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.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/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.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/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.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/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.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/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.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/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.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/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.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/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.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/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/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/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/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/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/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 9fae7fa..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["insertRow'"] = 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/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/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 82c5c17..8d1a789 100644 --- a/src/Web/HTML/HTMLTableRowElement.js +++ b/src/Web/HTML/HTMLTableRowElement.js @@ -1,51 +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) { - return function () { - return row.cells; - }; -}; +} // ---------------------------------------------------------------------------- -exports.cells = function (row) { +export function cells(row) { return function () { return row.cells; }; -}; +} // ---------------------------------------------------------------------------- -exports["insertCell'"] = 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/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..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["insertRow'"] = 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/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 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/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/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/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.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/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/Navigator.js b/src/Web/HTML/Navigator.js index 474d9e3..631c243 100644 --- a/src/Web/HTML/Navigator.js +++ b/src/Web/HTML/Navigator.js @@ -1,19 +1,29 @@ -"use strict"; - -exports.language = function (navigator) { +export function language(navigator) { return function () { return navigator.language; }; -}; +} + +export function languages(navigator) { + return function () { + return navigator.languages; + }; +} + +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; }; -}; \ No newline at end of file +} diff --git a/src/Web/HTML/Navigator.purs b/src/Web/HTML/Navigator.purs index 3ecb00b..ae99fd9 100644 --- a/src/Web/HTML/Navigator.purs +++ b/src/Web/HTML/Navigator.purs @@ -6,6 +6,10 @@ foreign import data Navigator :: Type 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 \ No newline at end of file +foreign import userAgent :: Navigator -> Effect String 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 72d9db6..d14f8b0 100644 --- a/src/Web/HTML/Window.js +++ b/src/Web/HTML/Window.js @@ -1,81 +1,76 @@ -"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); - return {}; }; }; -}; +} -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 () { window.moveBy(xDelta, yDelta); - return {}; }; }; }; -}; +} -exports.moveTo = function (width) { +export function moveTo(width) { return function (height) { return function (window) { return function () { window.moveTo(width, height); - return {}; }; }; }; -}; +} -exports._open = function (url) { +export function _open(url) { return function (name) { return function (features) { return function (window) { @@ -85,28 +80,33 @@ exports._open = function (url) { }; }; }; -}; +} + +export function close(window) { + return function () { + return window.close(); + }; +} -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(); - return {}; }; -}; +} -exports._prompt = function (str) { +export function _prompt(str) { return function (defaultText) { return function (window) { return function () { @@ -114,105 +114,101 @@ exports._prompt = function (str) { }; }; }; -}; +} -exports.resizeBy = function (xDelta) { +export function resizeBy(xDelta) { return function (yDelta) { return function (window) { return function () { window.resizeBy(xDelta, yDelta); - return {}; }; }; }; -}; +} -exports.resizeTo = function (width) { +export function resizeTo(width) { return function (height) { return function (window) { return function () { window.resizeTo(width, height); - return {}; }; }; }; -}; +} -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 () { window.scroll(xCoord, yCoord); - return {}; }; }; }; -}; +} -exports.scrollBy = function (xCoord) { +export function scrollBy(xCoord) { return function (yCoord) { return function (window) { return function () { window.scrollBy(xCoord, yCoord); - return {}; }; }; }; -}; +} -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() { @@ -220,24 +216,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; }; -}; +} diff --git a/src/Web/HTML/Window.purs b/src/Web/HTML/Window.purs index ab6bd33..490ab04 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 @@ -12,6 +13,7 @@ module Web.HTML.Window , moveBy , moveTo , open + , close , outerHeight , outerWidth , print @@ -38,16 +40,16 @@ 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) +import Prelude (class Eq, class Ord, Unit, (<$>)) import Unsafe.Coerce (unsafeCoerce) import Web.Event.EventTarget (EventTarget) import Web.HTML.HTMLDocument (HTMLDocument) import Web.HTML.History (History) import Web.HTML.Location (Location) import Web.HTML.Navigator (Navigator) +import Web.Internal.FFI (unsafeReadProtoTagged) import Web.Storage.Storage (Storage) foreign import data Window :: Type @@ -55,6 +57,9 @@ 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 @@ -85,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 @@ -111,9 +118,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 @@ -121,37 +128,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 - -requestAnimationFrame :: Effect Unit -> Window -> Effect RequestAnimationFrameId -requestAnimationFrame fn = map RequestAnimationFrameId <<< _requestAnimationFrame fn +foreign import requestAnimationFrame :: Effect Unit -> Window -> Effect RequestAnimationFrameId -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