diff --git a/.gitignore b/.gitignore index 941f868..4253682 100644 --- a/.gitignore +++ b/.gitignore @@ -1,11 +1,42 @@ -src/*.swp -flux -build/* -!build/vendors.js -.idea -react-tutorial -./redux -npm-debug-log -.haste_cache/* -coverage/* -.alm/* \ No newline at end of file +# Logs +logs +*.log +npm-debug.log* + +# Runtime data +pids +*.pid +*.seed + +# Directory for instrumented libs generated by jscoverage/JSCover +lib-cov + +# Coverage directory used by tools like istanbul +coverage + +# nyc test coverage +.nyc_output + +# Grunt intermediate storage (http://gruntjs.com/creating-plugins#storing-task-files) +.grunt + +# node-waf configuration +.lock-wscript + +# Compiled binary addons (http://nodejs.org/api/addons.html) +build/Release + +# Dependency directories +node_modules +jspm_packages +elm-stuff + +# Optional npm cache directory +.npm + +# Optional REPL history +.node_repl_history + +# Generated files +dist +main.js diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000..6f67995 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,12 @@ +// Place your settings in this file to overwrite default and user settings. +{ + "files.exclude": { + "**/.git": true, + "**/.svn": true, + "**/.DS_Store": true, + "node_modules": true, + "dist": true, + "**/*.js": { "when": "$(basename).ts"}, + "**/*.js.map": true + } +} \ No newline at end of file diff --git a/.vscode/tasks.json b/.vscode/tasks.json deleted file mode 100644 index 94aa5f6..0000000 --- a/.vscode/tasks.json +++ /dev/null @@ -1,36 +0,0 @@ -// Available variables which can be used inside of strings. -// ${workspaceRoot}: the root folder of the team -// ${file}: the current opened file -// ${fileBasename}: the current opened file's basename -// ${fileDirname}: the current opened file's dirname -// ${fileExtname}: the current opened file's extension -// ${cwd}: the current working directory of the spawned process - -{ - "version": "0.1.0", - "command": "webpack", - "isShellCommand": true, - "args": [ - "--display-modules", - "--progress" - ], - "echoCommand": true, - "tasks": [ - { - "args": [ - "-d" - ], - "suppressTaskName": true, - "taskName": "webpack dev", - "isBuildCommand": true - }, - { - "args": [ - "-p" - ], - "suppressTaskName": true, - "taskName": "webpack dist", - "isBuildCommand": false - } - ] -} \ No newline at end of file diff --git a/LICENSE b/LICENSE deleted file mode 100644 index 2c5b79f..0000000 --- a/LICENSE +++ /dev/null @@ -1,21 +0,0 @@ -MIT License - -Copyright (c) 2016 Vincent Aravantinos - -Permission is hereby granted, free of charge, to any person obtaining a copy -of this software and associated documentation files (the "Software"), to deal -in the Software without restriction, including without limitation the rights -to use, copy, modify, merge, publish, distribute, sublicense, and/or sell -copies of the Software, and to permit persons to whom the Software is -furnished to do so, subject to the following conditions: - -The above copyright notice and this permission notice shall be included in all -copies or substantial portions of the Software. - -THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR -IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, -FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE -AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER -LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, -OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE -SOFTWARE. diff --git a/css/base.css b/css/base.css deleted file mode 100644 index bf382be..0000000 --- a/css/base.css +++ /dev/null @@ -1,62 +0,0 @@ -body { - background: #fff; - font-family: "Helvetica Neue", Helvetica, Arial, sans-serif; - font-size: 15px; - line-height: 1.7; - margin: 0; - padding: 30px; -} - -a { - color: #4183c4; - text-decoration: none; -} - -a:hover { - text-decoration: underline; -} - -code { - background-color: #f8f8f8; - border: 1px solid #ddd; - border-radius: 3px; - font-family: "Bitstream Vera Sans Mono", Consolas, Courier, monospace; - font-size: 12px; - margin: 0 2px; - padding: 0px 5px; -} - -h1, h2, h3, h4 { - font-weight: bold; - margin: 0 0 15px; - padding: 0; -} - -h1 { - border-bottom: 1px solid #ddd; - font-size: 2.5em; - font-weight: bold; - margin: 0 0 15px; - padding: 0; -} - -h2 { - border-bottom: 1px solid #eee; - font-size: 2em; -} - -h3 { - font-size: 1.5em; -} - -h4 { - font-size: 1.2em; -} - -p, ul { - margin: 15px 0; -} - -ul { - padding-left: 30px; -} diff --git a/elm-package.json b/elm-package.json new file mode 100644 index 0000000..2c37c48 --- /dev/null +++ b/elm-package.json @@ -0,0 +1,20 @@ +{ + "version": "0.0.1", + "summary": "Architecture for model-based development of web applications", + "repository": "https://github.com/aravantv/mb-webapp.git", + "license": "MIT", + "source-directories": [ + "nesting", + "src", + "src/widgets" + ], + "exposed-modules": [], + "dependencies": { + "elm-lang/core": "5.0.0 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0", + "elm-lang/svg": "2.0.0 <= v < 3.0.0", + "elm-lang/mouse": "1.0.0 <= v < 2.0.0", + "jinjor/elm-time-travel": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmi b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmi new file mode 100644 index 0000000..beea82a Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmi differ diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmo b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmo new file mode 100644 index 0000000..cac2be5 --- /dev/null +++ b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Attributes.elmo @@ -0,0 +1,349 @@ +var _elm_lang$html$Html_Attributes$map = _elm_lang$virtual_dom$VirtualDom$mapProperty; +var _elm_lang$html$Html_Attributes$attribute = _elm_lang$virtual_dom$VirtualDom$attribute; +var _elm_lang$html$Html_Attributes$contextmenu = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'contextmenu', value); +}; +var _elm_lang$html$Html_Attributes$draggable = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'draggable', value); +}; +var _elm_lang$html$Html_Attributes$itemprop = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'itemprop', value); +}; +var _elm_lang$html$Html_Attributes$tabindex = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'tabIndex', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$charset = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'charset', value); +}; +var _elm_lang$html$Html_Attributes$height = function (value) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'height', + _elm_lang$core$Basics$toString(value)); +}; +var _elm_lang$html$Html_Attributes$width = function (value) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'width', + _elm_lang$core$Basics$toString(value)); +}; +var _elm_lang$html$Html_Attributes$formaction = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'formAction', value); +}; +var _elm_lang$html$Html_Attributes$list = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'list', value); +}; +var _elm_lang$html$Html_Attributes$minlength = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'minLength', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$maxlength = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'maxlength', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$size = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'size', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$form = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'form', value); +}; +var _elm_lang$html$Html_Attributes$cols = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'cols', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$rows = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'rows', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$challenge = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'challenge', value); +}; +var _elm_lang$html$Html_Attributes$media = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'media', value); +}; +var _elm_lang$html$Html_Attributes$rel = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'rel', value); +}; +var _elm_lang$html$Html_Attributes$datetime = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'datetime', value); +}; +var _elm_lang$html$Html_Attributes$pubdate = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'pubdate', value); +}; +var _elm_lang$html$Html_Attributes$colspan = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'colspan', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$rowspan = function (n) { + return A2( + _elm_lang$html$Html_Attributes$attribute, + 'rowspan', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$manifest = function (value) { + return A2(_elm_lang$html$Html_Attributes$attribute, 'manifest', value); +}; +var _elm_lang$html$Html_Attributes$property = _elm_lang$virtual_dom$VirtualDom$property; +var _elm_lang$html$Html_Attributes$stringProperty = F2( + function (name, string) { + return A2( + _elm_lang$html$Html_Attributes$property, + name, + _elm_lang$core$Json_Encode$string(string)); + }); +var _elm_lang$html$Html_Attributes$class = function (name) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'className', name); +}; +var _elm_lang$html$Html_Attributes$id = function (name) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'id', name); +}; +var _elm_lang$html$Html_Attributes$title = function (name) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'title', name); +}; +var _elm_lang$html$Html_Attributes$accesskey = function ($char) { + return A2( + _elm_lang$html$Html_Attributes$stringProperty, + 'accessKey', + _elm_lang$core$String$fromChar($char)); +}; +var _elm_lang$html$Html_Attributes$dir = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'dir', value); +}; +var _elm_lang$html$Html_Attributes$dropzone = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'dropzone', value); +}; +var _elm_lang$html$Html_Attributes$lang = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'lang', value); +}; +var _elm_lang$html$Html_Attributes$content = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'content', value); +}; +var _elm_lang$html$Html_Attributes$httpEquiv = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'httpEquiv', value); +}; +var _elm_lang$html$Html_Attributes$language = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'language', value); +}; +var _elm_lang$html$Html_Attributes$src = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'src', value); +}; +var _elm_lang$html$Html_Attributes$alt = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'alt', value); +}; +var _elm_lang$html$Html_Attributes$preload = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'preload', value); +}; +var _elm_lang$html$Html_Attributes$poster = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'poster', value); +}; +var _elm_lang$html$Html_Attributes$kind = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'kind', value); +}; +var _elm_lang$html$Html_Attributes$srclang = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'srclang', value); +}; +var _elm_lang$html$Html_Attributes$sandbox = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'sandbox', value); +}; +var _elm_lang$html$Html_Attributes$srcdoc = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'srcdoc', value); +}; +var _elm_lang$html$Html_Attributes$type_ = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'type', value); +}; +var _elm_lang$html$Html_Attributes$value = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'value', value); +}; +var _elm_lang$html$Html_Attributes$defaultValue = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'defaultValue', value); +}; +var _elm_lang$html$Html_Attributes$placeholder = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'placeholder', value); +}; +var _elm_lang$html$Html_Attributes$accept = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'accept', value); +}; +var _elm_lang$html$Html_Attributes$acceptCharset = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'acceptCharset', value); +}; +var _elm_lang$html$Html_Attributes$action = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'action', value); +}; +var _elm_lang$html$Html_Attributes$autocomplete = function (bool) { + return A2( + _elm_lang$html$Html_Attributes$stringProperty, + 'autocomplete', + bool ? 'on' : 'off'); +}; +var _elm_lang$html$Html_Attributes$enctype = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'enctype', value); +}; +var _elm_lang$html$Html_Attributes$method = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'method', value); +}; +var _elm_lang$html$Html_Attributes$name = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'name', value); +}; +var _elm_lang$html$Html_Attributes$pattern = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'pattern', value); +}; +var _elm_lang$html$Html_Attributes$for = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'htmlFor', value); +}; +var _elm_lang$html$Html_Attributes$max = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'max', value); +}; +var _elm_lang$html$Html_Attributes$min = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'min', value); +}; +var _elm_lang$html$Html_Attributes$step = function (n) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'step', n); +}; +var _elm_lang$html$Html_Attributes$wrap = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'wrap', value); +}; +var _elm_lang$html$Html_Attributes$usemap = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'useMap', value); +}; +var _elm_lang$html$Html_Attributes$shape = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'shape', value); +}; +var _elm_lang$html$Html_Attributes$coords = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'coords', value); +}; +var _elm_lang$html$Html_Attributes$keytype = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'keytype', value); +}; +var _elm_lang$html$Html_Attributes$align = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'align', value); +}; +var _elm_lang$html$Html_Attributes$cite = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'cite', value); +}; +var _elm_lang$html$Html_Attributes$href = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'href', value); +}; +var _elm_lang$html$Html_Attributes$target = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'target', value); +}; +var _elm_lang$html$Html_Attributes$downloadAs = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'download', value); +}; +var _elm_lang$html$Html_Attributes$hreflang = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'hreflang', value); +}; +var _elm_lang$html$Html_Attributes$ping = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'ping', value); +}; +var _elm_lang$html$Html_Attributes$start = function (n) { + return A2( + _elm_lang$html$Html_Attributes$stringProperty, + 'start', + _elm_lang$core$Basics$toString(n)); +}; +var _elm_lang$html$Html_Attributes$headers = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'headers', value); +}; +var _elm_lang$html$Html_Attributes$scope = function (value) { + return A2(_elm_lang$html$Html_Attributes$stringProperty, 'scope', value); +}; +var _elm_lang$html$Html_Attributes$boolProperty = F2( + function (name, bool) { + return A2( + _elm_lang$html$Html_Attributes$property, + name, + _elm_lang$core$Json_Encode$bool(bool)); + }); +var _elm_lang$html$Html_Attributes$hidden = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'hidden', bool); +}; +var _elm_lang$html$Html_Attributes$contenteditable = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'contentEditable', bool); +}; +var _elm_lang$html$Html_Attributes$spellcheck = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'spellcheck', bool); +}; +var _elm_lang$html$Html_Attributes$async = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'async', bool); +}; +var _elm_lang$html$Html_Attributes$defer = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'defer', bool); +}; +var _elm_lang$html$Html_Attributes$scoped = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'scoped', bool); +}; +var _elm_lang$html$Html_Attributes$autoplay = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'autoplay', bool); +}; +var _elm_lang$html$Html_Attributes$controls = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'controls', bool); +}; +var _elm_lang$html$Html_Attributes$loop = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'loop', bool); +}; +var _elm_lang$html$Html_Attributes$default = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'default', bool); +}; +var _elm_lang$html$Html_Attributes$seamless = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'seamless', bool); +}; +var _elm_lang$html$Html_Attributes$checked = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'checked', bool); +}; +var _elm_lang$html$Html_Attributes$selected = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'selected', bool); +}; +var _elm_lang$html$Html_Attributes$autofocus = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'autofocus', bool); +}; +var _elm_lang$html$Html_Attributes$disabled = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'disabled', bool); +}; +var _elm_lang$html$Html_Attributes$multiple = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'multiple', bool); +}; +var _elm_lang$html$Html_Attributes$novalidate = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'noValidate', bool); +}; +var _elm_lang$html$Html_Attributes$readonly = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'readOnly', bool); +}; +var _elm_lang$html$Html_Attributes$required = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'required', bool); +}; +var _elm_lang$html$Html_Attributes$ismap = function (value) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'isMap', value); +}; +var _elm_lang$html$Html_Attributes$download = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'download', bool); +}; +var _elm_lang$html$Html_Attributes$reversed = function (bool) { + return A2(_elm_lang$html$Html_Attributes$boolProperty, 'reversed', bool); +}; +var _elm_lang$html$Html_Attributes$classList = function (list) { + return _elm_lang$html$Html_Attributes$class( + A2( + _elm_lang$core$String$join, + ' ', + A2( + _elm_lang$core$List$map, + _elm_lang$core$Tuple$first, + A2(_elm_lang$core$List$filter, _elm_lang$core$Tuple$second, list)))); +}; +var _elm_lang$html$Html_Attributes$style = _elm_lang$virtual_dom$VirtualDom$style; diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmi b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmi new file mode 100644 index 0000000..35502d8 Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmi differ diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmo b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmo new file mode 100644 index 0000000..43e1b1a --- /dev/null +++ b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Events.elmo @@ -0,0 +1,114 @@ +var _elm_lang$html$Html_Events$keyCode = A2(_elm_lang$core$Json_Decode$field, 'keyCode', _elm_lang$core$Json_Decode$int); +var _elm_lang$html$Html_Events$targetChecked = A2( + _elm_lang$core$Json_Decode$at, + { + ctor: '::', + _0: 'target', + _1: { + ctor: '::', + _0: 'checked', + _1: {ctor: '[]'} + } + }, + _elm_lang$core$Json_Decode$bool); +var _elm_lang$html$Html_Events$targetValue = A2( + _elm_lang$core$Json_Decode$at, + { + ctor: '::', + _0: 'target', + _1: { + ctor: '::', + _0: 'value', + _1: {ctor: '[]'} + } + }, + _elm_lang$core$Json_Decode$string); +var _elm_lang$html$Html_Events$defaultOptions = _elm_lang$virtual_dom$VirtualDom$defaultOptions; +var _elm_lang$html$Html_Events$onWithOptions = _elm_lang$virtual_dom$VirtualDom$onWithOptions; +var _elm_lang$html$Html_Events$on = _elm_lang$virtual_dom$VirtualDom$on; +var _elm_lang$html$Html_Events$onFocus = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'focus', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onBlur = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'blur', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onSubmitOptions = _elm_lang$core$Native_Utils.update( + _elm_lang$html$Html_Events$defaultOptions, + {preventDefault: true}); +var _elm_lang$html$Html_Events$onSubmit = function (msg) { + return A3( + _elm_lang$html$Html_Events$onWithOptions, + 'submit', + _elm_lang$html$Html_Events$onSubmitOptions, + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onCheck = function (tagger) { + return A2( + _elm_lang$html$Html_Events$on, + 'change', + A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetChecked)); +}; +var _elm_lang$html$Html_Events$onInput = function (tagger) { + return A2( + _elm_lang$html$Html_Events$on, + 'input', + A2(_elm_lang$core$Json_Decode$map, tagger, _elm_lang$html$Html_Events$targetValue)); +}; +var _elm_lang$html$Html_Events$onMouseOut = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mouseout', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onMouseOver = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mouseover', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onMouseLeave = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mouseleave', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onMouseEnter = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mouseenter', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onMouseUp = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mouseup', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onMouseDown = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'mousedown', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onDoubleClick = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'dblclick', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$onClick = function (msg) { + return A2( + _elm_lang$html$Html_Events$on, + 'click', + _elm_lang$core$Json_Decode$succeed(msg)); +}; +var _elm_lang$html$Html_Events$Options = F2( + function (a, b) { + return {stopPropagation: a, preventDefault: b}; + }); diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmi b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmi new file mode 100644 index 0000000..e9746ba Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmi differ diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmo b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmo new file mode 100644 index 0000000..6d99fd5 --- /dev/null +++ b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Keyed.elmo @@ -0,0 +1,3 @@ +var _elm_lang$html$Html_Keyed$node = _elm_lang$virtual_dom$VirtualDom$keyedNode; +var _elm_lang$html$Html_Keyed$ol = _elm_lang$html$Html_Keyed$node('ol'); +var _elm_lang$html$Html_Keyed$ul = _elm_lang$html$Html_Keyed$node('ul'); diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmi b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmi new file mode 100644 index 0000000..5921eed Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmi differ diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmo b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmo new file mode 100644 index 0000000..d8d2b70 --- /dev/null +++ b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html-Lazy.elmo @@ -0,0 +1,3 @@ +var _elm_lang$html$Html_Lazy$lazy3 = _elm_lang$virtual_dom$VirtualDom$lazy3; +var _elm_lang$html$Html_Lazy$lazy2 = _elm_lang$virtual_dom$VirtualDom$lazy2; +var _elm_lang$html$Html_Lazy$lazy = _elm_lang$virtual_dom$VirtualDom$lazy; diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmi b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmi new file mode 100644 index 0000000..2b629f1 Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmi differ diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmo b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmo new file mode 100644 index 0000000..03f9981 --- /dev/null +++ b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/Html.elmo @@ -0,0 +1,124 @@ +var _elm_lang$html$Html$programWithFlags = _elm_lang$virtual_dom$VirtualDom$programWithFlags; +var _elm_lang$html$Html$program = _elm_lang$virtual_dom$VirtualDom$program; +var _elm_lang$html$Html$beginnerProgram = function (_p0) { + var _p1 = _p0; + return _elm_lang$html$Html$program( + { + init: A2( + _elm_lang$core$Platform_Cmd_ops['!'], + _p1.model, + {ctor: '[]'}), + update: F2( + function (msg, model) { + return A2( + _elm_lang$core$Platform_Cmd_ops['!'], + A2(_p1.update, msg, model), + {ctor: '[]'}); + }), + view: _p1.view, + subscriptions: function (_p2) { + return _elm_lang$core$Platform_Sub$none; + } + }); +}; +var _elm_lang$html$Html$map = _elm_lang$virtual_dom$VirtualDom$map; +var _elm_lang$html$Html$text = _elm_lang$virtual_dom$VirtualDom$text; +var _elm_lang$html$Html$node = _elm_lang$virtual_dom$VirtualDom$node; +var _elm_lang$html$Html$body = _elm_lang$html$Html$node('body'); +var _elm_lang$html$Html$section = _elm_lang$html$Html$node('section'); +var _elm_lang$html$Html$nav = _elm_lang$html$Html$node('nav'); +var _elm_lang$html$Html$article = _elm_lang$html$Html$node('article'); +var _elm_lang$html$Html$aside = _elm_lang$html$Html$node('aside'); +var _elm_lang$html$Html$h1 = _elm_lang$html$Html$node('h1'); +var _elm_lang$html$Html$h2 = _elm_lang$html$Html$node('h2'); +var _elm_lang$html$Html$h3 = _elm_lang$html$Html$node('h3'); +var _elm_lang$html$Html$h4 = _elm_lang$html$Html$node('h4'); +var _elm_lang$html$Html$h5 = _elm_lang$html$Html$node('h5'); +var _elm_lang$html$Html$h6 = _elm_lang$html$Html$node('h6'); +var _elm_lang$html$Html$header = _elm_lang$html$Html$node('header'); +var _elm_lang$html$Html$footer = _elm_lang$html$Html$node('footer'); +var _elm_lang$html$Html$address = _elm_lang$html$Html$node('address'); +var _elm_lang$html$Html$main_ = _elm_lang$html$Html$node('main'); +var _elm_lang$html$Html$p = _elm_lang$html$Html$node('p'); +var _elm_lang$html$Html$hr = _elm_lang$html$Html$node('hr'); +var _elm_lang$html$Html$pre = _elm_lang$html$Html$node('pre'); +var _elm_lang$html$Html$blockquote = _elm_lang$html$Html$node('blockquote'); +var _elm_lang$html$Html$ol = _elm_lang$html$Html$node('ol'); +var _elm_lang$html$Html$ul = _elm_lang$html$Html$node('ul'); +var _elm_lang$html$Html$li = _elm_lang$html$Html$node('li'); +var _elm_lang$html$Html$dl = _elm_lang$html$Html$node('dl'); +var _elm_lang$html$Html$dt = _elm_lang$html$Html$node('dt'); +var _elm_lang$html$Html$dd = _elm_lang$html$Html$node('dd'); +var _elm_lang$html$Html$figure = _elm_lang$html$Html$node('figure'); +var _elm_lang$html$Html$figcaption = _elm_lang$html$Html$node('figcaption'); +var _elm_lang$html$Html$div = _elm_lang$html$Html$node('div'); +var _elm_lang$html$Html$a = _elm_lang$html$Html$node('a'); +var _elm_lang$html$Html$em = _elm_lang$html$Html$node('em'); +var _elm_lang$html$Html$strong = _elm_lang$html$Html$node('strong'); +var _elm_lang$html$Html$small = _elm_lang$html$Html$node('small'); +var _elm_lang$html$Html$s = _elm_lang$html$Html$node('s'); +var _elm_lang$html$Html$cite = _elm_lang$html$Html$node('cite'); +var _elm_lang$html$Html$q = _elm_lang$html$Html$node('q'); +var _elm_lang$html$Html$dfn = _elm_lang$html$Html$node('dfn'); +var _elm_lang$html$Html$abbr = _elm_lang$html$Html$node('abbr'); +var _elm_lang$html$Html$time = _elm_lang$html$Html$node('time'); +var _elm_lang$html$Html$code = _elm_lang$html$Html$node('code'); +var _elm_lang$html$Html$var = _elm_lang$html$Html$node('var'); +var _elm_lang$html$Html$samp = _elm_lang$html$Html$node('samp'); +var _elm_lang$html$Html$kbd = _elm_lang$html$Html$node('kbd'); +var _elm_lang$html$Html$sub = _elm_lang$html$Html$node('sub'); +var _elm_lang$html$Html$sup = _elm_lang$html$Html$node('sup'); +var _elm_lang$html$Html$i = _elm_lang$html$Html$node('i'); +var _elm_lang$html$Html$b = _elm_lang$html$Html$node('b'); +var _elm_lang$html$Html$u = _elm_lang$html$Html$node('u'); +var _elm_lang$html$Html$mark = _elm_lang$html$Html$node('mark'); +var _elm_lang$html$Html$ruby = _elm_lang$html$Html$node('ruby'); +var _elm_lang$html$Html$rt = _elm_lang$html$Html$node('rt'); +var _elm_lang$html$Html$rp = _elm_lang$html$Html$node('rp'); +var _elm_lang$html$Html$bdi = _elm_lang$html$Html$node('bdi'); +var _elm_lang$html$Html$bdo = _elm_lang$html$Html$node('bdo'); +var _elm_lang$html$Html$span = _elm_lang$html$Html$node('span'); +var _elm_lang$html$Html$br = _elm_lang$html$Html$node('br'); +var _elm_lang$html$Html$wbr = _elm_lang$html$Html$node('wbr'); +var _elm_lang$html$Html$ins = _elm_lang$html$Html$node('ins'); +var _elm_lang$html$Html$del = _elm_lang$html$Html$node('del'); +var _elm_lang$html$Html$img = _elm_lang$html$Html$node('img'); +var _elm_lang$html$Html$iframe = _elm_lang$html$Html$node('iframe'); +var _elm_lang$html$Html$embed = _elm_lang$html$Html$node('embed'); +var _elm_lang$html$Html$object = _elm_lang$html$Html$node('object'); +var _elm_lang$html$Html$param = _elm_lang$html$Html$node('param'); +var _elm_lang$html$Html$video = _elm_lang$html$Html$node('video'); +var _elm_lang$html$Html$audio = _elm_lang$html$Html$node('audio'); +var _elm_lang$html$Html$source = _elm_lang$html$Html$node('source'); +var _elm_lang$html$Html$track = _elm_lang$html$Html$node('track'); +var _elm_lang$html$Html$canvas = _elm_lang$html$Html$node('canvas'); +var _elm_lang$html$Html$math = _elm_lang$html$Html$node('math'); +var _elm_lang$html$Html$table = _elm_lang$html$Html$node('table'); +var _elm_lang$html$Html$caption = _elm_lang$html$Html$node('caption'); +var _elm_lang$html$Html$colgroup = _elm_lang$html$Html$node('colgroup'); +var _elm_lang$html$Html$col = _elm_lang$html$Html$node('col'); +var _elm_lang$html$Html$tbody = _elm_lang$html$Html$node('tbody'); +var _elm_lang$html$Html$thead = _elm_lang$html$Html$node('thead'); +var _elm_lang$html$Html$tfoot = _elm_lang$html$Html$node('tfoot'); +var _elm_lang$html$Html$tr = _elm_lang$html$Html$node('tr'); +var _elm_lang$html$Html$td = _elm_lang$html$Html$node('td'); +var _elm_lang$html$Html$th = _elm_lang$html$Html$node('th'); +var _elm_lang$html$Html$form = _elm_lang$html$Html$node('form'); +var _elm_lang$html$Html$fieldset = _elm_lang$html$Html$node('fieldset'); +var _elm_lang$html$Html$legend = _elm_lang$html$Html$node('legend'); +var _elm_lang$html$Html$label = _elm_lang$html$Html$node('label'); +var _elm_lang$html$Html$input = _elm_lang$html$Html$node('input'); +var _elm_lang$html$Html$button = _elm_lang$html$Html$node('button'); +var _elm_lang$html$Html$select = _elm_lang$html$Html$node('select'); +var _elm_lang$html$Html$datalist = _elm_lang$html$Html$node('datalist'); +var _elm_lang$html$Html$optgroup = _elm_lang$html$Html$node('optgroup'); +var _elm_lang$html$Html$option = _elm_lang$html$Html$node('option'); +var _elm_lang$html$Html$textarea = _elm_lang$html$Html$node('textarea'); +var _elm_lang$html$Html$keygen = _elm_lang$html$Html$node('keygen'); +var _elm_lang$html$Html$output = _elm_lang$html$Html$node('output'); +var _elm_lang$html$Html$progress = _elm_lang$html$Html$node('progress'); +var _elm_lang$html$Html$meter = _elm_lang$html$Html$node('meter'); +var _elm_lang$html$Html$details = _elm_lang$html$Html$node('details'); +var _elm_lang$html$Html$summary = _elm_lang$html$Html$node('summary'); +var _elm_lang$html$Html$menuitem = _elm_lang$html$Html$node('menuitem'); +var _elm_lang$html$Html$menu = _elm_lang$html$Html$node('menu'); diff --git a/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/graph.dat b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/graph.dat new file mode 100644 index 0000000..3936f5a Binary files /dev/null and b/elm-stuff/build-artifacts/0.18.0/elm-lang/html/2.0.0/graph.dat differ diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/.gitignore b/elm-stuff/packages/elm-lang/html/2.0.0/.gitignore new file mode 100644 index 0000000..e185314 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/.gitignore @@ -0,0 +1 @@ +elm-stuff \ No newline at end of file diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/LICENSE b/elm-stuff/packages/elm-lang/html/2.0.0/LICENSE new file mode 100644 index 0000000..e0419a4 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/LICENSE @@ -0,0 +1,30 @@ +Copyright (c) 2014-present, Evan Czaplicki + +All rights reserved. + +Redistribution and use in source and binary forms, with or without +modification, are permitted provided that the following conditions are met: + + * Redistributions of source code must retain the above copyright + notice, this list of conditions and the following disclaimer. + + * Redistributions in binary form must reproduce the above + copyright notice, this list of conditions and the following + disclaimer in the documentation and/or other materials provided + with the distribution. + + * Neither the name of Evan Czaplicki nor the names of other + contributors may be used to endorse or promote products derived + from this software without specific prior written permission. + +THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/README.md b/elm-stuff/packages/elm-lang/html/2.0.0/README.md new file mode 100644 index 0000000..baed9a7 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/README.md @@ -0,0 +1,5 @@ +# HTML for Elm + +The core HTML library for Elm. It is backed by [elm-lang/virtual-dom](http://package.elm-lang.org/packages/elm-lang/virtual-dom/latest/) which handles the dirty details of rendering things quickly. + +The best way to learn how to use this library is to read [guide.elm-lang.org](http://guide.elm-lang.org/), particularly the section on [The Elm Architecture](http://guide.elm-lang.org/architecture/index.html). diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/documentation.json b/elm-stuff/packages/elm-lang/html/2.0.0/documentation.json new file mode 100644 index 0000000..d0179a7 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/documentation.json @@ -0,0 +1,1211 @@ +[ + { + "name": "Html.Lazy", + "comment": " Since all Elm functions are pure we have a guarantee that the same input\nwill always result in the same output. This module gives us tools to be lazy\nabout building `Html` that utilize this fact.\n\nRather than immediately applying functions to their arguments, the `lazy`\nfunctions just bundle the function and arguments up for later. When diffing\nthe old and new virtual DOM, it checks to see if all the arguments are equal.\nIf so, it skips calling the function!\n\nThis is a really cheap test and often makes things a lot faster, but definitely\nbenchmark to be sure!\n\n@docs lazy, lazy2, lazy3\n", + "aliases": [], + "types": [], + "values": [ + { + "name": "lazy", + "comment": " A performance optimization that delays the building of virtual DOM nodes.\n\nCalling `(view model)` will definitely build some virtual DOM, perhaps a lot of\nit. Calling `(lazy view model)` delays the call until later. During diffing, we\ncan check to see if `model` is referentially equal to the previous value used,\nand if so, we just stop. No need to build up the tree structure and diff it,\nwe know if the input to `view` is the same, the output must be the same!\n", + "type": "(a -> Html.Html msg) -> a -> Html.Html msg" + }, + { + "name": "lazy2", + "comment": " Same as `lazy` but checks on two arguments.\n", + "type": "(a -> b -> Html.Html msg) -> a -> b -> Html.Html msg" + }, + { + "name": "lazy3", + "comment": " Same as `lazy` but checks on three arguments.\n", + "type": "(a -> b -> c -> Html.Html msg) -> a -> b -> c -> Html.Html msg" + } + ], + "generated-with-elm-version": "0.18.0" + }, + { + "name": "Html.Attributes", + "comment": " Helper functions for HTML attributes. They are organized roughly by\ncategory. Each attribute is labeled with the HTML tags it can be used with, so\njust search the page for `video` if you want video stuff.\n\nIf you cannot find what you are looking for, go to the [Custom\nAttributes](#custom-attributes) section to learn how to create new helpers.\n\n# Primitives\n@docs style, property, attribute, map\n\n# Super Common Attributes\n@docs class, classList, id, title, hidden\n\n# Inputs\n@docs type_, value, defaultValue, checked, placeholder, selected\n\n## Input Helpers\n@docs accept, acceptCharset, action, autocomplete, autofocus,\n disabled, enctype, formaction, list, maxlength, minlength, method, multiple,\n name, novalidate, pattern, readonly, required, size, for, form\n\n## Input Ranges\n@docs max, min, step\n\n## Input Text Areas\n@docs cols, rows, wrap\n\n\n# Links and Areas\n@docs href, target, download, downloadAs, hreflang, media, ping, rel\n\n## Maps\n@docs ismap, usemap, shape, coords\n\n\n# Embedded Content\n@docs src, height, width, alt\n\n## Audio and Video\n@docs autoplay, controls, loop, preload, poster, default, kind, srclang\n\n## iframes\n@docs sandbox, seamless, srcdoc\n\n# Ordered Lists\n@docs reversed, start\n\n# Tables\n@docs align, colspan, rowspan, headers, scope\n\n# Header Stuff\n@docs async, charset, content, defer, httpEquiv, language, scoped\n\n# Less Common Global Attributes\nAttributes that can be attached to any HTML tag but are less commonly used.\n@docs accesskey, contenteditable, contextmenu, dir, draggable, dropzone,\n itemprop, lang, spellcheck, tabindex\n\n# Key Generation\n@docs challenge, keytype\n\n# Miscellaneous\n@docs cite, datetime, pubdate, manifest\n\n", + "aliases": [], + "types": [], + "values": [ + { + "name": "accept", + "comment": " List of types the server accepts, typically a file type.\nFor `form` and `input`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "acceptCharset", + "comment": " List of supported charsets in a `form`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "accesskey", + "comment": " Defines a keyboard shortcut to activate or add focus to the element. ", + "type": "Char -> Html.Attribute msg" + }, + { + "name": "action", + "comment": " The URI of a program that processes the information submitted via a `form`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "align", + "comment": " Specifies the horizontal alignment of a `caption`, `col`, `colgroup`,\n`hr`, `iframe`, `img`, `table`, `tbody`, `td`, `tfoot`, `th`, `thead`, or\n`tr`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "alt", + "comment": " Alternative text in case an image can't be displayed. Works with `img`,\n`area`, and `input`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "async", + "comment": " Indicates that the `script` should be executed asynchronously. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "attribute", + "comment": " Create *attributes*, like saying `domNode.setAttribute('class', 'greeting')`\nin JavaScript.\n\n class : String -> Attribute msg\n class name =\n attribute \"class\" name\n\nRead more about the difference between properties and attributes [here][].\n\n[here]: https://github.com/elm-lang/html/blob/master/properties-vs-attributes.md\n", + "type": "String -> String -> Html.Attribute msg" + }, + { + "name": "autocomplete", + "comment": " Indicates whether a `form` or an `input` can have their values automatically\ncompleted by the browser.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "autofocus", + "comment": " The element should be automatically focused after the page loaded.\nFor `button`, `input`, `keygen`, `select`, and `textarea`.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "autoplay", + "comment": " The `audio` or `video` should play as soon as possible. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "challenge", + "comment": " A challenge string that is submitted along with the public key in a `keygen`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "charset", + "comment": " Declares the character encoding of the page or script. Common values include:\n\n * UTF-8 - Character encoding for Unicode\n * ISO-8859-1 - Character encoding for the Latin alphabet\n\nFor `meta` and `script`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "checked", + "comment": " Indicates whether an `input` of type checkbox is checked. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "cite", + "comment": " Contains a URI which points to the source of the quote or change in a\n`blockquote`, `del`, `ins`, or `q`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "class", + "comment": " Often used with CSS to style elements with common properties. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "classList", + "comment": " This function makes it easier to build a space-separated class attribute.\nEach class can easily be added and removed depending on the boolean value it\nis paired with. For example, maybe we want a way to view notices:\n\n viewNotice : Notice -> Html msg\n viewNotice notice =\n div\n [ classList\n [ (\"notice\", True)\n , (\"notice-important\", notice.isImportant)\n , (\"notice-seen\", notice.isSeen)\n ]\n ]\n [ text notice.content ]\n", + "type": "List ( String, Bool ) -> Html.Attribute msg" + }, + { + "name": "cols", + "comment": " Defines the number of columns in a `textarea`. ", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "colspan", + "comment": " The colspan attribute defines the number of columns a cell should span.\nFor `td` and `th`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "content", + "comment": " A value associated with http-equiv or name depending on the context. For\n`meta`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "contenteditable", + "comment": " Indicates whether the element's content is editable. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "contextmenu", + "comment": " Defines the ID of a `menu` element which will serve as the element's\ncontext menu.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "controls", + "comment": " Indicates whether the browser should show playback controls for the `audio`\nor `video`.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "coords", + "comment": " A set of values specifying the coordinates of the hot-spot region in an\n`area`. Needs to be paired with a `shape` attribute to be meaningful.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "datetime", + "comment": " Indicates the date and time associated with the element.\nFor `del`, `ins`, `time`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "default", + "comment": " Indicates that the `track` should be enabled unless the user's preferences\nindicate something different.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "defaultValue", + "comment": " Defines an initial value which will be displayed in an `input` when that\n`input` is added to the DOM. Unlike `value`, altering `defaultValue` after the\n`input` element has been added to the DOM has no effect.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "defer", + "comment": " Indicates that a `script` should be executed after the page has been\nparsed.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "dir", + "comment": " Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl\n(Right-To-Left).\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "disabled", + "comment": " Indicates whether the user can interact with a `button`, `fieldset`,\n`input`, `keygen`, `optgroup`, `option`, `select` or `textarea`.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "download", + "comment": " Indicates that clicking an `a` and `area` will download the resource\ndirectly.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "downloadAs", + "comment": " Indicates that clicking an `a` and `area` will download the resource\ndirectly, and that the downloaded resource with have the given filename.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "draggable", + "comment": " Defines whether the element can be dragged. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "dropzone", + "comment": " Indicates that the element accept the dropping of content on it. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "enctype", + "comment": " How `form` data should be encoded when submitted with the POST method.\nOptions include: application/x-www-form-urlencoded, multipart/form-data, and\ntext/plain.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "for", + "comment": " The element ID described by this `label` or the element IDs that are used\nfor an `output`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "form", + "comment": " Indicates the element ID of the `form` that owns this particular `button`,\n`fieldset`, `input`, `keygen`, `label`, `meter`, `object`, `output`,\n`progress`, `select`, or `textarea`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "formaction", + "comment": " Indicates the action of an `input` or `button`. This overrides the action\ndefined in the surrounding `form`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "headers", + "comment": " A space separated list of element IDs indicating which `th` elements are\nheaders for this cell. For `td` and `th`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "height", + "comment": " Declare the height of a `canvas`, `embed`, `iframe`, `img`, `input`,\n`object`, or `video`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "hidden", + "comment": " Indicates the relevance of an element. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "href", + "comment": " The URL of a linked resource, such as `a`, `area`, `base`, or `link`. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "hreflang", + "comment": " Two-letter language code of the linked resource of an `a`, `area`, or `link`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "httpEquiv", + "comment": " This attribute is an indicator that is paired with the `content` attribute,\nindicating what that content means. `httpEquiv` can take on three different\nvalues: content-type, default-style, or refresh. For `meta`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "id", + "comment": " Often used with CSS to style a specific element. The value of this\nattribute must be unique.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "ismap", + "comment": " When an `img` is a descendent of an `a` tag, the `ismap` attribute\nindicates that the click location should be added to the parent `a`'s href as\na query string.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "itemprop", + "comment": "", + "type": "String -> Html.Attribute msg" + }, + { + "name": "keytype", + "comment": " Specifies the type of key generated by a `keygen`. Possible values are:\nrsa, dsa, and ec.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "kind", + "comment": " Specifies the kind of text `track`. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "lang", + "comment": " Defines the language used in the element. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "language", + "comment": " Defines the script language used in a `script`. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "list", + "comment": " Associates an `input` with a `datalist` tag. The datalist gives some\npre-defined options to suggest to the user as they interact with an input.\nThe value of the list attribute must match the id of a `datalist` node.\nFor `input`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "loop", + "comment": " Indicates whether the `audio` or `video` should start playing from the\nstart when it's finished.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "manifest", + "comment": " Specifies the URL of the cache manifest for an `html` tag. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "map", + "comment": " Transform the messages produced by an `Attribute`.\n", + "type": "(a -> msg) -> Html.Attribute a -> Html.Attribute msg" + }, + { + "name": "max", + "comment": " Indicates the maximum value allowed. When using an input of type number or\ndate, the max value must be a number or date. For `input`, `meter`, and `progress`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "maxlength", + "comment": " Defines the maximum number of characters allowed in an `input` or\n`textarea`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "media", + "comment": " Specifies a hint of the target media of a `a`, `area`, `link`, `source`,\nor `style`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "method", + "comment": " Defines which HTTP method to use when submitting a `form`. Can be GET\n(default) or POST.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "min", + "comment": " Indicates the minimum value allowed. When using an input of type number or\ndate, the min value must be a number or date. For `input` and `meter`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "minlength", + "comment": " Defines the minimum number of characters allowed in an `input` or\n`textarea`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "multiple", + "comment": " Indicates whether multiple values can be entered in an `input` of type\nemail or file. Can also indicate that you can `select` many options.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "name", + "comment": " Name of the element. For example used by the server to identify the fields\nin form submits. For `button`, `form`, `fieldset`, `iframe`, `input`, `keygen`,\n`object`, `output`, `select`, `textarea`, `map`, `meta`, and `param`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "novalidate", + "comment": " This attribute indicates that a `form` shouldn't be validated when\nsubmitted.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "pattern", + "comment": " Defines a regular expression which an `input`'s value will be validated\nagainst.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "ping", + "comment": " Specify a URL to send a short POST request to when the user clicks on an\n`a` or `area`. Useful for monitoring and tracking.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "placeholder", + "comment": " Provides a hint to the user of what can be entered into an `input` or\n`textarea`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "poster", + "comment": " A URL indicating a poster frame to show until the user plays or seeks the\n`video`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "preload", + "comment": " Control how much of an `audio` or `video` resource should be preloaded. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "property", + "comment": " Create *properties*, like saying `domNode.className = 'greeting'` in\nJavaScript.\n\n import Json.Encode as Encode\n\n class : String -> Attribute msg\n class name =\n property \"className\" (Encode.string name)\n\nRead more about the difference between properties and attributes [here][].\n\n[here]: https://github.com/elm-lang/html/blob/master/properties-vs-attributes.md\n", + "type": "String -> Json.Encode.Value -> Html.Attribute msg" + }, + { + "name": "pubdate", + "comment": " Indicates whether this date and time is the date of the nearest `article`\nancestor element. For `time`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "readonly", + "comment": " Indicates whether an `input` or `textarea` can be edited. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "rel", + "comment": " Specifies the relationship of the target object to the link object.\nFor `a`, `area`, `link`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "required", + "comment": " Indicates whether this element is required to fill out or not.\nFor `input`, `select`, and `textarea`.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "reversed", + "comment": " Indicates whether an ordered list `ol` should be displayed in a descending\norder instead of a ascending.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "rows", + "comment": " Defines the number of rows in a `textarea`. ", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "rowspan", + "comment": " Defines the number of rows a table cell should span over.\nFor `td` and `th`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "sandbox", + "comment": " A space separated list of security restrictions you'd like to lift for an\n`iframe`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "scope", + "comment": " Specifies the scope of a header cell `th`. Possible values are: col, row,\ncolgroup, rowgroup.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "scoped", + "comment": " Indicates that a `style` should only apply to its parent and all of the\nparents children.\n", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "seamless", + "comment": " Make an `iframe` look like part of the containing document. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "selected", + "comment": " Defines which `option` will be selected on page load. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "shape", + "comment": " Declare the shape of the clickable area in an `a` or `area`. Valid values\ninclude: default, rect, circle, poly. This attribute can be paired with\n`coords` to create more particular shapes.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "size", + "comment": " For `input` specifies the width of an input in characters.\n\nFor `select` specifies the number of visible options in a drop-down list.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "spellcheck", + "comment": " Indicates whether spell checking is allowed for the element. ", + "type": "Bool -> Html.Attribute msg" + }, + { + "name": "src", + "comment": " The URL of the embeddable content. For `audio`, `embed`, `iframe`, `img`,\n`input`, `script`, `source`, `track`, and `video`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "srcdoc", + "comment": " An HTML document that will be displayed as the body of an `iframe`. It will\noverride the content of the `src` attribute if it has been specified.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "srclang", + "comment": " A two letter language code indicating the language of the `track` text data.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "start", + "comment": " Defines the first number of an ordered list if you want it to be something\nbesides 1.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "step", + "comment": " Add a step size to an `input`. Use `step \"any\"` to allow any floating-point\nnumber to be used in the input.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "style", + "comment": " Specify a list of styles.\n\n myStyle : Attribute msg\n myStyle =\n style\n [ (\"backgroundColor\", \"red\")\n , (\"height\", \"90px\")\n , (\"width\", \"100%\")\n ]\n\n greeting : Html msg\n greeting =\n div [ myStyle ] [ text \"Hello!\" ]\n\nThere is no `Html.Styles` module because best practices for working with HTML\nsuggest that this should primarily be specified in CSS files. So the general\nrecommendation is to use this function lightly.\n", + "type": "List ( String, String ) -> Html.Attribute msg" + }, + { + "name": "tabindex", + "comment": " Overrides the browser's default tab order and follows the one specified\ninstead.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "target", + "comment": " Specify where the results of clicking an `a`, `area`, `base`, or `form`\nshould appear. Possible special values include:\n\n * _blank — a new window or tab\n * _self — the same frame (this is default)\n * _parent — the parent frame\n * _top — the full body of the window\n\nYou can also give the name of any `frame` you have created.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "title", + "comment": " Text to be displayed in a tooltip when hovering over the element. ", + "type": "String -> Html.Attribute msg" + }, + { + "name": "type_", + "comment": " Defines the type of a `button`, `input`, `embed`, `object`, `script`,\n`source`, `style`, or `menu`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "usemap", + "comment": " Specify the hash name reference of a `map` that should be used for an `img`\nor `object`. A hash name reference is a hash symbol followed by the element's name or id.\nE.g. `\"#planet-map\"`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "value", + "comment": " Defines a default value which will be displayed in a `button`, `option`,\n`input`, `li`, `meter`, `progress`, or `param`.\n", + "type": "String -> Html.Attribute msg" + }, + { + "name": "width", + "comment": " Declare the width of a `canvas`, `embed`, `iframe`, `img`, `input`,\n`object`, or `video`.\n", + "type": "Int -> Html.Attribute msg" + }, + { + "name": "wrap", + "comment": " Indicates whether the text should be wrapped in a `textarea`. Possible\nvalues are \"hard\" and \"soft\".\n", + "type": "String -> Html.Attribute msg" + } + ], + "generated-with-elm-version": "0.18.0" + }, + { + "name": "Html.Events", + "comment": "\nIt is often helpful to create an [Union Type][] so you can have many different kinds\nof events as seen in the [TodoMVC][] example.\n\n[Union Type]: http://elm-lang.org/learn/Union-Types.elm\n[TodoMVC]: https://github.com/evancz/elm-todomvc/blob/master/Todo.elm\n\n# Mouse Helpers\n@docs onClick, onDoubleClick,\n onMouseDown, onMouseUp,\n onMouseEnter, onMouseLeave,\n onMouseOver, onMouseOut\n\n# Form Helpers\n@docs onInput, onCheck, onSubmit\n\n# Focus Helpers\n@docs onBlur, onFocus\n\n# Custom Event Handlers\n@docs on, onWithOptions, Options, defaultOptions\n\n# Custom Decoders\n@docs targetValue, targetChecked, keyCode\n", + "aliases": [ + { + "name": "Options", + "comment": " Options for an event listener. If `stopPropagation` is true, it means the\nevent stops traveling through the DOM so it will not trigger any other event\nlisteners. If `preventDefault` is true, any built-in browser behavior related\nto the event is prevented. For example, this is used with touch events when you\nwant to treat them as gestures of your own, not as scrolls.\n", + "args": [], + "type": "{ stopPropagation : Bool, preventDefault : Bool }" + } + ], + "types": [], + "values": [ + { + "name": "defaultOptions", + "comment": " Everything is `False` by default.\n\n defaultOptions =\n { stopPropagation = False\n , preventDefault = False\n }\n", + "type": "Html.Events.Options" + }, + { + "name": "keyCode", + "comment": " A `Json.Decoder` for grabbing `event.keyCode`. This helps you define\nkeyboard listeners like this:\n\n import Json.Decode as Json\n\n onKeyUp : (Int -> msg) -> Attribute msg\n onKeyUp tagger =\n on \"keyup\" (Json.map tagger keyCode)\n\n**Note:** It looks like the spec is moving away from `event.keyCode` and\ntowards `event.key`. Once this is supported in more browsers, we may add\nhelpers here for `onKeyUp`, `onKeyDown`, `onKeyPress`, etc.\n", + "type": "Json.Decode.Decoder Int" + }, + { + "name": "on", + "comment": " Create a custom event listener. Normally this will not be necessary, but\nyou have the power! Here is how `onClick` is defined for example:\n\n import Json.Decode as Json\n\n onClick : msg -> Attribute msg\n onClick message =\n on \"click\" (Json.succeed message)\n\nThe first argument is the event name in the same format as with JavaScript's\n[`addEventListener`][aEL] function.\n\nThe second argument is a JSON decoder. Read more about these [here][decoder].\nWhen an event occurs, the decoder tries to turn the event object into an Elm\nvalue. If successful, the value is routed to your `update` function. In the\ncase of `onClick` we always just succeed with the given `message`.\n\nIf this is confusing, work through the [Elm Architecture Tutorial][tutorial].\nIt really does help!\n\n[aEL]: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener\n[decoder]: http://package.elm-lang.org/packages/elm-lang/core/latest/Json-Decode\n[tutorial]: https://github.com/evancz/elm-architecture-tutorial/\n", + "type": "String -> Json.Decode.Decoder msg -> Html.Attribute msg" + }, + { + "name": "onBlur", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onCheck", + "comment": " Capture [change](https://developer.mozilla.org/en-US/docs/Web/Events/change)\nevents on checkboxes. It will grab the boolean value from `event.target.checked`\non any input event.\n\nCheck out [targetChecked](#targetChecked) for more details on how this works.\n", + "type": "(Bool -> msg) -> Html.Attribute msg" + }, + { + "name": "onClick", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onDoubleClick", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onFocus", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onInput", + "comment": " Capture [input](https://developer.mozilla.org/en-US/docs/Web/Events/input)\nevents for things like text fields or text areas.\n\nIt grabs the **string** value at `event.target.value`, so it will not work if\nyou need some other type of information. For example, if you want to track \ninputs on a range slider, make a custom handler with [`on`](#on).\n\nFor more details on how `onInput` works, check out [targetValue](#targetValue).\n", + "type": "(String -> msg) -> Html.Attribute msg" + }, + { + "name": "onMouseDown", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onMouseEnter", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onMouseLeave", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onMouseOut", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onMouseOver", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onMouseUp", + "comment": "", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onSubmit", + "comment": " Capture a [submit](https://developer.mozilla.org/en-US/docs/Web/Events/submit)\nevent with [`preventDefault`](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault)\nin order to prevent the form from changing the page’s location. If you need\ndifferent behavior, use `onWithOptions` to create a customized version of\n`onSubmit`.\n", + "type": "msg -> Html.Attribute msg" + }, + { + "name": "onWithOptions", + "comment": " Same as `on` but you can set a few options.\n", + "type": "String -> Html.Events.Options -> Json.Decode.Decoder msg -> Html.Attribute msg" + }, + { + "name": "targetChecked", + "comment": " A `Json.Decoder` for grabbing `event.target.checked`. We use this to define\n`onCheck` as follows:\n\n import Json.Decode as Json\n\n onCheck : (Bool -> msg) -> Attribute msg\n onCheck tagger =\n on \"input\" (Json.map tagger targetChecked)\n", + "type": "Json.Decode.Decoder Bool" + }, + { + "name": "targetValue", + "comment": " A `Json.Decoder` for grabbing `event.target.value`. We use this to define\n`onInput` as follows:\n\n import Json.Decode as Json\n\n onInput : (String -> msg) -> Attribute msg\n onInput tagger =\n on \"input\" (Json.map tagger targetValue)\n\nYou probably will never need this, but hopefully it gives some insights into\nhow to make custom event handlers.\n", + "type": "Json.Decode.Decoder String" + } + ], + "generated-with-elm-version": "0.18.0" + }, + { + "name": "Html.Keyed", + "comment": " A keyed node helps optimize cases where children are getting added, moved,\nremoved, etc. Common examples include:\n\n - The user can delete items from a list.\n - The user can create new items in a list.\n - You can sort a list based on name or date or whatever.\n\nWhen you use a keyed node, every child is paired with a string identifier. This\nmakes it possible for the underlying diffing algorithm to reuse nodes more\nefficiently.\n\n# Keyed Nodes\n@docs node\n\n# Commonly Keyed Nodes\n@docs ol, ul\n", + "aliases": [], + "types": [], + "values": [ + { + "name": "node", + "comment": " Works just like `Html.node`, but you add a unique identifier to each child\nnode. You want this when you have a list of nodes that is changing: adding\nnodes, removing nodes, etc. In these cases, the unique identifiers help make\nthe DOM modifications more efficient.\n", + "type": "String -> List (Html.Attribute msg) -> List ( String, Html.Html msg ) -> Html.Html msg" + }, + { + "name": "ol", + "comment": "", + "type": "List (Html.Attribute msg) -> List ( String, Html.Html msg ) -> Html.Html msg" + }, + { + "name": "ul", + "comment": "", + "type": "List (Html.Attribute msg) -> List ( String, Html.Html msg ) -> Html.Html msg" + } + ], + "generated-with-elm-version": "0.18.0" + }, + { + "name": "Html", + "comment": " This file is organized roughly in order of popularity. The tags which you'd\nexpect to use frequently will be closer to the top.\n\n# Primitives\n@docs Html, Attribute, text, node, map\n\n# Programs\n@docs beginnerProgram, program, programWithFlags\n\n# Tags\n\n## Headers\n@docs h1, h2, h3, h4, h5, h6\n\n## Grouping Content\n@docs div, p, hr, pre, blockquote\n\n## Text\n@docs span, a, code, em, strong, i, b, u, sub, sup, br\n\n## Lists\n@docs ol, ul, li, dl, dt, dd\n\n## Emdedded Content\n@docs img, iframe, canvas, math\n\n## Inputs\n@docs form, input, textarea, button, select, option\n\n## Sections\n@docs section, nav, article, aside, header, footer, address, main_, body\n\n## Figures\n@docs figure, figcaption\n\n## Tables\n@docs table, caption, colgroup, col, tbody, thead, tfoot, tr, td, th\n\n\n## Less Common Elements\n\n### Less Common Inputs\n@docs fieldset, legend, label, datalist, optgroup, keygen, output, progress, meter\n\n### Audio and Video\n@docs audio, video, source, track\n\n### Embedded Objects\n@docs embed, object, param\n\n### Text Edits\n@docs ins, del\n\n### Semantic Text\n@docs small, cite, dfn, abbr, time, var, samp, kbd, s, q\n\n### Less Common Text Tags\n@docs mark, ruby, rt, rp, bdi, bdo, wbr\n\n## Interactive Elements\n@docs details, summary, menuitem, menu\n\n", + "aliases": [ + { + "name": "Attribute", + "comment": " Set attributes on your `Html`. Learn more in the\n[`Html.Attributes`](Html-Attributes) module.\n", + "args": [ + "msg" + ], + "type": "VirtualDom.Property msg" + }, + { + "name": "Html", + "comment": " The core building block used to build up HTML. Here we create an `Html`\nvalue with no attributes and one child:\n\n hello : Html msg\n hello =\n div [] [ text \"Hello!\" ]\n", + "args": [ + "msg" + ], + "type": "VirtualDom.Node msg" + } + ], + "types": [], + "values": [ + { + "name": "a", + "comment": " Represents a hyperlink, linking to another resource. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "abbr", + "comment": " Represents an abbreviation or an acronym; the expansion of the\nabbreviation can be represented in the title attribute.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "address", + "comment": " Defines a section containing contact information. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "article", + "comment": " Defines self-contained content that could exist independently of the rest\nof the content.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "aside", + "comment": " Defines some content loosely related to the page content. If it is removed,\nthe remaining content still makes sense.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "audio", + "comment": " Represents a sound or audio stream. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "b", + "comment": " Represents a text which to which attention is drawn for utilitarian\npurposes. It doesn't convey extra importance and doesn't imply an alternate\nvoice.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "bdi", + "comment": " Represents text that must be isolated from its surrounding for\nbidirectional text formatting. It allows embedding a span of text with a\ndifferent, or unknown, directionality.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "bdo", + "comment": " Represents the directionality of its children, in order to explicitly\noverride the Unicode bidirectional algorithm.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "beginnerProgram", + "comment": " Create a [`Program`][program] that describes how your whole app works.\n\nRead about [The Elm Architecture][tea] to learn how to use this. Just do it.\nThe additional context is very worthwhile! (Honestly, it is best to just read\nthat guide from front to back instead of muddling around and reading it\npiecemeal.)\n\n[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program\n[tea]: https://guide.elm-lang.org/architecture/\n", + "type": "{ model : model , view : model -> Html.Html msg , update : msg -> model -> model } -> Platform.Program Basics.Never model msg" + }, + { + "name": "blockquote", + "comment": " Represents a content that is quoted from another source. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "body", + "comment": " Represents the content of an HTML document. There is only one `body`\nelement in a document.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "br", + "comment": " Represents a line break. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "button", + "comment": " Represents a button. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "canvas", + "comment": " Represents a bitmap area for graphics rendering. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "caption", + "comment": " Represents the title of a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "cite", + "comment": " Represents the title of a work. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "code", + "comment": " Represents computer code. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "col", + "comment": " Represents a column of a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "colgroup", + "comment": " Represents a set of one or more columns of a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "datalist", + "comment": " Represents a set of predefined options for other controls. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "dd", + "comment": " Represents the definition of the terms immediately listed before it. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "del", + "comment": " Defines a removal from the document. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "details", + "comment": " Represents a widget from which the user can obtain additional information\nor controls.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "dfn", + "comment": " Represents a term whose definition is contained in its nearest ancestor\ncontent.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "div", + "comment": " Represents a generic container with no special meaning. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "dl", + "comment": " Defines a definition list, that is, a list of terms and their associated\ndefinitions.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "dt", + "comment": " Represents a term defined by the next `dd`. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "em", + "comment": " Represents emphasized text, like a stress accent. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "embed", + "comment": " Represents a integration point for an external, often non-HTML,\napplication or interactive content.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "fieldset", + "comment": " Represents a set of controls. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "figcaption", + "comment": " Represents the legend of a figure. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "figure", + "comment": " Represents a figure illustrated as part of the document. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "footer", + "comment": " Defines the footer for a page or section. It often contains a copyright\nnotice, some links to legal information, or addresses to give feedback.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "form", + "comment": " Represents a form, consisting of controls, that can be submitted to a\nserver for processing.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h1", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h2", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h3", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h4", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h5", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "h6", + "comment": "", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "header", + "comment": " Defines the header of a page or section. It often contains a logo, the\ntitle of the web site, and a navigational table of content.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "hr", + "comment": " Represents a thematic break between paragraphs of a section or article or\nany longer content.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "i", + "comment": " Represents some text in an alternate voice or mood, or at least of\ndifferent quality, such as a taxonomic designation, a technical term, an\nidiomatic phrase, a thought, or a ship name.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "iframe", + "comment": " Embedded an HTML document. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "img", + "comment": " Represents an image. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "input", + "comment": " Represents a typed data field allowing the user to edit the data. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "ins", + "comment": " Defines an addition to the document. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "kbd", + "comment": " Represents user input, often from the keyboard, but not necessarily; it\nmay represent other input, like transcribed voice commands.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "keygen", + "comment": " Represents a key-pair generator control. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "label", + "comment": " Represents the caption of a form control. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "legend", + "comment": " Represents the caption for a `fieldset`. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "li", + "comment": " Defines a item of an enumeration list. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "main_", + "comment": " Defines the main or important content in the document. There is only one\n`main` element in the document.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "map", + "comment": " Transform the messages produced by some `Html`. In the following example,\nwe have `viewButton` that produces `()` messages, and we transform those values\ninto `Msg` values in `view`.\n\n type Msg = Left | Right\n\n view : model -> Html Msg\n view model =\n div []\n [ map (\\_ -> Left) (viewButton \"Left\")\n , map (\\_ -> Right) (viewButton \"Right\")\n ]\n\n viewButton : String -> Html ()\n viewButton name =\n button [ onClick () ] [ text name ]\n\nThis should not come in handy too often. Definitely read [this][reuse] before\ndeciding if this is what you want.\n\n[reuse]: https://guide.elm-lang.org/reuse/\n", + "type": "(a -> msg) -> Html.Html a -> Html.Html msg" + }, + { + "name": "mark", + "comment": " Represents text highlighted for reference purposes, that is for its\nrelevance in another context.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "math", + "comment": " Defines a mathematical formula. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "menu", + "comment": " Represents a list of commands. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "menuitem", + "comment": " Represents a command that the user can invoke. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "meter", + "comment": " Represents a scalar measurement (or a fractional value), within a known\nrange.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "nav", + "comment": " Defines a section that contains only navigation links.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "node", + "comment": " General way to create HTML nodes. It is used to define all of the helper\nfunctions in this library.\n\n div : List (Attribute msg) -> List (Html msg) -> Html msg\n div attributes children =\n node \"div\" attributes children\n\nYou can use this to create custom nodes if you need to create something that\nis not covered by the helper functions in this library.\n", + "type": "String -> List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "object", + "comment": " Represents an external resource, which is treated as an image, an HTML\nsub-document, or an external resource to be processed by a plug-in.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "ol", + "comment": " Defines an ordered list of items. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "optgroup", + "comment": " Represents a set of options, logically grouped. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "option", + "comment": " Represents an option in a `select` element or a suggestion of a `datalist`\nelement.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "output", + "comment": " Represents the result of a calculation. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "p", + "comment": " Defines a portion that should be displayed as a paragraph. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "param", + "comment": " Defines parameters for use by plug-ins invoked by `object` elements. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "pre", + "comment": " Indicates that its content is preformatted and that this format must be\npreserved.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "program", + "comment": " Create a [`Program`][program] that describes how your whole app works.\n\nRead about [The Elm Architecture][tea] to learn how to use this. Just do it.\nCommands and subscriptions make way more sense when you work up to them\ngradually and see them in context with examples.\n\n[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program\n[tea]: https://guide.elm-lang.org/architecture/\n", + "type": "{ init : ( model, Platform.Cmd.Cmd msg ) , update : msg -> model -> ( model, Platform.Cmd.Cmd msg ) , subscriptions : model -> Platform.Sub.Sub msg , view : model -> Html.Html msg } -> Platform.Program Basics.Never model msg" + }, + { + "name": "programWithFlags", + "comment": " Create a [`Program`][program] that describes how your whole app works.\n\nIt works just like `program` but you can provide “flags” from\nJavaScript to configure your application. Read more about that [here][].\n\n[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program\n[here]: https://guide.elm-lang.org/interop/javascript.html\n", + "type": "{ init : flags -> ( model, Platform.Cmd.Cmd msg ) , update : msg -> model -> ( model, Platform.Cmd.Cmd msg ) , subscriptions : model -> Platform.Sub.Sub msg , view : model -> Html.Html msg } -> Platform.Program flags model msg" + }, + { + "name": "progress", + "comment": " Represents the completion progress of a task. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "q", + "comment": " Represents an inline quotation. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "rp", + "comment": " Represents parenthesis around a ruby annotation, used to display the\nannotation in an alternate way by browsers not supporting the standard display\nfor annotations.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "rt", + "comment": " Represents the text of a ruby annotation. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "ruby", + "comment": " Represents content to be marked with ruby annotations, short runs of text\npresented alongside the text. This is often used in conjunction with East Asian\nlanguage where the annotations act as a guide for pronunciation, like the\nJapanese furigana.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "s", + "comment": " Represents content that is no longer accurate or relevant. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "samp", + "comment": " Represents the output of a program or a computer. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "section", + "comment": " Defines a section in a document.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "select", + "comment": " Represents a control allowing selection among a set of options. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "small", + "comment": " Represents a side comment, that is, text like a disclaimer or a\ncopyright, which is not essential to the comprehension of the document.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "source", + "comment": " Allows authors to specify alternative media resources for media elements\nlike `video` or `audio`.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "span", + "comment": " Represents text with no specific meaning. This has to be used when no other\ntext-semantic element conveys an adequate meaning, which, in this case, is\noften brought by global attributes like `class`, `lang`, or `dir`.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "strong", + "comment": " Represents especially important text. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "sub", + "comment": " Represent a subscript. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "summary", + "comment": " Represents a summary, caption, or legend for a given `details`. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "sup", + "comment": " Represent a superscript. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "table", + "comment": " Represents data with more than one dimension. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "tbody", + "comment": " Represents the block of rows that describes the concrete data of a table.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "td", + "comment": " Represents a data cell in a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "text", + "comment": " Just put plain text in the DOM. It will escape the string so that it appears\nexactly as you specify.\n\n text \"Hello World!\"\n", + "type": "String -> Html.Html msg" + }, + { + "name": "textarea", + "comment": " Represents a multiline text edit control. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "tfoot", + "comment": " Represents the block of rows that describes the column summaries of a table.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "th", + "comment": " Represents a header cell in a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "thead", + "comment": " Represents the block of rows that describes the column labels of a table.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "time", + "comment": " Represents a date and time value; the machine-readable equivalent can be\nrepresented in the datetime attribute.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "tr", + "comment": " Represents a row of cells in a table. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "track", + "comment": " Allows authors to specify timed text track for media elements like `video`\nor `audio`.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "u", + "comment": " Represents a non-textual annoatation for which the conventional\npresentation is underlining, such labeling the text as being misspelt or\nlabeling a proper name in Chinese text.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "ul", + "comment": " Defines an unordered list of items. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "var", + "comment": " Represents a variable. Specific cases where it should be used include an\nactual mathematical expression or programming context, an identifier\nrepresenting a constant, a symbol identifying a physical quantity, a function\nparameter, or a mere placeholder in prose.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "video", + "comment": " Represents a video, the associated audio and captions, and controls. ", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + }, + { + "name": "wbr", + "comment": " Represents a line break opportunity, that is a suggested point for\nwrapping text in order to improve readability of text split on several lines.\n", + "type": "List (Html.Attribute msg) -> List (Html.Html msg) -> Html.Html msg" + } + ], + "generated-with-elm-version": "0.18.0" + } +] \ No newline at end of file diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/elm-package.json b/elm-stuff/packages/elm-lang/html/2.0.0/elm-package.json new file mode 100644 index 0000000..952aed5 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/elm-package.json @@ -0,0 +1,21 @@ +{ + "version": "2.0.0", + "summary": "Fast HTML, rendered with virtual DOM diffing", + "repository": "https://github.com/elm-lang/html.git", + "license": "BSD3", + "source-directories": [ + "src" + ], + "exposed-modules": [ + "Html", + "Html.Attributes", + "Html.Events", + "Html.Keyed", + "Html.Lazy" + ], + "dependencies": { + "elm-lang/core": "5.0.0 <= v < 6.0.0", + "elm-lang/virtual-dom": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/properties-vs-attributes.md b/elm-stuff/packages/elm-lang/html/2.0.0/properties-vs-attributes.md new file mode 100644 index 0000000..41f7565 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/properties-vs-attributes.md @@ -0,0 +1,15 @@ +# Properties vs. Attributes + +When you are working with HTML, you can have DOM nodes like `
`. And you can add *attributes* to those DOM nodes, like `
`. + +When you are creating DOM nodes in JavaScript, there are two ways to add attributes like this: + + 1. **Attributes** — You can use the `setAttribute` function. So adding a class attribute would look like this: `domNode.setAttribute('class', 'user-info')`. + + 2. **Properties** — JavaScript often exposes an alternate way to set these attributes. Another way to add a class attribute would be like this: `domNode.className = 'user-info'` + +Notice that the attribute is called `class` but the property is called `className`. This is because `class` is a reserved word in JavaScript. Point is, **attributes and properties do not always match up.** + +It is actually a bit crazier than that though. **Sometimes an attribute exists, but there is no corresponding property.** For example, as of this writing the `webkit-playsinline` can be added with `setAttribute`, but there is no corresponding property. And with SVG, you cannot use properties at all, you must to use `setAttributeNS` for everything. + +With all the corner cases here, it makes sense to have access to both approaches. \ No newline at end of file diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/src/Html.elm b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html.elm new file mode 100644 index 0000000..b872a3b --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html.elm @@ -0,0 +1,923 @@ +module Html exposing + ( Html, Attribute + , text, node, map + , beginnerProgram, program, programWithFlags + , h1, h2, h3, h4, h5, h6 + , div, p, hr, pre, blockquote + , span, a, code, em, strong, i, b, u, sub, sup, br + , ol, ul, li, dl, dt, dd + , img, iframe, canvas, math + , form, input, textarea, button, select, option + , section, nav, article, aside, header, footer, address, main_, body + , figure, figcaption + , table, caption, colgroup, col, tbody, thead, tfoot, tr, td, th + , fieldset, legend, label, datalist, optgroup, keygen, output, progress, meter + , audio, video, source, track + , embed, object, param + , ins, del + , small, cite, dfn, abbr, time, var, samp, kbd, s, q + , mark, ruby, rt, rp, bdi, bdo, wbr + , details, summary, menuitem, menu + ) + +{-| This file is organized roughly in order of popularity. The tags which you'd +expect to use frequently will be closer to the top. + +# Primitives +@docs Html, Attribute, text, node, map + +# Programs +@docs beginnerProgram, program, programWithFlags + +# Tags + +## Headers +@docs h1, h2, h3, h4, h5, h6 + +## Grouping Content +@docs div, p, hr, pre, blockquote + +## Text +@docs span, a, code, em, strong, i, b, u, sub, sup, br + +## Lists +@docs ol, ul, li, dl, dt, dd + +## Emdedded Content +@docs img, iframe, canvas, math + +## Inputs +@docs form, input, textarea, button, select, option + +## Sections +@docs section, nav, article, aside, header, footer, address, main_, body + +## Figures +@docs figure, figcaption + +## Tables +@docs table, caption, colgroup, col, tbody, thead, tfoot, tr, td, th + + +## Less Common Elements + +### Less Common Inputs +@docs fieldset, legend, label, datalist, optgroup, keygen, output, progress, meter + +### Audio and Video +@docs audio, video, source, track + +### Embedded Objects +@docs embed, object, param + +### Text Edits +@docs ins, del + +### Semantic Text +@docs small, cite, dfn, abbr, time, var, samp, kbd, s, q + +### Less Common Text Tags +@docs mark, ruby, rt, rp, bdi, bdo, wbr + +## Interactive Elements +@docs details, summary, menuitem, menu + +-} + +import VirtualDom + + + +-- CORE TYPES + + +{-| The core building block used to build up HTML. Here we create an `Html` +value with no attributes and one child: + + hello : Html msg + hello = + div [] [ text "Hello!" ] +-} +type alias Html msg = VirtualDom.Node msg + + +{-| Set attributes on your `Html`. Learn more in the +[`Html.Attributes`](Html-Attributes) module. +-} +type alias Attribute msg = VirtualDom.Property msg + + + +-- PRIMITIVES + + +{-| General way to create HTML nodes. It is used to define all of the helper +functions in this library. + + div : List (Attribute msg) -> List (Html msg) -> Html msg + div attributes children = + node "div" attributes children + +You can use this to create custom nodes if you need to create something that +is not covered by the helper functions in this library. +-} +node : String -> List (Attribute msg) -> List (Html msg) -> Html msg +node = + VirtualDom.node + + +{-| Just put plain text in the DOM. It will escape the string so that it appears +exactly as you specify. + + text "Hello World!" +-} +text : String -> Html msg +text = + VirtualDom.text + + + +-- NESTING VIEWS + + +{-| Transform the messages produced by some `Html`. In the following example, +we have `viewButton` that produces `()` messages, and we transform those values +into `Msg` values in `view`. + + type Msg = Left | Right + + view : model -> Html Msg + view model = + div [] + [ map (\_ -> Left) (viewButton "Left") + , map (\_ -> Right) (viewButton "Right") + ] + + viewButton : String -> Html () + viewButton name = + button [ onClick () ] [ text name ] + +This should not come in handy too often. Definitely read [this][reuse] before +deciding if this is what you want. + +[reuse]: https://guide.elm-lang.org/reuse/ +-} +map : (a -> msg) -> Html a -> Html msg +map = + VirtualDom.map + + + +-- CREATING PROGRAMS + + +{-| Create a [`Program`][program] that describes how your whole app works. + +Read about [The Elm Architecture][tea] to learn how to use this. Just do it. +The additional context is very worthwhile! (Honestly, it is best to just read +that guide from front to back instead of muddling around and reading it +piecemeal.) + +[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program +[tea]: https://guide.elm-lang.org/architecture/ +-} +beginnerProgram + : { model : model + , view : model -> Html msg + , update : msg -> model -> model + } + -> Program Never model msg +beginnerProgram {model, view, update} = + program + { init = model ! [] + , update = \msg model -> update msg model ! [] + , view = view + , subscriptions = \_ -> Sub.none + } + + +{-| Create a [`Program`][program] that describes how your whole app works. + +Read about [The Elm Architecture][tea] to learn how to use this. Just do it. +Commands and subscriptions make way more sense when you work up to them +gradually and see them in context with examples. + +[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program +[tea]: https://guide.elm-lang.org/architecture/ +-} +program + : { init : (model, Cmd msg) + , update : msg -> model -> (model, Cmd msg) + , subscriptions : model -> Sub msg + , view : model -> Html msg + } + -> Program Never model msg +program = + VirtualDom.program + + +{-| Create a [`Program`][program] that describes how your whole app works. + +It works just like `program` but you can provide “flags” from +JavaScript to configure your application. Read more about that [here][]. + +[program]: http://package.elm-lang.org/packages/elm-lang/core/latest/Platform#Program +[here]: https://guide.elm-lang.org/interop/javascript.html +-} +programWithFlags + : { init : flags -> (model, Cmd msg) + , update : msg -> model -> (model, Cmd msg) + , subscriptions : model -> Sub msg + , view : model -> Html msg + } + -> Program flags model msg +programWithFlags = + VirtualDom.programWithFlags + + + +-- SECTIONS + + +{-| Represents the content of an HTML document. There is only one `body` +element in a document. +-} +body : List (Attribute msg) -> List (Html msg) -> Html msg +body = + node "body" + + +{-| Defines a section in a document. +-} +section : List (Attribute msg) -> List (Html msg) -> Html msg +section = + node "section" + + +{-| Defines a section that contains only navigation links. +-} +nav : List (Attribute msg) -> List (Html msg) -> Html msg +nav = + node "nav" + + +{-| Defines self-contained content that could exist independently of the rest +of the content. +-} +article : List (Attribute msg) -> List (Html msg) -> Html msg +article = + node "article" + + +{-| Defines some content loosely related to the page content. If it is removed, +the remaining content still makes sense. +-} +aside : List (Attribute msg) -> List (Html msg) -> Html msg +aside = + node "aside" + + +{-|-} +h1 : List (Attribute msg) -> List (Html msg) -> Html msg +h1 = + node "h1" + + +{-|-} +h2 : List (Attribute msg) -> List (Html msg) -> Html msg +h2 = + node "h2" + + +{-|-} +h3 : List (Attribute msg) -> List (Html msg) -> Html msg +h3 = + node "h3" + + +{-|-} +h4 : List (Attribute msg) -> List (Html msg) -> Html msg +h4 = + node "h4" + + +{-|-} +h5 : List (Attribute msg) -> List (Html msg) -> Html msg +h5 = + node "h5" + + +{-|-} +h6 : List (Attribute msg) -> List (Html msg) -> Html msg +h6 = + node "h6" + + +{-| Defines the header of a page or section. It often contains a logo, the +title of the web site, and a navigational table of content. +-} +header : List (Attribute msg) -> List (Html msg) -> Html msg +header = + node "header" + + +{-| Defines the footer for a page or section. It often contains a copyright +notice, some links to legal information, or addresses to give feedback. +-} +footer : List (Attribute msg) -> List (Html msg) -> Html msg +footer = + node "footer" + + +{-| Defines a section containing contact information. -} +address : List (Attribute msg) -> List (Html msg) -> Html msg +address = + node "address" + + +{-| Defines the main or important content in the document. There is only one +`main` element in the document. +-} +main_ : List (Attribute msg) -> List (Html msg) -> Html msg +main_ = + node "main" + + +-- GROUPING CONTENT + +{-| Defines a portion that should be displayed as a paragraph. -} +p : List (Attribute msg) -> List (Html msg) -> Html msg +p = + node "p" + + +{-| Represents a thematic break between paragraphs of a section or article or +any longer content. +-} +hr : List (Attribute msg) -> List (Html msg) -> Html msg +hr = + node "hr" + + +{-| Indicates that its content is preformatted and that this format must be +preserved. +-} +pre : List (Attribute msg) -> List (Html msg) -> Html msg +pre = + node "pre" + + +{-| Represents a content that is quoted from another source. -} +blockquote : List (Attribute msg) -> List (Html msg) -> Html msg +blockquote = + node "blockquote" + + +{-| Defines an ordered list of items. -} +ol : List (Attribute msg) -> List (Html msg) -> Html msg +ol = + node "ol" + + +{-| Defines an unordered list of items. -} +ul : List (Attribute msg) -> List (Html msg) -> Html msg +ul = + node "ul" + + +{-| Defines a item of an enumeration list. -} +li : List (Attribute msg) -> List (Html msg) -> Html msg +li = + node "li" + + +{-| Defines a definition list, that is, a list of terms and their associated +definitions. +-} +dl : List (Attribute msg) -> List (Html msg) -> Html msg +dl = + node "dl" + + +{-| Represents a term defined by the next `dd`. -} +dt : List (Attribute msg) -> List (Html msg) -> Html msg +dt = + node "dt" + + +{-| Represents the definition of the terms immediately listed before it. -} +dd : List (Attribute msg) -> List (Html msg) -> Html msg +dd = + node "dd" + + +{-| Represents a figure illustrated as part of the document. -} +figure : List (Attribute msg) -> List (Html msg) -> Html msg +figure = + node "figure" + + +{-| Represents the legend of a figure. -} +figcaption : List (Attribute msg) -> List (Html msg) -> Html msg +figcaption = + node "figcaption" + + +{-| Represents a generic container with no special meaning. -} +div : List (Attribute msg) -> List (Html msg) -> Html msg +div = + node "div" + + +-- TEXT LEVEL SEMANTIC + +{-| Represents a hyperlink, linking to another resource. -} +a : List (Attribute msg) -> List (Html msg) -> Html msg +a = + node "a" + + +{-| Represents emphasized text, like a stress accent. -} +em : List (Attribute msg) -> List (Html msg) -> Html msg +em = + node "em" + + +{-| Represents especially important text. -} +strong : List (Attribute msg) -> List (Html msg) -> Html msg +strong = + node "strong" + + +{-| Represents a side comment, that is, text like a disclaimer or a +copyright, which is not essential to the comprehension of the document. +-} +small : List (Attribute msg) -> List (Html msg) -> Html msg +small = + node "small" + + +{-| Represents content that is no longer accurate or relevant. -} +s : List (Attribute msg) -> List (Html msg) -> Html msg +s = + node "s" + + +{-| Represents the title of a work. -} +cite : List (Attribute msg) -> List (Html msg) -> Html msg +cite = + node "cite" + + +{-| Represents an inline quotation. -} +q : List (Attribute msg) -> List (Html msg) -> Html msg +q = + node "q" + + +{-| Represents a term whose definition is contained in its nearest ancestor +content. +-} +dfn : List (Attribute msg) -> List (Html msg) -> Html msg +dfn = + node "dfn" + + +{-| Represents an abbreviation or an acronym; the expansion of the +abbreviation can be represented in the title attribute. +-} +abbr : List (Attribute msg) -> List (Html msg) -> Html msg +abbr = + node "abbr" + + +{-| Represents a date and time value; the machine-readable equivalent can be +represented in the datetime attribute. +-} +time : List (Attribute msg) -> List (Html msg) -> Html msg +time = + node "time" + + +{-| Represents computer code. -} +code : List (Attribute msg) -> List (Html msg) -> Html msg +code = + node "code" + + +{-| Represents a variable. Specific cases where it should be used include an +actual mathematical expression or programming context, an identifier +representing a constant, a symbol identifying a physical quantity, a function +parameter, or a mere placeholder in prose. +-} +var : List (Attribute msg) -> List (Html msg) -> Html msg +var = + node "var" + + +{-| Represents the output of a program or a computer. -} +samp : List (Attribute msg) -> List (Html msg) -> Html msg +samp = + node "samp" + + +{-| Represents user input, often from the keyboard, but not necessarily; it +may represent other input, like transcribed voice commands. +-} +kbd : List (Attribute msg) -> List (Html msg) -> Html msg +kbd = + node "kbd" + + +{-| Represent a subscript. -} +sub : List (Attribute msg) -> List (Html msg) -> Html msg +sub = + node "sub" + + +{-| Represent a superscript. -} +sup : List (Attribute msg) -> List (Html msg) -> Html msg +sup = + node "sup" + + +{-| Represents some text in an alternate voice or mood, or at least of +different quality, such as a taxonomic designation, a technical term, an +idiomatic phrase, a thought, or a ship name. +-} +i : List (Attribute msg) -> List (Html msg) -> Html msg +i = + node "i" + + +{-| Represents a text which to which attention is drawn for utilitarian +purposes. It doesn't convey extra importance and doesn't imply an alternate +voice. +-} +b : List (Attribute msg) -> List (Html msg) -> Html msg +b = + node "b" + + +{-| Represents a non-textual annoatation for which the conventional +presentation is underlining, such labeling the text as being misspelt or +labeling a proper name in Chinese text. +-} +u : List (Attribute msg) -> List (Html msg) -> Html msg +u = + node "u" + + +{-| Represents text highlighted for reference purposes, that is for its +relevance in another context. +-} +mark : List (Attribute msg) -> List (Html msg) -> Html msg +mark = + node "mark" + + +{-| Represents content to be marked with ruby annotations, short runs of text +presented alongside the text. This is often used in conjunction with East Asian +language where the annotations act as a guide for pronunciation, like the +Japanese furigana. +-} +ruby : List (Attribute msg) -> List (Html msg) -> Html msg +ruby = + node "ruby" + + +{-| Represents the text of a ruby annotation. -} +rt : List (Attribute msg) -> List (Html msg) -> Html msg +rt = + node "rt" + + +{-| Represents parenthesis around a ruby annotation, used to display the +annotation in an alternate way by browsers not supporting the standard display +for annotations. +-} +rp : List (Attribute msg) -> List (Html msg) -> Html msg +rp = + node "rp" + + +{-| Represents text that must be isolated from its surrounding for +bidirectional text formatting. It allows embedding a span of text with a +different, or unknown, directionality. +-} +bdi : List (Attribute msg) -> List (Html msg) -> Html msg +bdi = + node "bdi" + + +{-| Represents the directionality of its children, in order to explicitly +override the Unicode bidirectional algorithm. +-} +bdo : List (Attribute msg) -> List (Html msg) -> Html msg +bdo = + node "bdo" + + +{-| Represents text with no specific meaning. This has to be used when no other +text-semantic element conveys an adequate meaning, which, in this case, is +often brought by global attributes like `class`, `lang`, or `dir`. +-} +span : List (Attribute msg) -> List (Html msg) -> Html msg +span = + node "span" + + +{-| Represents a line break. -} +br : List (Attribute msg) -> List (Html msg) -> Html msg +br = + node "br" + + +{-| Represents a line break opportunity, that is a suggested point for +wrapping text in order to improve readability of text split on several lines. +-} +wbr : List (Attribute msg) -> List (Html msg) -> Html msg +wbr = + node "wbr" + + +-- EDITS + +{-| Defines an addition to the document. -} +ins : List (Attribute msg) -> List (Html msg) -> Html msg +ins = + node "ins" + + +{-| Defines a removal from the document. -} +del : List (Attribute msg) -> List (Html msg) -> Html msg +del = + node "del" + + +-- EMBEDDED CONTENT + +{-| Represents an image. -} +img : List (Attribute msg) -> List (Html msg) -> Html msg +img = + node "img" + + +{-| Embedded an HTML document. -} +iframe : List (Attribute msg) -> List (Html msg) -> Html msg +iframe = + node "iframe" + + +{-| Represents a integration point for an external, often non-HTML, +application or interactive content. +-} +embed : List (Attribute msg) -> List (Html msg) -> Html msg +embed = + node "embed" + + +{-| Represents an external resource, which is treated as an image, an HTML +sub-document, or an external resource to be processed by a plug-in. +-} +object : List (Attribute msg) -> List (Html msg) -> Html msg +object = + node "object" + + +{-| Defines parameters for use by plug-ins invoked by `object` elements. -} +param : List (Attribute msg) -> List (Html msg) -> Html msg +param = + node "param" + + +{-| Represents a video, the associated audio and captions, and controls. -} +video : List (Attribute msg) -> List (Html msg) -> Html msg +video = + node "video" + + +{-| Represents a sound or audio stream. -} +audio : List (Attribute msg) -> List (Html msg) -> Html msg +audio = + node "audio" + + +{-| Allows authors to specify alternative media resources for media elements +like `video` or `audio`. +-} +source : List (Attribute msg) -> List (Html msg) -> Html msg +source = + node "source" + + +{-| Allows authors to specify timed text track for media elements like `video` +or `audio`. +-} +track : List (Attribute msg) -> List (Html msg) -> Html msg +track = + node "track" + + +{-| Represents a bitmap area for graphics rendering. -} +canvas : List (Attribute msg) -> List (Html msg) -> Html msg +canvas = + node "canvas" + + +{-| Defines a mathematical formula. -} +math : List (Attribute msg) -> List (Html msg) -> Html msg +math = + node "math" + + +-- TABULAR DATA + +{-| Represents data with more than one dimension. -} +table : List (Attribute msg) -> List (Html msg) -> Html msg +table = + node "table" + + +{-| Represents the title of a table. -} +caption : List (Attribute msg) -> List (Html msg) -> Html msg +caption = + node "caption" + + +{-| Represents a set of one or more columns of a table. -} +colgroup : List (Attribute msg) -> List (Html msg) -> Html msg +colgroup = + node "colgroup" + + +{-| Represents a column of a table. -} +col : List (Attribute msg) -> List (Html msg) -> Html msg +col = + node "col" + + +{-| Represents the block of rows that describes the concrete data of a table. +-} +tbody : List (Attribute msg) -> List (Html msg) -> Html msg +tbody = + node "tbody" + + +{-| Represents the block of rows that describes the column labels of a table. +-} +thead : List (Attribute msg) -> List (Html msg) -> Html msg +thead = + node "thead" + + +{-| Represents the block of rows that describes the column summaries of a table. +-} +tfoot : List (Attribute msg) -> List (Html msg) -> Html msg +tfoot = + node "tfoot" + + +{-| Represents a row of cells in a table. -} +tr : List (Attribute msg) -> List (Html msg) -> Html msg +tr = + node "tr" + + +{-| Represents a data cell in a table. -} +td : List (Attribute msg) -> List (Html msg) -> Html msg +td = + node "td" + + +{-| Represents a header cell in a table. -} +th : List (Attribute msg) -> List (Html msg) -> Html msg +th = + node "th" + + +-- FORMS + +{-| Represents a form, consisting of controls, that can be submitted to a +server for processing. +-} +form : List (Attribute msg) -> List (Html msg) -> Html msg +form = + node "form" + + +{-| Represents a set of controls. -} +fieldset : List (Attribute msg) -> List (Html msg) -> Html msg +fieldset = + node "fieldset" + + +{-| Represents the caption for a `fieldset`. -} +legend : List (Attribute msg) -> List (Html msg) -> Html msg +legend = + node "legend" + + +{-| Represents the caption of a form control. -} +label : List (Attribute msg) -> List (Html msg) -> Html msg +label = + node "label" + + +{-| Represents a typed data field allowing the user to edit the data. -} +input : List (Attribute msg) -> List (Html msg) -> Html msg +input = + node "input" + + +{-| Represents a button. -} +button : List (Attribute msg) -> List (Html msg) -> Html msg +button = + node "button" + + +{-| Represents a control allowing selection among a set of options. -} +select : List (Attribute msg) -> List (Html msg) -> Html msg +select = + node "select" + + +{-| Represents a set of predefined options for other controls. -} +datalist : List (Attribute msg) -> List (Html msg) -> Html msg +datalist = + node "datalist" + + +{-| Represents a set of options, logically grouped. -} +optgroup : List (Attribute msg) -> List (Html msg) -> Html msg +optgroup = + node "optgroup" + + +{-| Represents an option in a `select` element or a suggestion of a `datalist` +element. +-} +option : List (Attribute msg) -> List (Html msg) -> Html msg +option = + node "option" + + +{-| Represents a multiline text edit control. -} +textarea : List (Attribute msg) -> List (Html msg) -> Html msg +textarea = + node "textarea" + + +{-| Represents a key-pair generator control. -} +keygen : List (Attribute msg) -> List (Html msg) -> Html msg +keygen = + node "keygen" + + +{-| Represents the result of a calculation. -} +output : List (Attribute msg) -> List (Html msg) -> Html msg +output = + node "output" + + +{-| Represents the completion progress of a task. -} +progress : List (Attribute msg) -> List (Html msg) -> Html msg +progress = + node "progress" + + +{-| Represents a scalar measurement (or a fractional value), within a known +range. +-} +meter : List (Attribute msg) -> List (Html msg) -> Html msg +meter = + node "meter" + + +-- INTERACTIVE ELEMENTS + +{-| Represents a widget from which the user can obtain additional information +or controls. +-} +details : List (Attribute msg) -> List (Html msg) -> Html msg +details = + node "details" + + +{-| Represents a summary, caption, or legend for a given `details`. -} +summary : List (Attribute msg) -> List (Html msg) -> Html msg +summary = + node "summary" + + +{-| Represents a command that the user can invoke. -} +menuitem : List (Attribute msg) -> List (Html msg) -> Html msg +menuitem = + node "menuitem" + + +{-| Represents a list of commands. -} +menu : List (Attribute msg) -> List (Html msg) -> Html msg +menu = + node "menu" + diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Attributes.elm b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Attributes.elm new file mode 100644 index 0000000..4cdba44 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Attributes.elm @@ -0,0 +1,1009 @@ +module Html.Attributes exposing + ( style, property, attribute, map + , class, classList, id, title, hidden + , type_, value, defaultValue, checked, placeholder, selected + , accept, acceptCharset, action, autocomplete, autofocus + , disabled, enctype, formaction, list, maxlength, minlength, method, multiple + , name, novalidate, pattern, readonly, required, size, for, form + , max, min, step + , cols, rows, wrap + , href, target, download, downloadAs, hreflang, media, ping, rel + , ismap, usemap, shape, coords + , src, height, width, alt + , autoplay, controls, loop, preload, poster, default, kind, srclang + , sandbox, seamless, srcdoc + , reversed, start + , align, colspan, rowspan, headers, scope + , async, charset, content, defer, httpEquiv, language, scoped + , accesskey, contenteditable, contextmenu, dir, draggable, dropzone + , itemprop, lang, spellcheck, tabindex + , challenge, keytype + , cite, datetime, pubdate, manifest + ) + +{-| Helper functions for HTML attributes. They are organized roughly by +category. Each attribute is labeled with the HTML tags it can be used with, so +just search the page for `video` if you want video stuff. + +If you cannot find what you are looking for, go to the [Custom +Attributes](#custom-attributes) section to learn how to create new helpers. + +# Primitives +@docs style, property, attribute, map + +# Super Common Attributes +@docs class, classList, id, title, hidden + +# Inputs +@docs type_, value, defaultValue, checked, placeholder, selected + +## Input Helpers +@docs accept, acceptCharset, action, autocomplete, autofocus, + disabled, enctype, formaction, list, maxlength, minlength, method, multiple, + name, novalidate, pattern, readonly, required, size, for, form + +## Input Ranges +@docs max, min, step + +## Input Text Areas +@docs cols, rows, wrap + + +# Links and Areas +@docs href, target, download, downloadAs, hreflang, media, ping, rel + +## Maps +@docs ismap, usemap, shape, coords + + +# Embedded Content +@docs src, height, width, alt + +## Audio and Video +@docs autoplay, controls, loop, preload, poster, default, kind, srclang + +## iframes +@docs sandbox, seamless, srcdoc + +# Ordered Lists +@docs reversed, start + +# Tables +@docs align, colspan, rowspan, headers, scope + +# Header Stuff +@docs async, charset, content, defer, httpEquiv, language, scoped + +# Less Common Global Attributes +Attributes that can be attached to any HTML tag but are less commonly used. +@docs accesskey, contenteditable, contextmenu, dir, draggable, dropzone, + itemprop, lang, spellcheck, tabindex + +# Key Generation +@docs challenge, keytype + +# Miscellaneous +@docs cite, datetime, pubdate, manifest + +-} + +import Html exposing (Attribute) +import Json.Encode as Json +import VirtualDom + + +-- This library does not include low, high, or optimum because the idea of a +-- `meter` is just too crazy. + + + +-- PRIMITIVES + + +{-| Specify a list of styles. + + myStyle : Attribute msg + myStyle = + style + [ ("backgroundColor", "red") + , ("height", "90px") + , ("width", "100%") + ] + + greeting : Html msg + greeting = + div [ myStyle ] [ text "Hello!" ] + +There is no `Html.Styles` module because best practices for working with HTML +suggest that this should primarily be specified in CSS files. So the general +recommendation is to use this function lightly. +-} +style : List (String, String) -> Attribute msg +style = + VirtualDom.style + + +{-| This function makes it easier to build a space-separated class attribute. +Each class can easily be added and removed depending on the boolean value it +is paired with. For example, maybe we want a way to view notices: + + viewNotice : Notice -> Html msg + viewNotice notice = + div + [ classList + [ ("notice", True) + , ("notice-important", notice.isImportant) + , ("notice-seen", notice.isSeen) + ] + ] + [ text notice.content ] +-} +classList : List (String, Bool) -> Attribute msg +classList list = + list + |> List.filter Tuple.second + |> List.map Tuple.first + |> String.join " " + |> class + + + +-- CUSTOM ATTRIBUTES + + +{-| Create *properties*, like saying `domNode.className = 'greeting'` in +JavaScript. + + import Json.Encode as Encode + + class : String -> Attribute msg + class name = + property "className" (Encode.string name) + +Read more about the difference between properties and attributes [here][]. + +[here]: https://github.com/elm-lang/html/blob/master/properties-vs-attributes.md +-} +property : String -> Json.Value -> Attribute msg +property = + VirtualDom.property + + +stringProperty : String -> String -> Attribute msg +stringProperty name string = + property name (Json.string string) + + +boolProperty : String -> Bool -> Attribute msg +boolProperty name bool = + property name (Json.bool bool) + + +{-| Create *attributes*, like saying `domNode.setAttribute('class', 'greeting')` +in JavaScript. + + class : String -> Attribute msg + class name = + attribute "class" name + +Read more about the difference between properties and attributes [here][]. + +[here]: https://github.com/elm-lang/html/blob/master/properties-vs-attributes.md +-} +attribute : String -> String -> Attribute msg +attribute = + VirtualDom.attribute + + +{-| Transform the messages produced by an `Attribute`. +-} +map : (a -> msg) -> Attribute a -> Attribute msg +map = + VirtualDom.mapProperty + + + +-- GLOBAL ATTRIBUTES + + +{-| Often used with CSS to style elements with common properties. -} +class : String -> Attribute msg +class name = + stringProperty "className" name + + +{-| Indicates the relevance of an element. -} +hidden : Bool -> Attribute msg +hidden bool = + boolProperty "hidden" bool + + +{-| Often used with CSS to style a specific element. The value of this +attribute must be unique. +-} +id : String -> Attribute msg +id name = + stringProperty "id" name + + +{-| Text to be displayed in a tooltip when hovering over the element. -} +title : String -> Attribute msg +title name = + stringProperty "title" name + + + +-- LESS COMMON GLOBAL ATTRIBUTES + + +{-| Defines a keyboard shortcut to activate or add focus to the element. -} +accesskey : Char -> Attribute msg +accesskey char = + stringProperty "accessKey" (String.fromChar char) + + +{-| Indicates whether the element's content is editable. -} +contenteditable : Bool -> Attribute msg +contenteditable bool = + boolProperty "contentEditable" bool + + +{-| Defines the ID of a `menu` element which will serve as the element's +context menu. +-} +contextmenu : String -> Attribute msg +contextmenu value = + attribute "contextmenu" value + + +{-| Defines the text direction. Allowed values are ltr (Left-To-Right) or rtl +(Right-To-Left). +-} +dir : String -> Attribute msg +dir value = + stringProperty "dir" value + + +{-| Defines whether the element can be dragged. -} +draggable : String -> Attribute msg +draggable value = + attribute "draggable" value + + +{-| Indicates that the element accept the dropping of content on it. -} +dropzone : String -> Attribute msg +dropzone value = + stringProperty "dropzone" value + + +{-|-} +itemprop : String -> Attribute msg +itemprop value = + attribute "itemprop" value + + +{-| Defines the language used in the element. -} +lang : String -> Attribute msg +lang value = + stringProperty "lang" value + + +{-| Indicates whether spell checking is allowed for the element. -} +spellcheck : Bool -> Attribute msg +spellcheck bool = + boolProperty "spellcheck" bool + + +{-| Overrides the browser's default tab order and follows the one specified +instead. +-} +tabindex : Int -> Attribute msg +tabindex n = + attribute "tabIndex" (toString n) + + + +-- HEADER STUFF + + +{-| Indicates that the `script` should be executed asynchronously. -} +async : Bool -> Attribute msg +async bool = + boolProperty "async" bool + + +{-| Declares the character encoding of the page or script. Common values include: + + * UTF-8 - Character encoding for Unicode + * ISO-8859-1 - Character encoding for the Latin alphabet + +For `meta` and `script`. +-} +charset : String -> Attribute msg +charset value = + attribute "charset" value + + +{-| A value associated with http-equiv or name depending on the context. For +`meta`. +-} +content : String -> Attribute msg +content value = + stringProperty "content" value + + +{-| Indicates that a `script` should be executed after the page has been +parsed. +-} +defer : Bool -> Attribute msg +defer bool = + boolProperty "defer" bool + + +{-| This attribute is an indicator that is paired with the `content` attribute, +indicating what that content means. `httpEquiv` can take on three different +values: content-type, default-style, or refresh. For `meta`. +-} +httpEquiv : String -> Attribute msg +httpEquiv value = + stringProperty "httpEquiv" value + + +{-| Defines the script language used in a `script`. -} +language : String -> Attribute msg +language value = + stringProperty "language" value + + +{-| Indicates that a `style` should only apply to its parent and all of the +parents children. +-} +scoped : Bool -> Attribute msg +scoped bool = + boolProperty "scoped" bool + + + +-- EMBEDDED CONTENT + + +{-| The URL of the embeddable content. For `audio`, `embed`, `iframe`, `img`, +`input`, `script`, `source`, `track`, and `video`. +-} +src : String -> Attribute msg +src value = + stringProperty "src" value + + +{-| Declare the height of a `canvas`, `embed`, `iframe`, `img`, `input`, +`object`, or `video`. +-} +height : Int -> Attribute msg +height value = + attribute "height" (toString value) + + +{-| Declare the width of a `canvas`, `embed`, `iframe`, `img`, `input`, +`object`, or `video`. +-} +width : Int -> Attribute msg +width value = + attribute "width" (toString value) + + +{-| Alternative text in case an image can't be displayed. Works with `img`, +`area`, and `input`. +-} +alt : String -> Attribute msg +alt value = + stringProperty "alt" value + + + +-- AUDIO and VIDEO + + +{-| The `audio` or `video` should play as soon as possible. -} +autoplay : Bool -> Attribute msg +autoplay bool = + boolProperty "autoplay" bool + + +{-| Indicates whether the browser should show playback controls for the `audio` +or `video`. +-} +controls : Bool -> Attribute msg +controls bool = + boolProperty "controls" bool + + +{-| Indicates whether the `audio` or `video` should start playing from the +start when it's finished. +-} +loop : Bool -> Attribute msg +loop bool = + boolProperty "loop" bool + + +{-| Control how much of an `audio` or `video` resource should be preloaded. -} +preload : String -> Attribute msg +preload value = + stringProperty "preload" value + + +{-| A URL indicating a poster frame to show until the user plays or seeks the +`video`. +-} +poster : String -> Attribute msg +poster value = + stringProperty "poster" value + + +{-| Indicates that the `track` should be enabled unless the user's preferences +indicate something different. +-} +default : Bool -> Attribute msg +default bool = + boolProperty "default" bool + + +{-| Specifies the kind of text `track`. -} +kind : String -> Attribute msg +kind value = + stringProperty "kind" value + + +{-- TODO: maybe reintroduce once there's a better way to disambiguate imports +{-| Specifies a user-readable title of the text `track`. -} +label : String -> Attribute msg +label value = + stringProperty "label" value +--} + +{-| A two letter language code indicating the language of the `track` text data. +-} +srclang : String -> Attribute msg +srclang value = + stringProperty "srclang" value + + + +-- IFRAMES + + +{-| A space separated list of security restrictions you'd like to lift for an +`iframe`. +-} +sandbox : String -> Attribute msg +sandbox value = + stringProperty "sandbox" value + + +{-| Make an `iframe` look like part of the containing document. -} +seamless : Bool -> Attribute msg +seamless bool = + boolProperty "seamless" bool + + +{-| An HTML document that will be displayed as the body of an `iframe`. It will +override the content of the `src` attribute if it has been specified. +-} +srcdoc : String -> Attribute msg +srcdoc value = + stringProperty "srcdoc" value + + + +-- INPUT + + +{-| Defines the type of a `button`, `input`, `embed`, `object`, `script`, +`source`, `style`, or `menu`. +-} +type_ : String -> Attribute msg +type_ value = + stringProperty "type" value + + +{-| Defines a default value which will be displayed in a `button`, `option`, +`input`, `li`, `meter`, `progress`, or `param`. +-} +value : String -> Attribute msg +value value = + stringProperty "value" value + + +{-| Defines an initial value which will be displayed in an `input` when that +`input` is added to the DOM. Unlike `value`, altering `defaultValue` after the +`input` element has been added to the DOM has no effect. +-} +defaultValue : String -> Attribute msg +defaultValue value = + stringProperty "defaultValue" value + + +{-| Indicates whether an `input` of type checkbox is checked. -} +checked : Bool -> Attribute msg +checked bool = + boolProperty "checked" bool + + +{-| Provides a hint to the user of what can be entered into an `input` or +`textarea`. +-} +placeholder : String -> Attribute msg +placeholder value = + stringProperty "placeholder" value + + +{-| Defines which `option` will be selected on page load. -} +selected : Bool -> Attribute msg +selected bool = + boolProperty "selected" bool + + + +-- INPUT HELPERS + + +{-| List of types the server accepts, typically a file type. +For `form` and `input`. +-} +accept : String -> Attribute msg +accept value = + stringProperty "accept" value + + +{-| List of supported charsets in a `form`. +-} +acceptCharset : String -> Attribute msg +acceptCharset value = + stringProperty "acceptCharset" value + + +{-| The URI of a program that processes the information submitted via a `form`. +-} +action : String -> Attribute msg +action value = + stringProperty "action" value + + +{-| Indicates whether a `form` or an `input` can have their values automatically +completed by the browser. +-} +autocomplete : Bool -> Attribute msg +autocomplete bool = + stringProperty "autocomplete" (if bool then "on" else "off") + + +{-| The element should be automatically focused after the page loaded. +For `button`, `input`, `keygen`, `select`, and `textarea`. +-} +autofocus : Bool -> Attribute msg +autofocus bool = + boolProperty "autofocus" bool + + +{-| Indicates whether the user can interact with a `button`, `fieldset`, +`input`, `keygen`, `optgroup`, `option`, `select` or `textarea`. +-} +disabled : Bool -> Attribute msg +disabled bool = + boolProperty "disabled" bool + + +{-| How `form` data should be encoded when submitted with the POST method. +Options include: application/x-www-form-urlencoded, multipart/form-data, and +text/plain. +-} +enctype : String -> Attribute msg +enctype value = + stringProperty "enctype" value + + +{-| Indicates the action of an `input` or `button`. This overrides the action +defined in the surrounding `form`. +-} +formaction : String -> Attribute msg +formaction value = + attribute "formAction" value + + +{-| Associates an `input` with a `datalist` tag. The datalist gives some +pre-defined options to suggest to the user as they interact with an input. +The value of the list attribute must match the id of a `datalist` node. +For `input`. +-} +list : String -> Attribute msg +list value = + attribute "list" value + + +{-| Defines the minimum number of characters allowed in an `input` or +`textarea`. +-} +minlength : Int -> Attribute msg +minlength n = + attribute "minLength" (toString n) + + +{-| Defines the maximum number of characters allowed in an `input` or +`textarea`. +-} +maxlength : Int -> Attribute msg +maxlength n = + attribute "maxlength" (toString n) + + +{-| Defines which HTTP method to use when submitting a `form`. Can be GET +(default) or POST. +-} +method : String -> Attribute msg +method value = + stringProperty "method" value + + +{-| Indicates whether multiple values can be entered in an `input` of type +email or file. Can also indicate that you can `select` many options. +-} +multiple : Bool -> Attribute msg +multiple bool = + boolProperty "multiple" bool + + +{-| Name of the element. For example used by the server to identify the fields +in form submits. For `button`, `form`, `fieldset`, `iframe`, `input`, `keygen`, +`object`, `output`, `select`, `textarea`, `map`, `meta`, and `param`. +-} +name : String -> Attribute msg +name value = + stringProperty "name" value + + +{-| This attribute indicates that a `form` shouldn't be validated when +submitted. +-} +novalidate : Bool -> Attribute msg +novalidate bool = + boolProperty "noValidate" bool + + +{-| Defines a regular expression which an `input`'s value will be validated +against. +-} +pattern : String -> Attribute msg +pattern value = + stringProperty "pattern" value + + +{-| Indicates whether an `input` or `textarea` can be edited. -} +readonly : Bool -> Attribute msg +readonly bool = + boolProperty "readOnly" bool + + +{-| Indicates whether this element is required to fill out or not. +For `input`, `select`, and `textarea`. +-} +required : Bool -> Attribute msg +required bool = + boolProperty "required" bool + + +{-| For `input` specifies the width of an input in characters. + +For `select` specifies the number of visible options in a drop-down list. +-} +size : Int -> Attribute msg +size n = + attribute "size" (toString n) + + +{-| The element ID described by this `label` or the element IDs that are used +for an `output`. +-} +for : String -> Attribute msg +for value = + stringProperty "htmlFor" value + + +{-| Indicates the element ID of the `form` that owns this particular `button`, +`fieldset`, `input`, `keygen`, `label`, `meter`, `object`, `output`, +`progress`, `select`, or `textarea`. +-} +form : String -> Attribute msg +form value = + attribute "form" value + + + +-- RANGES + + +{-| Indicates the maximum value allowed. When using an input of type number or +date, the max value must be a number or date. For `input`, `meter`, and `progress`. +-} +max : String -> Attribute msg +max value = + stringProperty "max" value + + +{-| Indicates the minimum value allowed. When using an input of type number or +date, the min value must be a number or date. For `input` and `meter`. +-} +min : String -> Attribute msg +min value = + stringProperty "min" value + + +{-| Add a step size to an `input`. Use `step "any"` to allow any floating-point +number to be used in the input. +-} +step : String -> Attribute msg +step n = + stringProperty "step" n + + +-------------------------- + + +{-| Defines the number of columns in a `textarea`. -} +cols : Int -> Attribute msg +cols n = + attribute "cols" (toString n) + + +{-| Defines the number of rows in a `textarea`. -} +rows : Int -> Attribute msg +rows n = + attribute "rows" (toString n) + + +{-| Indicates whether the text should be wrapped in a `textarea`. Possible +values are "hard" and "soft". +-} +wrap : String -> Attribute msg +wrap value = + stringProperty "wrap" value + + + +-- MAPS + + +{-| When an `img` is a descendent of an `a` tag, the `ismap` attribute +indicates that the click location should be added to the parent `a`'s href as +a query string. +-} +ismap : Bool -> Attribute msg +ismap value = + boolProperty "isMap" value + + +{-| Specify the hash name reference of a `map` that should be used for an `img` +or `object`. A hash name reference is a hash symbol followed by the element's name or id. +E.g. `"#planet-map"`. +-} +usemap : String -> Attribute msg +usemap value = + stringProperty "useMap" value + + +{-| Declare the shape of the clickable area in an `a` or `area`. Valid values +include: default, rect, circle, poly. This attribute can be paired with +`coords` to create more particular shapes. +-} +shape : String -> Attribute msg +shape value = + stringProperty "shape" value + + +{-| A set of values specifying the coordinates of the hot-spot region in an +`area`. Needs to be paired with a `shape` attribute to be meaningful. +-} +coords : String -> Attribute msg +coords value = + stringProperty "coords" value + + + +-- KEY GEN + + +{-| A challenge string that is submitted along with the public key in a `keygen`. +-} +challenge : String -> Attribute msg +challenge value = + attribute "challenge" value + + +{-| Specifies the type of key generated by a `keygen`. Possible values are: +rsa, dsa, and ec. +-} +keytype : String -> Attribute msg +keytype value = + stringProperty "keytype" value + + + +-- REAL STUFF + + +{-| Specifies the horizontal alignment of a `caption`, `col`, `colgroup`, +`hr`, `iframe`, `img`, `table`, `tbody`, `td`, `tfoot`, `th`, `thead`, or +`tr`. +-} +align : String -> Attribute msg +align value = + stringProperty "align" value + + +{-| Contains a URI which points to the source of the quote or change in a +`blockquote`, `del`, `ins`, or `q`. +-} +cite : String -> Attribute msg +cite value = + stringProperty "cite" value + + + + +-- LINKS AND AREAS + + +{-| The URL of a linked resource, such as `a`, `area`, `base`, or `link`. -} +href : String -> Attribute msg +href value = + stringProperty "href" value + + +{-| Specify where the results of clicking an `a`, `area`, `base`, or `form` +should appear. Possible special values include: + + * _blank — a new window or tab + * _self — the same frame (this is default) + * _parent — the parent frame + * _top — the full body of the window + +You can also give the name of any `frame` you have created. +-} +target : String -> Attribute msg +target value = + stringProperty "target" value + + +{-| Indicates that clicking an `a` and `area` will download the resource +directly. +-} +download : Bool -> Attribute msg +download bool = + boolProperty "download" bool + + +{-| Indicates that clicking an `a` and `area` will download the resource +directly, and that the downloaded resource with have the given filename. +-} +downloadAs : String -> Attribute msg +downloadAs value = + stringProperty "download" value + + +{-| Two-letter language code of the linked resource of an `a`, `area`, or `link`. +-} +hreflang : String -> Attribute msg +hreflang value = + stringProperty "hreflang" value + + +{-| Specifies a hint of the target media of a `a`, `area`, `link`, `source`, +or `style`. +-} +media : String -> Attribute msg +media value = + attribute "media" value + + +{-| Specify a URL to send a short POST request to when the user clicks on an +`a` or `area`. Useful for monitoring and tracking. +-} +ping : String -> Attribute msg +ping value = + stringProperty "ping" value + + +{-| Specifies the relationship of the target object to the link object. +For `a`, `area`, `link`. +-} +rel : String -> Attribute msg +rel value = + attribute "rel" value + + + +-- CRAZY STUFF + + +{-| Indicates the date and time associated with the element. +For `del`, `ins`, `time`. +-} +datetime : String -> Attribute msg +datetime value = + attribute "datetime" value + + +{-| Indicates whether this date and time is the date of the nearest `article` +ancestor element. For `time`. +-} +pubdate : String -> Attribute msg +pubdate value = + attribute "pubdate" value + + + +-- ORDERED LISTS + + +{-| Indicates whether an ordered list `ol` should be displayed in a descending +order instead of a ascending. +-} +reversed : Bool -> Attribute msg +reversed bool = + boolProperty "reversed" bool + + +{-| Defines the first number of an ordered list if you want it to be something +besides 1. +-} +start : Int -> Attribute msg +start n = + stringProperty "start" (toString n) + + + +-- TABLES + + +{-| The colspan attribute defines the number of columns a cell should span. +For `td` and `th`. +-} +colspan : Int -> Attribute msg +colspan n = + attribute "colspan" (toString n) + + +{-| A space separated list of element IDs indicating which `th` elements are +headers for this cell. For `td` and `th`. +-} +headers : String -> Attribute msg +headers value = + stringProperty "headers" value + + +{-| Defines the number of rows a table cell should span over. +For `td` and `th`. +-} +rowspan : Int -> Attribute msg +rowspan n = + attribute "rowspan" (toString n) + + +{-| Specifies the scope of a header cell `th`. Possible values are: col, row, +colgroup, rowgroup. +-} +scope : String -> Attribute msg +scope value = + stringProperty "scope" value + + +{-| Specifies the URL of the cache manifest for an `html` tag. -} +manifest : String -> Attribute msg +manifest value = + attribute "manifest" value + + +{-- TODO: maybe reintroduce once there's a better way to disambiguate imports +{-| The number of columns a `col` or `colgroup` should span. -} +span : Int -> Attribute msg +span n = + stringProperty "span" (toString n) +--} diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Events.elm b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Events.elm new file mode 100644 index 0000000..ff5c1fe --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Events.elm @@ -0,0 +1,269 @@ +module Html.Events exposing + ( onClick, onDoubleClick + , onMouseDown, onMouseUp + , onMouseEnter, onMouseLeave + , onMouseOver, onMouseOut + , onInput, onCheck, onSubmit + , onBlur, onFocus + , on, onWithOptions, Options, defaultOptions + , targetValue, targetChecked, keyCode + ) + +{-| +It is often helpful to create an [Union Type][] so you can have many different kinds +of events as seen in the [TodoMVC][] example. + +[Union Type]: http://elm-lang.org/learn/Union-Types.elm +[TodoMVC]: https://github.com/evancz/elm-todomvc/blob/master/Todo.elm + +# Mouse Helpers +@docs onClick, onDoubleClick, + onMouseDown, onMouseUp, + onMouseEnter, onMouseLeave, + onMouseOver, onMouseOut + +# Form Helpers +@docs onInput, onCheck, onSubmit + +# Focus Helpers +@docs onBlur, onFocus + +# Custom Event Handlers +@docs on, onWithOptions, Options, defaultOptions + +# Custom Decoders +@docs targetValue, targetChecked, keyCode +-} + +import Html exposing (Attribute) +import Json.Decode as Json +import VirtualDom + + + +-- MOUSE EVENTS + + +{-|-} +onClick : msg -> Attribute msg +onClick msg = + on "click" (Json.succeed msg) + + +{-|-} +onDoubleClick : msg -> Attribute msg +onDoubleClick msg = + on "dblclick" (Json.succeed msg) + + +{-|-} +onMouseDown : msg -> Attribute msg +onMouseDown msg = + on "mousedown" (Json.succeed msg) + + +{-|-} +onMouseUp : msg -> Attribute msg +onMouseUp msg = + on "mouseup" (Json.succeed msg) + + +{-|-} +onMouseEnter : msg -> Attribute msg +onMouseEnter msg = + on "mouseenter" (Json.succeed msg) + + +{-|-} +onMouseLeave : msg -> Attribute msg +onMouseLeave msg = + on "mouseleave" (Json.succeed msg) + + +{-|-} +onMouseOver : msg -> Attribute msg +onMouseOver msg = + on "mouseover" (Json.succeed msg) + + +{-|-} +onMouseOut : msg -> Attribute msg +onMouseOut msg = + on "mouseout" (Json.succeed msg) + + + +-- FORM EVENTS + + +{-| Capture [input](https://developer.mozilla.org/en-US/docs/Web/Events/input) +events for things like text fields or text areas. + +It grabs the **string** value at `event.target.value`, so it will not work if +you need some other type of information. For example, if you want to track +inputs on a range slider, make a custom handler with [`on`](#on). + +For more details on how `onInput` works, check out [targetValue](#targetValue). +-} +onInput : (String -> msg) -> Attribute msg +onInput tagger = + on "input" (Json.map tagger targetValue) + + +{-| Capture [change](https://developer.mozilla.org/en-US/docs/Web/Events/change) +events on checkboxes. It will grab the boolean value from `event.target.checked` +on any input event. + +Check out [targetChecked](#targetChecked) for more details on how this works. +-} +onCheck : (Bool -> msg) -> Attribute msg +onCheck tagger = + on "change" (Json.map tagger targetChecked) + + +{-| Capture a [submit](https://developer.mozilla.org/en-US/docs/Web/Events/submit) +event with [`preventDefault`](https://developer.mozilla.org/en-US/docs/Web/API/Event/preventDefault) +in order to prevent the form from changing the page’s location. If you need +different behavior, use `onWithOptions` to create a customized version of +`onSubmit`. +-} +onSubmit : msg -> Attribute msg +onSubmit msg = + onWithOptions "submit" onSubmitOptions (Json.succeed msg) + + +onSubmitOptions : Options +onSubmitOptions = + { defaultOptions | preventDefault = True } + + +-- FOCUS EVENTS + + +{-|-} +onBlur : msg -> Attribute msg +onBlur msg = + on "blur" (Json.succeed msg) + + +{-|-} +onFocus : msg -> Attribute msg +onFocus msg = + on "focus" (Json.succeed msg) + + + +-- CUSTOM EVENTS + + +{-| Create a custom event listener. Normally this will not be necessary, but +you have the power! Here is how `onClick` is defined for example: + + import Json.Decode as Json + + onClick : msg -> Attribute msg + onClick message = + on "click" (Json.succeed message) + +The first argument is the event name in the same format as with JavaScript's +[`addEventListener`][aEL] function. + +The second argument is a JSON decoder. Read more about these [here][decoder]. +When an event occurs, the decoder tries to turn the event object into an Elm +value. If successful, the value is routed to your `update` function. In the +case of `onClick` we always just succeed with the given `message`. + +If this is confusing, work through the [Elm Architecture Tutorial][tutorial]. +It really does help! + +[aEL]: https://developer.mozilla.org/en-US/docs/Web/API/EventTarget/addEventListener +[decoder]: http://package.elm-lang.org/packages/elm-lang/core/latest/Json-Decode +[tutorial]: https://github.com/evancz/elm-architecture-tutorial/ +-} +on : String -> Json.Decoder msg -> Attribute msg +on = + VirtualDom.on + + +{-| Same as `on` but you can set a few options. +-} +onWithOptions : String -> Options -> Json.Decoder msg -> Attribute msg +onWithOptions = + VirtualDom.onWithOptions + + +{-| Options for an event listener. If `stopPropagation` is true, it means the +event stops traveling through the DOM so it will not trigger any other event +listeners. If `preventDefault` is true, any built-in browser behavior related +to the event is prevented. For example, this is used with touch events when you +want to treat them as gestures of your own, not as scrolls. +-} +type alias Options = + { stopPropagation : Bool + , preventDefault : Bool + } + + +{-| Everything is `False` by default. + + defaultOptions = + { stopPropagation = False + , preventDefault = False + } +-} +defaultOptions : Options +defaultOptions = + VirtualDom.defaultOptions + + + +-- COMMON DECODERS + + +{-| A `Json.Decoder` for grabbing `event.target.value`. We use this to define +`onInput` as follows: + + import Json.Decode as Json + + onInput : (String -> msg) -> Attribute msg + onInput tagger = + on "input" (Json.map tagger targetValue) + +You probably will never need this, but hopefully it gives some insights into +how to make custom event handlers. +-} +targetValue : Json.Decoder String +targetValue = + Json.at ["target", "value"] Json.string + + +{-| A `Json.Decoder` for grabbing `event.target.checked`. We use this to define +`onCheck` as follows: + + import Json.Decode as Json + + onCheck : (Bool -> msg) -> Attribute msg + onCheck tagger = + on "input" (Json.map tagger targetChecked) +-} +targetChecked : Json.Decoder Bool +targetChecked = + Json.at ["target", "checked"] Json.bool + + +{-| A `Json.Decoder` for grabbing `event.keyCode`. This helps you define +keyboard listeners like this: + + import Json.Decode as Json + + onKeyUp : (Int -> msg) -> Attribute msg + onKeyUp tagger = + on "keyup" (Json.map tagger keyCode) + +**Note:** It looks like the spec is moving away from `event.keyCode` and +towards `event.key`. Once this is supported in more browsers, we may add +helpers here for `onKeyUp`, `onKeyDown`, `onKeyPress`, etc. +-} +keyCode : Json.Decoder Int +keyCode = + Json.field "keyCode" Json.int diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Keyed.elm b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Keyed.elm new file mode 100644 index 0000000..debd710 --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Keyed.elm @@ -0,0 +1,48 @@ +module Html.Keyed exposing + ( node + , ol + , ul + ) +{-| A keyed node helps optimize cases where children are getting added, moved, +removed, etc. Common examples include: + + - The user can delete items from a list. + - The user can create new items in a list. + - You can sort a list based on name or date or whatever. + +When you use a keyed node, every child is paired with a string identifier. This +makes it possible for the underlying diffing algorithm to reuse nodes more +efficiently. + +# Keyed Nodes +@docs node + +# Commonly Keyed Nodes +@docs ol, ul +-} + + +import Html exposing (Attribute, Html) +import VirtualDom + + +{-| Works just like `Html.node`, but you add a unique identifier to each child +node. You want this when you have a list of nodes that is changing: adding +nodes, removing nodes, etc. In these cases, the unique identifiers help make +the DOM modifications more efficient. +-} +node : String -> List (Attribute msg) -> List ( String, Html msg ) -> Html msg +node = + VirtualDom.keyedNode + + +{-|-} +ol : List (Attribute msg) -> List ( String, Html msg ) -> Html msg +ol = + node "ol" + + +{-|-} +ul : List (Attribute msg) -> List ( String, Html msg ) -> Html msg +ul = + node "ul" diff --git a/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Lazy.elm b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Lazy.elm new file mode 100644 index 0000000..f027ffc --- /dev/null +++ b/elm-stuff/packages/elm-lang/html/2.0.0/src/Html/Lazy.elm @@ -0,0 +1,48 @@ +module Html.Lazy exposing + ( lazy, lazy2, lazy3 + ) + +{-| Since all Elm functions are pure we have a guarantee that the same input +will always result in the same output. This module gives us tools to be lazy +about building `Html` that utilize this fact. + +Rather than immediately applying functions to their arguments, the `lazy` +functions just bundle the function and arguments up for later. When diffing +the old and new virtual DOM, it checks to see if all the arguments are equal. +If so, it skips calling the function! + +This is a really cheap test and often makes things a lot faster, but definitely +benchmark to be sure! + +@docs lazy, lazy2, lazy3 +-} + +import Html exposing (Html) +import VirtualDom + + +{-| A performance optimization that delays the building of virtual DOM nodes. + +Calling `(view model)` will definitely build some virtual DOM, perhaps a lot of +it. Calling `(lazy view model)` delays the call until later. During diffing, we +can check to see if `model` is referentially equal to the previous value used, +and if so, we just stop. No need to build up the tree structure and diff it, +we know if the input to `view` is the same, the output must be the same! +-} +lazy : (a -> Html msg) -> a -> Html msg +lazy = + VirtualDom.lazy + + +{-| Same as `lazy` but checks on two arguments. +-} +lazy2 : (a -> b -> Html msg) -> a -> b -> Html msg +lazy2 = + VirtualDom.lazy2 + + +{-| Same as `lazy` but checks on three arguments. +-} +lazy3 : (a -> b -> c -> Html msg) -> a -> b -> c -> Html msg +lazy3 = + VirtualDom.lazy3 diff --git a/index.html b/index.html index 8bb162b..2e187e4 100644 --- a/index.html +++ b/index.html @@ -1,15 +1,120 @@ - + - - - MetaModel Editor - - - - - -
- - + + + + Elm • Model-based Web App + + + + + + + + + diff --git a/libs/jquery.min.js b/libs/jquery.min.js deleted file mode 100644 index c4643af..0000000 --- a/libs/jquery.min.js +++ /dev/null @@ -1,5 +0,0 @@ -/*! jQuery v2.1.1 | (c) 2005, 2014 jQuery Foundation, Inc. | jquery.org/license */ -!function(a,b){"object"==typeof module&&"object"==typeof module.exports?module.exports=a.document?b(a,!0):function(a){if(!a.document)throw new Error("jQuery requires a window with a document");return b(a)}:b(a)}("undefined"!=typeof window?window:this,function(a,b){var c=[],d=c.slice,e=c.concat,f=c.push,g=c.indexOf,h={},i=h.toString,j=h.hasOwnProperty,k={},l=a.document,m="2.1.1",n=function(a,b){return new n.fn.init(a,b)},o=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,p=/^-ms-/,q=/-([\da-z])/gi,r=function(a,b){return b.toUpperCase()};n.fn=n.prototype={jquery:m,constructor:n,selector:"",length:0,toArray:function(){return d.call(this)},get:function(a){return null!=a?0>a?this[a+this.length]:this[a]:d.call(this)},pushStack:function(a){var b=n.merge(this.constructor(),a);return b.prevObject=this,b.context=this.context,b},each:function(a,b){return n.each(this,a,b)},map:function(a){return this.pushStack(n.map(this,function(b,c){return a.call(b,c,b)}))},slice:function(){return this.pushStack(d.apply(this,arguments))},first:function(){return this.eq(0)},last:function(){return this.eq(-1)},eq:function(a){var b=this.length,c=+a+(0>a?b:0);return this.pushStack(c>=0&&b>c?[this[c]]:[])},end:function(){return this.prevObject||this.constructor(null)},push:f,sort:c.sort,splice:c.splice},n.extend=n.fn.extend=function(){var a,b,c,d,e,f,g=arguments[0]||{},h=1,i=arguments.length,j=!1;for("boolean"==typeof g&&(j=g,g=arguments[h]||{},h++),"object"==typeof g||n.isFunction(g)||(g={}),h===i&&(g=this,h--);i>h;h++)if(null!=(a=arguments[h]))for(b in a)c=g[b],d=a[b],g!==d&&(j&&d&&(n.isPlainObject(d)||(e=n.isArray(d)))?(e?(e=!1,f=c&&n.isArray(c)?c:[]):f=c&&n.isPlainObject(c)?c:{},g[b]=n.extend(j,f,d)):void 0!==d&&(g[b]=d));return g},n.extend({expando:"jQuery"+(m+Math.random()).replace(/\D/g,""),isReady:!0,error:function(a){throw new Error(a)},noop:function(){},isFunction:function(a){return"function"===n.type(a)},isArray:Array.isArray,isWindow:function(a){return null!=a&&a===a.window},isNumeric:function(a){return!n.isArray(a)&&a-parseFloat(a)>=0},isPlainObject:function(a){return"object"!==n.type(a)||a.nodeType||n.isWindow(a)?!1:a.constructor&&!j.call(a.constructor.prototype,"isPrototypeOf")?!1:!0},isEmptyObject:function(a){var b;for(b in a)return!1;return!0},type:function(a){return null==a?a+"":"object"==typeof a||"function"==typeof a?h[i.call(a)]||"object":typeof a},globalEval:function(a){var b,c=eval;a=n.trim(a),a&&(1===a.indexOf("use strict")?(b=l.createElement("script"),b.text=a,l.head.appendChild(b).parentNode.removeChild(b)):c(a))},camelCase:function(a){return a.replace(p,"ms-").replace(q,r)},nodeName:function(a,b){return a.nodeName&&a.nodeName.toLowerCase()===b.toLowerCase()},each:function(a,b,c){var d,e=0,f=a.length,g=s(a);if(c){if(g){for(;f>e;e++)if(d=b.apply(a[e],c),d===!1)break}else for(e in a)if(d=b.apply(a[e],c),d===!1)break}else if(g){for(;f>e;e++)if(d=b.call(a[e],e,a[e]),d===!1)break}else for(e in a)if(d=b.call(a[e],e,a[e]),d===!1)break;return a},trim:function(a){return null==a?"":(a+"").replace(o,"")},makeArray:function(a,b){var c=b||[];return null!=a&&(s(Object(a))?n.merge(c,"string"==typeof a?[a]:a):f.call(c,a)),c},inArray:function(a,b,c){return null==b?-1:g.call(b,a,c)},merge:function(a,b){for(var c=+b.length,d=0,e=a.length;c>d;d++)a[e++]=b[d];return a.length=e,a},grep:function(a,b,c){for(var d,e=[],f=0,g=a.length,h=!c;g>f;f++)d=!b(a[f],f),d!==h&&e.push(a[f]);return e},map:function(a,b,c){var d,f=0,g=a.length,h=s(a),i=[];if(h)for(;g>f;f++)d=b(a[f],f,c),null!=d&&i.push(d);else for(f in a)d=b(a[f],f,c),null!=d&&i.push(d);return e.apply([],i)},guid:1,proxy:function(a,b){var c,e,f;return"string"==typeof b&&(c=a[b],b=a,a=c),n.isFunction(a)?(e=d.call(arguments,2),f=function(){return a.apply(b||this,e.concat(d.call(arguments)))},f.guid=a.guid=a.guid||n.guid++,f):void 0},now:Date.now,support:k}),n.each("Boolean Number String Function Array Date RegExp Object Error".split(" "),function(a,b){h["[object "+b+"]"]=b.toLowerCase()});function s(a){var b=a.length,c=n.type(a);return"function"===c||n.isWindow(a)?!1:1===a.nodeType&&b?!0:"array"===c||0===b||"number"==typeof b&&b>0&&b-1 in a}var t=function(a){var b,c,d,e,f,g,h,i,j,k,l,m,n,o,p,q,r,s,t,u="sizzle"+-new Date,v=a.document,w=0,x=0,y=gb(),z=gb(),A=gb(),B=function(a,b){return a===b&&(l=!0),0},C="undefined",D=1<<31,E={}.hasOwnProperty,F=[],G=F.pop,H=F.push,I=F.push,J=F.slice,K=F.indexOf||function(a){for(var b=0,c=this.length;c>b;b++)if(this[b]===a)return b;return-1},L="checked|selected|async|autofocus|autoplay|controls|defer|disabled|hidden|ismap|loop|multiple|open|readonly|required|scoped",M="[\\x20\\t\\r\\n\\f]",N="(?:\\\\.|[\\w-]|[^\\x00-\\xa0])+",O=N.replace("w","w#"),P="\\["+M+"*("+N+")(?:"+M+"*([*^$|!~]?=)"+M+"*(?:'((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\"|("+O+"))|)"+M+"*\\]",Q=":("+N+")(?:\\((('((?:\\\\.|[^\\\\'])*)'|\"((?:\\\\.|[^\\\\\"])*)\")|((?:\\\\.|[^\\\\()[\\]]|"+P+")*)|.*)\\)|)",R=new RegExp("^"+M+"+|((?:^|[^\\\\])(?:\\\\.)*)"+M+"+$","g"),S=new RegExp("^"+M+"*,"+M+"*"),T=new RegExp("^"+M+"*([>+~]|"+M+")"+M+"*"),U=new RegExp("="+M+"*([^\\]'\"]*?)"+M+"*\\]","g"),V=new RegExp(Q),W=new RegExp("^"+O+"$"),X={ID:new RegExp("^#("+N+")"),CLASS:new RegExp("^\\.("+N+")"),TAG:new RegExp("^("+N.replace("w","w*")+")"),ATTR:new RegExp("^"+P),PSEUDO:new RegExp("^"+Q),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+L+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/^(?:input|select|textarea|button)$/i,Z=/^h\d$/i,$=/^[^{]+\{\s*\[native \w/,_=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ab=/[+~]/,bb=/'|\\/g,cb=new RegExp("\\\\([\\da-f]{1,6}"+M+"?|("+M+")|.)","ig"),db=function(a,b,c){var d="0x"+b-65536;return d!==d||c?b:0>d?String.fromCharCode(d+65536):String.fromCharCode(d>>10|55296,1023&d|56320)};try{I.apply(F=J.call(v.childNodes),v.childNodes),F[v.childNodes.length].nodeType}catch(eb){I={apply:F.length?function(a,b){H.apply(a,J.call(b))}:function(a,b){var c=a.length,d=0;while(a[c++]=b[d++]);a.length=c-1}}}function fb(a,b,d,e){var f,h,j,k,l,o,r,s,w,x;if((b?b.ownerDocument||b:v)!==n&&m(b),b=b||n,d=d||[],!a||"string"!=typeof a)return d;if(1!==(k=b.nodeType)&&9!==k)return[];if(p&&!e){if(f=_.exec(a))if(j=f[1]){if(9===k){if(h=b.getElementById(j),!h||!h.parentNode)return d;if(h.id===j)return d.push(h),d}else if(b.ownerDocument&&(h=b.ownerDocument.getElementById(j))&&t(b,h)&&h.id===j)return d.push(h),d}else{if(f[2])return I.apply(d,b.getElementsByTagName(a)),d;if((j=f[3])&&c.getElementsByClassName&&b.getElementsByClassName)return I.apply(d,b.getElementsByClassName(j)),d}if(c.qsa&&(!q||!q.test(a))){if(s=r=u,w=b,x=9===k&&a,1===k&&"object"!==b.nodeName.toLowerCase()){o=g(a),(r=b.getAttribute("id"))?s=r.replace(bb,"\\$&"):b.setAttribute("id",s),s="[id='"+s+"'] ",l=o.length;while(l--)o[l]=s+qb(o[l]);w=ab.test(a)&&ob(b.parentNode)||b,x=o.join(",")}if(x)try{return I.apply(d,w.querySelectorAll(x)),d}catch(y){}finally{r||b.removeAttribute("id")}}}return i(a.replace(R,"$1"),b,d,e)}function gb(){var a=[];function b(c,e){return a.push(c+" ")>d.cacheLength&&delete b[a.shift()],b[c+" "]=e}return b}function hb(a){return a[u]=!0,a}function ib(a){var b=n.createElement("div");try{return!!a(b)}catch(c){return!1}finally{b.parentNode&&b.parentNode.removeChild(b),b=null}}function jb(a,b){var c=a.split("|"),e=a.length;while(e--)d.attrHandle[c[e]]=b}function kb(a,b){var c=b&&a,d=c&&1===a.nodeType&&1===b.nodeType&&(~b.sourceIndex||D)-(~a.sourceIndex||D);if(d)return d;if(c)while(c=c.nextSibling)if(c===b)return-1;return a?1:-1}function lb(a){return function(b){var c=b.nodeName.toLowerCase();return"input"===c&&b.type===a}}function mb(a){return function(b){var c=b.nodeName.toLowerCase();return("input"===c||"button"===c)&&b.type===a}}function nb(a){return hb(function(b){return b=+b,hb(function(c,d){var e,f=a([],c.length,b),g=f.length;while(g--)c[e=f[g]]&&(c[e]=!(d[e]=c[e]))})})}function ob(a){return a&&typeof a.getElementsByTagName!==C&&a}c=fb.support={},f=fb.isXML=function(a){var b=a&&(a.ownerDocument||a).documentElement;return b?"HTML"!==b.nodeName:!1},m=fb.setDocument=function(a){var b,e=a?a.ownerDocument||a:v,g=e.defaultView;return e!==n&&9===e.nodeType&&e.documentElement?(n=e,o=e.documentElement,p=!f(e),g&&g!==g.top&&(g.addEventListener?g.addEventListener("unload",function(){m()},!1):g.attachEvent&&g.attachEvent("onunload",function(){m()})),c.attributes=ib(function(a){return a.className="i",!a.getAttribute("className")}),c.getElementsByTagName=ib(function(a){return a.appendChild(e.createComment("")),!a.getElementsByTagName("*").length}),c.getElementsByClassName=$.test(e.getElementsByClassName)&&ib(function(a){return a.innerHTML="
",a.firstChild.className="i",2===a.getElementsByClassName("i").length}),c.getById=ib(function(a){return o.appendChild(a).id=u,!e.getElementsByName||!e.getElementsByName(u).length}),c.getById?(d.find.ID=function(a,b){if(typeof b.getElementById!==C&&p){var c=b.getElementById(a);return c&&c.parentNode?[c]:[]}},d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){return a.getAttribute("id")===b}}):(delete d.find.ID,d.filter.ID=function(a){var b=a.replace(cb,db);return function(a){var c=typeof a.getAttributeNode!==C&&a.getAttributeNode("id");return c&&c.value===b}}),d.find.TAG=c.getElementsByTagName?function(a,b){return typeof b.getElementsByTagName!==C?b.getElementsByTagName(a):void 0}:function(a,b){var c,d=[],e=0,f=b.getElementsByTagName(a);if("*"===a){while(c=f[e++])1===c.nodeType&&d.push(c);return d}return f},d.find.CLASS=c.getElementsByClassName&&function(a,b){return typeof b.getElementsByClassName!==C&&p?b.getElementsByClassName(a):void 0},r=[],q=[],(c.qsa=$.test(e.querySelectorAll))&&(ib(function(a){a.innerHTML="",a.querySelectorAll("[msallowclip^='']").length&&q.push("[*^$]="+M+"*(?:''|\"\")"),a.querySelectorAll("[selected]").length||q.push("\\["+M+"*(?:value|"+L+")"),a.querySelectorAll(":checked").length||q.push(":checked")}),ib(function(a){var b=e.createElement("input");b.setAttribute("type","hidden"),a.appendChild(b).setAttribute("name","D"),a.querySelectorAll("[name=d]").length&&q.push("name"+M+"*[*^$|!~]?="),a.querySelectorAll(":enabled").length||q.push(":enabled",":disabled"),a.querySelectorAll("*,:x"),q.push(",.*:")})),(c.matchesSelector=$.test(s=o.matches||o.webkitMatchesSelector||o.mozMatchesSelector||o.oMatchesSelector||o.msMatchesSelector))&&ib(function(a){c.disconnectedMatch=s.call(a,"div"),s.call(a,"[s!='']:x"),r.push("!=",Q)}),q=q.length&&new RegExp(q.join("|")),r=r.length&&new RegExp(r.join("|")),b=$.test(o.compareDocumentPosition),t=b||$.test(o.contains)?function(a,b){var c=9===a.nodeType?a.documentElement:a,d=b&&b.parentNode;return a===d||!(!d||1!==d.nodeType||!(c.contains?c.contains(d):a.compareDocumentPosition&&16&a.compareDocumentPosition(d)))}:function(a,b){if(b)while(b=b.parentNode)if(b===a)return!0;return!1},B=b?function(a,b){if(a===b)return l=!0,0;var d=!a.compareDocumentPosition-!b.compareDocumentPosition;return d?d:(d=(a.ownerDocument||a)===(b.ownerDocument||b)?a.compareDocumentPosition(b):1,1&d||!c.sortDetached&&b.compareDocumentPosition(a)===d?a===e||a.ownerDocument===v&&t(v,a)?-1:b===e||b.ownerDocument===v&&t(v,b)?1:k?K.call(k,a)-K.call(k,b):0:4&d?-1:1)}:function(a,b){if(a===b)return l=!0,0;var c,d=0,f=a.parentNode,g=b.parentNode,h=[a],i=[b];if(!f||!g)return a===e?-1:b===e?1:f?-1:g?1:k?K.call(k,a)-K.call(k,b):0;if(f===g)return kb(a,b);c=a;while(c=c.parentNode)h.unshift(c);c=b;while(c=c.parentNode)i.unshift(c);while(h[d]===i[d])d++;return d?kb(h[d],i[d]):h[d]===v?-1:i[d]===v?1:0},e):n},fb.matches=function(a,b){return fb(a,null,null,b)},fb.matchesSelector=function(a,b){if((a.ownerDocument||a)!==n&&m(a),b=b.replace(U,"='$1']"),!(!c.matchesSelector||!p||r&&r.test(b)||q&&q.test(b)))try{var d=s.call(a,b);if(d||c.disconnectedMatch||a.document&&11!==a.document.nodeType)return d}catch(e){}return fb(b,n,null,[a]).length>0},fb.contains=function(a,b){return(a.ownerDocument||a)!==n&&m(a),t(a,b)},fb.attr=function(a,b){(a.ownerDocument||a)!==n&&m(a);var e=d.attrHandle[b.toLowerCase()],f=e&&E.call(d.attrHandle,b.toLowerCase())?e(a,b,!p):void 0;return void 0!==f?f:c.attributes||!p?a.getAttribute(b):(f=a.getAttributeNode(b))&&f.specified?f.value:null},fb.error=function(a){throw new Error("Syntax error, unrecognized expression: "+a)},fb.uniqueSort=function(a){var b,d=[],e=0,f=0;if(l=!c.detectDuplicates,k=!c.sortStable&&a.slice(0),a.sort(B),l){while(b=a[f++])b===a[f]&&(e=d.push(f));while(e--)a.splice(d[e],1)}return k=null,a},e=fb.getText=function(a){var b,c="",d=0,f=a.nodeType;if(f){if(1===f||9===f||11===f){if("string"==typeof a.textContent)return a.textContent;for(a=a.firstChild;a;a=a.nextSibling)c+=e(a)}else if(3===f||4===f)return a.nodeValue}else while(b=a[d++])c+=e(b);return c},d=fb.selectors={cacheLength:50,createPseudo:hb,match:X,attrHandle:{},find:{},relative:{">":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(a){return a[1]=a[1].replace(cb,db),a[3]=(a[3]||a[4]||a[5]||"").replace(cb,db),"~="===a[2]&&(a[3]=" "+a[3]+" "),a.slice(0,4)},CHILD:function(a){return a[1]=a[1].toLowerCase(),"nth"===a[1].slice(0,3)?(a[3]||fb.error(a[0]),a[4]=+(a[4]?a[5]+(a[6]||1):2*("even"===a[3]||"odd"===a[3])),a[5]=+(a[7]+a[8]||"odd"===a[3])):a[3]&&fb.error(a[0]),a},PSEUDO:function(a){var b,c=!a[6]&&a[2];return X.CHILD.test(a[0])?null:(a[3]?a[2]=a[4]||a[5]||"":c&&V.test(c)&&(b=g(c,!0))&&(b=c.indexOf(")",c.length-b)-c.length)&&(a[0]=a[0].slice(0,b),a[2]=c.slice(0,b)),a.slice(0,3))}},filter:{TAG:function(a){var b=a.replace(cb,db).toLowerCase();return"*"===a?function(){return!0}:function(a){return a.nodeName&&a.nodeName.toLowerCase()===b}},CLASS:function(a){var b=y[a+" "];return b||(b=new RegExp("(^|"+M+")"+a+"("+M+"|$)"))&&y(a,function(a){return b.test("string"==typeof a.className&&a.className||typeof a.getAttribute!==C&&a.getAttribute("class")||"")})},ATTR:function(a,b,c){return function(d){var e=fb.attr(d,a);return null==e?"!="===b:b?(e+="","="===b?e===c:"!="===b?e!==c:"^="===b?c&&0===e.indexOf(c):"*="===b?c&&e.indexOf(c)>-1:"$="===b?c&&e.slice(-c.length)===c:"~="===b?(" "+e+" ").indexOf(c)>-1:"|="===b?e===c||e.slice(0,c.length+1)===c+"-":!1):!0}},CHILD:function(a,b,c,d,e){var f="nth"!==a.slice(0,3),g="last"!==a.slice(-4),h="of-type"===b;return 1===d&&0===e?function(a){return!!a.parentNode}:function(b,c,i){var j,k,l,m,n,o,p=f!==g?"nextSibling":"previousSibling",q=b.parentNode,r=h&&b.nodeName.toLowerCase(),s=!i&&!h;if(q){if(f){while(p){l=b;while(l=l[p])if(h?l.nodeName.toLowerCase()===r:1===l.nodeType)return!1;o=p="only"===a&&!o&&"nextSibling"}return!0}if(o=[g?q.firstChild:q.lastChild],g&&s){k=q[u]||(q[u]={}),j=k[a]||[],n=j[0]===w&&j[1],m=j[0]===w&&j[2],l=n&&q.childNodes[n];while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if(1===l.nodeType&&++m&&l===b){k[a]=[w,n,m];break}}else if(s&&(j=(b[u]||(b[u]={}))[a])&&j[0]===w)m=j[1];else while(l=++n&&l&&l[p]||(m=n=0)||o.pop())if((h?l.nodeName.toLowerCase()===r:1===l.nodeType)&&++m&&(s&&((l[u]||(l[u]={}))[a]=[w,m]),l===b))break;return m-=e,m===d||m%d===0&&m/d>=0}}},PSEUDO:function(a,b){var c,e=d.pseudos[a]||d.setFilters[a.toLowerCase()]||fb.error("unsupported pseudo: "+a);return e[u]?e(b):e.length>1?(c=[a,a,"",b],d.setFilters.hasOwnProperty(a.toLowerCase())?hb(function(a,c){var d,f=e(a,b),g=f.length;while(g--)d=K.call(a,f[g]),a[d]=!(c[d]=f[g])}):function(a){return e(a,0,c)}):e}},pseudos:{not:hb(function(a){var b=[],c=[],d=h(a.replace(R,"$1"));return d[u]?hb(function(a,b,c,e){var f,g=d(a,null,e,[]),h=a.length;while(h--)(f=g[h])&&(a[h]=!(b[h]=f))}):function(a,e,f){return b[0]=a,d(b,null,f,c),!c.pop()}}),has:hb(function(a){return function(b){return fb(a,b).length>0}}),contains:hb(function(a){return function(b){return(b.textContent||b.innerText||e(b)).indexOf(a)>-1}}),lang:hb(function(a){return W.test(a||"")||fb.error("unsupported lang: "+a),a=a.replace(cb,db).toLowerCase(),function(b){var c;do if(c=p?b.lang:b.getAttribute("xml:lang")||b.getAttribute("lang"))return c=c.toLowerCase(),c===a||0===c.indexOf(a+"-");while((b=b.parentNode)&&1===b.nodeType);return!1}}),target:function(b){var c=a.location&&a.location.hash;return c&&c.slice(1)===b.id},root:function(a){return a===o},focus:function(a){return a===n.activeElement&&(!n.hasFocus||n.hasFocus())&&!!(a.type||a.href||~a.tabIndex)},enabled:function(a){return a.disabled===!1},disabled:function(a){return a.disabled===!0},checked:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&!!a.checked||"option"===b&&!!a.selected},selected:function(a){return a.parentNode&&a.parentNode.selectedIndex,a.selected===!0},empty:function(a){for(a=a.firstChild;a;a=a.nextSibling)if(a.nodeType<6)return!1;return!0},parent:function(a){return!d.pseudos.empty(a)},header:function(a){return Z.test(a.nodeName)},input:function(a){return Y.test(a.nodeName)},button:function(a){var b=a.nodeName.toLowerCase();return"input"===b&&"button"===a.type||"button"===b},text:function(a){var b;return"input"===a.nodeName.toLowerCase()&&"text"===a.type&&(null==(b=a.getAttribute("type"))||"text"===b.toLowerCase())},first:nb(function(){return[0]}),last:nb(function(a,b){return[b-1]}),eq:nb(function(a,b,c){return[0>c?c+b:c]}),even:nb(function(a,b){for(var c=0;b>c;c+=2)a.push(c);return a}),odd:nb(function(a,b){for(var c=1;b>c;c+=2)a.push(c);return a}),lt:nb(function(a,b,c){for(var d=0>c?c+b:c;--d>=0;)a.push(d);return a}),gt:nb(function(a,b,c){for(var d=0>c?c+b:c;++db;b++)d+=a[b].value;return d}function rb(a,b,c){var d=b.dir,e=c&&"parentNode"===d,f=x++;return b.first?function(b,c,f){while(b=b[d])if(1===b.nodeType||e)return a(b,c,f)}:function(b,c,g){var h,i,j=[w,f];if(g){while(b=b[d])if((1===b.nodeType||e)&&a(b,c,g))return!0}else while(b=b[d])if(1===b.nodeType||e){if(i=b[u]||(b[u]={}),(h=i[d])&&h[0]===w&&h[1]===f)return j[2]=h[2];if(i[d]=j,j[2]=a(b,c,g))return!0}}}function sb(a){return a.length>1?function(b,c,d){var e=a.length;while(e--)if(!a[e](b,c,d))return!1;return!0}:a[0]}function tb(a,b,c){for(var d=0,e=b.length;e>d;d++)fb(a,b[d],c);return c}function ub(a,b,c,d,e){for(var f,g=[],h=0,i=a.length,j=null!=b;i>h;h++)(f=a[h])&&(!c||c(f,d,e))&&(g.push(f),j&&b.push(h));return g}function vb(a,b,c,d,e,f){return d&&!d[u]&&(d=vb(d)),e&&!e[u]&&(e=vb(e,f)),hb(function(f,g,h,i){var j,k,l,m=[],n=[],o=g.length,p=f||tb(b||"*",h.nodeType?[h]:h,[]),q=!a||!f&&b?p:ub(p,m,a,h,i),r=c?e||(f?a:o||d)?[]:g:q;if(c&&c(q,r,h,i),d){j=ub(r,n),d(j,[],h,i),k=j.length;while(k--)(l=j[k])&&(r[n[k]]=!(q[n[k]]=l))}if(f){if(e||a){if(e){j=[],k=r.length;while(k--)(l=r[k])&&j.push(q[k]=l);e(null,r=[],j,i)}k=r.length;while(k--)(l=r[k])&&(j=e?K.call(f,l):m[k])>-1&&(f[j]=!(g[j]=l))}}else r=ub(r===g?r.splice(o,r.length):r),e?e(null,g,r,i):I.apply(g,r)})}function wb(a){for(var b,c,e,f=a.length,g=d.relative[a[0].type],h=g||d.relative[" "],i=g?1:0,k=rb(function(a){return a===b},h,!0),l=rb(function(a){return K.call(b,a)>-1},h,!0),m=[function(a,c,d){return!g&&(d||c!==j)||((b=c).nodeType?k(a,c,d):l(a,c,d))}];f>i;i++)if(c=d.relative[a[i].type])m=[rb(sb(m),c)];else{if(c=d.filter[a[i].type].apply(null,a[i].matches),c[u]){for(e=++i;f>e;e++)if(d.relative[a[e].type])break;return vb(i>1&&sb(m),i>1&&qb(a.slice(0,i-1).concat({value:" "===a[i-2].type?"*":""})).replace(R,"$1"),c,e>i&&wb(a.slice(i,e)),f>e&&wb(a=a.slice(e)),f>e&&qb(a))}m.push(c)}return sb(m)}function xb(a,b){var c=b.length>0,e=a.length>0,f=function(f,g,h,i,k){var l,m,o,p=0,q="0",r=f&&[],s=[],t=j,u=f||e&&d.find.TAG("*",k),v=w+=null==t?1:Math.random()||.1,x=u.length;for(k&&(j=g!==n&&g);q!==x&&null!=(l=u[q]);q++){if(e&&l){m=0;while(o=a[m++])if(o(l,g,h)){i.push(l);break}k&&(w=v)}c&&((l=!o&&l)&&p--,f&&r.push(l))}if(p+=q,c&&q!==p){m=0;while(o=b[m++])o(r,s,g,h);if(f){if(p>0)while(q--)r[q]||s[q]||(s[q]=G.call(i));s=ub(s)}I.apply(i,s),k&&!f&&s.length>0&&p+b.length>1&&fb.uniqueSort(i)}return k&&(w=v,j=t),r};return c?hb(f):f}return h=fb.compile=function(a,b){var c,d=[],e=[],f=A[a+" "];if(!f){b||(b=g(a)),c=b.length;while(c--)f=wb(b[c]),f[u]?d.push(f):e.push(f);f=A(a,xb(e,d)),f.selector=a}return f},i=fb.select=function(a,b,e,f){var i,j,k,l,m,n="function"==typeof a&&a,o=!f&&g(a=n.selector||a);if(e=e||[],1===o.length){if(j=o[0]=o[0].slice(0),j.length>2&&"ID"===(k=j[0]).type&&c.getById&&9===b.nodeType&&p&&d.relative[j[1].type]){if(b=(d.find.ID(k.matches[0].replace(cb,db),b)||[])[0],!b)return e;n&&(b=b.parentNode),a=a.slice(j.shift().value.length)}i=X.needsContext.test(a)?0:j.length;while(i--){if(k=j[i],d.relative[l=k.type])break;if((m=d.find[l])&&(f=m(k.matches[0].replace(cb,db),ab.test(j[0].type)&&ob(b.parentNode)||b))){if(j.splice(i,1),a=f.length&&qb(j),!a)return I.apply(e,f),e;break}}}return(n||h(a,o))(f,b,!p,e,ab.test(a)&&ob(b.parentNode)||b),e},c.sortStable=u.split("").sort(B).join("")===u,c.detectDuplicates=!!l,m(),c.sortDetached=ib(function(a){return 1&a.compareDocumentPosition(n.createElement("div"))}),ib(function(a){return a.innerHTML="","#"===a.firstChild.getAttribute("href")})||jb("type|href|height|width",function(a,b,c){return c?void 0:a.getAttribute(b,"type"===b.toLowerCase()?1:2)}),c.attributes&&ib(function(a){return a.innerHTML="",a.firstChild.setAttribute("value",""),""===a.firstChild.getAttribute("value")})||jb("value",function(a,b,c){return c||"input"!==a.nodeName.toLowerCase()?void 0:a.defaultValue}),ib(function(a){return null==a.getAttribute("disabled")})||jb(L,function(a,b,c){var d;return c?void 0:a[b]===!0?b.toLowerCase():(d=a.getAttributeNode(b))&&d.specified?d.value:null}),fb}(a);n.find=t,n.expr=t.selectors,n.expr[":"]=n.expr.pseudos,n.unique=t.uniqueSort,n.text=t.getText,n.isXMLDoc=t.isXML,n.contains=t.contains;var u=n.expr.match.needsContext,v=/^<(\w+)\s*\/?>(?:<\/\1>|)$/,w=/^.[^:#\[\.,]*$/;function x(a,b,c){if(n.isFunction(b))return n.grep(a,function(a,d){return!!b.call(a,d,a)!==c});if(b.nodeType)return n.grep(a,function(a){return a===b!==c});if("string"==typeof b){if(w.test(b))return n.filter(b,a,c);b=n.filter(b,a)}return n.grep(a,function(a){return g.call(b,a)>=0!==c})}n.filter=function(a,b,c){var d=b[0];return c&&(a=":not("+a+")"),1===b.length&&1===d.nodeType?n.find.matchesSelector(d,a)?[d]:[]:n.find.matches(a,n.grep(b,function(a){return 1===a.nodeType}))},n.fn.extend({find:function(a){var b,c=this.length,d=[],e=this;if("string"!=typeof a)return this.pushStack(n(a).filter(function(){for(b=0;c>b;b++)if(n.contains(e[b],this))return!0}));for(b=0;c>b;b++)n.find(a,e[b],d);return d=this.pushStack(c>1?n.unique(d):d),d.selector=this.selector?this.selector+" "+a:a,d},filter:function(a){return this.pushStack(x(this,a||[],!1))},not:function(a){return this.pushStack(x(this,a||[],!0))},is:function(a){return!!x(this,"string"==typeof a&&u.test(a)?n(a):a||[],!1).length}});var y,z=/^(?:\s*(<[\w\W]+>)[^>]*|#([\w-]*))$/,A=n.fn.init=function(a,b){var c,d;if(!a)return this;if("string"==typeof a){if(c="<"===a[0]&&">"===a[a.length-1]&&a.length>=3?[null,a,null]:z.exec(a),!c||!c[1]&&b)return!b||b.jquery?(b||y).find(a):this.constructor(b).find(a);if(c[1]){if(b=b instanceof n?b[0]:b,n.merge(this,n.parseHTML(c[1],b&&b.nodeType?b.ownerDocument||b:l,!0)),v.test(c[1])&&n.isPlainObject(b))for(c in b)n.isFunction(this[c])?this[c](b[c]):this.attr(c,b[c]);return this}return d=l.getElementById(c[2]),d&&d.parentNode&&(this.length=1,this[0]=d),this.context=l,this.selector=a,this}return a.nodeType?(this.context=this[0]=a,this.length=1,this):n.isFunction(a)?"undefined"!=typeof y.ready?y.ready(a):a(n):(void 0!==a.selector&&(this.selector=a.selector,this.context=a.context),n.makeArray(a,this))};A.prototype=n.fn,y=n(l);var B=/^(?:parents|prev(?:Until|All))/,C={children:!0,contents:!0,next:!0,prev:!0};n.extend({dir:function(a,b,c){var d=[],e=void 0!==c;while((a=a[b])&&9!==a.nodeType)if(1===a.nodeType){if(e&&n(a).is(c))break;d.push(a)}return d},sibling:function(a,b){for(var c=[];a;a=a.nextSibling)1===a.nodeType&&a!==b&&c.push(a);return c}}),n.fn.extend({has:function(a){var b=n(a,this),c=b.length;return this.filter(function(){for(var a=0;c>a;a++)if(n.contains(this,b[a]))return!0})},closest:function(a,b){for(var c,d=0,e=this.length,f=[],g=u.test(a)||"string"!=typeof a?n(a,b||this.context):0;e>d;d++)for(c=this[d];c&&c!==b;c=c.parentNode)if(c.nodeType<11&&(g?g.index(c)>-1:1===c.nodeType&&n.find.matchesSelector(c,a))){f.push(c);break}return this.pushStack(f.length>1?n.unique(f):f)},index:function(a){return a?"string"==typeof a?g.call(n(a),this[0]):g.call(this,a.jquery?a[0]:a):this[0]&&this[0].parentNode?this.first().prevAll().length:-1},add:function(a,b){return this.pushStack(n.unique(n.merge(this.get(),n(a,b))))},addBack:function(a){return this.add(null==a?this.prevObject:this.prevObject.filter(a))}});function D(a,b){while((a=a[b])&&1!==a.nodeType);return a}n.each({parent:function(a){var b=a.parentNode;return b&&11!==b.nodeType?b:null},parents:function(a){return n.dir(a,"parentNode")},parentsUntil:function(a,b,c){return n.dir(a,"parentNode",c)},next:function(a){return D(a,"nextSibling")},prev:function(a){return D(a,"previousSibling")},nextAll:function(a){return n.dir(a,"nextSibling")},prevAll:function(a){return n.dir(a,"previousSibling")},nextUntil:function(a,b,c){return n.dir(a,"nextSibling",c)},prevUntil:function(a,b,c){return n.dir(a,"previousSibling",c)},siblings:function(a){return n.sibling((a.parentNode||{}).firstChild,a)},children:function(a){return n.sibling(a.firstChild)},contents:function(a){return a.contentDocument||n.merge([],a.childNodes)}},function(a,b){n.fn[a]=function(c,d){var e=n.map(this,b,c);return"Until"!==a.slice(-5)&&(d=c),d&&"string"==typeof d&&(e=n.filter(d,e)),this.length>1&&(C[a]||n.unique(e),B.test(a)&&e.reverse()),this.pushStack(e)}});var E=/\S+/g,F={};function G(a){var b=F[a]={};return n.each(a.match(E)||[],function(a,c){b[c]=!0}),b}n.Callbacks=function(a){a="string"==typeof a?F[a]||G(a):n.extend({},a);var b,c,d,e,f,g,h=[],i=!a.once&&[],j=function(l){for(b=a.memory&&l,c=!0,g=e||0,e=0,f=h.length,d=!0;h&&f>g;g++)if(h[g].apply(l[0],l[1])===!1&&a.stopOnFalse){b=!1;break}d=!1,h&&(i?i.length&&j(i.shift()):b?h=[]:k.disable())},k={add:function(){if(h){var c=h.length;!function g(b){n.each(b,function(b,c){var d=n.type(c);"function"===d?a.unique&&k.has(c)||h.push(c):c&&c.length&&"string"!==d&&g(c)})}(arguments),d?f=h.length:b&&(e=c,j(b))}return this},remove:function(){return h&&n.each(arguments,function(a,b){var c;while((c=n.inArray(b,h,c))>-1)h.splice(c,1),d&&(f>=c&&f--,g>=c&&g--)}),this},has:function(a){return a?n.inArray(a,h)>-1:!(!h||!h.length)},empty:function(){return h=[],f=0,this},disable:function(){return h=i=b=void 0,this},disabled:function(){return!h},lock:function(){return i=void 0,b||k.disable(),this},locked:function(){return!i},fireWith:function(a,b){return!h||c&&!i||(b=b||[],b=[a,b.slice?b.slice():b],d?i.push(b):j(b)),this},fire:function(){return k.fireWith(this,arguments),this},fired:function(){return!!c}};return k},n.extend({Deferred:function(a){var b=[["resolve","done",n.Callbacks("once memory"),"resolved"],["reject","fail",n.Callbacks("once memory"),"rejected"],["notify","progress",n.Callbacks("memory")]],c="pending",d={state:function(){return c},always:function(){return e.done(arguments).fail(arguments),this},then:function(){var a=arguments;return n.Deferred(function(c){n.each(b,function(b,f){var g=n.isFunction(a[b])&&a[b];e[f[1]](function(){var a=g&&g.apply(this,arguments);a&&n.isFunction(a.promise)?a.promise().done(c.resolve).fail(c.reject).progress(c.notify):c[f[0]+"With"](this===d?c.promise():this,g?[a]:arguments)})}),a=null}).promise()},promise:function(a){return null!=a?n.extend(a,d):d}},e={};return d.pipe=d.then,n.each(b,function(a,f){var g=f[2],h=f[3];d[f[1]]=g.add,h&&g.add(function(){c=h},b[1^a][2].disable,b[2][2].lock),e[f[0]]=function(){return e[f[0]+"With"](this===e?d:this,arguments),this},e[f[0]+"With"]=g.fireWith}),d.promise(e),a&&a.call(e,e),e},when:function(a){var b=0,c=d.call(arguments),e=c.length,f=1!==e||a&&n.isFunction(a.promise)?e:0,g=1===f?a:n.Deferred(),h=function(a,b,c){return function(e){b[a]=this,c[a]=arguments.length>1?d.call(arguments):e,c===i?g.notifyWith(b,c):--f||g.resolveWith(b,c)}},i,j,k;if(e>1)for(i=new Array(e),j=new Array(e),k=new Array(e);e>b;b++)c[b]&&n.isFunction(c[b].promise)?c[b].promise().done(h(b,k,c)).fail(g.reject).progress(h(b,j,i)):--f;return f||g.resolveWith(k,c),g.promise()}});var H;n.fn.ready=function(a){return n.ready.promise().done(a),this},n.extend({isReady:!1,readyWait:1,holdReady:function(a){a?n.readyWait++:n.ready(!0)},ready:function(a){(a===!0?--n.readyWait:n.isReady)||(n.isReady=!0,a!==!0&&--n.readyWait>0||(H.resolveWith(l,[n]),n.fn.triggerHandler&&(n(l).triggerHandler("ready"),n(l).off("ready"))))}});function I(){l.removeEventListener("DOMContentLoaded",I,!1),a.removeEventListener("load",I,!1),n.ready()}n.ready.promise=function(b){return H||(H=n.Deferred(),"complete"===l.readyState?setTimeout(n.ready):(l.addEventListener("DOMContentLoaded",I,!1),a.addEventListener("load",I,!1))),H.promise(b)},n.ready.promise();var J=n.access=function(a,b,c,d,e,f,g){var h=0,i=a.length,j=null==c;if("object"===n.type(c)){e=!0;for(h in c)n.access(a,b,h,c[h],!0,f,g)}else if(void 0!==d&&(e=!0,n.isFunction(d)||(g=!0),j&&(g?(b.call(a,d),b=null):(j=b,b=function(a,b,c){return j.call(n(a),c)})),b))for(;i>h;h++)b(a[h],c,g?d:d.call(a[h],h,b(a[h],c)));return e?a:j?b.call(a):i?b(a[0],c):f};n.acceptData=function(a){return 1===a.nodeType||9===a.nodeType||!+a.nodeType};function K(){Object.defineProperty(this.cache={},0,{get:function(){return{}}}),this.expando=n.expando+Math.random()}K.uid=1,K.accepts=n.acceptData,K.prototype={key:function(a){if(!K.accepts(a))return 0;var b={},c=a[this.expando];if(!c){c=K.uid++;try{b[this.expando]={value:c},Object.defineProperties(a,b)}catch(d){b[this.expando]=c,n.extend(a,b)}}return this.cache[c]||(this.cache[c]={}),c},set:function(a,b,c){var d,e=this.key(a),f=this.cache[e];if("string"==typeof b)f[b]=c;else if(n.isEmptyObject(f))n.extend(this.cache[e],b);else for(d in b)f[d]=b[d];return f},get:function(a,b){var c=this.cache[this.key(a)];return void 0===b?c:c[b]},access:function(a,b,c){var d;return void 0===b||b&&"string"==typeof b&&void 0===c?(d=this.get(a,b),void 0!==d?d:this.get(a,n.camelCase(b))):(this.set(a,b,c),void 0!==c?c:b)},remove:function(a,b){var c,d,e,f=this.key(a),g=this.cache[f];if(void 0===b)this.cache[f]={};else{n.isArray(b)?d=b.concat(b.map(n.camelCase)):(e=n.camelCase(b),b in g?d=[b,e]:(d=e,d=d in g?[d]:d.match(E)||[])),c=d.length;while(c--)delete g[d[c]]}},hasData:function(a){return!n.isEmptyObject(this.cache[a[this.expando]]||{})},discard:function(a){a[this.expando]&&delete this.cache[a[this.expando]]}};var L=new K,M=new K,N=/^(?:\{[\w\W]*\}|\[[\w\W]*\])$/,O=/([A-Z])/g;function P(a,b,c){var d;if(void 0===c&&1===a.nodeType)if(d="data-"+b.replace(O,"-$1").toLowerCase(),c=a.getAttribute(d),"string"==typeof c){try{c="true"===c?!0:"false"===c?!1:"null"===c?null:+c+""===c?+c:N.test(c)?n.parseJSON(c):c}catch(e){}M.set(a,b,c)}else c=void 0;return c}n.extend({hasData:function(a){return M.hasData(a)||L.hasData(a)},data:function(a,b,c){return M.access(a,b,c)},removeData:function(a,b){M.remove(a,b) -},_data:function(a,b,c){return L.access(a,b,c)},_removeData:function(a,b){L.remove(a,b)}}),n.fn.extend({data:function(a,b){var c,d,e,f=this[0],g=f&&f.attributes;if(void 0===a){if(this.length&&(e=M.get(f),1===f.nodeType&&!L.get(f,"hasDataAttrs"))){c=g.length;while(c--)g[c]&&(d=g[c].name,0===d.indexOf("data-")&&(d=n.camelCase(d.slice(5)),P(f,d,e[d])));L.set(f,"hasDataAttrs",!0)}return e}return"object"==typeof a?this.each(function(){M.set(this,a)}):J(this,function(b){var c,d=n.camelCase(a);if(f&&void 0===b){if(c=M.get(f,a),void 0!==c)return c;if(c=M.get(f,d),void 0!==c)return c;if(c=P(f,d,void 0),void 0!==c)return c}else this.each(function(){var c=M.get(this,d);M.set(this,d,b),-1!==a.indexOf("-")&&void 0!==c&&M.set(this,a,b)})},null,b,arguments.length>1,null,!0)},removeData:function(a){return this.each(function(){M.remove(this,a)})}}),n.extend({queue:function(a,b,c){var d;return a?(b=(b||"fx")+"queue",d=L.get(a,b),c&&(!d||n.isArray(c)?d=L.access(a,b,n.makeArray(c)):d.push(c)),d||[]):void 0},dequeue:function(a,b){b=b||"fx";var c=n.queue(a,b),d=c.length,e=c.shift(),f=n._queueHooks(a,b),g=function(){n.dequeue(a,b)};"inprogress"===e&&(e=c.shift(),d--),e&&("fx"===b&&c.unshift("inprogress"),delete f.stop,e.call(a,g,f)),!d&&f&&f.empty.fire()},_queueHooks:function(a,b){var c=b+"queueHooks";return L.get(a,c)||L.access(a,c,{empty:n.Callbacks("once memory").add(function(){L.remove(a,[b+"queue",c])})})}}),n.fn.extend({queue:function(a,b){var c=2;return"string"!=typeof a&&(b=a,a="fx",c--),arguments.lengthx",k.noCloneChecked=!!b.cloneNode(!0).lastChild.defaultValue}();var U="undefined";k.focusinBubbles="onfocusin"in a;var V=/^key/,W=/^(?:mouse|pointer|contextmenu)|click/,X=/^(?:focusinfocus|focusoutblur)$/,Y=/^([^.]*)(?:\.(.+)|)$/;function Z(){return!0}function $(){return!1}function _(){try{return l.activeElement}catch(a){}}n.event={global:{},add:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.get(a);if(r){c.handler&&(f=c,c=f.handler,e=f.selector),c.guid||(c.guid=n.guid++),(i=r.events)||(i=r.events={}),(g=r.handle)||(g=r.handle=function(b){return typeof n!==U&&n.event.triggered!==b.type?n.event.dispatch.apply(a,arguments):void 0}),b=(b||"").match(E)||[""],j=b.length;while(j--)h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o&&(l=n.event.special[o]||{},o=(e?l.delegateType:l.bindType)||o,l=n.event.special[o]||{},k=n.extend({type:o,origType:q,data:d,handler:c,guid:c.guid,selector:e,needsContext:e&&n.expr.match.needsContext.test(e),namespace:p.join(".")},f),(m=i[o])||(m=i[o]=[],m.delegateCount=0,l.setup&&l.setup.call(a,d,p,g)!==!1||a.addEventListener&&a.addEventListener(o,g,!1)),l.add&&(l.add.call(a,k),k.handler.guid||(k.handler.guid=c.guid)),e?m.splice(m.delegateCount++,0,k):m.push(k),n.event.global[o]=!0)}},remove:function(a,b,c,d,e){var f,g,h,i,j,k,l,m,o,p,q,r=L.hasData(a)&&L.get(a);if(r&&(i=r.events)){b=(b||"").match(E)||[""],j=b.length;while(j--)if(h=Y.exec(b[j])||[],o=q=h[1],p=(h[2]||"").split(".").sort(),o){l=n.event.special[o]||{},o=(d?l.delegateType:l.bindType)||o,m=i[o]||[],h=h[2]&&new RegExp("(^|\\.)"+p.join("\\.(?:.*\\.|)")+"(\\.|$)"),g=f=m.length;while(f--)k=m[f],!e&&q!==k.origType||c&&c.guid!==k.guid||h&&!h.test(k.namespace)||d&&d!==k.selector&&("**"!==d||!k.selector)||(m.splice(f,1),k.selector&&m.delegateCount--,l.remove&&l.remove.call(a,k));g&&!m.length&&(l.teardown&&l.teardown.call(a,p,r.handle)!==!1||n.removeEvent(a,o,r.handle),delete i[o])}else for(o in i)n.event.remove(a,o+b[j],c,d,!0);n.isEmptyObject(i)&&(delete r.handle,L.remove(a,"events"))}},trigger:function(b,c,d,e){var f,g,h,i,k,m,o,p=[d||l],q=j.call(b,"type")?b.type:b,r=j.call(b,"namespace")?b.namespace.split("."):[];if(g=h=d=d||l,3!==d.nodeType&&8!==d.nodeType&&!X.test(q+n.event.triggered)&&(q.indexOf(".")>=0&&(r=q.split("."),q=r.shift(),r.sort()),k=q.indexOf(":")<0&&"on"+q,b=b[n.expando]?b:new n.Event(q,"object"==typeof b&&b),b.isTrigger=e?2:3,b.namespace=r.join("."),b.namespace_re=b.namespace?new RegExp("(^|\\.)"+r.join("\\.(?:.*\\.|)")+"(\\.|$)"):null,b.result=void 0,b.target||(b.target=d),c=null==c?[b]:n.makeArray(c,[b]),o=n.event.special[q]||{},e||!o.trigger||o.trigger.apply(d,c)!==!1)){if(!e&&!o.noBubble&&!n.isWindow(d)){for(i=o.delegateType||q,X.test(i+q)||(g=g.parentNode);g;g=g.parentNode)p.push(g),h=g;h===(d.ownerDocument||l)&&p.push(h.defaultView||h.parentWindow||a)}f=0;while((g=p[f++])&&!b.isPropagationStopped())b.type=f>1?i:o.bindType||q,m=(L.get(g,"events")||{})[b.type]&&L.get(g,"handle"),m&&m.apply(g,c),m=k&&g[k],m&&m.apply&&n.acceptData(g)&&(b.result=m.apply(g,c),b.result===!1&&b.preventDefault());return b.type=q,e||b.isDefaultPrevented()||o._default&&o._default.apply(p.pop(),c)!==!1||!n.acceptData(d)||k&&n.isFunction(d[q])&&!n.isWindow(d)&&(h=d[k],h&&(d[k]=null),n.event.triggered=q,d[q](),n.event.triggered=void 0,h&&(d[k]=h)),b.result}},dispatch:function(a){a=n.event.fix(a);var b,c,e,f,g,h=[],i=d.call(arguments),j=(L.get(this,"events")||{})[a.type]||[],k=n.event.special[a.type]||{};if(i[0]=a,a.delegateTarget=this,!k.preDispatch||k.preDispatch.call(this,a)!==!1){h=n.event.handlers.call(this,a,j),b=0;while((f=h[b++])&&!a.isPropagationStopped()){a.currentTarget=f.elem,c=0;while((g=f.handlers[c++])&&!a.isImmediatePropagationStopped())(!a.namespace_re||a.namespace_re.test(g.namespace))&&(a.handleObj=g,a.data=g.data,e=((n.event.special[g.origType]||{}).handle||g.handler).apply(f.elem,i),void 0!==e&&(a.result=e)===!1&&(a.preventDefault(),a.stopPropagation()))}return k.postDispatch&&k.postDispatch.call(this,a),a.result}},handlers:function(a,b){var c,d,e,f,g=[],h=b.delegateCount,i=a.target;if(h&&i.nodeType&&(!a.button||"click"!==a.type))for(;i!==this;i=i.parentNode||this)if(i.disabled!==!0||"click"!==a.type){for(d=[],c=0;h>c;c++)f=b[c],e=f.selector+" ",void 0===d[e]&&(d[e]=f.needsContext?n(e,this).index(i)>=0:n.find(e,this,null,[i]).length),d[e]&&d.push(f);d.length&&g.push({elem:i,handlers:d})}return h]*)\/>/gi,bb=/<([\w:]+)/,cb=/<|&#?\w+;/,db=/<(?:script|style|link)/i,eb=/checked\s*(?:[^=]|=\s*.checked.)/i,fb=/^$|\/(?:java|ecma)script/i,gb=/^true\/(.*)/,hb=/^\s*\s*$/g,ib={option:[1,""],thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};ib.optgroup=ib.option,ib.tbody=ib.tfoot=ib.colgroup=ib.caption=ib.thead,ib.th=ib.td;function jb(a,b){return n.nodeName(a,"table")&&n.nodeName(11!==b.nodeType?b:b.firstChild,"tr")?a.getElementsByTagName("tbody")[0]||a.appendChild(a.ownerDocument.createElement("tbody")):a}function kb(a){return a.type=(null!==a.getAttribute("type"))+"/"+a.type,a}function lb(a){var b=gb.exec(a.type);return b?a.type=b[1]:a.removeAttribute("type"),a}function mb(a,b){for(var c=0,d=a.length;d>c;c++)L.set(a[c],"globalEval",!b||L.get(b[c],"globalEval"))}function nb(a,b){var c,d,e,f,g,h,i,j;if(1===b.nodeType){if(L.hasData(a)&&(f=L.access(a),g=L.set(b,f),j=f.events)){delete g.handle,g.events={};for(e in j)for(c=0,d=j[e].length;d>c;c++)n.event.add(b,e,j[e][c])}M.hasData(a)&&(h=M.access(a),i=n.extend({},h),M.set(b,i))}}function ob(a,b){var c=a.getElementsByTagName?a.getElementsByTagName(b||"*"):a.querySelectorAll?a.querySelectorAll(b||"*"):[];return void 0===b||b&&n.nodeName(a,b)?n.merge([a],c):c}function pb(a,b){var c=b.nodeName.toLowerCase();"input"===c&&T.test(a.type)?b.checked=a.checked:("input"===c||"textarea"===c)&&(b.defaultValue=a.defaultValue)}n.extend({clone:function(a,b,c){var d,e,f,g,h=a.cloneNode(!0),i=n.contains(a.ownerDocument,a);if(!(k.noCloneChecked||1!==a.nodeType&&11!==a.nodeType||n.isXMLDoc(a)))for(g=ob(h),f=ob(a),d=0,e=f.length;e>d;d++)pb(f[d],g[d]);if(b)if(c)for(f=f||ob(a),g=g||ob(h),d=0,e=f.length;e>d;d++)nb(f[d],g[d]);else nb(a,h);return g=ob(h,"script"),g.length>0&&mb(g,!i&&ob(a,"script")),h},buildFragment:function(a,b,c,d){for(var e,f,g,h,i,j,k=b.createDocumentFragment(),l=[],m=0,o=a.length;o>m;m++)if(e=a[m],e||0===e)if("object"===n.type(e))n.merge(l,e.nodeType?[e]:e);else if(cb.test(e)){f=f||k.appendChild(b.createElement("div")),g=(bb.exec(e)||["",""])[1].toLowerCase(),h=ib[g]||ib._default,f.innerHTML=h[1]+e.replace(ab,"<$1>")+h[2],j=h[0];while(j--)f=f.lastChild;n.merge(l,f.childNodes),f=k.firstChild,f.textContent=""}else l.push(b.createTextNode(e));k.textContent="",m=0;while(e=l[m++])if((!d||-1===n.inArray(e,d))&&(i=n.contains(e.ownerDocument,e),f=ob(k.appendChild(e),"script"),i&&mb(f),c)){j=0;while(e=f[j++])fb.test(e.type||"")&&c.push(e)}return k},cleanData:function(a){for(var b,c,d,e,f=n.event.special,g=0;void 0!==(c=a[g]);g++){if(n.acceptData(c)&&(e=c[L.expando],e&&(b=L.cache[e]))){if(b.events)for(d in b.events)f[d]?n.event.remove(c,d):n.removeEvent(c,d,b.handle);L.cache[e]&&delete L.cache[e]}delete M.cache[c[M.expando]]}}}),n.fn.extend({text:function(a){return J(this,function(a){return void 0===a?n.text(this):this.empty().each(function(){(1===this.nodeType||11===this.nodeType||9===this.nodeType)&&(this.textContent=a)})},null,a,arguments.length)},append:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.appendChild(a)}})},prepend:function(){return this.domManip(arguments,function(a){if(1===this.nodeType||11===this.nodeType||9===this.nodeType){var b=jb(this,a);b.insertBefore(a,b.firstChild)}})},before:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this)})},after:function(){return this.domManip(arguments,function(a){this.parentNode&&this.parentNode.insertBefore(a,this.nextSibling)})},remove:function(a,b){for(var c,d=a?n.filter(a,this):this,e=0;null!=(c=d[e]);e++)b||1!==c.nodeType||n.cleanData(ob(c)),c.parentNode&&(b&&n.contains(c.ownerDocument,c)&&mb(ob(c,"script")),c.parentNode.removeChild(c));return this},empty:function(){for(var a,b=0;null!=(a=this[b]);b++)1===a.nodeType&&(n.cleanData(ob(a,!1)),a.textContent="");return this},clone:function(a,b){return a=null==a?!1:a,b=null==b?a:b,this.map(function(){return n.clone(this,a,b)})},html:function(a){return J(this,function(a){var b=this[0]||{},c=0,d=this.length;if(void 0===a&&1===b.nodeType)return b.innerHTML;if("string"==typeof a&&!db.test(a)&&!ib[(bb.exec(a)||["",""])[1].toLowerCase()]){a=a.replace(ab,"<$1>");try{for(;d>c;c++)b=this[c]||{},1===b.nodeType&&(n.cleanData(ob(b,!1)),b.innerHTML=a);b=0}catch(e){}}b&&this.empty().append(a)},null,a,arguments.length)},replaceWith:function(){var a=arguments[0];return this.domManip(arguments,function(b){a=this.parentNode,n.cleanData(ob(this)),a&&a.replaceChild(b,this)}),a&&(a.length||a.nodeType)?this:this.remove()},detach:function(a){return this.remove(a,!0)},domManip:function(a,b){a=e.apply([],a);var c,d,f,g,h,i,j=0,l=this.length,m=this,o=l-1,p=a[0],q=n.isFunction(p);if(q||l>1&&"string"==typeof p&&!k.checkClone&&eb.test(p))return this.each(function(c){var d=m.eq(c);q&&(a[0]=p.call(this,c,d.html())),d.domManip(a,b)});if(l&&(c=n.buildFragment(a,this[0].ownerDocument,!1,this),d=c.firstChild,1===c.childNodes.length&&(c=d),d)){for(f=n.map(ob(c,"script"),kb),g=f.length;l>j;j++)h=c,j!==o&&(h=n.clone(h,!0,!0),g&&n.merge(f,ob(h,"script"))),b.call(this[j],h,j);if(g)for(i=f[f.length-1].ownerDocument,n.map(f,lb),j=0;g>j;j++)h=f[j],fb.test(h.type||"")&&!L.access(h,"globalEval")&&n.contains(i,h)&&(h.src?n._evalUrl&&n._evalUrl(h.src):n.globalEval(h.textContent.replace(hb,"")))}return this}}),n.each({appendTo:"append",prependTo:"prepend",insertBefore:"before",insertAfter:"after",replaceAll:"replaceWith"},function(a,b){n.fn[a]=function(a){for(var c,d=[],e=n(a),g=e.length-1,h=0;g>=h;h++)c=h===g?this:this.clone(!0),n(e[h])[b](c),f.apply(d,c.get());return this.pushStack(d)}});var qb,rb={};function sb(b,c){var d,e=n(c.createElement(b)).appendTo(c.body),f=a.getDefaultComputedStyle&&(d=a.getDefaultComputedStyle(e[0]))?d.display:n.css(e[0],"display");return e.detach(),f}function tb(a){var b=l,c=rb[a];return c||(c=sb(a,b),"none"!==c&&c||(qb=(qb||n("