From 93800c0126eb5befb7019064b90125bc428b4236 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Fri, 20 Apr 2018 16:12:32 +0100 Subject: [PATCH 01/71] Update demo title --- src/index.ejs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/index.ejs b/src/index.ejs index 28df4a6..1ad3ee2 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -3,7 +3,7 @@ - Puerh: Dev toolkit for pure-ish + Form generator for JSON Schema and elm From ae68db72bad77c7731d0676e46b6a7b5e96e5903 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Mon, 2 Jul 2018 22:50:56 +0100 Subject: [PATCH 02/71] Regiter custom element --- build.sh | 8 + package-lock.json | 729 ++++ package.json | 10 +- src/custom-element.js | 4 +- src/index.ejs | 4 +- stylesheets/globals.css | 7 + stylesheets/standalone.css | 1 + tests/Example.elm | 10 + tests/elm-package.json | 21 + webpack.config.js | 9 +- yarn-error.log | 6467 ++++++++++++++++++++++++++++++++++++ yarn.lock | 545 +-- 12 files changed, 7550 insertions(+), 265 deletions(-) create mode 100755 build.sh create mode 100644 package-lock.json create mode 100644 stylesheets/globals.css create mode 100644 tests/Example.elm create mode 100644 tests/elm-package.json create mode 100644 yarn-error.log diff --git a/build.sh b/build.sh new file mode 100755 index 0000000..21bd6cb --- /dev/null +++ b/build.sh @@ -0,0 +1,8 @@ +set -e + +elm make src/Main.elm --output build/demo.js + +postcss stylesheets/index.css -o build/styles.css + +cp index.html build/index.html + diff --git a/package-lock.json b/package-lock.json new file mode 100644 index 0000000..0c2d560 --- /dev/null +++ b/package-lock.json @@ -0,0 +1,729 @@ +{ + "name": "json-form-custom-element", + "version": "1.0.0", + "lockfileVersion": 1, + "requires": true, + "dependencies": { + "ajv": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.5.2.tgz", + "integrity": "sha512-hOs7GfvI6tUI1LfZddH82ky6mOMyTuY0mk7kE2pWpmhhUSkumzaTO5vbVwij39MdwPQWCV4Zv57Eo06NtL/GVA==", + "dev": true, + "requires": { + "fast-deep-equal": "2.0.1", + "fast-json-stable-stringify": "2.0.0", + "json-schema-traverse": "0.4.1", + "uri-js": "4.2.2" + } + }, + "ajv-keywords": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.2.0.tgz", + "integrity": "sha1-6GuBnGAs+IIa1jdBNpjx3sAhhHo=", + "dev": true + }, + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", + "dev": true + }, + "balanced-match": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", + "dev": true + }, + "bluebird": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.1.tgz", + "integrity": "sha512-MKiLiV+I1AA596t9w1sQJ8jkiSr5+ZKi0WKrYGUn6d1Fx+Ij4tIj+m2WMQSGczs5jZVxV339chE8iwk6F64wjA==", + "dev": true + }, + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "1.0.0", + "concat-map": "0.0.1" + } + }, + "buffer-from": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.0.tgz", + "integrity": "sha512-c5mRlguI/Pe2dSZmpER62rSCu0ryKmWddzRYsuXc50U2/g8jMOulc31VZMa4mYx31U5xsmSOpDCgH88Vl9cDGQ==", + "dev": true + }, + "cacache": { + "version": "10.0.4", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-10.0.4.tgz", + "integrity": "sha512-Dph0MzuH+rTQzGPNT9fAnrPmMmjKfST6trxJeK7NQuHRaVw24VzPRWTmg9MpcwOVQZO0E1FBICUlFeNaKPIfHA==", + "dev": true, + "requires": { + "bluebird": "3.5.1", + "chownr": "1.0.1", + "glob": "7.1.2", + "graceful-fs": "4.1.11", + "lru-cache": "4.1.3", + "mississippi": "2.0.0", + "mkdirp": "0.5.1", + "move-concurrently": "1.0.1", + "promise-inflight": "1.0.1", + "rimraf": "2.6.2", + "ssri": "5.3.0", + "unique-filename": "1.1.0", + "y18n": "4.0.0" + } + }, + "chownr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.0.1.tgz", + "integrity": "sha1-4qdQQqlVGQi+vSW4Uj1fl2nXkYE=", + "dev": true + }, + "commander": { + "version": "2.13.0", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.13.0.tgz", + "integrity": "sha512-MVuS359B+YzaWqjCL/c+22gfryv+mCBPHAv3zyVI2GN8EY6IRP8VwtasXn8jyyhvvq84R4ImN1OKRtcbIasjYA==", + "dev": true + }, + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", + "dev": true + }, + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true + }, + "concat-stream": { + "version": "1.6.2", + "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", + "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", + "dev": true, + "requires": { + "buffer-from": "1.1.0", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "typedarray": "0.0.6" + } + }, + "copy-concurrently": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", + "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", + "dev": true, + "requires": { + "aproba": "1.2.0", + "fs-write-stream-atomic": "1.0.10", + "iferr": "0.1.5", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", + "dev": true + }, + "cyclist": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-0.2.2.tgz", + "integrity": "sha1-GzN5LhHpFKL9bW7WRHRkRE5fpkA=", + "dev": true + }, + "duplexify": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.6.0.tgz", + "integrity": "sha512-fO3Di4tBKJpYTFHAxTU00BcfWMY9w24r/x21a6rZRbsD/ToUgGxsMbiGRmB7uVAXeGKXD9MwiLZa5E97EVgIRQ==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "inherits": "2.0.3", + "readable-stream": "2.3.6", + "stream-shift": "1.0.0" + } + }, + "end-of-stream": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.1.tgz", + "integrity": "sha512-1MkrZNvWTKCaigbn+W15elq2BB/L22nqrSY5DKlo3X6+vclJm8Bb5djXJBmEX6fS3+zCh/F4VBK5Z2KxJt4s2Q==", + "dev": true, + "requires": { + "once": "1.4.0" + } + }, + "errno": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.7.tgz", + "integrity": "sha512-MfrRBDWzIWifgq6tJj60gkAwtLNb6sQPlcFrSOflcP1aFmmruKQ2wRnze/8V6kgyz7H3FF8Npzv78mZ7XLLflg==", + "dev": true, + "requires": { + "prr": "1.0.1" + } + }, + "fast-deep-equal": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", + "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", + "dev": true + }, + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "find-cache-dir": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-1.0.0.tgz", + "integrity": "sha1-kojj6ePMN0hxfTnq3hfPcfww7m8=", + "dev": true, + "requires": { + "commondir": "1.0.1", + "make-dir": "1.3.0", + "pkg-dir": "2.0.0" + } + }, + "find-up": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-2.1.0.tgz", + "integrity": "sha1-RdG35QbHF93UgndaK3eSCjwMV6c=", + "dev": true, + "requires": { + "locate-path": "2.0.0" + } + }, + "flush-write-stream": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.0.3.tgz", + "integrity": "sha512-calZMC10u0FMUqoiunI2AiGIIUtUIvifNwkHhNupZH4cbNnW1Itkoh/Nf5HFYmDrwWPjrUxpkZT0KhuCq0jmGw==", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "from2": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", + "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "dev": true, + "requires": { + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "fs-write-stream-atomic": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", + "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", + "dev": true, + "requires": { + "graceful-fs": "4.1.11", + "iferr": "0.1.5", + "imurmurhash": "0.1.4", + "readable-stream": "2.3.6" + } + }, + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "dev": true + }, + "glob": { + "version": "7.1.2", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.2.tgz", + "integrity": "sha512-MJTUg1kjuLeQCJ+ccE4Vpa6kKVXkPYJ2mOCQyUuKLcLQsdrMCpBPUi8qVE6+YuaJkozeA9NusTAw3hLr8Xe5EQ==", + "dev": true, + "requires": { + "fs.realpath": "1.0.0", + "inflight": "1.0.6", + "inherits": "2.0.3", + "minimatch": "3.0.4", + "once": "1.4.0", + "path-is-absolute": "1.0.1" + } + }, + "graceful-fs": { + "version": "4.1.11", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.1.11.tgz", + "integrity": "sha1-Dovf5NHduIVNZOBOp8AOKgJuVlg=", + "dev": true + }, + "iferr": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", + "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", + "dev": true + }, + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "dev": true + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "dev": true, + "requires": { + "once": "1.4.0", + "wrappy": "1.0.2" + } + }, + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "dev": true + }, + "locate-path": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-2.0.0.tgz", + "integrity": "sha1-K1aLJl7slExtnA3pw9u7ygNUzY4=", + "dev": true, + "requires": { + "p-locate": "2.0.0", + "path-exists": "3.0.0" + } + }, + "lru-cache": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.3.tgz", + "integrity": "sha512-fFEhvcgzuIoJVUF8fYr5KR0YqxD238zgObTps31YdADwPPAp82a4M8TrckkWyx7ekNlf9aBcVn81cFwwXngrJA==", + "dev": true, + "requires": { + "pseudomap": "1.0.2", + "yallist": "2.1.2" + } + }, + "make-dir": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-1.3.0.tgz", + "integrity": "sha512-2w31R7SJtieJJnQtGc7RVL2StM2vGYVfqUOvUDxH6bC6aJTxPxTF0GnIgCyu7tjockiUWAYQRbxa7vKn34s5sQ==", + "dev": true, + "requires": { + "pify": "3.0.0" + } + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "dev": true, + "requires": { + "brace-expansion": "1.1.11" + } + }, + "minimist": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", + "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=", + "dev": true + }, + "mississippi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-2.0.0.tgz", + "integrity": "sha512-zHo8v+otD1J10j/tC+VNoGK9keCuByhKovAvdn74dmxJl9+mWHnx6EMsDN4lgRoMI/eYo2nchAxniIbUPb5onw==", + "dev": true, + "requires": { + "concat-stream": "1.6.2", + "duplexify": "3.6.0", + "end-of-stream": "1.4.1", + "flush-write-stream": "1.0.3", + "from2": "2.3.0", + "parallel-transform": "1.1.0", + "pump": "2.0.1", + "pumpify": "1.5.1", + "stream-each": "1.2.2", + "through2": "2.0.3" + } + }, + "mkdirp": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", + "integrity": "sha1-MAV0OOrGz3+MR2fzhkjWaX11yQM=", + "dev": true, + "requires": { + "minimist": "0.0.8" + } + }, + "move-concurrently": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", + "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "dev": true, + "requires": { + "aproba": "1.2.0", + "copy-concurrently": "1.0.5", + "fs-write-stream-atomic": "1.0.10", + "mkdirp": "0.5.1", + "rimraf": "2.6.2", + "run-queue": "1.0.3" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "dev": true, + "requires": { + "wrappy": "1.0.2" + } + }, + "p-limit": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-1.3.0.tgz", + "integrity": "sha512-vvcXsLAJ9Dr5rQOPk7toZQZJApBl2K4J6dANSsEuh6QI41JYcsS/qhTGa9ErIUUgK3WNQoJYvylxvjqmiqEA9Q==", + "dev": true, + "requires": { + "p-try": "1.0.0" + } + }, + "p-locate": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-2.0.0.tgz", + "integrity": "sha1-IKAQOyIqcMj9OcwuWAaA893l7EM=", + "dev": true, + "requires": { + "p-limit": "1.3.0" + } + }, + "p-try": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-1.0.0.tgz", + "integrity": "sha1-y8ec26+P1CKOE/Yh8rGiN8GyB7M=", + "dev": true + }, + "parallel-transform": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.1.0.tgz", + "integrity": "sha1-1BDwZbBdojCB/NEPKIVMKb2jOwY=", + "dev": true, + "requires": { + "cyclist": "0.2.2", + "inherits": "2.0.3", + "readable-stream": "2.3.6" + } + }, + "path-exists": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", + "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", + "dev": true + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", + "dev": true + }, + "pify": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", + "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "dev": true + }, + "pkg-dir": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-2.0.0.tgz", + "integrity": "sha1-9tXREJ4Z1j7fQo4L1X4Sd3YVM0s=", + "dev": true, + "requires": { + "find-up": "2.1.0" + } + }, + "process-nextick-args": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", + "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "dev": true + }, + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", + "dev": true + }, + "pseudomap": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", + "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", + "dev": true + }, + "pump": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", + "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "once": "1.4.0" + } + }, + "pumpify": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", + "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "dev": true, + "requires": { + "duplexify": "3.6.0", + "inherits": "2.0.3", + "pump": "2.0.1" + } + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "dev": true + }, + "readable-stream": { + "version": "2.3.6", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", + "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", + "dev": true, + "requires": { + "core-util-is": "1.0.2", + "inherits": "2.0.3", + "isarray": "1.0.0", + "process-nextick-args": "2.0.0", + "safe-buffer": "5.1.2", + "string_decoder": "1.1.1", + "util-deprecate": "1.0.2" + } + }, + "rimraf": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.2.tgz", + "integrity": "sha512-lreewLK/BlghmxtfH36YYVg1i8IAce4TI7oao75I1g245+6BctqTVQiBP3YUJ9C6DQOXJmkYR9X9fCLtCOJc5w==", + "dev": true, + "requires": { + "glob": "7.1.2" + } + }, + "run-queue": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", + "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "dev": true, + "requires": { + "aproba": "1.2.0" + } + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", + "dev": true + }, + "schema-utils": { + "version": "0.4.5", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-0.4.5.tgz", + "integrity": "sha512-yYrjb9TX2k/J1Y5UNy3KYdZq10xhYcF8nMpAW6o3hy6Q8WSIEf9lJHG/ePnOBfziPM3fvQwfOwa13U/Fh8qTfA==", + "dev": true, + "requires": { + "ajv": "6.5.2", + "ajv-keywords": "3.2.0" + } + }, + "serialize-javascript": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-1.5.0.tgz", + "integrity": "sha512-Ga8c8NjAAp46Br4+0oZ2WxJCwIzwP60Gq1YPgU+39PiTVxyed/iKE/zyZI6+UlVYH5Q4PaQdHhcegIFPZTUfoQ==", + "dev": true + }, + "source-list-map": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.0.tgz", + "integrity": "sha512-I2UmuJSRr/T8jisiROLU3A3ltr+swpniSmNPI4Ml3ZCX6tVnDsuZzK7F2hl5jTqbZBWCEKlj5HRQiPExXLgE8A==", + "dev": true + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true + }, + "ssri": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-5.3.0.tgz", + "integrity": "sha512-XRSIPqLij52MtgoQavH/x/dU1qVKtWUAAZeOHsR9c2Ddi4XerFy3mc1alf+dLJKl9EUIm/Ht+EowFkTUOA6GAQ==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "stream-each": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.2.tgz", + "integrity": "sha512-mc1dbFhGBxvTM3bIWmAAINbqiuAk9TATcfIQC8P+/+HJefgaiTlMn2dHvkX8qlI12KeYKSQ1Ua9RrIqrn1VPoA==", + "dev": true, + "requires": { + "end-of-stream": "1.4.1", + "stream-shift": "1.0.0" + } + }, + "stream-shift": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.0.tgz", + "integrity": "sha1-1cdSgl5TZ+eG944Y5EXqIjoVWVI=", + "dev": true + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "dev": true, + "requires": { + "safe-buffer": "5.1.2" + } + }, + "through2": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.3.tgz", + "integrity": "sha1-AARWmzfHx0ujnEPzzteNGtlBQL4=", + "dev": true, + "requires": { + "readable-stream": "2.3.6", + "xtend": "4.0.1" + } + }, + "typedarray": { + "version": "0.0.6", + "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", + "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", + "dev": true + }, + "uglify-es": { + "version": "3.3.9", + "resolved": "https://registry.npmjs.org/uglify-es/-/uglify-es-3.3.9.tgz", + "integrity": "sha512-r+MU0rfv4L/0eeW3xZrd16t4NZfK8Ld4SWVglYBb7ez5uXFWHuVRs6xCTrf1yirs9a4j4Y27nn7SRfO6v67XsQ==", + "dev": true, + "requires": { + "commander": "2.13.0", + "source-map": "0.6.1" + } + }, + "uglifyjs-webpack-plugin": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz", + "integrity": "sha512-1VicfKhCYHLS8m1DCApqBhoulnASsEoJ/BvpUpP4zoNAPpKzdH+ghk0olGJMmwX2/jprK2j3hAHdUbczBSy2FA==", + "dev": true, + "requires": { + "cacache": "10.0.4", + "find-cache-dir": "1.0.0", + "schema-utils": "0.4.5", + "serialize-javascript": "1.5.0", + "source-map": "0.6.1", + "uglify-es": "3.3.9", + "webpack-sources": "1.1.0", + "worker-farm": "1.6.0" + } + }, + "unique-filename": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.0.tgz", + "integrity": "sha1-0F8v5AMlYIcfMOk8vnNe6iAVFPM=", + "dev": true, + "requires": { + "unique-slug": "2.0.0" + } + }, + "unique-slug": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.0.tgz", + "integrity": "sha1-22Z258fMBimHj/GWCXx4hVrp9Ks=", + "dev": true, + "requires": { + "imurmurhash": "0.1.4" + } + }, + "uri-js": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz", + "integrity": "sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ==", + "dev": true, + "requires": { + "punycode": "2.1.1" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "webpack-sources": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.1.0.tgz", + "integrity": "sha512-aqYp18kPphgoO5c/+NaUvEeACtZjMESmDChuD3NBciVpah3XpMEU9VAAtIaB1BsfJWWTSdv8Vv1m3T0aRk2dUw==", + "dev": true, + "requires": { + "source-list-map": "2.0.0", + "source-map": "0.6.1" + } + }, + "worker-farm": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.6.0.tgz", + "integrity": "sha512-6w+3tHbM87WnSWnENBUvA2pxJPLhQUg5LKwUQHq3r+XPhIM+Gh2R5ycbwPCyuGbNg+lPgdcnQUhuC02kJCvffQ==", + "dev": true, + "requires": { + "errno": "0.1.7" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", + "dev": true + }, + "xtend": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.1.tgz", + "integrity": "sha1-pcbVMr5lbiPbgg77lDofBJmNY68=", + "dev": true + }, + "y18n": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz", + "integrity": "sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w==", + "dev": true + }, + "yallist": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", + "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "dev": true + } + } +} diff --git a/package.json b/package.json index b51b378..274db8e 100644 --- a/package.json +++ b/package.json @@ -1,9 +1,9 @@ { - "name": "json-form", + "name": "json-form-custom-element", "private": true, - "version": "2.0.0", - "description": "JSON Schema based form generator for elm apps.", - "main": "index.js", + "version": "1.0.0", + "description": "JSON Schema based form generator", + "main": "build/custom-element.js", "repository": "git@github.com:1602/json-form.git", "author": "Anatoliy ", "license": "GNU GENERAL PUBLIC LICENSE v3", @@ -36,6 +36,8 @@ "postcss-loader": "^2.0.9", "resolve-url-loader": "^2.2.1", "style-loader": "^0.19.0", + "to-string-loader": "^1.1.5", + "uglifyjs-webpack-plugin": "^1.2.7", "url-loader": "^0.6.2", "webpack": "^3.10.0", "webpack-dev-server": "^2.9.7", diff --git a/src/custom-element.js b/src/custom-element.js index 44628ed..78a3030 100644 --- a/src/custom-element.js +++ b/src/custom-element.js @@ -2,7 +2,7 @@ const Elm = require('./JsonFormCustomElement'); const css = require('../stylesheets/standalone.css').toString(); -customElements.define('json-viewer', +customElements.define('json-form', class extends HTMLElement { static get observedAttributes() { @@ -23,7 +23,7 @@ customElements.define('json-viewer', const json = this.getAttribute('value'); const schema = JSON.parse(this.getAttribute('schema')); const value = JSON.parse(json); - const app = Elm.Main.embed(appRoot, { schema, value }); + const app = Elm.JsonFormCustomElement.embed(appRoot, { schema, value }); this.app = app; } diff --git a/src/index.ejs b/src/index.ejs index 28df4a6..239db98 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -3,9 +3,9 @@ - Puerh: Dev toolkit for pure-ish + JSON Form web-component demo - + diff --git a/stylesheets/globals.css b/stylesheets/globals.css new file mode 100644 index 0000000..9fb8362 --- /dev/null +++ b/stylesheets/globals.css @@ -0,0 +1,7 @@ + +:host { + --font-family: helvetica, sans-serif; + --color-active: #2a79ff; + --color-inactive: #8a8a8a; + --color-swatch--500: #009688; +} diff --git a/stylesheets/standalone.css b/stylesheets/standalone.css index b647394..0d33ab3 100644 --- a/stylesheets/standalone.css +++ b/stylesheets/standalone.css @@ -1 +1,2 @@ +@import './globals.css'; @import './json-form.css'; diff --git a/tests/Example.elm b/tests/Example.elm new file mode 100644 index 0000000..959349f --- /dev/null +++ b/tests/Example.elm @@ -0,0 +1,10 @@ +module Example exposing (..) + +import Expect exposing (Expectation) +import Fuzz exposing (Fuzzer, int, list, string) +import Test exposing (..) + + +suite : Test +suite = + todo "Implement our first test. See http://package.elm-lang.org/packages/elm-community/elm-test/latest for how to do this!" diff --git a/tests/elm-package.json b/tests/elm-package.json new file mode 100644 index 0000000..5e0acd5 --- /dev/null +++ b/tests/elm-package.json @@ -0,0 +1,21 @@ +{ + "version": "1.0.0", + "summary": "Test Suites", + "repository": "https://github.com/1602/json-form.git", + "license": "BSD3", + "source-directories": [ + "../src", + "." + ], + "exposed-modules": [], + "dependencies": { + "1602/elm-feather": "2.2.0 <= v < 3.0.0", + "1602/json-schema": "4.1.0 <= v < 5.0.0", + "1602/json-value": "1.1.0 <= v < 2.0.0", + "eeue56/elm-html-test": "5.2.0 <= v < 6.0.0", + "elm-community/elm-test": "4.0.0 <= v < 5.0.0", + "elm-lang/core": "5.0.0 <= v < 6.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0" + }, + "elm-version": "0.18.0 <= v < 0.19.0" +} diff --git a/webpack.config.js b/webpack.config.js index a013120..29a997f 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,7 +13,7 @@ var filename = TARGET_ENV == "production" ? "[name]-[hash].js" : "index.js"; var common = { entry: { - 'index.js': "./src/index.js", + // 'index': "./src/index", 'custom-element': './src/custom-element' }, output: { @@ -60,14 +60,17 @@ var common = { loader: "babel-loader", options: { // env: automatically determines the Babel plugins you need based on your supported environments - presets: ["env"] + presets: [["env", { + "targets": { + "chrome": 52 + }}]] } } }, { test: /\.css$/, exclude: [/elm-stuff/, /node_modules/], - loaders: ["style-loader", "css-loader"] + loaders: ["to-string-loader", "css-loader"] }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, diff --git a/yarn-error.log b/yarn-error.log new file mode 100644 index 0000000..c4d6bf2 --- /dev/null +++ b/yarn-error.log @@ -0,0 +1,6467 @@ +Arguments: + /usr/local/bin/node /usr/local/bin/yarn run add to-string-loader --dev + +PATH: + /Users/anatoliy/.local/bin/luna-studio:/Users/anatoliy/google-cloud-sdk/bin:./node_modules/.bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Users/anatoliy/Library/Android/sdk/tools:/Users/anatoliy/Library/Android/sdk/platform-tools:/usr/local/opt/go/libexec/bin + +Yarn version: + 1.5.1 + +Node version: + 8.11.3 + +Platform: + darwin x64 + +npm manifest: + { + "name": "json-form-custom-element", + "private": true, + "version": "1.0.0", + "description": "JSON Schema based form generator", + "main": "build/custom-element.js", + "repository": "git@github.com:1602/json-form.git", + "author": "Anatoliy ", + "license": "GNU GENERAL PUBLIC LICENSE v3", + "scripts": { + "start": "npm run dev", + "dev": "webpack-dev-server --hot --port 4000 --colors", + "build": "webpack", + "deploy": "gh-pages -d dist", + "prod": "webpack -p", + "postinstall": "elm-package install -y && elm-test init" + }, + "devDependencies": { + "@ubio/css": "^1.3.11", + "babel-core": "^6.26.0", + "babel-loader": "^7.1.2", + "babel-preset-env": "^1.6.1", + "chokidar-cli": "^1.2.0", + "clean-webpack-plugin": "^0.1.17", + "copy-webpack-plugin": "^4.2.3", + "css-loader": "^0.28.7", + "elm": "^0.18.0", + "elm-hot-loader": "^0.5.4", + "elm-verify-examples": "^2.3.1", + "elm-webpack-loader": "^4.4.0", + "extract-text-webpack-plugin": "^3.0.2", + "file-loader": "^1.1.5", + "gh-pages": "^1.1.0", + "html-webpack-plugin": "^2.30.1", + "node-sass": "^4.7.2", + "postcss-loader": "^2.0.9", + "resolve-url-loader": "^2.2.1", + "style-loader": "^0.19.0", + "uglifyjs-webpack-plugin": "^1.2.7", + "url-loader": "^0.6.2", + "webpack": "^3.10.0", + "webpack-dev-server": "^2.9.7", + "webpack-merge": "^4.1.1" + } + } + +yarn manifest: + No manifest + +Lockfile: + # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. + # yarn lockfile v1 + + + "@ubio/css@^1.3.11": + version "1.3.11" + resolved "https://registry.yarnpkg.com/@ubio/css/-/css-1.3.11.tgz#357206258f7582c14960b7871106088e72cb2afc" + dependencies: + parse-color "^1.0.0" + + abbrev@1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/abbrev/-/abbrev-1.1.1.tgz#f8f2c887ad10bf67f634f005b6987fed3179aac8" + + accepts@~1.3.4, accepts@~1.3.5: + version "1.3.5" + resolved "https://registry.yarnpkg.com/accepts/-/accepts-1.3.5.tgz#eb777df6011723a3b14e8a72c0805c8e86746bd2" + dependencies: + mime-types "~2.1.18" + negotiator "0.6.1" + + acorn-dynamic-import@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/acorn-dynamic-import/-/acorn-dynamic-import-2.0.2.tgz#c752bd210bef679501b6c6cb7fc84f8f47158cc4" + dependencies: + acorn "^4.0.3" + + acorn@^4.0.3: + version "4.0.13" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-4.0.13.tgz#105495ae5361d697bd195c825192e1ad7f253787" + + acorn@^5.0.0: + version "5.5.3" + resolved "https://registry.yarnpkg.com/acorn/-/acorn-5.5.3.tgz#f473dd47e0277a08e28e9bec5aeeb04751f0b8c9" + + adjust-sourcemap-loader@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/adjust-sourcemap-loader/-/adjust-sourcemap-loader-1.2.0.tgz#e33fde95e50db9f2a802e3647e311d2fc5000c69" + dependencies: + assert "^1.3.0" + camelcase "^1.2.1" + loader-utils "^1.1.0" + lodash.assign "^4.0.1" + lodash.defaults "^3.1.2" + object-path "^0.9.2" + regex-parser "^2.2.9" + + ajv-keywords@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.1.0.tgz#ac2b27939c543e95d2c06e7f7f5c27be4aa543be" + + ajv@^4.9.1: + version "4.11.8" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-4.11.8.tgz#82ffb02b29e662ae53bdc20af15947706739c536" + dependencies: + co "^4.6.0" + json-stable-stringify "^1.0.1" + + ajv@^5.0.0, ajv@^5.1.0: + version "5.5.2" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-5.5.2.tgz#73b5eeca3fab653e3d3f9422b341ad42205dc965" + dependencies: + co "^4.6.0" + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + + ajv@^6.1.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.4.0.tgz#d3aff78e9277549771daf0164cff48482b754fc6" + dependencies: + fast-deep-equal "^1.0.0" + fast-json-stable-stringify "^2.0.0" + json-schema-traverse "^0.3.0" + uri-js "^3.0.2" + + align-text@^0.1.1, align-text@^0.1.3: + version "0.1.4" + resolved "https://registry.yarnpkg.com/align-text/-/align-text-0.1.4.tgz#0cd90a561093f35d0a99256c22b7069433fad117" + dependencies: + kind-of "^3.0.2" + longest "^1.0.1" + repeat-string "^1.5.2" + + alphanum-sort@^1.0.1, alphanum-sort@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/alphanum-sort/-/alphanum-sort-1.0.2.tgz#97a1119649b211ad33691d9f9f486a8ec9fbe0a3" + + amdefine@>=0.0.4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/amdefine/-/amdefine-1.0.1.tgz#4a5282ac164729e93619bcfd3ad151f817ce91f5" + + ansi-html@0.0.7: + version "0.0.7" + resolved "https://registry.yarnpkg.com/ansi-html/-/ansi-html-0.0.7.tgz#813584021962a9e9e6fd039f940d12f56ca7859e" + + ansi-regex@^2.0.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-2.1.1.tgz#c3b33ab5ee360d86e0e628f0468ae7ef27d654df" + + ansi-regex@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/ansi-regex/-/ansi-regex-3.0.0.tgz#ed0317c322064f79466c02966bddb605ab37d998" + + ansi-styles@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-2.2.1.tgz#b432dd3358b634cf75e1e4664368240533c1ddbe" + + ansi-styles@^3.1.0, ansi-styles@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/ansi-styles/-/ansi-styles-3.2.1.tgz#41fbb20243e50b12be0f04b8dedbf07520ce841d" + dependencies: + color-convert "^1.9.0" + + anymatch@^1.1.0, anymatch@^1.3.0: + version "1.3.2" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-1.3.2.tgz#553dcb8f91e3c889845dfdba34c77721b90b9d7a" + dependencies: + micromatch "^2.1.5" + normalize-path "^2.0.0" + + anymatch@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/anymatch/-/anymatch-2.0.0.tgz#bcb24b4f37934d9aa7ac17b4adaf89e7c76ef2eb" + dependencies: + micromatch "^3.1.4" + normalize-path "^2.1.1" + + aproba@^1.0.3, aproba@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/aproba/-/aproba-1.2.0.tgz#6802e6264efd18c790a1b0d517f0f2627bf2c94a" + + are-we-there-yet@~1.1.2: + version "1.1.4" + resolved "https://registry.yarnpkg.com/are-we-there-yet/-/are-we-there-yet-1.1.4.tgz#bb5dca382bb94f05e15194373d16fd3ba1ca110d" + dependencies: + delegates "^1.0.0" + readable-stream "^2.0.6" + + argparse@^1.0.7: + version "1.0.10" + resolved "https://registry.yarnpkg.com/argparse/-/argparse-1.0.10.tgz#bcd6791ea5ae09725e17e5ad988134cd40b3d911" + dependencies: + sprintf-js "~1.0.2" + + arr-diff@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-2.0.0.tgz#8f3b827f955a8bd669697e4a4256ac3ceae356cf" + dependencies: + arr-flatten "^1.0.1" + + arr-diff@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/arr-diff/-/arr-diff-4.0.0.tgz#d6461074febfec71e7e15235761a329a5dc7c520" + + arr-flatten@^1.0.1, arr-flatten@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/arr-flatten/-/arr-flatten-1.1.0.tgz#36048bbff4e7b47e136644316c99669ea5ae91f1" + + arr-union@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/arr-union/-/arr-union-3.1.0.tgz#e39b09aea9def866a8f206e288af63919bae39c4" + + array-filter@~0.0.0: + version "0.0.1" + resolved "https://registry.yarnpkg.com/array-filter/-/array-filter-0.0.1.tgz#7da8cf2e26628ed732803581fd21f67cacd2eeec" + + array-find-index@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" + + array-flatten@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" + + array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + + array-includes@^3.0.3: + version "3.0.3" + resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" + dependencies: + define-properties "^1.1.2" + es-abstract "^1.7.0" + + array-map@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-map/-/array-map-0.0.0.tgz#88a2bab73d1cf7bcd5c1b118a003f66f665fa662" + + array-reduce@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/array-reduce/-/array-reduce-0.0.0.tgz#173899d3ffd1c7d9383e4479525dbe278cab5f2b" + + array-union@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/array-union/-/array-union-1.0.2.tgz#9a34410e4f4e3da23dea375be5be70f24778ec39" + dependencies: + array-uniq "^1.0.1" + + array-uniq@^1.0.1: + version "1.0.3" + resolved "https://registry.yarnpkg.com/array-uniq/-/array-uniq-1.0.3.tgz#af6ac877a25cc7f74e058894753858dfdb24fdb6" + + array-unique@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.2.1.tgz#a1d97ccafcbc2625cc70fadceb36a50c58b01a53" + + array-unique@^0.3.2: + version "0.3.2" + resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428" + + arrify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/arrify/-/arrify-1.0.1.tgz#898508da2226f380df904728456849c1501a4b0d" + + asap@~2.0.3: + version "2.0.6" + resolved "https://registry.yarnpkg.com/asap/-/asap-2.0.6.tgz#e50347611d7e690943208bbdafebcbc2fb866d46" + + asn1.js@^4.0.0: + version "4.10.1" + resolved "https://registry.yarnpkg.com/asn1.js/-/asn1.js-4.10.1.tgz#b9c2bf5805f1e64aadeed6df3a2bfafb5a73f5a0" + dependencies: + bn.js "^4.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + + asn1@~0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" + + assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + + assert-plus@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" + + assert@^1.1.1, assert@^1.3.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" + dependencies: + util "0.10.3" + + assign-symbols@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assign-symbols/-/assign-symbols-1.0.0.tgz#59667f41fadd4f20ccbc2bb96b8d4f7f78ec0367" + + async-each@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/async-each/-/async-each-1.0.1.tgz#19d386a1d9edc6e7c1c85d388aedbcc56d33602d" + + async-foreach@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" + + async@2.6.0, async@^2.0.1, async@^2.1.2, async@^2.4.1: + version "2.6.0" + resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" + dependencies: + lodash "^4.14.0" + + async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + + asynckit@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" + + atob@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/atob/-/atob-2.1.0.tgz#ab2b150e51d7b122b9efc8d7340c06b6c41076bc" + + atob@~1.1.0: + version "1.1.3" + resolved "https://registry.yarnpkg.com/atob/-/atob-1.1.3.tgz#95f13629b12c3a51a5d215abdce2aa9f32f80773" + + autoprefixer@^6.3.1: + version "6.7.7" + resolved "https://registry.yarnpkg.com/autoprefixer/-/autoprefixer-6.7.7.tgz#1dbd1c835658e35ce3f9984099db00585c782014" + dependencies: + browserslist "^1.7.6" + caniuse-db "^1.0.30000634" + normalize-range "^0.1.2" + num2fraction "^1.2.2" + postcss "^5.2.16" + postcss-value-parser "^3.2.3" + + aws-sign2@~0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.6.0.tgz#14342dd38dbcc94d0e5b87d763cd63612c0e794f" + + aws-sign2@~0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" + + aws4@^1.2.1, aws4@^1.6.0: + version "1.7.0" + resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.7.0.tgz#d4d0e9b9dbfca77bf08eeb0a8a471550fe39e289" + + babel-code-frame@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-code-frame/-/babel-code-frame-6.26.0.tgz#63fd43f7dc1e3bb7ce35947db8fe369a3f58c74b" + dependencies: + chalk "^1.1.3" + esutils "^2.0.2" + js-tokens "^3.0.2" + + babel-core@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-core/-/babel-core-6.26.0.tgz#af32f78b31a6fcef119c87b0fd8d9753f03a0bb8" + dependencies: + babel-code-frame "^6.26.0" + babel-generator "^6.26.0" + babel-helpers "^6.24.1" + babel-messages "^6.23.0" + babel-register "^6.26.0" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + convert-source-map "^1.5.0" + debug "^2.6.8" + json5 "^0.5.1" + lodash "^4.17.4" + minimatch "^3.0.4" + path-is-absolute "^1.0.1" + private "^0.1.7" + slash "^1.0.0" + source-map "^0.5.6" + + babel-generator@^6.26.0: + version "6.26.1" + resolved "https://registry.yarnpkg.com/babel-generator/-/babel-generator-6.26.1.tgz#1844408d3b8f0d35a404ea7ac180f087a601bd90" + dependencies: + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + detect-indent "^4.0.0" + jsesc "^1.3.0" + lodash "^4.17.4" + source-map "^0.5.7" + trim-right "^1.0.1" + + babel-helper-builder-binary-assignment-operator-visitor@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-builder-binary-assignment-operator-visitor/-/babel-helper-builder-binary-assignment-operator-visitor-6.24.1.tgz#cce4517ada356f4220bcae8a02c2b346f9a56664" + dependencies: + babel-helper-explode-assignable-expression "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-helper-call-delegate@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-call-delegate/-/babel-helper-call-delegate-6.24.1.tgz#ece6aacddc76e41c3461f88bfc575bd0daa2df8d" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-helper-define-map@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-define-map/-/babel-helper-define-map-6.26.0.tgz#a5f56dab41a25f97ecb498c7ebaca9819f95be5f" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + + babel-helper-explode-assignable-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-explode-assignable-expression/-/babel-helper-explode-assignable-expression-6.24.1.tgz#f25b82cf7dc10433c55f70592d5746400ac22caa" + dependencies: + babel-runtime "^6.22.0" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-helper-function-name@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-function-name/-/babel-helper-function-name-6.24.1.tgz#d3475b8c03ed98242a25b48351ab18399d3580a9" + dependencies: + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-helper-get-function-arity@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-get-function-arity/-/babel-helper-get-function-arity-6.24.1.tgz#8f7782aa93407c41d3aa50908f89b031b1b6853d" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-helper-hoist-variables@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-hoist-variables/-/babel-helper-hoist-variables-6.24.1.tgz#1ecb27689c9d25513eadbc9914a73f5408be7a76" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-helper-optimise-call-expression@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-optimise-call-expression/-/babel-helper-optimise-call-expression-6.24.1.tgz#f7a13427ba9f73f8f4fa993c54a97882d1244257" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-helper-regex@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-helper-regex/-/babel-helper-regex-6.26.0.tgz#325c59f902f82f24b74faceed0363954f6495e72" + dependencies: + babel-runtime "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + + babel-helper-remap-async-to-generator@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-remap-async-to-generator/-/babel-helper-remap-async-to-generator-6.24.1.tgz#5ec581827ad723fecdd381f1c928390676e4551b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-helper-replace-supers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helper-replace-supers/-/babel-helper-replace-supers-6.24.1.tgz#bf6dbfe43938d17369a213ca8a8bf74b6a90ab1a" + dependencies: + babel-helper-optimise-call-expression "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-helpers@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-helpers/-/babel-helpers-6.24.1.tgz#3471de9caec388e5c850e597e58a26ddf37602b2" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + + babel-loader@^7.1.2: + version "7.1.4" + resolved "https://registry.yarnpkg.com/babel-loader/-/babel-loader-7.1.4.tgz#e3463938bd4e6d55d1c174c5485d406a188ed015" + dependencies: + find-cache-dir "^1.0.0" + loader-utils "^1.0.2" + mkdirp "^0.5.1" + + babel-messages@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-messages/-/babel-messages-6.23.0.tgz#f3cdf4703858035b2a2951c6ec5edf6c62f2630e" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-check-es2015-constants@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-check-es2015-constants/-/babel-plugin-check-es2015-constants-6.22.0.tgz#35157b101426fd2ffd3da3f75c7d1e91835bbf8a" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-syntax-async-functions@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-async-functions/-/babel-plugin-syntax-async-functions-6.13.0.tgz#cad9cad1191b5ad634bf30ae0872391e0647be95" + + babel-plugin-syntax-exponentiation-operator@^6.8.0: + version "6.13.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-exponentiation-operator/-/babel-plugin-syntax-exponentiation-operator-6.13.0.tgz#9ee7e8337290da95288201a6a57f4170317830de" + + babel-plugin-syntax-trailing-function-commas@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-syntax-trailing-function-commas/-/babel-plugin-syntax-trailing-function-commas-6.22.0.tgz#ba0360937f8d06e40180a43fe0d5616fff532cf3" + + babel-plugin-transform-async-to-generator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-async-to-generator/-/babel-plugin-transform-async-to-generator-6.24.1.tgz#6536e378aff6cb1d5517ac0e40eb3e9fc8d08761" + dependencies: + babel-helper-remap-async-to-generator "^6.24.1" + babel-plugin-syntax-async-functions "^6.8.0" + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-arrow-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-arrow-functions/-/babel-plugin-transform-es2015-arrow-functions-6.22.0.tgz#452692cb711d5f79dc7f85e440ce41b9f244d221" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-block-scoped-functions@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoped-functions/-/babel-plugin-transform-es2015-block-scoped-functions-6.22.0.tgz#bbc51b49f964d70cb8d8e0b94e820246ce3a6141" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-block-scoping@^6.23.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-block-scoping/-/babel-plugin-transform-es2015-block-scoping-6.26.0.tgz#d70f5299c1308d05c12f463813b0a09e73b1895f" + dependencies: + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + lodash "^4.17.4" + + babel-plugin-transform-es2015-classes@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-classes/-/babel-plugin-transform-es2015-classes-6.24.1.tgz#5a4c58a50c9c9461e564b4b2a3bfabc97a2584db" + dependencies: + babel-helper-define-map "^6.24.1" + babel-helper-function-name "^6.24.1" + babel-helper-optimise-call-expression "^6.24.1" + babel-helper-replace-supers "^6.24.1" + babel-messages "^6.23.0" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-computed-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-computed-properties/-/babel-plugin-transform-es2015-computed-properties-6.24.1.tgz#6fe2a8d16895d5634f4cd999b6d3480a308159b3" + dependencies: + babel-runtime "^6.22.0" + babel-template "^6.24.1" + + babel-plugin-transform-es2015-destructuring@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-destructuring/-/babel-plugin-transform-es2015-destructuring-6.23.0.tgz#997bb1f1ab967f682d2b0876fe358d60e765c56d" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-duplicate-keys@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-duplicate-keys/-/babel-plugin-transform-es2015-duplicate-keys-6.24.1.tgz#73eb3d310ca969e3ef9ec91c53741a6f1576423e" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-for-of@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-for-of/-/babel-plugin-transform-es2015-for-of-6.23.0.tgz#f47c95b2b613df1d3ecc2fdb7573623c75248691" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-function-name@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-function-name/-/babel-plugin-transform-es2015-function-name-6.24.1.tgz#834c89853bc36b1af0f3a4c5dbaa94fd8eacaa8b" + dependencies: + babel-helper-function-name "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-literals/-/babel-plugin-transform-es2015-literals-6.22.0.tgz#4f54a02d6cd66cf915280019a31d31925377ca2e" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-modules-amd@^6.22.0, babel-plugin-transform-es2015-modules-amd@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-amd/-/babel-plugin-transform-es2015-modules-amd-6.24.1.tgz#3b3e54017239842d6d19c3011c4bd2f00a00d154" + dependencies: + babel-plugin-transform-es2015-modules-commonjs "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + + babel-plugin-transform-es2015-modules-commonjs@^6.23.0, babel-plugin-transform-es2015-modules-commonjs@^6.24.1: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-commonjs/-/babel-plugin-transform-es2015-modules-commonjs-6.26.0.tgz#0d8394029b7dc6abe1a97ef181e00758dd2e5d8a" + dependencies: + babel-plugin-transform-strict-mode "^6.24.1" + babel-runtime "^6.26.0" + babel-template "^6.26.0" + babel-types "^6.26.0" + + babel-plugin-transform-es2015-modules-systemjs@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-systemjs/-/babel-plugin-transform-es2015-modules-systemjs-6.24.1.tgz#ff89a142b9119a906195f5f106ecf305d9407d23" + dependencies: + babel-helper-hoist-variables "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + + babel-plugin-transform-es2015-modules-umd@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-modules-umd/-/babel-plugin-transform-es2015-modules-umd-6.24.1.tgz#ac997e6285cd18ed6176adb607d602344ad38468" + dependencies: + babel-plugin-transform-es2015-modules-amd "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + + babel-plugin-transform-es2015-object-super@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-object-super/-/babel-plugin-transform-es2015-object-super-6.24.1.tgz#24cef69ae21cb83a7f8603dad021f572eb278f8d" + dependencies: + babel-helper-replace-supers "^6.24.1" + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-parameters@^6.23.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-parameters/-/babel-plugin-transform-es2015-parameters-6.24.1.tgz#57ac351ab49caf14a97cd13b09f66fdf0a625f2b" + dependencies: + babel-helper-call-delegate "^6.24.1" + babel-helper-get-function-arity "^6.24.1" + babel-runtime "^6.22.0" + babel-template "^6.24.1" + babel-traverse "^6.24.1" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-shorthand-properties@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-shorthand-properties/-/babel-plugin-transform-es2015-shorthand-properties-6.24.1.tgz#24f875d6721c87661bbd99a4622e51f14de38aa0" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-spread@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-spread/-/babel-plugin-transform-es2015-spread-6.22.0.tgz#d6d68a99f89aedc4536c81a542e8dd9f1746f8d1" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-sticky-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-sticky-regex/-/babel-plugin-transform-es2015-sticky-regex-6.24.1.tgz#00c1cdb1aca71112cdf0cf6126c2ed6b457ccdbc" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-plugin-transform-es2015-template-literals@^6.22.0: + version "6.22.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-template-literals/-/babel-plugin-transform-es2015-template-literals-6.22.0.tgz#a84b3450f7e9f8f1f6839d6d687da84bb1236d8d" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-typeof-symbol@^6.23.0: + version "6.23.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-typeof-symbol/-/babel-plugin-transform-es2015-typeof-symbol-6.23.0.tgz#dec09f1cddff94b52ac73d505c84df59dcceb372" + dependencies: + babel-runtime "^6.22.0" + + babel-plugin-transform-es2015-unicode-regex@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-es2015-unicode-regex/-/babel-plugin-transform-es2015-unicode-regex-6.24.1.tgz#d38b12f42ea7323f729387f18a7c5ae1faeb35e9" + dependencies: + babel-helper-regex "^6.24.1" + babel-runtime "^6.22.0" + regexpu-core "^2.0.0" + + babel-plugin-transform-exponentiation-operator@^6.22.0: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-exponentiation-operator/-/babel-plugin-transform-exponentiation-operator-6.24.1.tgz#2ab0c9c7f3098fa48907772bb813fe41e8de3a0e" + dependencies: + babel-helper-builder-binary-assignment-operator-visitor "^6.24.1" + babel-plugin-syntax-exponentiation-operator "^6.8.0" + babel-runtime "^6.22.0" + + babel-plugin-transform-regenerator@^6.22.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-regenerator/-/babel-plugin-transform-regenerator-6.26.0.tgz#e0703696fbde27f0a3efcacf8b4dca2f7b3a8f2f" + dependencies: + regenerator-transform "^0.10.0" + + babel-plugin-transform-strict-mode@^6.24.1: + version "6.24.1" + resolved "https://registry.yarnpkg.com/babel-plugin-transform-strict-mode/-/babel-plugin-transform-strict-mode-6.24.1.tgz#d5faf7aa578a65bbe591cf5edae04a0c67020758" + dependencies: + babel-runtime "^6.22.0" + babel-types "^6.24.1" + + babel-preset-env@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/babel-preset-env/-/babel-preset-env-1.6.1.tgz#a18b564cc9b9afdf4aae57ae3c1b0d99188e6f48" + dependencies: + babel-plugin-check-es2015-constants "^6.22.0" + babel-plugin-syntax-trailing-function-commas "^6.22.0" + babel-plugin-transform-async-to-generator "^6.22.0" + babel-plugin-transform-es2015-arrow-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoped-functions "^6.22.0" + babel-plugin-transform-es2015-block-scoping "^6.23.0" + babel-plugin-transform-es2015-classes "^6.23.0" + babel-plugin-transform-es2015-computed-properties "^6.22.0" + babel-plugin-transform-es2015-destructuring "^6.23.0" + babel-plugin-transform-es2015-duplicate-keys "^6.22.0" + babel-plugin-transform-es2015-for-of "^6.23.0" + babel-plugin-transform-es2015-function-name "^6.22.0" + babel-plugin-transform-es2015-literals "^6.22.0" + babel-plugin-transform-es2015-modules-amd "^6.22.0" + babel-plugin-transform-es2015-modules-commonjs "^6.23.0" + babel-plugin-transform-es2015-modules-systemjs "^6.23.0" + babel-plugin-transform-es2015-modules-umd "^6.23.0" + babel-plugin-transform-es2015-object-super "^6.22.0" + babel-plugin-transform-es2015-parameters "^6.23.0" + babel-plugin-transform-es2015-shorthand-properties "^6.22.0" + babel-plugin-transform-es2015-spread "^6.22.0" + babel-plugin-transform-es2015-sticky-regex "^6.22.0" + babel-plugin-transform-es2015-template-literals "^6.22.0" + babel-plugin-transform-es2015-typeof-symbol "^6.23.0" + babel-plugin-transform-es2015-unicode-regex "^6.22.0" + babel-plugin-transform-exponentiation-operator "^6.22.0" + babel-plugin-transform-regenerator "^6.22.0" + browserslist "^2.1.2" + invariant "^2.2.2" + semver "^5.3.0" + + babel-register@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-register/-/babel-register-6.26.0.tgz#6ed021173e2fcb486d7acb45c6009a856f647071" + dependencies: + babel-core "^6.26.0" + babel-runtime "^6.26.0" + core-js "^2.5.0" + home-or-tmp "^2.0.0" + lodash "^4.17.4" + mkdirp "^0.5.1" + source-map-support "^0.4.15" + + babel-runtime@^6.18.0, babel-runtime@^6.22.0, babel-runtime@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-runtime/-/babel-runtime-6.26.0.tgz#965c7058668e82b55d7bfe04ff2337bc8b5647fe" + dependencies: + core-js "^2.4.0" + regenerator-runtime "^0.11.0" + + babel-template@^6.24.1, babel-template@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-template/-/babel-template-6.26.0.tgz#de03e2d16396b069f46dd9fff8521fb1a0e35e02" + dependencies: + babel-runtime "^6.26.0" + babel-traverse "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + lodash "^4.17.4" + + babel-traverse@^6.24.1, babel-traverse@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-traverse/-/babel-traverse-6.26.0.tgz#46a9cbd7edcc62c8e5c064e2d2d8d0f4035766ee" + dependencies: + babel-code-frame "^6.26.0" + babel-messages "^6.23.0" + babel-runtime "^6.26.0" + babel-types "^6.26.0" + babylon "^6.18.0" + debug "^2.6.8" + globals "^9.18.0" + invariant "^2.2.2" + lodash "^4.17.4" + + babel-types@^6.19.0, babel-types@^6.24.1, babel-types@^6.26.0: + version "6.26.0" + resolved "https://registry.yarnpkg.com/babel-types/-/babel-types-6.26.0.tgz#a3b073f94ab49eb6fa55cd65227a334380632497" + dependencies: + babel-runtime "^6.26.0" + esutils "^2.0.2" + lodash "^4.17.4" + to-fast-properties "^1.0.3" + + babylon@^6.18.0: + version "6.18.0" + resolved "https://registry.yarnpkg.com/babylon/-/babylon-6.18.0.tgz#af2f3b88fa6f5c1e4c634d1a0f8eac4f55b395e3" + + balanced-match@^0.4.2: + version "0.4.2" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-0.4.2.tgz#cb3f3e3c732dc0f01ee70b403f302e61d7709838" + + balanced-match@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" + + base64-js@^1.0.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + + base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + + base@^0.11.1: + version "0.11.2" + resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" + dependencies: + cache-base "^1.0.1" + class-utils "^0.3.5" + component-emitter "^1.2.1" + define-property "^1.0.0" + isobject "^3.0.1" + mixin-deep "^1.2.0" + pascalcase "^0.1.1" + + batch@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" + + bcrypt-pbkdf@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.1.tgz#63bc5dcb61331b92bc05fd528953c33462a06f8d" + dependencies: + tweetnacl "^0.14.3" + + big.js@^3.1.3: + version "3.2.0" + resolved "https://registry.yarnpkg.com/big.js/-/big.js-3.2.0.tgz#a5fc298b81b9e0dca2e458824784b65c52ba588e" + + binary-extensions@^1.0.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/binary-extensions/-/binary-extensions-1.11.0.tgz#46aa1751fb6a2f93ee5e689bb1087d4b14c6c205" + + binstall@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/binstall/-/binstall-1.2.0.tgz#6b2c0f580b9e3c607f50ef7a22a54ce9fdc8d933" + dependencies: + request "2.79.0" + tar "2.2.1" + + bl@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/bl/-/bl-1.1.2.tgz#fdca871a99713aa00d19e3bbba41c44787a65398" + dependencies: + readable-stream "~2.0.5" + + block-stream@*: + version "0.0.9" + resolved "https://registry.yarnpkg.com/block-stream/-/block-stream-0.0.9.tgz#13ebfe778a03205cfe03751481ebb4b3300c126a" + dependencies: + inherits "~2.0.0" + + bluebird@^2.9.24: + version "2.11.0" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-2.11.0.tgz#534b9033c022c9579c56ba3b3e5a5caafbb650e1" + + bluebird@^3.4.7, bluebird@^3.5.1: + version "3.5.1" + resolved "https://registry.yarnpkg.com/bluebird/-/bluebird-3.5.1.tgz#d9551f9de98f1fcda1e683d17ee91a0602ee2eb9" + + bn.js@^4.0.0, bn.js@^4.1.0, bn.js@^4.1.1, bn.js@^4.4.0: + version "4.11.8" + resolved "https://registry.yarnpkg.com/bn.js/-/bn.js-4.11.8.tgz#2cde09eb5ee341f484746bb0309b3253b1b1442f" + + body-parser@1.18.2: + version "1.18.2" + resolved "https://registry.yarnpkg.com/body-parser/-/body-parser-1.18.2.tgz#87678a19d84b47d859b83199bd59bce222b10454" + dependencies: + bytes "3.0.0" + content-type "~1.0.4" + debug "2.6.9" + depd "~1.1.1" + http-errors "~1.6.2" + iconv-lite "0.4.19" + on-finished "~2.3.0" + qs "6.5.1" + raw-body "2.3.2" + type-is "~1.6.15" + + bonjour@^3.5.0: + version "3.5.0" + resolved "https://registry.yarnpkg.com/bonjour/-/bonjour-3.5.0.tgz#8e890a183d8ee9a2393b3844c691a42bcf7bc9f5" + dependencies: + array-flatten "^2.1.0" + deep-equal "^1.0.1" + dns-equal "^1.0.0" + dns-txt "^2.0.2" + multicast-dns "^6.0.1" + multicast-dns-service-types "^1.1.0" + + boolbase@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/boolbase/-/boolbase-1.0.0.tgz#68dff5fbe60c51eb37725ea9e3ed310dcc1e776e" + + boom@2.x.x: + version "2.10.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-2.10.1.tgz#39c8918ceff5799f83f9492a848f625add0c766f" + dependencies: + hoek "2.x.x" + + boom@4.x.x: + version "4.3.1" + resolved "https://registry.yarnpkg.com/boom/-/boom-4.3.1.tgz#4f8a3005cb4a7e3889f749030fd25b96e01d2e31" + dependencies: + hoek "4.x.x" + + boom@5.x.x: + version "5.2.0" + resolved "https://registry.yarnpkg.com/boom/-/boom-5.2.0.tgz#5dd9da6ee3a5f302077436290cb717d3f4a54e02" + dependencies: + hoek "4.x.x" + + brace-expansion@^1.1.7: + version "1.1.11" + resolved "https://registry.yarnpkg.com/brace-expansion/-/brace-expansion-1.1.11.tgz#3c7fcbf529d87226f3d2f52b966ff5271eb441dd" + dependencies: + balanced-match "^1.0.0" + concat-map "0.0.1" + + braces@^1.8.2: + version "1.8.5" + resolved "https://registry.yarnpkg.com/braces/-/braces-1.8.5.tgz#ba77962e12dff969d6b76711e914b737857bf6a7" + dependencies: + expand-range "^1.8.1" + preserve "^0.2.0" + repeat-element "^1.1.2" + + braces@^2.3.0, braces@^2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/braces/-/braces-2.3.2.tgz#5979fd3f14cd531565e5fa2df1abfff1dfaee729" + dependencies: + arr-flatten "^1.1.0" + array-unique "^0.3.2" + extend-shallow "^2.0.1" + fill-range "^4.0.0" + isobject "^3.0.1" + repeat-element "^1.1.2" + snapdragon "^0.8.1" + snapdragon-node "^2.0.1" + split-string "^3.0.2" + to-regex "^3.0.1" + + brorand@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/brorand/-/brorand-1.1.0.tgz#12c25efe40a45e3c323eb8675a0a0ce57b22371f" + + browserify-aes@^1.0.0, browserify-aes@^1.0.4: + version "1.2.0" + resolved "https://registry.yarnpkg.com/browserify-aes/-/browserify-aes-1.2.0.tgz#326734642f403dabc3003209853bb70ad428ef48" + dependencies: + buffer-xor "^1.0.3" + cipher-base "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.3" + inherits "^2.0.1" + safe-buffer "^5.0.1" + + browserify-cipher@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-cipher/-/browserify-cipher-1.0.1.tgz#8d6474c1b870bfdabcd3bcfcc1934a10e94f15f0" + dependencies: + browserify-aes "^1.0.4" + browserify-des "^1.0.0" + evp_bytestokey "^1.0.0" + + browserify-des@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/browserify-des/-/browserify-des-1.0.1.tgz#3343124db6d7ad53e26a8826318712bdc8450f9c" + dependencies: + cipher-base "^1.0.1" + des.js "^1.0.0" + inherits "^2.0.1" + + browserify-rsa@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/browserify-rsa/-/browserify-rsa-4.0.1.tgz#21e0abfaf6f2029cf2fafb133567a701d4135524" + dependencies: + bn.js "^4.1.0" + randombytes "^2.0.1" + + browserify-sign@^4.0.0: + version "4.0.4" + resolved "https://registry.yarnpkg.com/browserify-sign/-/browserify-sign-4.0.4.tgz#aa4eb68e5d7b658baa6bf6a57e630cbd7a93d298" + dependencies: + bn.js "^4.1.1" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.2" + elliptic "^6.0.0" + inherits "^2.0.1" + parse-asn1 "^5.0.0" + + browserify-zlib@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/browserify-zlib/-/browserify-zlib-0.2.0.tgz#2869459d9aa3be245fe8fe2ca1f46e2e7f54d73f" + dependencies: + pako "~1.0.5" + + browserslist@^1.3.6, browserslist@^1.5.2, browserslist@^1.7.6: + version "1.7.7" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-1.7.7.tgz#0bd76704258be829b2398bb50e4b62d1a166b0b9" + dependencies: + caniuse-db "^1.0.30000639" + electron-to-chromium "^1.2.7" + + browserslist@^2.1.2: + version "2.11.3" + resolved "https://registry.yarnpkg.com/browserslist/-/browserslist-2.11.3.tgz#fe36167aed1bbcde4827ebfe71347a2cc70b99b2" + dependencies: + caniuse-lite "^1.0.30000792" + electron-to-chromium "^1.3.30" + + buffer-from@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/buffer-from/-/buffer-from-1.0.0.tgz#4cb8832d23612589b0406e9e2956c17f06fdf531" + + buffer-indexof@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/buffer-indexof/-/buffer-indexof-1.1.1.tgz#52fabcc6a606d1a00302802648ef68f639da268c" + + buffer-xor@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/buffer-xor/-/buffer-xor-1.0.3.tgz#26e61ed1422fb70dd42e6e36729ed51d855fe8d9" + + buffer@^4.3.0: + version "4.9.1" + resolved "https://registry.yarnpkg.com/buffer/-/buffer-4.9.1.tgz#6d1bb601b07a4efced97094132093027c95bc298" + dependencies: + base64-js "^1.0.2" + ieee754 "^1.1.4" + isarray "^1.0.0" + + builtin-modules@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/builtin-modules/-/builtin-modules-1.1.1.tgz#270f076c5a72c02f5b65a47df94c5fe3a278892f" + + builtin-status-codes@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz#85982878e21b98e1c66425e03d0174788f569ee8" + + bytes@3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/bytes/-/bytes-3.0.0.tgz#d32815404d689699f85a4ea4fa8755dd13a96048" + + cacache@^10.0.4: + version "10.0.4" + resolved "https://registry.yarnpkg.com/cacache/-/cacache-10.0.4.tgz#6452367999eff9d4188aefd9a14e9d7c6a263460" + dependencies: + bluebird "^3.5.1" + chownr "^1.0.1" + glob "^7.1.2" + graceful-fs "^4.1.11" + lru-cache "^4.1.1" + mississippi "^2.0.0" + mkdirp "^0.5.1" + move-concurrently "^1.0.1" + promise-inflight "^1.0.1" + rimraf "^2.6.2" + ssri "^5.2.4" + unique-filename "^1.1.0" + y18n "^4.0.0" + + cache-base@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/cache-base/-/cache-base-1.0.1.tgz#0a7f46416831c8b662ee36fe4e7c59d76f666ab2" + dependencies: + collection-visit "^1.0.0" + component-emitter "^1.2.1" + get-value "^2.0.6" + has-value "^1.0.0" + isobject "^3.0.1" + set-value "^2.0.0" + to-object-path "^0.3.0" + union-value "^1.0.0" + unset-value "^1.0.0" + + camel-case@3.0.x: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camel-case/-/camel-case-3.0.0.tgz#ca3c3688a4e9cf3a4cda777dc4dcbc713249cf73" + dependencies: + no-case "^2.2.0" + upper-case "^1.1.1" + + camelcase-keys@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/camelcase-keys/-/camelcase-keys-2.1.0.tgz#308beeaffdf28119051efa1d932213c91b8f92e7" + dependencies: + camelcase "^2.0.0" + map-obj "^1.0.0" + + camelcase@^1.0.2, camelcase@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-1.2.1.tgz#9bb5304d2e0b56698b2c758b08a3eaa9daa58a39" + + camelcase@^2.0.0, camelcase@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-2.1.1.tgz#7c1d16d679a1bbe59ca02cacecfb011e201f5a1f" + + camelcase@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-3.0.0.tgz#32fc4b9fcdaf845fcdf7e73bb97cac2261f0ab0a" + + camelcase@^4.1.0: + version "4.1.0" + resolved "https://registry.yarnpkg.com/camelcase/-/camelcase-4.1.0.tgz#d545635be1e33c542649c69173e5de6acfae34dd" + + caniuse-api@^1.5.2: + version "1.6.1" + resolved "https://registry.yarnpkg.com/caniuse-api/-/caniuse-api-1.6.1.tgz#b534e7c734c4f81ec5fbe8aca2ad24354b962c6c" + dependencies: + browserslist "^1.3.6" + caniuse-db "^1.0.30000529" + lodash.memoize "^4.1.2" + lodash.uniq "^4.5.0" + + caniuse-db@^1.0.30000529, caniuse-db@^1.0.30000634, caniuse-db@^1.0.30000639: + version "1.0.30000827" + resolved "https://registry.yarnpkg.com/caniuse-db/-/caniuse-db-1.0.30000827.tgz#bd2839dd196093b44c28c17f93513140c9d92588" + + caniuse-lite@^1.0.30000792: + version "1.0.30000827" + resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30000827.tgz#2dad2354e4810c3c9bb1cfc57f655c270c25fa52" + + caseless@~0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.11.0.tgz#715b96ea9841593cc33067923f5ec60ebda4f7d7" + + caseless@~0.12.0: + version "0.12.0" + resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" + + center-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/center-align/-/center-align-0.1.3.tgz#aa0d32629b6ee972200411cbd4461c907bc2b7ad" + dependencies: + align-text "^0.1.3" + lazy-cache "^1.0.3" + + chalk@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + + chalk@^1.1.1, chalk@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" + dependencies: + ansi-styles "^2.2.1" + escape-string-regexp "^1.0.2" + has-ansi "^2.0.0" + strip-ansi "^3.0.0" + supports-color "^2.0.0" + + chalk@^2.3.0, chalk@^2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.3.2.tgz#250dc96b07491bfd601e648d66ddf5f60c7a5c65" + dependencies: + ansi-styles "^3.2.1" + escape-string-regexp "^1.0.5" + supports-color "^5.3.0" + + chokidar-cli@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/chokidar-cli/-/chokidar-cli-1.2.0.tgz#8e7f58442273182018be1868e53c22af65a21948" + dependencies: + anymatch "^1.1.0" + bluebird "^2.9.24" + chokidar "^1.0.1" + lodash "^3.7.0" + shell-quote "^1.4.3" + yargs "^3.7.2" + + chokidar@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + + chokidar@^1.0.1: + version "1.7.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + + chokidar@^2.0.0, chokidar@^2.0.2: + version "2.0.3" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-2.0.3.tgz#dcbd4f6cbb2a55b4799ba8a840ac527e5f4b1176" + dependencies: + anymatch "^2.0.0" + async-each "^1.0.0" + braces "^2.3.0" + glob-parent "^3.1.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^4.0.0" + normalize-path "^2.1.1" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + upath "^1.0.0" + optionalDependencies: + fsevents "^1.1.2" + + chownr@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" + + cipher-base@^1.0.0, cipher-base@^1.0.1, cipher-base@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/cipher-base/-/cipher-base-1.0.4.tgz#8760e4ecc272f4c363532f926d874aae2c1397de" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + + clap@^1.0.9: + version "1.2.3" + resolved "https://registry.yarnpkg.com/clap/-/clap-1.2.3.tgz#4f36745b32008492557f46412d66d50cb99bce51" + dependencies: + chalk "^1.1.3" + + class-utils@^0.3.5: + version "0.3.6" + resolved "https://registry.yarnpkg.com/class-utils/-/class-utils-0.3.6.tgz#f93369ae8b9a7ce02fd41faad0ca83033190c463" + dependencies: + arr-union "^3.1.0" + define-property "^0.2.5" + isobject "^3.0.0" + static-extend "^0.1.1" + + clean-css@4.1.x: + version "4.1.11" + resolved "https://registry.yarnpkg.com/clean-css/-/clean-css-4.1.11.tgz#2ecdf145aba38f54740f26cefd0ff3e03e125d6a" + dependencies: + source-map "0.5.x" + + clean-webpack-plugin@^0.1.17: + version "0.1.19" + resolved "https://registry.yarnpkg.com/clean-webpack-plugin/-/clean-webpack-plugin-0.1.19.tgz#ceda8bb96b00fe168e9b080272960d20fdcadd6d" + dependencies: + rimraf "^2.6.1" + + cliui@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-2.1.0.tgz#4b475760ff80264c762c3a1719032e91c7fea0d1" + dependencies: + center-align "^0.1.1" + right-align "^0.1.1" + wordwrap "0.0.2" + + cliui@^3.0.3, cliui@^3.2.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-3.2.0.tgz#120601537a916d29940f934da3b48d585a39213d" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + wrap-ansi "^2.0.0" + + cliui@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cliui/-/cliui-4.0.0.tgz#743d4650e05f36d1ed2575b59638d87322bfbbcc" + dependencies: + string-width "^2.1.1" + strip-ansi "^4.0.0" + wrap-ansi "^2.0.0" + + clone@^1.0.2: + version "1.0.4" + resolved "https://registry.yarnpkg.com/clone/-/clone-1.0.4.tgz#da309cc263df15994c688ca902179ca3c7cd7c7e" + + co@^4.6.0: + version "4.6.0" + resolved "https://registry.yarnpkg.com/co/-/co-4.6.0.tgz#6ea6bdf3d853ae54ccb8e47bfa0bf3f9031fb184" + + coa@~1.0.1: + version "1.0.4" + resolved "https://registry.yarnpkg.com/coa/-/coa-1.0.4.tgz#a9ef153660d6a86a8bdec0289a5c684d217432fd" + dependencies: + q "^1.1.2" + + code-point-at@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/code-point-at/-/code-point-at-1.1.0.tgz#0d070b4d043a5bea33a2f1a40e2edb3d9a4ccf77" + + collection-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/collection-visit/-/collection-visit-1.0.0.tgz#4bc0373c164bc3291b4d368c829cf1a80a59dca0" + dependencies: + map-visit "^1.0.0" + object-visit "^1.0.0" + + color-convert@^1.3.0, color-convert@^1.9.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-1.9.1.tgz#c1261107aeb2f294ebffec9ed9ecad529a6097ed" + dependencies: + color-name "^1.1.1" + + color-convert@~0.5.0: + version "0.5.3" + resolved "https://registry.yarnpkg.com/color-convert/-/color-convert-0.5.3.tgz#bdb6c69ce660fadffe0b0007cc447e1b9f7282bd" + + color-name@^1.0.0, color-name@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/color-name/-/color-name-1.1.3.tgz#a7d0558bd89c42f795dd42328f740831ca53bc25" + + color-string@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/color-string/-/color-string-0.3.0.tgz#27d46fb67025c5c2fa25993bfbf579e47841b991" + dependencies: + color-name "^1.0.0" + + color@^0.11.0: + version "0.11.4" + resolved "https://registry.yarnpkg.com/color/-/color-0.11.4.tgz#6d7b5c74fb65e841cd48792ad1ed5e07b904d764" + dependencies: + clone "^1.0.2" + color-convert "^1.3.0" + color-string "^0.3.0" + + colormin@^1.0.5: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colormin/-/colormin-1.1.2.tgz#ea2f7420a72b96881a38aae59ec124a6f7298133" + dependencies: + color "^0.11.0" + css-color-names "0.0.4" + has "^1.0.1" + + colors@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" + + combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" + dependencies: + delayed-stream "~1.0.0" + + commander@2.11.0: + version "2.11.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" + + commander@2.15.x, commander@^2.9.0, commander@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + + commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + + commondir@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" + + component-emitter@^1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/component-emitter/-/component-emitter-1.2.1.tgz#137918d6d78283f7df7a6b7c5a63e140e69425e6" + + compressible@~2.0.13: + version "2.0.13" + resolved "https://registry.yarnpkg.com/compressible/-/compressible-2.0.13.tgz#0d1020ab924b2fdb4d6279875c7d6daba6baa7a9" + dependencies: + mime-db ">= 1.33.0 < 2" + + compression@^1.5.2: + version "1.7.2" + resolved "http://registry.npmjs.org/compression/-/compression-1.7.2.tgz#aaffbcd6aaf854b44ebb280353d5ad1651f59a69" + dependencies: + accepts "~1.3.4" + bytes "3.0.0" + compressible "~2.0.13" + debug "2.6.9" + on-headers "~1.0.1" + safe-buffer "5.1.1" + vary "~1.1.2" + + concat-map@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/concat-map/-/concat-map-0.0.1.tgz#d8a96bd77fd68df7793a73036a3ba0d5405d477b" + + concat-stream@^1.5.0: + version "1.6.2" + resolved "https://registry.yarnpkg.com/concat-stream/-/concat-stream-1.6.2.tgz#904bdf194cd3122fc675c77fc4ac3d4ff0fd1a34" + dependencies: + buffer-from "^1.0.0" + inherits "^2.0.3" + readable-stream "^2.2.2" + typedarray "^0.0.6" + + connect-history-api-fallback@^1.3.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/connect-history-api-fallback/-/connect-history-api-fallback-1.5.0.tgz#b06873934bc5e344fef611a196a6faae0aee015a" + + console-browserify@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-browserify/-/console-browserify-1.1.0.tgz#f0241c45730a9fc6323b206dbf38edc741d0bb10" + dependencies: + date-now "^0.1.4" + + console-control-strings@^1.0.0, console-control-strings@~1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/console-control-strings/-/console-control-strings-1.1.0.tgz#3d7cf4464db6446ea644bf4b39507f9851008e8e" + + constants-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/constants-browserify/-/constants-browserify-1.0.0.tgz#c20b96d8c617748aaf1c16021760cd27fcb8cb75" + + content-disposition@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/content-disposition/-/content-disposition-0.5.2.tgz#0cf68bb9ddf5f2be7961c3a85178cb85dba78cb4" + + content-type@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/content-type/-/content-type-1.0.4.tgz#e138cc75e040c727b1966fe5e5f8c9aee256fe3b" + + convert-source-map@^0.3.3: + version "0.3.5" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-0.3.5.tgz#f1d802950af7dd2631a1febe0596550c86ab3190" + + convert-source-map@^1.5.0, convert-source-map@^1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/convert-source-map/-/convert-source-map-1.5.1.tgz#b8278097b9bc229365de5c62cf5fcaed8b5599e5" + + cookie-signature@1.0.6: + version "1.0.6" + resolved "https://registry.yarnpkg.com/cookie-signature/-/cookie-signature-1.0.6.tgz#e303a882b342cc3ee8ca513a79999734dab3ae2c" + + cookie@0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/cookie/-/cookie-0.3.1.tgz#e7e0a1f9ef43b4c8ba925c5c5a96e806d16873bb" + + copy-concurrently@^1.0.0: + version "1.0.5" + resolved "https://registry.yarnpkg.com/copy-concurrently/-/copy-concurrently-1.0.5.tgz#92297398cae34937fcafd6ec8139c18051f0b5e0" + dependencies: + aproba "^1.1.1" + fs-write-stream-atomic "^1.0.8" + iferr "^0.1.5" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.0" + + copy-descriptor@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/copy-descriptor/-/copy-descriptor-0.1.1.tgz#676f6eb3c39997c2ee1ac3a924fd6124748f578d" + + copy-webpack-plugin@^4.2.3: + version "4.5.1" + resolved "https://registry.yarnpkg.com/copy-webpack-plugin/-/copy-webpack-plugin-4.5.1.tgz#fc4f68f4add837cc5e13d111b20715793225d29c" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + globby "^7.1.1" + is-glob "^4.0.0" + loader-utils "^1.1.0" + minimatch "^3.0.4" + p-limit "^1.0.0" + serialize-javascript "^1.4.0" + + core-js@^2.4.0, core-js@^2.5.0: + version "2.5.5" + resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" + + core-util-is@1.0.2, core-util-is@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" + + cosmiconfig@^2.1.0, cosmiconfig@^2.1.1: + version "2.2.2" + resolved "https://registry.yarnpkg.com/cosmiconfig/-/cosmiconfig-2.2.2.tgz#6173cebd56fac042c1f4390edf7af6c07c7cb892" + dependencies: + is-directory "^0.3.1" + js-yaml "^3.4.3" + minimist "^1.2.0" + object-assign "^4.1.0" + os-homedir "^1.0.1" + parse-json "^2.2.0" + require-from-string "^1.1.0" + + create-ecdh@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/create-ecdh/-/create-ecdh-4.0.1.tgz#44223dfed533193ba5ba54e0df5709b89acf1f82" + dependencies: + bn.js "^4.1.0" + elliptic "^6.0.0" + + create-hash@^1.1.0, create-hash@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/create-hash/-/create-hash-1.2.0.tgz#889078af11a63756bcfb59bd221996be3a9ef196" + dependencies: + cipher-base "^1.0.1" + inherits "^2.0.1" + md5.js "^1.3.4" + ripemd160 "^2.0.1" + sha.js "^2.4.0" + + create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: + version "1.1.7" + resolved "https://registry.yarnpkg.com/create-hmac/-/create-hmac-1.1.7.tgz#69170c78b3ab957147b2b8b04572e47ead2243ff" + dependencies: + cipher-base "^1.0.3" + create-hash "^1.1.0" + inherits "^2.0.1" + ripemd160 "^2.0.0" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + + cross-spawn@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.0.tgz#8254774ab4786b8c5b3cf4dfba66ce563932c252" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + + cross-spawn@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + + cross-spawn@^5.0.1: + version "5.1.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-5.1.0.tgz#e8bd0efee58fcff6f8f94510a0a554bbfa235449" + dependencies: + lru-cache "^4.0.1" + shebang-command "^1.2.0" + which "^1.2.9" + + cryptiles@2.x.x: + version "2.0.5" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" + dependencies: + boom "2.x.x" + + cryptiles@3.x.x: + version "3.1.2" + resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-3.1.2.tgz#a89fbb220f5ce25ec56e8c4aa8a4fd7b5b0d29fe" + dependencies: + boom "5.x.x" + + crypto-browserify@^3.11.0: + version "3.12.0" + resolved "https://registry.yarnpkg.com/crypto-browserify/-/crypto-browserify-3.12.0.tgz#396cf9f3137f03e4b8e532c58f698254e00f80ec" + dependencies: + browserify-cipher "^1.0.0" + browserify-sign "^4.0.0" + create-ecdh "^4.0.0" + create-hash "^1.1.0" + create-hmac "^1.1.0" + diffie-hellman "^5.0.0" + inherits "^2.0.1" + pbkdf2 "^3.0.3" + public-encrypt "^4.0.0" + randombytes "^2.0.0" + randomfill "^1.0.3" + + css-color-names@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/css-color-names/-/css-color-names-0.0.4.tgz#808adc2e79cf84738069b646cb20ec27beb629e0" + + css-loader@^0.28.7: + version "0.28.11" + resolved "https://registry.yarnpkg.com/css-loader/-/css-loader-0.28.11.tgz#c3f9864a700be2711bb5a2462b2389b1a392dab7" + dependencies: + babel-code-frame "^6.26.0" + css-selector-tokenizer "^0.7.0" + cssnano "^3.10.0" + icss-utils "^2.1.0" + loader-utils "^1.0.2" + lodash.camelcase "^4.3.0" + object-assign "^4.1.1" + postcss "^5.0.6" + postcss-modules-extract-imports "^1.2.0" + postcss-modules-local-by-default "^1.2.0" + postcss-modules-scope "^1.1.0" + postcss-modules-values "^1.3.0" + postcss-value-parser "^3.3.0" + source-list-map "^2.0.0" + + css-select@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/css-select/-/css-select-1.2.0.tgz#2b3a110539c5355f1cd8d314623e870b121ec858" + dependencies: + boolbase "~1.0.0" + css-what "2.1" + domutils "1.5.1" + nth-check "~1.0.1" + + css-selector-tokenizer@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/css-selector-tokenizer/-/css-selector-tokenizer-0.7.0.tgz#e6988474ae8c953477bf5e7efecfceccd9cf4c86" + dependencies: + cssesc "^0.1.0" + fastparse "^1.1.1" + regexpu-core "^1.0.0" + + css-what@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.0.tgz#9467d032c38cfaefb9f2d79501253062f87fa1bd" + + css@^2.0.0: + version "2.2.1" + resolved "https://registry.yarnpkg.com/css/-/css-2.2.1.tgz#73a4c81de85db664d4ee674f7d47085e3b2d55dc" + dependencies: + inherits "^2.0.1" + source-map "^0.1.38" + source-map-resolve "^0.3.0" + urix "^0.1.0" + + cssesc@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/cssesc/-/cssesc-0.1.0.tgz#c814903e45623371a0477b40109aaafbeeaddbb4" + + cssnano@^3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/cssnano/-/cssnano-3.10.0.tgz#4f38f6cea2b9b17fa01490f23f1dc68ea65c1c38" + dependencies: + autoprefixer "^6.3.1" + decamelize "^1.1.2" + defined "^1.0.0" + has "^1.0.1" + object-assign "^4.0.1" + postcss "^5.0.14" + postcss-calc "^5.2.0" + postcss-colormin "^2.1.8" + postcss-convert-values "^2.3.4" + postcss-discard-comments "^2.0.4" + postcss-discard-duplicates "^2.0.1" + postcss-discard-empty "^2.0.1" + postcss-discard-overridden "^0.1.1" + postcss-discard-unused "^2.2.1" + postcss-filter-plugins "^2.0.0" + postcss-merge-idents "^2.1.5" + postcss-merge-longhand "^2.0.1" + postcss-merge-rules "^2.0.3" + postcss-minify-font-values "^1.0.2" + postcss-minify-gradients "^1.0.1" + postcss-minify-params "^1.0.4" + postcss-minify-selectors "^2.0.4" + postcss-normalize-charset "^1.1.0" + postcss-normalize-url "^3.0.7" + postcss-ordered-values "^2.1.0" + postcss-reduce-idents "^2.2.2" + postcss-reduce-initial "^1.0.0" + postcss-reduce-transforms "^1.0.3" + postcss-svgo "^2.1.1" + postcss-unique-selectors "^2.0.2" + postcss-value-parser "^3.2.3" + postcss-zindex "^2.0.1" + + csso@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/csso/-/csso-2.3.2.tgz#ddd52c587033f49e94b71fc55569f252e8ff5f85" + dependencies: + clap "^1.0.9" + source-map "^0.5.3" + + currently-unhandled@^0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/currently-unhandled/-/currently-unhandled-0.4.1.tgz#988df33feab191ef799a61369dd76c17adf957ea" + dependencies: + array-find-index "^1.0.1" + + cyclist@~0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/cyclist/-/cyclist-0.2.2.tgz#1b33792e11e914a2fd6d6ed6447464444e5fa640" + + d@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/d/-/d-1.0.0.tgz#754bb5bfe55451da69a58b94d45f4c5b0462d58f" + dependencies: + es5-ext "^0.10.9" + + dashdash@^1.12.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/dashdash/-/dashdash-1.14.1.tgz#853cfa0f7cbe2fed5de20326b8dd581035f6e2f0" + dependencies: + assert-plus "^1.0.0" + + date-now@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" + + debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: + version "2.6.9" + resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" + dependencies: + ms "2.0.0" + + debug@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" + dependencies: + ms "2.0.0" + + decamelize@^1.0.0, decamelize@^1.1.1, decamelize@^1.1.2: + version "1.2.0" + resolved "https://registry.yarnpkg.com/decamelize/-/decamelize-1.2.0.tgz#f6534d15148269b20352e7bee26f501f9a191290" + + decode-uri-component@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/decode-uri-component/-/decode-uri-component-0.2.0.tgz#eb3913333458775cb84cd1a1fae062106bb87545" + + deep-equal@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/deep-equal/-/deep-equal-1.0.1.tgz#f5d260292b660e084eff4cdbc9f08ad3247448b5" + + deep-extend@~0.4.0: + version "0.4.2" + resolved "https://registry.yarnpkg.com/deep-extend/-/deep-extend-0.4.2.tgz#48b699c27e334bf89f10892be432f6e4c7d34a7f" + + define-properties@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/define-properties/-/define-properties-1.1.2.tgz#83a73f2fea569898fb737193c8f873caf6d45c94" + dependencies: + foreach "^2.0.5" + object-keys "^1.0.8" + + define-property@^0.2.5: + version "0.2.5" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-0.2.5.tgz#c35b1ef918ec3c990f9a5bc57be04aacec5c8116" + dependencies: + is-descriptor "^0.1.0" + + define-property@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-1.0.0.tgz#769ebaaf3f4a63aad3af9e8d304c9bbe79bfb0e6" + dependencies: + is-descriptor "^1.0.0" + + define-property@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/define-property/-/define-property-2.0.2.tgz#d459689e8d654ba77e02a817f8710d702cb16e9d" + dependencies: + is-descriptor "^1.0.2" + isobject "^3.0.1" + + defined@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/defined/-/defined-1.0.0.tgz#c98d9bcef75674188e110969151199e39b1fa693" + + del@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/del/-/del-3.0.0.tgz#53ecf699ffcbcb39637691ab13baf160819766e5" + dependencies: + globby "^6.1.0" + is-path-cwd "^1.0.0" + is-path-in-cwd "^1.0.0" + p-map "^1.1.1" + pify "^3.0.0" + rimraf "^2.2.8" + + delayed-stream@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delayed-stream/-/delayed-stream-1.0.0.tgz#df3ae199acadfb7d440aaae0b29e2272b24ec619" + + delegates@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" + + depd@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" + + depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + + des.js@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" + dependencies: + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + + destroy@~1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/destroy/-/destroy-1.0.4.tgz#978857442c44749e4206613e37946205826abd80" + + detect-indent@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/detect-indent/-/detect-indent-4.0.0.tgz#f76d064352cdf43a1cb6ce619c4ee3a9475de208" + dependencies: + repeating "^2.0.0" + + detect-libc@^1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/detect-libc/-/detect-libc-1.0.3.tgz#fa137c4bd698edf55cd5cd02ac559f91a4c4ba9b" + + detect-node@^2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/detect-node/-/detect-node-2.0.3.tgz#a2033c09cc8e158d37748fbde7507832bd6ce127" + + diffie-hellman@^5.0.0: + version "5.0.3" + resolved "https://registry.yarnpkg.com/diffie-hellman/-/diffie-hellman-5.0.3.tgz#40e8ee98f55a2149607146921c63e1ae5f3d2875" + dependencies: + bn.js "^4.1.0" + miller-rabin "^4.0.0" + randombytes "^2.0.0" + + dir-glob@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/dir-glob/-/dir-glob-2.0.0.tgz#0b205d2b6aef98238ca286598a8204d29d0a0034" + dependencies: + arrify "^1.0.1" + path-type "^3.0.0" + + dns-equal@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d" + + dns-packet@^1.3.1: + version "1.3.1" + resolved "https://registry.yarnpkg.com/dns-packet/-/dns-packet-1.3.1.tgz#12aa426981075be500b910eedcd0b47dd7deda5a" + dependencies: + ip "^1.1.0" + safe-buffer "^5.0.1" + + dns-txt@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/dns-txt/-/dns-txt-2.0.2.tgz#b91d806f5d27188e4ab3e7d107d881a1cc4642b6" + dependencies: + buffer-indexof "^1.0.0" + + dom-converter@~0.1: + version "0.1.4" + resolved "https://registry.yarnpkg.com/dom-converter/-/dom-converter-0.1.4.tgz#a45ef5727b890c9bffe6d7c876e7b19cb0e17f3b" + dependencies: + utila "~0.3" + + dom-serializer@0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-0.1.0.tgz#073c697546ce0780ce23be4a28e293e40bc30c82" + dependencies: + domelementtype "~1.1.1" + entities "~1.1.1" + + domain-browser@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" + + domelementtype@1: + version "1.3.0" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" + + domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + + domhandler@2.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" + dependencies: + domelementtype "1" + + domutils@1.1: + version "1.1.6" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.1.6.tgz#bddc3de099b9a2efacc51c623f28f416ecc57485" + dependencies: + domelementtype "1" + + domutils@1.5.1: + version "1.5.1" + resolved "https://registry.yarnpkg.com/domutils/-/domutils-1.5.1.tgz#dcd8488a26f563d61079e48c9f7b7e32373682cf" + dependencies: + dom-serializer "0" + domelementtype "1" + + duplexify@^3.4.2, duplexify@^3.5.3: + version "3.5.4" + resolved "https://registry.yarnpkg.com/duplexify/-/duplexify-3.5.4.tgz#4bb46c1796eabebeec4ca9a2e66b808cb7a3d8b4" + dependencies: + end-of-stream "^1.0.0" + inherits "^2.0.1" + readable-stream "^2.0.0" + stream-shift "^1.0.0" + + ecc-jsbn@~0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/ecc-jsbn/-/ecc-jsbn-0.1.1.tgz#0fc73a9ed5f0d53c38193398523ef7e543777505" + dependencies: + jsbn "~0.1.0" + + ee-first@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d" + + electron-to-chromium@^1.2.7, electron-to-chromium@^1.3.30: + version "1.3.42" + resolved "https://registry.yarnpkg.com/electron-to-chromium/-/electron-to-chromium-1.3.42.tgz#95c33bf01d0cc405556aec899fe61fd4d76ea0f9" + + elliptic@^6.0.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/elliptic/-/elliptic-6.4.0.tgz#cac9af8762c85836187003c8dfe193e5e2eae5df" + dependencies: + bn.js "^4.4.0" + brorand "^1.0.1" + hash.js "^1.0.0" + hmac-drbg "^1.0.0" + inherits "^2.0.1" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.0" + + elm-hot-loader@^0.5.4: + version "0.5.4" + resolved "https://registry.yarnpkg.com/elm-hot-loader/-/elm-hot-loader-0.5.4.tgz#5fd9d9058f6efeac2f5fcf83aeef81cf3984312e" + dependencies: + loader-utils "^0.2.12" + + elm-test@^0.18.12: + version "0.18.12" + resolved "https://registry.yarnpkg.com/elm-test/-/elm-test-0.18.12.tgz#8586a056980eb383fd35ad2ef2b74a6ee4c410f7" + dependencies: + binstall "1.2.0" + chalk "2.1.0" + chokidar "1.6.0" + cross-spawn "4.0.0" + find-parent-dir "^0.3.0" + firstline "1.2.1" + fs-extra "0.30.0" + glob "^7.1.1" + lodash "4.13.1" + minimist "^1.2.0" + murmur-hash-js "1.0.0" + node-elm-compiler "4.3.3" + split "^1.0.1" + supports-color "4.2.0" + xmlbuilder "^8.2.2" + optionalDependencies: + fsevents "1.1.2" + + elm-verify-examples@^2.3.1: + version "2.3.1" + resolved "https://registry.yarnpkg.com/elm-verify-examples/-/elm-verify-examples-2.3.1.tgz#39b197d605a2965325ef2805bcdeb6682bb0c7ff" + dependencies: + chalk "^2.3.0" + elm-test "^0.18.12" + fs-extra "^5.0.0" + mkdirp "^0.5.1" + rimraf "^2.6.2" + yargs "^10.0.3" + + elm-webpack-loader@^4.4.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/elm-webpack-loader/-/elm-webpack-loader-4.5.0.tgz#b39988ac7c70db3c0922daf695c97d1d6bdb1e41" + dependencies: + elm "^0.18.0" + glob "^7.1.1" + loader-utils "^1.0.2" + node-elm-compiler "^4.5.0" + yargs "^6.5.0" + + elm@^0.18.0: + version "0.18.0" + resolved "https://registry.yarnpkg.com/elm/-/elm-0.18.0.tgz#919b8309cd939dfe2ff9d252d961b6c89509b970" + dependencies: + mkdirp "0.5.1" + promise "7.1.1" + request "2.74.0" + tar "2.2.1" + + emojis-list@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/emojis-list/-/emojis-list-2.1.0.tgz#4daa4d9db00f9819880c79fa457ae5b09a1fd389" + + encodeurl@~1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/encodeurl/-/encodeurl-1.0.2.tgz#ad3ff4c86ec2d029322f5a02c3a9a606c95b3f59" + + end-of-stream@^1.0.0, end-of-stream@^1.1.0: + version "1.4.1" + resolved "https://registry.yarnpkg.com/end-of-stream/-/end-of-stream-1.4.1.tgz#ed29634d19baba463b6ce6b80a37213eab71ec43" + dependencies: + once "^1.4.0" + + enhanced-resolve@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/enhanced-resolve/-/enhanced-resolve-3.4.1.tgz#0421e339fd71419b3da13d129b3979040230476e" + dependencies: + graceful-fs "^4.1.2" + memory-fs "^0.4.0" + object-assign "^4.0.1" + tapable "^0.2.7" + + entities@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" + + errno@^0.1.3, errno@~0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" + dependencies: + prr "~1.0.1" + + error-ex@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/error-ex/-/error-ex-1.3.1.tgz#f855a86ce61adc4e8621c3cda21e7a7612c3a8dc" + dependencies: + is-arrayish "^0.2.1" + + es-abstract@^1.7.0: + version "1.11.0" + resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.11.0.tgz#cce87d518f0496893b1a30cd8461835535480681" + dependencies: + es-to-primitive "^1.1.1" + function-bind "^1.1.1" + has "^1.0.1" + is-callable "^1.1.3" + is-regex "^1.0.4" + + es-to-primitive@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/es-to-primitive/-/es-to-primitive-1.1.1.tgz#45355248a88979034b6792e19bb81f2b7975dd0d" + dependencies: + is-callable "^1.1.1" + is-date-object "^1.0.1" + is-symbol "^1.0.1" + + es5-ext@^0.10.14, es5-ext@^0.10.35, es5-ext@^0.10.9, es5-ext@~0.10.14: + version "0.10.42" + resolved "https://registry.yarnpkg.com/es5-ext/-/es5-ext-0.10.42.tgz#8c07dd33af04d5dcd1310b5cef13bea63a89ba8d" + dependencies: + es6-iterator "~2.0.3" + es6-symbol "~3.1.1" + next-tick "1" + + es6-iterator@^2.0.1, es6-iterator@~2.0.1, es6-iterator@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/es6-iterator/-/es6-iterator-2.0.3.tgz#a7de889141a05a94b0854403b2d0a0fbfa98f3b7" + dependencies: + d "1" + es5-ext "^0.10.35" + es6-symbol "^3.1.1" + + es6-map@^0.1.3: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-map/-/es6-map-0.1.5.tgz#9136e0503dcc06a301690f0bb14ff4e364e949f0" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-set "~0.1.5" + es6-symbol "~3.1.1" + event-emitter "~0.3.5" + + es6-set@~0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/es6-set/-/es6-set-0.1.5.tgz#d2b3ec5d4d800ced818db538d28974db0a73ccb1" + dependencies: + d "1" + es5-ext "~0.10.14" + es6-iterator "~2.0.1" + es6-symbol "3.1.1" + event-emitter "~0.3.5" + + es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: + version "3.1.1" + resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" + dependencies: + d "1" + es5-ext "~0.10.14" + + es6-weak-map@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/es6-weak-map/-/es6-weak-map-2.0.2.tgz#5e3ab32251ffd1538a1f8e5ffa1357772f92d96f" + dependencies: + d "1" + es5-ext "^0.10.14" + es6-iterator "^2.0.1" + es6-symbol "^3.1.1" + + escape-html@~1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/escape-html/-/escape-html-1.0.3.tgz#0258eae4d3d0c0974de1c169188ef0051d1d1988" + + escape-string-regexp@^1.0.2, escape-string-regexp@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz#1b61c0562190a8dff6ae3bb2cf0200ca130b86d4" + + escope@^3.6.0: + version "3.6.0" + resolved "https://registry.yarnpkg.com/escope/-/escope-3.6.0.tgz#e01975e812781a163a6dadfdd80398dc64c889c3" + dependencies: + es6-map "^0.1.3" + es6-weak-map "^2.0.1" + esrecurse "^4.1.0" + estraverse "^4.1.1" + + esprima@^2.6.0: + version "2.7.3" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-2.7.3.tgz#96e3b70d5779f6ad49cd032673d1c312767ba581" + + esprima@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/esprima/-/esprima-4.0.0.tgz#4499eddcd1110e0b218bacf2fa7f7f59f55ca804" + + esrecurse@^4.1.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/esrecurse/-/esrecurse-4.2.1.tgz#007a3b9fdbc2b3bb87e4879ea19c92fdbd3942cf" + dependencies: + estraverse "^4.1.0" + + estraverse@^4.1.0, estraverse@^4.1.1: + version "4.2.0" + resolved "https://registry.yarnpkg.com/estraverse/-/estraverse-4.2.0.tgz#0dee3fed31fcd469618ce7342099fc1afa0bdb13" + + esutils@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/esutils/-/esutils-2.0.2.tgz#0abf4f1caa5bcb1f7a9d8acc6dea4faaa04bac9b" + + etag@~1.8.1: + version "1.8.1" + resolved "https://registry.yarnpkg.com/etag/-/etag-1.8.1.tgz#41ae2eeb65efa62268aebfea83ac7d79299b0887" + + event-emitter@~0.3.5: + version "0.3.5" + resolved "https://registry.yarnpkg.com/event-emitter/-/event-emitter-0.3.5.tgz#df8c69eef1647923c7157b9ce83840610b02cc39" + dependencies: + d "1" + es5-ext "~0.10.14" + + eventemitter3@1.x.x: + version "1.2.0" + resolved "https://registry.yarnpkg.com/eventemitter3/-/eventemitter3-1.2.0.tgz#1c86991d816ad1e504750e73874224ecf3bec508" + + events@^1.0.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/events/-/events-1.1.1.tgz#9ebdb7635ad099c70dcc4c2a1f5004288e8bd924" + + eventsource@0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/eventsource/-/eventsource-0.1.6.tgz#0acede849ed7dd1ccc32c811bb11b944d4f29232" + dependencies: + original ">=0.0.5" + + evp_bytestokey@^1.0.0, evp_bytestokey@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz#7fcbdb198dc71959432efe13842684e0525acb02" + dependencies: + md5.js "^1.3.4" + safe-buffer "^5.1.1" + + execa@^0.7.0: + version "0.7.0" + resolved "https://registry.yarnpkg.com/execa/-/execa-0.7.0.tgz#944becd34cc41ee32a63a9faf27ad5a65fc59777" + dependencies: + cross-spawn "^5.0.1" + get-stream "^3.0.0" + is-stream "^1.1.0" + npm-run-path "^2.0.0" + p-finally "^1.0.0" + signal-exit "^3.0.0" + strip-eof "^1.0.0" + + expand-brackets@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-0.1.5.tgz#df07284e342a807cd733ac5af72411e581d1177b" + dependencies: + is-posix-bracket "^0.1.0" + + expand-brackets@^2.1.4: + version "2.1.4" + resolved "https://registry.yarnpkg.com/expand-brackets/-/expand-brackets-2.1.4.tgz#b77735e315ce30f6b6eff0f83b04151a22449622" + dependencies: + debug "^2.3.3" + define-property "^0.2.5" + extend-shallow "^2.0.1" + posix-character-classes "^0.1.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + + expand-range@^1.8.1: + version "1.8.2" + resolved "https://registry.yarnpkg.com/expand-range/-/expand-range-1.8.2.tgz#a299effd335fe2721ebae8e257ec79644fc85337" + dependencies: + fill-range "^2.1.0" + + express@^4.16.2: + version "4.16.3" + resolved "https://registry.yarnpkg.com/express/-/express-4.16.3.tgz#6af8a502350db3246ecc4becf6b5a34d22f7ed53" + dependencies: + accepts "~1.3.5" + array-flatten "1.1.1" + body-parser "1.18.2" + content-disposition "0.5.2" + content-type "~1.0.4" + cookie "0.3.1" + cookie-signature "1.0.6" + debug "2.6.9" + depd "~1.1.2" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + finalhandler "1.1.1" + fresh "0.5.2" + merge-descriptors "1.0.1" + methods "~1.1.2" + on-finished "~2.3.0" + parseurl "~1.3.2" + path-to-regexp "0.1.7" + proxy-addr "~2.0.3" + qs "6.5.1" + range-parser "~1.2.0" + safe-buffer "5.1.1" + send "0.16.2" + serve-static "1.13.2" + setprototypeof "1.1.0" + statuses "~1.4.0" + type-is "~1.6.16" + utils-merge "1.0.1" + vary "~1.1.2" + + extend-shallow@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-2.0.1.tgz#51af7d614ad9a9f610ea1bafbb989d6b1c56890f" + dependencies: + is-extendable "^0.1.0" + + extend-shallow@^3.0.0, extend-shallow@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extend-shallow/-/extend-shallow-3.0.2.tgz#26a71aaf073b39fb2127172746131c2704028db8" + dependencies: + assign-symbols "^1.0.0" + is-extendable "^1.0.1" + + extend@~3.0.0, extend@~3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.1.tgz#a755ea7bc1adfcc5a31ce7e762dbaadc5e636444" + + extglob@^0.3.1: + version "0.3.2" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-0.3.2.tgz#2e18ff3d2f49ab2765cec9023f011daa8d8349a1" + dependencies: + is-extglob "^1.0.0" + + extglob@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/extglob/-/extglob-2.0.4.tgz#ad00fe4dc612a9232e8718711dc5cb5ab0285543" + dependencies: + array-unique "^0.3.2" + define-property "^1.0.0" + expand-brackets "^2.1.4" + extend-shallow "^2.0.1" + fragment-cache "^0.2.1" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + + extract-text-webpack-plugin@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/extract-text-webpack-plugin/-/extract-text-webpack-plugin-3.0.2.tgz#5f043eaa02f9750a9258b78c0a6e0dc1408fb2f7" + dependencies: + async "^2.4.1" + loader-utils "^1.1.0" + schema-utils "^0.3.0" + webpack-sources "^1.0.1" + + extsprintf@1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" + + extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + + fast-deep-equal@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" + + fast-json-stable-stringify@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz#d5142c0caee6b1189f87d3a76111064f86c8bbf2" + + fastparse@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/fastparse/-/fastparse-1.1.1.tgz#d1e2643b38a94d7583b479060e6c4affc94071f8" + + faye-websocket@^0.10.0: + version "0.10.0" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.10.0.tgz#4e492f8d04dfb6f89003507f6edbf2d501e7c6f4" + dependencies: + websocket-driver ">=0.5.1" + + faye-websocket@~0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/faye-websocket/-/faye-websocket-0.11.1.tgz#f0efe18c4f56e4f40afc7e06c719fd5ee6188f38" + dependencies: + websocket-driver ">=0.5.1" + + file-loader@^1.1.5: + version "1.1.11" + resolved "https://registry.yarnpkg.com/file-loader/-/file-loader-1.1.11.tgz#6fe886449b0f2a936e43cabaac0cdbfb369506f8" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.4.5" + + filename-regex@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/filename-regex/-/filename-regex-2.0.1.tgz#c1c4b9bee3e09725ddb106b75c1e301fe2f18b26" + + fill-range@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-2.2.3.tgz#50b77dfd7e469bc7492470963699fe7a8485a723" + dependencies: + is-number "^2.1.0" + isobject "^2.0.0" + randomatic "^1.1.3" + repeat-element "^1.1.2" + repeat-string "^1.5.2" + + fill-range@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/fill-range/-/fill-range-4.0.0.tgz#d544811d428f98eb06a63dc402d2403c328c38f7" + dependencies: + extend-shallow "^2.0.1" + is-number "^3.0.0" + repeat-string "^1.6.1" + to-regex-range "^2.1.0" + + finalhandler@1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/finalhandler/-/finalhandler-1.1.1.tgz#eebf4ed840079c83f4249038c9d703008301b105" + dependencies: + debug "2.6.9" + encodeurl "~1.0.2" + escape-html "~1.0.3" + on-finished "~2.3.0" + parseurl "~1.3.2" + statuses "~1.4.0" + unpipe "~1.0.0" + + find-cache-dir@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/find-cache-dir/-/find-cache-dir-1.0.0.tgz#9288e3e9e3cc3748717d39eade17cf71fc30ee6f" + dependencies: + commondir "^1.0.1" + make-dir "^1.0.0" + pkg-dir "^2.0.0" + + find-elm-dependencies@1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/find-elm-dependencies/-/find-elm-dependencies-1.0.2.tgz#737adc0ce34dfde0c3bf85f568658555329e4953" + dependencies: + firstline "1.2.0" + lodash "4.14.2" + + find-parent-dir@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/find-parent-dir/-/find-parent-dir-0.3.0.tgz#33c44b429ab2b2f0646299c5f9f718f376ff8d54" + + find-up@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-1.1.2.tgz#6b2e9822b1a2ce0a60ab64d610eccad53cb24d0f" + dependencies: + path-exists "^2.0.0" + pinkie-promise "^2.0.0" + + find-up@^2.0.0, find-up@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/find-up/-/find-up-2.1.0.tgz#45d1b7e506c717ddd482775a2b77920a3c0c57a7" + dependencies: + locate-path "^2.0.0" + + firstline@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/firstline/-/firstline-1.2.0.tgz#c9f4886e7f7fbf0afc12d71941dce06b192aea05" + + firstline@1.2.1: + version "1.2.1" + resolved "https://registry.yarnpkg.com/firstline/-/firstline-1.2.1.tgz#b88673c42009f8821fac2926e99720acee924fae" + + flatten@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/flatten/-/flatten-1.0.2.tgz#dae46a9d78fbe25292258cc1e780a41d95c03782" + + flush-write-stream@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/flush-write-stream/-/flush-write-stream-1.0.3.tgz#c5d586ef38af6097650b49bc41b55fabb19f35bd" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.4" + + for-in@^1.0.1, for-in@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/for-in/-/for-in-1.0.2.tgz#81068d295a8142ec0ac726c6e2200c30fb6d5e80" + + for-own@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/for-own/-/for-own-0.1.5.tgz#5265c681a4f294dabbf17c9509b6763aa84510ce" + dependencies: + for-in "^1.0.1" + + foreach@^2.0.5: + version "2.0.5" + resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" + + forever-agent@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" + + form-data@~1.0.0-rc4: + version "1.0.1" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-1.0.1.tgz#ae315db9a4907fa065502304a66d7733475ee37c" + dependencies: + async "^2.0.1" + combined-stream "^1.0.5" + mime-types "^2.1.11" + + form-data@~2.1.1: + version "2.1.4" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.1.4.tgz#33c183acf193276ecaa98143a69e94bfee1750d1" + dependencies: + asynckit "^0.4.0" + combined-stream "^1.0.5" + mime-types "^2.1.12" + + form-data@~2.3.1: + version "2.3.2" + resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.2.tgz#4970498be604c20c005d4f5c23aecd21d6b49099" + dependencies: + asynckit "^0.4.0" + combined-stream "1.0.6" + mime-types "^2.1.12" + + forwarded@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/forwarded/-/forwarded-0.1.2.tgz#98c23dab1175657b8c0573e8ceccd91b0ff18c84" + + fragment-cache@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/fragment-cache/-/fragment-cache-0.2.1.tgz#4290fad27f13e89be7f33799c6bc5a0abfff0d19" + dependencies: + map-cache "^0.2.2" + + fresh@0.5.2: + version "0.5.2" + resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" + + from2@^2.1.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/from2/-/from2-2.3.0.tgz#8bfb5502bde4a4d36cfdeea007fcca21d7e382af" + dependencies: + inherits "^2.0.1" + readable-stream "^2.0.0" + + fs-extra@0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + + fs-extra@^4.0.2: + version "4.0.3" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + + fs-extra@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-5.0.0.tgz#414d0110cdd06705734d055652c5411260c31abd" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^4.0.0" + universalify "^0.1.0" + + fs-write-stream-atomic@^1.0.8: + version "1.0.10" + resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" + dependencies: + graceful-fs "^4.1.2" + iferr "^0.1.5" + imurmurhash "^0.1.4" + readable-stream "1 || 2" + + fs.realpath@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" + + fsevents@1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.36" + + fsevents@^1.0.0, fsevents@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + + fstream-ignore@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" + dependencies: + fstream "^1.0.0" + inherits "2" + minimatch "^3.0.0" + + fstream@^1.0.0, fstream@^1.0.10, fstream@^1.0.2: + version "1.0.11" + resolved "https://registry.yarnpkg.com/fstream/-/fstream-1.0.11.tgz#5c1fb1f117477114f0632a0eb4b71b3cb0fd3171" + dependencies: + graceful-fs "^4.1.2" + inherits "~2.0.0" + mkdirp ">=0.5 0" + rimraf "2" + + function-bind@^1.0.2, function-bind@^1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/function-bind/-/function-bind-1.1.1.tgz#a56899d3ea3c9bab874bb9773b7c5ede92f4895d" + + gauge@~2.7.3: + version "2.7.4" + resolved "https://registry.yarnpkg.com/gauge/-/gauge-2.7.4.tgz#2c03405c7538c39d7eb37b317022e325fb018bf7" + dependencies: + aproba "^1.0.3" + console-control-strings "^1.0.0" + has-unicode "^2.0.0" + object-assign "^4.1.0" + signal-exit "^3.0.0" + string-width "^1.0.1" + strip-ansi "^3.0.1" + wide-align "^1.1.0" + + gaze@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/gaze/-/gaze-1.1.2.tgz#847224677adb8870d679257ed3388fdb61e40105" + dependencies: + globule "^1.0.0" + + generate-function@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/generate-function/-/generate-function-2.0.0.tgz#6858fe7c0969b7d4e9093337647ac79f60dfbe74" + + generate-object-property@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/generate-object-property/-/generate-object-property-1.2.0.tgz#9c0e1c40308ce804f4783618b937fa88f99d50d0" + dependencies: + is-property "^1.0.0" + + get-caller-file@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/get-caller-file/-/get-caller-file-1.0.2.tgz#f702e63127e7e231c160a80c1554acb70d5047e5" + + get-stdin@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/get-stdin/-/get-stdin-4.0.1.tgz#b968c6b0a04384324902e8bf1a5df32579a450fe" + + get-stream@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-3.0.0.tgz#8e943d1358dc37555054ecbe2edb05aa174ede14" + + get-value@^2.0.3, get-value@^2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/get-value/-/get-value-2.0.6.tgz#dc15ca1c672387ca76bd37ac0a395ba2042a2c28" + + getpass@^0.1.1: + version "0.1.7" + resolved "https://registry.yarnpkg.com/getpass/-/getpass-0.1.7.tgz#5eff8e3e684d569ae4cb2b1282604e8ba62149fa" + dependencies: + assert-plus "^1.0.0" + + gh-pages@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/gh-pages/-/gh-pages-1.1.0.tgz#738134d8e35e5323b39892cda28b8904e85f24b2" + dependencies: + async "2.6.0" + base64url "^2.0.0" + commander "2.11.0" + fs-extra "^4.0.2" + globby "^6.1.0" + graceful-fs "4.1.11" + rimraf "^2.6.2" + + glob-base@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/glob-base/-/glob-base-0.3.0.tgz#dbb164f6221b1c0b1ccf82aea328b497df0ea3c4" + dependencies: + glob-parent "^2.0.0" + is-glob "^2.0.0" + + glob-parent@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-2.0.0.tgz#81383d72db054fcccf5336daa902f182f6edbb28" + dependencies: + is-glob "^2.0.0" + + glob-parent@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/glob-parent/-/glob-parent-3.1.0.tgz#9e6af6299d8d3bd2bd40430832bd113df906c5ae" + dependencies: + is-glob "^3.1.0" + path-dirname "^1.0.0" + + glob@^6.0.4: + version "6.0.4" + resolved "https://registry.yarnpkg.com/glob/-/glob-6.0.4.tgz#0f08860f6a155127b2fadd4f9ce24b1aab6e4d22" + dependencies: + inflight "^1.0.4" + inherits "2" + minimatch "2 || 3" + once "^1.3.0" + path-is-absolute "^1.0.0" + + glob@^7.0.0, glob@^7.0.3, glob@^7.0.5, glob@^7.1.1, glob@^7.1.2, glob@~7.1.1: + version "7.1.2" + resolved "https://registry.yarnpkg.com/glob/-/glob-7.1.2.tgz#c19c9df9a028702d678612384a6552404c636d15" + dependencies: + fs.realpath "^1.0.0" + inflight "^1.0.4" + inherits "2" + minimatch "^3.0.4" + once "^1.3.0" + path-is-absolute "^1.0.0" + + globals@^9.18.0: + version "9.18.0" + resolved "https://registry.yarnpkg.com/globals/-/globals-9.18.0.tgz#aa3896b3e69b487f17e31ed2143d69a8e30c2d8a" + + globby@^6.1.0: + version "6.1.0" + resolved "https://registry.yarnpkg.com/globby/-/globby-6.1.0.tgz#f5a6d70e8395e21c858fb0489d64df02424d506c" + dependencies: + array-union "^1.0.1" + glob "^7.0.3" + object-assign "^4.0.1" + pify "^2.0.0" + pinkie-promise "^2.0.0" + + globby@^7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/globby/-/globby-7.1.1.tgz#fb2ccff9401f8600945dfada97440cca972b8680" + dependencies: + array-union "^1.0.1" + dir-glob "^2.0.0" + glob "^7.1.2" + ignore "^3.3.5" + pify "^3.0.0" + slash "^1.0.0" + + globule@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/globule/-/globule-1.2.0.tgz#1dc49c6822dd9e8a2fa00ba2a295006e8664bd09" + dependencies: + glob "~7.1.1" + lodash "~4.17.4" + minimatch "~3.0.2" + + graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: + version "4.1.11" + resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" + + handle-thing@^1.2.5: + version "1.2.5" + resolved "https://registry.yarnpkg.com/handle-thing/-/handle-thing-1.2.5.tgz#fd7aad726bf1a5fd16dfc29b2f7a6601d27139c4" + + har-schema@^1.0.5: + version "1.0.5" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-1.0.5.tgz#d263135f43307c02c602afc8fe95970c0151369e" + + har-schema@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" + + har-validator@~2.0.6: + version "2.0.6" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-2.0.6.tgz#cdcbc08188265ad119b6a5a7c8ab70eecfb5d27d" + dependencies: + chalk "^1.1.1" + commander "^2.9.0" + is-my-json-valid "^2.12.4" + pinkie-promise "^2.0.0" + + har-validator@~4.2.1: + version "4.2.1" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-4.2.1.tgz#33481d0f1bbff600dd203d75812a6a5fba002e2a" + dependencies: + ajv "^4.9.1" + har-schema "^1.0.5" + + har-validator@~5.0.3: + version "5.0.3" + resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.0.3.tgz#ba402c266194f15956ef15e0fcf242993f6a7dfd" + dependencies: + ajv "^5.1.0" + har-schema "^2.0.0" + + has-ansi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-ansi/-/has-ansi-2.0.0.tgz#34f5049ce1ecdf2b0649af3ef24e45ed35416d91" + dependencies: + ansi-regex "^2.0.0" + + has-flag@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-1.0.0.tgz#9d9e793165ce017a00f00418c43f942a7b1d11fa" + + has-flag@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-2.0.0.tgz#e8207af1cc7b30d446cc70b734b5e8be18f88d51" + + has-flag@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/has-flag/-/has-flag-3.0.0.tgz#b5d454dc2199ae225699f3467e5a07f3b955bafd" + + has-unicode@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/has-unicode/-/has-unicode-2.0.1.tgz#e0e6fe6a28cf51138855e086d1691e771de2a8b9" + + has-value@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-0.3.1.tgz#7b1f58bada62ca827ec0a2078025654845995e1f" + dependencies: + get-value "^2.0.3" + has-values "^0.1.4" + isobject "^2.0.0" + + has-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-value/-/has-value-1.0.0.tgz#18b281da585b1c5c51def24c930ed29a0be6b177" + dependencies: + get-value "^2.0.6" + has-values "^1.0.0" + isobject "^3.0.0" + + has-values@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-0.1.4.tgz#6d61de95d91dfca9b9a02089ad384bff8f62b771" + + has-values@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/has-values/-/has-values-1.0.0.tgz#95b0b63fec2146619a6fe57fe75628d5a39efe4f" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + + has@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/has/-/has-1.0.1.tgz#8461733f538b0837c9361e39a9ab9e9704dc2f28" + dependencies: + function-bind "^1.0.2" + + hash-base@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-2.0.2.tgz#66ea1d856db4e8a5470cadf6fce23ae5244ef2e1" + dependencies: + inherits "^2.0.1" + + hash-base@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/hash-base/-/hash-base-3.0.4.tgz#5fc8686847ecd73499403319a6b0a3f3f6ae4918" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + + hash.js@^1.0.0, hash.js@^1.0.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/hash.js/-/hash.js-1.1.3.tgz#340dedbe6290187151c1ea1d777a3448935df846" + dependencies: + inherits "^2.0.3" + minimalistic-assert "^1.0.0" + + hawk@3.1.3, hawk@~3.1.3: + version "3.1.3" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" + dependencies: + boom "2.x.x" + cryptiles "2.x.x" + hoek "2.x.x" + sntp "1.x.x" + + hawk@~6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/hawk/-/hawk-6.0.2.tgz#af4d914eb065f9b5ce4d9d11c1cb2126eecc3038" + dependencies: + boom "4.x.x" + cryptiles "3.x.x" + hoek "4.x.x" + sntp "2.x.x" + + he@1.1.x: + version "1.1.1" + resolved "https://registry.yarnpkg.com/he/-/he-1.1.1.tgz#93410fd21b009735151f8868c2f271f3427e23fd" + + hmac-drbg@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/hmac-drbg/-/hmac-drbg-1.0.1.tgz#d2745701025a6c775a6c545793ed502fc0c649a1" + dependencies: + hash.js "^1.0.3" + minimalistic-assert "^1.0.0" + minimalistic-crypto-utils "^1.0.1" + + hoek@2.x.x: + version "2.16.3" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-2.16.3.tgz#20bb7403d3cea398e91dc4710a8ff1b8274a25ed" + + hoek@4.x.x: + version "4.2.1" + resolved "https://registry.yarnpkg.com/hoek/-/hoek-4.2.1.tgz#9634502aa12c445dd5a7c5734b572bb8738aacbb" + + home-or-tmp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/home-or-tmp/-/home-or-tmp-2.0.0.tgz#e36c3f2d2cae7d746a857e38d18d5f32a7882db8" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.1" + + hosted-git-info@^2.1.4: + version "2.6.0" + resolved "https://registry.yarnpkg.com/hosted-git-info/-/hosted-git-info-2.6.0.tgz#23235b29ab230c576aab0d4f13fc046b0b038222" + + hpack.js@^2.1.6: + version "2.1.6" + resolved "https://registry.yarnpkg.com/hpack.js/-/hpack.js-2.1.6.tgz#87774c0949e513f42e84575b3c45681fade2a0b2" + dependencies: + inherits "^2.0.1" + obuf "^1.0.0" + readable-stream "^2.0.1" + wbuf "^1.1.0" + + html-comment-regex@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.1.tgz#668b93776eaae55ebde8f3ad464b307a4963625e" + + html-entities@^1.2.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/html-entities/-/html-entities-1.2.1.tgz#0df29351f0721163515dfb9e5543e5f6eed5162f" + + html-minifier@^3.2.3: + version "3.5.14" + resolved "https://registry.yarnpkg.com/html-minifier/-/html-minifier-3.5.14.tgz#88653b24b344274e3e3d7052f1541ebea054ac60" + dependencies: + camel-case "3.0.x" + clean-css "4.1.x" + commander "2.15.x" + he "1.1.x" + param-case "2.1.x" + relateurl "0.2.x" + uglify-js "3.3.x" + + html-webpack-plugin@^2.30.1: + version "2.30.1" + resolved "https://registry.yarnpkg.com/html-webpack-plugin/-/html-webpack-plugin-2.30.1.tgz#7f9c421b7ea91ec460f56527d78df484ee7537d5" + dependencies: + bluebird "^3.4.7" + html-minifier "^3.2.3" + loader-utils "^0.2.16" + lodash "^4.17.3" + pretty-error "^2.0.2" + toposort "^1.0.0" + + htmlparser2@~3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-3.3.0.tgz#cc70d05a59f6542e43f0e685c982e14c924a9efe" + dependencies: + domelementtype "1" + domhandler "2.1" + domutils "1.1" + readable-stream "1.0" + + http-deceiver@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" + + http-errors@1.6.2: + version "1.6.2" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" + dependencies: + depd "1.1.1" + inherits "2.0.3" + setprototypeof "1.0.3" + statuses ">= 1.3.1 < 2" + + http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + + http-parser-js@>=0.4.0: + version "0.4.11" + resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" + + http-proxy-middleware@~0.17.4: + version "0.17.4" + resolved "https://registry.yarnpkg.com/http-proxy-middleware/-/http-proxy-middleware-0.17.4.tgz#642e8848851d66f09d4f124912846dbaeb41b833" + dependencies: + http-proxy "^1.16.2" + is-glob "^3.1.0" + lodash "^4.17.2" + micromatch "^2.3.11" + + http-proxy@^1.16.2: + version "1.16.2" + resolved "https://registry.yarnpkg.com/http-proxy/-/http-proxy-1.16.2.tgz#06dff292952bf64dbe8471fa9df73066d4f37742" + dependencies: + eventemitter3 "1.x.x" + requires-port "1.x.x" + + http-signature@~1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.1.1.tgz#df72e267066cd0ac67fb76adf8e134a8fbcf91bf" + dependencies: + assert-plus "^0.2.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + + http-signature@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" + dependencies: + assert-plus "^1.0.0" + jsprim "^1.2.2" + sshpk "^1.7.0" + + https-browserify@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/https-browserify/-/https-browserify-1.0.0.tgz#ec06c10e0a34c0f2faf199f7fd7fc78fffd03c73" + + iconv-lite@0.4.19: + version "0.4.19" + resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.4.19.tgz#f7468f60135f5e5dad3399c0a81be9a1603a082b" + + icss-replace-symbols@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/icss-replace-symbols/-/icss-replace-symbols-1.1.0.tgz#06ea6f83679a7749e386cfe1fe812ae5db223ded" + + icss-utils@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-2.1.0.tgz#83f0a0ec378bf3246178b6c2ad9136f135b1c962" + dependencies: + postcss "^6.0.1" + + ieee754@^1.1.4: + version "1.1.11" + resolved "https://registry.yarnpkg.com/ieee754/-/ieee754-1.1.11.tgz#c16384ffe00f5b7835824e67b6f2bd44a5229455" + + iferr@^0.1.5: + version "0.1.5" + resolved "https://registry.yarnpkg.com/iferr/-/iferr-0.1.5.tgz#c60eed69e6d8fdb6b3104a1fcbca1c192dc5b501" + + ignore@^3.3.5: + version "3.3.7" + resolved "https://registry.yarnpkg.com/ignore/-/ignore-3.3.7.tgz#612289bfb3c220e186a58118618d5be8c1bab021" + + import-local@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/import-local/-/import-local-1.0.0.tgz#5e4ffdc03f4fe6c009c6729beb29631c2f8227bc" + dependencies: + pkg-dir "^2.0.0" + resolve-cwd "^2.0.0" + + imurmurhash@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" + + in-publish@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/in-publish/-/in-publish-2.0.0.tgz#e20ff5e3a2afc2690320b6dc552682a9c7fadf51" + + indent-string@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/indent-string/-/indent-string-2.1.0.tgz#8e2d48348742121b4a8218b7a137e9a52049dc80" + dependencies: + repeating "^2.0.0" + + indexes-of@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/indexes-of/-/indexes-of-1.0.1.tgz#f30f716c8e2bd346c7b67d3df3915566a7c05607" + + indexof@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/indexof/-/indexof-0.0.1.tgz#82dc336d232b9062179d05ab3293a66059fd435d" + + inflight@^1.0.4: + version "1.0.6" + resolved "https://registry.yarnpkg.com/inflight/-/inflight-1.0.6.tgz#49bd6331d7d02d0c09bc910a1075ba8165b56df9" + dependencies: + once "^1.3.0" + wrappy "1" + + inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" + + inherits@2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.1.tgz#b17d08d326b4423e568eff719f91b0b1cbdf69f1" + + ini@~1.3.0: + version "1.3.5" + resolved "https://registry.yarnpkg.com/ini/-/ini-1.3.5.tgz#eee25f56db1c9ec6085e0c22778083f596abf927" + + internal-ip@1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/internal-ip/-/internal-ip-1.2.0.tgz#ae9fbf93b984878785d50a8de1b356956058cf5c" + dependencies: + meow "^3.3.0" + + interpret@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/interpret/-/interpret-1.1.0.tgz#7ed1b1410c6a0e0f78cf95d3b8440c63f78b8614" + + invariant@^2.2.2: + version "2.2.4" + resolved "https://registry.yarnpkg.com/invariant/-/invariant-2.2.4.tgz#610f3c92c9359ce1db616e538008d23ff35158e6" + dependencies: + loose-envify "^1.0.0" + + invert-kv@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-1.0.0.tgz#104a8e4aaca6d3d8cd157a8ef8bfab2d7a3ffdb6" + + ip@^1.1.0, ip@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/ip/-/ip-1.1.5.tgz#bdded70114290828c0a039e72ef25f5aaec4354a" + + ipaddr.js@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/ipaddr.js/-/ipaddr.js-1.6.0.tgz#e3fa357b773da619f26e95f049d055c72796f86b" + + is-absolute-url@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-absolute-url/-/is-absolute-url-2.1.0.tgz#50530dfb84fcc9aa7dbe7852e83a37b93b9f2aa6" + + is-accessor-descriptor@^0.1.6: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz#a9e12cb3ae8d876727eeef3843f8a0897b5c98d6" + dependencies: + kind-of "^3.0.2" + + is-accessor-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz#169c2f6d3df1f992618072365c9b0ea1f6878656" + dependencies: + kind-of "^6.0.0" + + is-arrayish@^0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-arrayish/-/is-arrayish-0.2.1.tgz#77c99840527aa8ecb1a8ba697b80645a7a926a9d" + + is-binary-path@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-binary-path/-/is-binary-path-1.0.1.tgz#75f16642b480f187a711c814161fd3a4a7655898" + dependencies: + binary-extensions "^1.0.0" + + is-buffer@^1.1.5: + version "1.1.6" + resolved "https://registry.yarnpkg.com/is-buffer/-/is-buffer-1.1.6.tgz#efaa2ea9daa0d7ab2ea13a97b2b8ad51fefbe8be" + + is-builtin-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-builtin-module/-/is-builtin-module-1.0.0.tgz#540572d34f7ac3119f8f76c30cbc1b1e037affbe" + dependencies: + builtin-modules "^1.0.0" + + is-callable@^1.1.1, is-callable@^1.1.3: + version "1.1.3" + resolved "https://registry.yarnpkg.com/is-callable/-/is-callable-1.1.3.tgz#86eb75392805ddc33af71c92a0eedf74ee7604b2" + + is-data-descriptor@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz#0b5ee648388e2c860282e793f1856fec3f301b56" + dependencies: + kind-of "^3.0.2" + + is-data-descriptor@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz#d84876321d0e7add03990406abbbbd36ba9268c7" + dependencies: + kind-of "^6.0.0" + + is-date-object@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-date-object/-/is-date-object-1.0.1.tgz#9aa20eb6aeebbff77fbd33e74ca01b33581d3a16" + + is-descriptor@^0.1.0: + version "0.1.6" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-0.1.6.tgz#366d8240dde487ca51823b1ab9f07a10a78251ca" + dependencies: + is-accessor-descriptor "^0.1.6" + is-data-descriptor "^0.1.4" + kind-of "^5.0.0" + + is-descriptor@^1.0.0, is-descriptor@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-descriptor/-/is-descriptor-1.0.2.tgz#3b159746a66604b04f8c81524ba365c5f14d86ec" + dependencies: + is-accessor-descriptor "^1.0.0" + is-data-descriptor "^1.0.0" + kind-of "^6.0.2" + + is-directory@^0.3.1: + version "0.3.1" + resolved "https://registry.yarnpkg.com/is-directory/-/is-directory-0.3.1.tgz#61339b6f2475fc772fd9c9d83f5c8575dc154ae1" + + is-dotfile@^1.0.0: + version "1.0.3" + resolved "https://registry.yarnpkg.com/is-dotfile/-/is-dotfile-1.0.3.tgz#a6a2f32ffd2dfb04f5ca25ecd0f6b83cf798a1e1" + + is-equal-shallow@^0.1.3: + version "0.1.3" + resolved "https://registry.yarnpkg.com/is-equal-shallow/-/is-equal-shallow-0.1.3.tgz#2238098fc221de0bcfa5d9eac4c45d638aa1c534" + dependencies: + is-primitive "^2.0.0" + + is-extendable@^0.1.0, is-extendable@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-0.1.1.tgz#62b110e289a471418e3ec36a617d472e301dfc89" + + is-extendable@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-extendable/-/is-extendable-1.0.1.tgz#a7470f9e426733d81bd81e1155264e3a3507cab4" + dependencies: + is-plain-object "^2.0.4" + + is-extglob@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-1.0.0.tgz#ac468177c4943405a092fc8f29760c6ffc6206c0" + + is-extglob@^2.1.0, is-extglob@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/is-extglob/-/is-extglob-2.1.1.tgz#a88c02535791f02ed37c76a1b9ea9773c833f8c2" + + is-finite@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-finite/-/is-finite-1.0.2.tgz#cc6677695602be550ef11e8b4aa6305342b6d0aa" + dependencies: + number-is-nan "^1.0.0" + + is-fullwidth-code-point@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz#ef9e31386f031a7f0d643af82fde50c457ef00cb" + dependencies: + number-is-nan "^1.0.0" + + is-fullwidth-code-point@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz#a3b30a5c4f199183167aaab93beefae3ddfb654f" + + is-glob@^2.0.0, is-glob@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-2.0.1.tgz#d096f926a3ded5600f3fdfd91198cb0888c2d863" + dependencies: + is-extglob "^1.0.0" + + is-glob@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-3.1.0.tgz#7ba5ae24217804ac70707b96922567486cc3e84a" + dependencies: + is-extglob "^2.1.0" + + is-glob@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-glob/-/is-glob-4.0.0.tgz#9521c76845cc2610a85203ddf080a958c2ffabc0" + dependencies: + is-extglob "^2.1.1" + + is-my-ip-valid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-my-ip-valid/-/is-my-ip-valid-1.0.0.tgz#7b351b8e8edd4d3995d4d066680e664d94696824" + + is-my-json-valid@^2.12.4: + version "2.17.2" + resolved "https://registry.yarnpkg.com/is-my-json-valid/-/is-my-json-valid-2.17.2.tgz#6b2103a288e94ef3de5cf15d29dd85fc4b78d65c" + dependencies: + generate-function "^2.0.0" + generate-object-property "^1.1.0" + is-my-ip-valid "^1.0.0" + jsonpointer "^4.0.0" + xtend "^4.0.0" + + is-number@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-2.1.0.tgz#01fcbbb393463a548f2f466cce16dece49db908f" + dependencies: + kind-of "^3.0.2" + + is-number@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-3.0.0.tgz#24fd6201a4782cf50561c810276afc7d12d71195" + dependencies: + kind-of "^3.0.2" + + is-number@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/is-number/-/is-number-4.0.0.tgz#0026e37f5454d73e356dfe6564699867c6a7f0ff" + + is-odd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-odd/-/is-odd-2.0.0.tgz#7646624671fd7ea558ccd9a2795182f2958f1b24" + dependencies: + is-number "^4.0.0" + + is-path-cwd@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-path-cwd/-/is-path-cwd-1.0.0.tgz#d225ec23132e89edd38fda767472e62e65f1106d" + + is-path-in-cwd@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz#5ac48b345ef675339bd6c7a48a912110b241cf52" + dependencies: + is-path-inside "^1.0.0" + + is-path-inside@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-path-inside/-/is-path-inside-1.0.1.tgz#8ef5b7de50437a3fdca6b4e865ef7aa55cb48036" + dependencies: + path-is-inside "^1.0.1" + + is-plain-obj@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-plain-obj/-/is-plain-obj-1.1.0.tgz#71a50c8429dfca773c92a390a4a03b39fcd51d3e" + + is-plain-object@^2.0.1, is-plain-object@^2.0.3, is-plain-object@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/is-plain-object/-/is-plain-object-2.0.4.tgz#2c163b3fafb1b606d9d17928f05c2a1c38e07677" + dependencies: + isobject "^3.0.1" + + is-posix-bracket@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz#3334dc79774368e92f016e6fbc0a88f5cd6e6bc4" + + is-primitive@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/is-primitive/-/is-primitive-2.0.0.tgz#207bab91638499c07b2adf240a41a87210034575" + + is-property@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-property/-/is-property-1.0.2.tgz#57fe1c4e48474edd65b09911f26b1cd4095dda84" + + is-regex@^1.0.4: + version "1.0.4" + resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.0.4.tgz#5517489b547091b0930e095654ced25ee97e9491" + dependencies: + has "^1.0.1" + + is-stream@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-1.1.0.tgz#12d4a3dd4e68e0b79ceb8dbc84173ae80d91ca44" + + is-svg@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/is-svg/-/is-svg-2.1.0.tgz#cf61090da0d9efbcab8722deba6f032208dbb0e9" + dependencies: + html-comment-regex "^1.1.0" + + is-symbol@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/is-symbol/-/is-symbol-1.0.1.tgz#3cc59f00025194b6ab2e38dbae6689256b660572" + + is-typedarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" + + is-utf8@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/is-utf8/-/is-utf8-0.2.1.tgz#4b0da1442104d1b336340e80797e865cf39f7d72" + + is-windows@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d" + + is-wsl@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" + + isarray@0.0.1: + version "0.0.1" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" + + isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + + isexe@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" + + isobject@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-2.1.0.tgz#f065561096a3f1da2ef46272f815c840d87e0c89" + dependencies: + isarray "1.0.0" + + isobject@^3.0.0, isobject@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/isobject/-/isobject-3.0.1.tgz#4e431e92b11a9731636aa1f9c8d1ccbcfdab78df" + + isstream@~0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" + + js-base64@^2.1.8, js-base64@^2.1.9: + version "2.4.3" + resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.4.3.tgz#2e545ec2b0f2957f41356510205214e98fad6582" + + js-tokens@^3.0.0, js-tokens@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-3.0.2.tgz#9866df395102130e38f7f996bceb65443209c25b" + + js-yaml@^3.4.3: + version "3.11.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.11.0.tgz#597c1a8bd57152f26d622ce4117851a51f5ebaef" + dependencies: + argparse "^1.0.7" + esprima "^4.0.0" + + js-yaml@~3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/js-yaml/-/js-yaml-3.7.0.tgz#5c967ddd837a9bfdca5f2de84253abe8a1c03b80" + dependencies: + argparse "^1.0.7" + esprima "^2.6.0" + + jsbn@~0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" + + jsesc@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-1.3.0.tgz#46c3fec8c1892b12b0833db9bc7622176dbab34b" + + jsesc@~0.5.0: + version "0.5.0" + resolved "https://registry.yarnpkg.com/jsesc/-/jsesc-0.5.0.tgz#e7dee66e35d6fc16f710fe91d5cf69f70f08911d" + + json-loader@^0.5.4: + version "0.5.7" + resolved "https://registry.yarnpkg.com/json-loader/-/json-loader-0.5.7.tgz#dca14a70235ff82f0ac9a3abeb60d337a365185d" + + json-schema-traverse@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/json-schema-traverse/-/json-schema-traverse-0.3.1.tgz#349a6d44c53a51de89b40805c5d5e59b417d3340" + + json-schema@0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/json-schema/-/json-schema-0.2.3.tgz#b480c892e59a2f05954ce727bd3f2a4e882f9e13" + + json-stable-stringify@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz#9a759d39c5f2ff503fd5300646ed445f88c4f9af" + dependencies: + jsonify "~0.0.0" + + json-stringify-safe@~5.0.1: + version "5.0.1" + resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" + + json3@^3.3.2: + version "3.3.2" + resolved "https://registry.yarnpkg.com/json3/-/json3-3.3.2.tgz#3c0434743df93e2f5c42aee7b19bcb483575f4e1" + + json5@^0.5.0, json5@^0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/json5/-/json5-0.5.1.tgz#1eade7acc012034ad84e2396767ead9fa5495821" + + jsonfile@^2.1.0: + version "2.4.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-2.4.0.tgz#3736a2b428b87bbda0cc83b53fa3d633a35c2ae8" + optionalDependencies: + graceful-fs "^4.1.6" + + jsonfile@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/jsonfile/-/jsonfile-4.0.0.tgz#8771aae0799b64076b76640fca058f9c10e33ecb" + optionalDependencies: + graceful-fs "^4.1.6" + + jsonify@~0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/jsonify/-/jsonify-0.0.0.tgz#2c74b6ee41d93ca51b7b5aaee8f503631d252a73" + + jsonpointer@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/jsonpointer/-/jsonpointer-4.0.1.tgz#4fd92cb34e0e9db3c89c8622ecf51f9b978c6cb9" + + jsprim@^1.2.2: + version "1.4.1" + resolved "https://registry.yarnpkg.com/jsprim/-/jsprim-1.4.1.tgz#313e66bc1e5cc06e438bc1b7499c2e5c56acb6a2" + dependencies: + assert-plus "1.0.0" + extsprintf "1.3.0" + json-schema "0.2.3" + verror "1.10.0" + + killable@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/killable/-/killable-1.0.0.tgz#da8b84bd47de5395878f95d64d02f2449fe05e6b" + + kind-of@^3.0.2, kind-of@^3.0.3, kind-of@^3.2.0: + version "3.2.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-3.2.2.tgz#31ea21a734bab9bbb0f32466d893aea51e4a3c64" + dependencies: + is-buffer "^1.1.5" + + kind-of@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-4.0.0.tgz#20813df3d712928b207378691a45066fae72dd57" + dependencies: + is-buffer "^1.1.5" + + kind-of@^5.0.0: + version "5.1.0" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-5.1.0.tgz#729c91e2d857b7a419a1f9aa65685c4c33f5845d" + + kind-of@^6.0.0, kind-of@^6.0.2: + version "6.0.2" + resolved "https://registry.yarnpkg.com/kind-of/-/kind-of-6.0.2.tgz#01146b36a6218e64e58f3a8d66de5d7fc6f6d051" + + klaw@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/klaw/-/klaw-1.3.1.tgz#4088433b46b3b1ba259d78785d8e96f73ba02439" + optionalDependencies: + graceful-fs "^4.1.9" + + lazy-cache@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/lazy-cache/-/lazy-cache-1.0.4.tgz#a1d78fc3a50474cb80845d3b3b6e1da49a446e8e" + + lcid@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/lcid/-/lcid-1.0.0.tgz#308accafa0bc483a3867b4b6f2b9506251d1b835" + dependencies: + invert-kv "^1.0.0" + + load-json-file@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-1.1.0.tgz#956905708d58b4bab4c2261b04f59f31c99374c0" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + pinkie-promise "^2.0.0" + strip-bom "^2.0.0" + + load-json-file@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/load-json-file/-/load-json-file-2.0.0.tgz#7947e42149af80d696cbf797bcaabcfe1fe29ca8" + dependencies: + graceful-fs "^4.1.2" + parse-json "^2.2.0" + pify "^2.0.0" + strip-bom "^3.0.0" + + loader-runner@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/loader-runner/-/loader-runner-2.3.0.tgz#f482aea82d543e07921700d5a46ef26fdac6b8a2" + + loader-utils@^0.2.12, loader-utils@^0.2.16: + version "0.2.17" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-0.2.17.tgz#f86e6374d43205a6e6c60e9196f17c0299bfb348" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + object-assign "^4.0.1" + + loader-utils@^1.0.2, loader-utils@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/loader-utils/-/loader-utils-1.1.0.tgz#c98aef488bcceda2ffb5e2de646d6a754429f5cd" + dependencies: + big.js "^3.1.3" + emojis-list "^2.0.0" + json5 "^0.5.0" + + locate-path@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/locate-path/-/locate-path-2.0.0.tgz#2b568b265eec944c6d9c0de9c3dbbbca0354cd8e" + dependencies: + p-locate "^2.0.0" + path-exists "^3.0.0" + + lodash._baseassign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash._baseassign/-/lodash._baseassign-3.2.0.tgz#8c38a099500f215ad09e59f1722fd0c52bfe0a4e" + dependencies: + lodash._basecopy "^3.0.0" + lodash.keys "^3.0.0" + + lodash._basecopy@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._basecopy/-/lodash._basecopy-3.0.1.tgz#8da0e6a876cf344c0ad8a54882111dd3c5c7ca36" + + lodash._bindcallback@^3.0.0: + version "3.0.1" + resolved "https://registry.yarnpkg.com/lodash._bindcallback/-/lodash._bindcallback-3.0.1.tgz#e531c27644cf8b57a99e17ed95b35c748789392e" + + lodash._createassigner@^3.0.0: + version "3.1.1" + resolved "https://registry.yarnpkg.com/lodash._createassigner/-/lodash._createassigner-3.1.1.tgz#838a5bae2fdaca63ac22dee8e19fa4e6d6970b11" + dependencies: + lodash._bindcallback "^3.0.0" + lodash._isiterateecall "^3.0.0" + lodash.restparam "^3.0.0" + + lodash._getnative@^3.0.0: + version "3.9.1" + resolved "https://registry.yarnpkg.com/lodash._getnative/-/lodash._getnative-3.9.1.tgz#570bc7dede46d61cdcde687d65d3eecbaa3aaff5" + + lodash._isiterateecall@^3.0.0: + version "3.0.9" + resolved "https://registry.yarnpkg.com/lodash._isiterateecall/-/lodash._isiterateecall-3.0.9.tgz#5203ad7ba425fae842460e696db9cf3e6aac057c" + + lodash.assign@^3.0.0: + version "3.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-3.2.0.tgz#3ce9f0234b4b2223e296b8fa0ac1fee8ebca64fa" + dependencies: + lodash._baseassign "^3.0.0" + lodash._createassigner "^3.0.0" + lodash.keys "^3.0.0" + + lodash.assign@^4.0.1, lodash.assign@^4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.assign/-/lodash.assign-4.2.0.tgz#0d99f3ccd7a6d261d19bdaeb9245005d285808e7" + + lodash.camelcase@^4.3.0: + version "4.3.0" + resolved "https://registry.yarnpkg.com/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz#b28aa6288a2b9fc651035c7711f65ab6190331a6" + + lodash.clonedeep@^4.3.2: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz#e23f3f9c4f8fbdde872529c1071857a086e5ccef" + + lodash.defaults@^3.1.2: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-3.1.2.tgz#c7308b18dbf8bc9372d701a73493c61192bd2e2c" + dependencies: + lodash.assign "^3.0.0" + lodash.restparam "^3.0.0" + + lodash.defaults@^4.0.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/lodash.defaults/-/lodash.defaults-4.2.0.tgz#d09178716ffea4dde9e5fb7b37f6f0802274580c" + + lodash.isarguments@^3.0.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz#2f573d85c6a24289ff00663b491c1d338ff3458a" + + lodash.isarray@^3.0.0: + version "3.0.4" + resolved "https://registry.yarnpkg.com/lodash.isarray/-/lodash.isarray-3.0.4.tgz#79e4eb88c36a8122af86f844aa9bcd851b5fbb55" + + lodash.keys@^3.0.0: + version "3.1.2" + resolved "https://registry.yarnpkg.com/lodash.keys/-/lodash.keys-3.1.2.tgz#4dbc0472b156be50a0b286855d1bd0b0c656098a" + dependencies: + lodash._getnative "^3.0.0" + lodash.isarguments "^3.0.0" + lodash.isarray "^3.0.0" + + lodash.memoize@^4.1.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lodash.memoize/-/lodash.memoize-4.1.2.tgz#bcc6c49a42a2840ed997f323eada5ecd182e0bfe" + + lodash.mergewith@^4.6.0: + version "4.6.1" + resolved "https://registry.yarnpkg.com/lodash.mergewith/-/lodash.mergewith-4.6.1.tgz#639057e726c3afbdb3e7d42741caa8d6e4335927" + + lodash.restparam@^3.0.0: + version "3.6.1" + resolved "https://registry.yarnpkg.com/lodash.restparam/-/lodash.restparam-3.6.1.tgz#936a4e309ef330a7645ed4145986c85ae5b20805" + + lodash.uniq@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" + + lodash@4.13.1: + version "4.13.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.13.1.tgz#83e4b10913f48496d4d16fec4a560af2ee744b68" + + lodash@4.14.2: + version "4.14.2" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.14.2.tgz#bbccce6373a400fbfd0a8c67ca42f6d1ef416432" + + lodash@^3.7.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + + lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + + loglevel@^1.4.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" + + longest@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/longest/-/longest-1.0.1.tgz#30a0b2da38f73770e8294a0d22e6625ed77d0097" + + loose-envify@^1.0.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/loose-envify/-/loose-envify-1.3.1.tgz#d1a8ad33fa9ce0e713d65fdd0ac8b748d478c848" + dependencies: + js-tokens "^3.0.0" + + loud-rejection@^1.0.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/loud-rejection/-/loud-rejection-1.6.0.tgz#5b46f80147edee578870f086d04821cf998e551f" + dependencies: + currently-unhandled "^0.4.1" + signal-exit "^3.0.0" + + lower-case@^1.1.1: + version "1.1.4" + resolved "https://registry.yarnpkg.com/lower-case/-/lower-case-1.1.4.tgz#9a2cabd1b9e8e0ae993a4bf7d5875c39c42e8eac" + + lru-cache@^4.0.1, lru-cache@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.2.tgz#45234b2e6e2f2b33da125624c4664929a0224c3f" + dependencies: + pseudomap "^1.0.2" + yallist "^2.1.2" + + macaddress@^0.2.8: + version "0.2.8" + resolved "https://registry.yarnpkg.com/macaddress/-/macaddress-0.2.8.tgz#5904dc537c39ec6dbefeae902327135fa8511f12" + + make-dir@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/make-dir/-/make-dir-1.2.0.tgz#6d6a49eead4aae296c53bbf3a1a008bd6c89469b" + dependencies: + pify "^3.0.0" + + map-cache@^0.2.2: + version "0.2.2" + resolved "https://registry.yarnpkg.com/map-cache/-/map-cache-0.2.2.tgz#c32abd0bd6525d9b051645bb4f26ac5dc98a0dbf" + + map-obj@^1.0.0, map-obj@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/map-obj/-/map-obj-1.0.1.tgz#d933ceb9205d82bdcf4886f6742bdc2b4dea146d" + + map-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/map-visit/-/map-visit-1.0.0.tgz#ecdca8f13144e660f1b5bd41f12f3479d98dfb8f" + dependencies: + object-visit "^1.0.0" + + math-expression-evaluator@^1.2.14: + version "1.2.17" + resolved "https://registry.yarnpkg.com/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz#de819fdbcd84dccd8fae59c6aeb79615b9d266ac" + + md5.js@^1.3.4: + version "1.3.4" + resolved "https://registry.yarnpkg.com/md5.js/-/md5.js-1.3.4.tgz#e9bdbde94a20a5ac18b04340fc5764d5b09d901d" + dependencies: + hash-base "^3.0.0" + inherits "^2.0.1" + + media-typer@0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" + + mem@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/mem/-/mem-1.1.0.tgz#5edd52b485ca1d900fe64895505399a0dfa45f76" + dependencies: + mimic-fn "^1.0.0" + + memory-fs@^0.4.0, memory-fs@~0.4.1: + version "0.4.1" + resolved "https://registry.yarnpkg.com/memory-fs/-/memory-fs-0.4.1.tgz#3a9a20b8462523e447cfbc7e8bb80ed667bfc552" + dependencies: + errno "^0.1.3" + readable-stream "^2.0.1" + + meow@^3.3.0, meow@^3.7.0: + version "3.7.0" + resolved "https://registry.yarnpkg.com/meow/-/meow-3.7.0.tgz#72cb668b425228290abbfa856892587308a801fb" + dependencies: + camelcase-keys "^2.0.0" + decamelize "^1.1.2" + loud-rejection "^1.0.0" + map-obj "^1.0.1" + minimist "^1.1.3" + normalize-package-data "^2.3.4" + object-assign "^4.0.1" + read-pkg-up "^1.0.1" + redent "^1.0.0" + trim-newlines "^1.0.0" + + merge-descriptors@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/merge-descriptors/-/merge-descriptors-1.0.1.tgz#b00aaa556dd8b44568150ec9d1b953f3f90cbb61" + + methods@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/methods/-/methods-1.1.2.tgz#5529a4d67654134edcc5266656835b0f851afcee" + + micromatch@^2.1.5, micromatch@^2.3.11: + version "2.3.11" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-2.3.11.tgz#86677c97d1720b363431d04d0d15293bd38c1565" + dependencies: + arr-diff "^2.0.0" + array-unique "^0.2.1" + braces "^1.8.2" + expand-brackets "^0.1.4" + extglob "^0.3.1" + filename-regex "^2.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.1" + kind-of "^3.0.2" + normalize-path "^2.0.1" + object.omit "^2.0.0" + parse-glob "^3.0.4" + regex-cache "^0.4.2" + + micromatch@^3.1.4: + version "3.1.10" + resolved "https://registry.yarnpkg.com/micromatch/-/micromatch-3.1.10.tgz#70859bc95c9840952f359a068a3fc49f9ecfac23" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + braces "^2.3.1" + define-property "^2.0.2" + extend-shallow "^3.0.2" + extglob "^2.0.4" + fragment-cache "^0.2.1" + kind-of "^6.0.2" + nanomatch "^1.2.9" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.2" + + miller-rabin@^4.0.0: + version "4.0.1" + resolved "https://registry.yarnpkg.com/miller-rabin/-/miller-rabin-4.0.1.tgz#f080351c865b0dc562a8462966daa53543c78a4d" + dependencies: + bn.js "^4.0.0" + brorand "^1.0.1" + + "mime-db@>= 1.33.0 < 2", mime-db@~1.33.0: + version "1.33.0" + resolved "https://registry.yarnpkg.com/mime-db/-/mime-db-1.33.0.tgz#a3492050a5cb9b63450541e39d9788d2272783db" + + mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, mime-types@~2.1.7: + version "2.1.18" + resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.18.tgz#6f323f60a83d11146f831ff11fd66e2fe5503bb8" + dependencies: + mime-db "~1.33.0" + + mime@1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" + + mime@^1.4.1, mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + + mimic-fn@^1.0.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" + + minimalistic-assert@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz#2e194de044626d4a10e7f7fbc00ce73e83e4d5c7" + + minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" + + "minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: + version "3.0.4" + resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" + dependencies: + brace-expansion "^1.1.7" + + minimist@0.0.8: + version "0.0.8" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" + + minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + + mississippi@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" + dependencies: + concat-stream "^1.5.0" + duplexify "^3.4.2" + end-of-stream "^1.1.0" + flush-write-stream "^1.0.0" + from2 "^2.1.0" + parallel-transform "^1.1.0" + pump "^2.0.1" + pumpify "^1.3.3" + stream-each "^1.1.0" + through2 "^2.0.0" + + mixin-deep@^1.2.0: + version "1.3.1" + resolved "https://registry.yarnpkg.com/mixin-deep/-/mixin-deep-1.3.1.tgz#a49e7268dce1a0d9698e45326c5626df3543d0fe" + dependencies: + for-in "^1.0.2" + is-extendable "^1.0.1" + + mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: + version "0.5.1" + resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" + dependencies: + minimist "0.0.8" + + move-concurrently@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/move-concurrently/-/move-concurrently-1.0.1.tgz#be2c005fda32e0b29af1f05d7c4b33214c701f92" + dependencies: + aproba "^1.1.1" + copy-concurrently "^1.0.0" + fs-write-stream-atomic "^1.0.8" + mkdirp "^0.5.1" + rimraf "^2.5.4" + run-queue "^1.0.3" + + ms@2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/ms/-/ms-2.0.0.tgz#5608aeadfc00be6c2901df5f9861788de0d597c8" + + multicast-dns-service-types@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz#899f11d9686e5e05cb91b35d5f0e63b773cfc901" + + multicast-dns@^6.0.1: + version "6.2.3" + resolved "https://registry.yarnpkg.com/multicast-dns/-/multicast-dns-6.2.3.tgz#a0ec7bd9055c4282f790c3c82f4e28db3b31b229" + dependencies: + dns-packet "^1.3.1" + thunky "^1.0.2" + + murmur-hash-js@1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/murmur-hash-js/-/murmur-hash-js-1.0.0.tgz#5041049269c96633c866386960b2f4289e75e5b0" + + nan@^2.10.0, nan@^2.3.0: + version "2.10.0" + resolved "https://registry.yarnpkg.com/nan/-/nan-2.10.0.tgz#96d0cd610ebd58d4b4de9cc0c6828cda99c7548f" + + nanomatch@^1.2.9: + version "1.2.9" + resolved "https://registry.yarnpkg.com/nanomatch/-/nanomatch-1.2.9.tgz#879f7150cb2dab7a471259066c104eee6e0fa7c2" + dependencies: + arr-diff "^4.0.0" + array-unique "^0.3.2" + define-property "^2.0.2" + extend-shallow "^3.0.2" + fragment-cache "^0.2.1" + is-odd "^2.0.0" + is-windows "^1.0.2" + kind-of "^6.0.2" + object.pick "^1.3.0" + regex-not "^1.0.0" + snapdragon "^0.8.1" + to-regex "^3.0.1" + + negotiator@0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/negotiator/-/negotiator-0.6.1.tgz#2b327184e8992101177b28563fb5e7102acd0ca9" + + neo-async@^2.5.0: + version "2.5.1" + resolved "https://registry.yarnpkg.com/neo-async/-/neo-async-2.5.1.tgz#acb909e327b1e87ec9ef15f41b8a269512ad41ee" + + next-tick@1: + version "1.0.0" + resolved "https://registry.yarnpkg.com/next-tick/-/next-tick-1.0.0.tgz#ca86d1fe8828169b0120208e3dc8424b9db8342c" + + no-case@^2.2.0: + version "2.3.2" + resolved "https://registry.yarnpkg.com/no-case/-/no-case-2.3.2.tgz#60b813396be39b3f1288a4c1ed5d1e7d28b464ac" + dependencies: + lower-case "^1.1.1" + + node-elm-compiler@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.3.3.tgz#44e48e8679876bf2f5bd8820dd15734ff3a28caf" + dependencies: + cross-spawn "4.0.0" + find-elm-dependencies "1.0.2" + lodash "4.14.2" + temp "^0.8.3" + + node-elm-compiler@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.5.0.tgz#3029f053cfbfc68730e75a54f93495cc58bf7ceb" + dependencies: + cross-spawn "4.0.0" + find-elm-dependencies "1.0.2" + lodash "4.14.2" + temp "^0.8.3" + + node-forge@0.7.1: + version "0.7.1" + resolved "https://registry.yarnpkg.com/node-forge/-/node-forge-0.7.1.tgz#9da611ea08982f4b94206b3beb4cc9665f20c300" + + node-gyp@^3.3.1: + version "3.6.2" + resolved "https://registry.yarnpkg.com/node-gyp/-/node-gyp-3.6.2.tgz#9bfbe54562286284838e750eac05295853fa1c60" + dependencies: + fstream "^1.0.0" + glob "^7.0.3" + graceful-fs "^4.1.2" + minimatch "^3.0.2" + mkdirp "^0.5.0" + nopt "2 || 3" + npmlog "0 || 1 || 2 || 3 || 4" + osenv "0" + request "2" + rimraf "2" + semver "~5.3.0" + tar "^2.0.0" + which "1" + + node-libs-browser@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/node-libs-browser/-/node-libs-browser-2.1.0.tgz#5f94263d404f6e44767d726901fff05478d600df" + dependencies: + assert "^1.1.1" + browserify-zlib "^0.2.0" + buffer "^4.3.0" + console-browserify "^1.1.0" + constants-browserify "^1.0.0" + crypto-browserify "^3.11.0" + domain-browser "^1.1.1" + events "^1.0.0" + https-browserify "^1.0.0" + os-browserify "^0.3.0" + path-browserify "0.0.0" + process "^0.11.10" + punycode "^1.2.4" + querystring-es3 "^0.2.0" + readable-stream "^2.3.3" + stream-browserify "^2.0.1" + stream-http "^2.7.2" + string_decoder "^1.0.0" + timers-browserify "^2.0.4" + tty-browserify "0.0.0" + url "^0.11.0" + util "^0.10.3" + vm-browserify "0.0.4" + + node-pre-gyp@^0.6.36, node-pre-gyp@^0.6.39: + version "0.6.39" + resolved "https://registry.yarnpkg.com/node-pre-gyp/-/node-pre-gyp-0.6.39.tgz#c00e96860b23c0e1420ac7befc5044e1d78d8649" + dependencies: + detect-libc "^1.0.2" + hawk "3.1.3" + mkdirp "^0.5.1" + nopt "^4.0.1" + npmlog "^4.0.2" + rc "^1.1.7" + request "2.81.0" + rimraf "^2.6.1" + semver "^5.3.0" + tar "^2.2.1" + tar-pack "^3.4.0" + + node-sass@^4.7.2: + version "4.8.3" + resolved "https://registry.yarnpkg.com/node-sass/-/node-sass-4.8.3.tgz#d077cc20a08ac06f661ca44fb6f19cd2ed41debb" + dependencies: + async-foreach "^0.1.3" + chalk "^1.1.1" + cross-spawn "^3.0.0" + gaze "^1.0.0" + get-stdin "^4.0.1" + glob "^7.0.3" + in-publish "^2.0.0" + lodash.assign "^4.2.0" + lodash.clonedeep "^4.3.2" + lodash.mergewith "^4.6.0" + meow "^3.7.0" + mkdirp "^0.5.1" + nan "^2.10.0" + node-gyp "^3.3.1" + npmlog "^4.0.0" + request "~2.79.0" + sass-graph "^2.2.4" + stdout-stream "^1.4.0" + "true-case-path" "^1.0.2" + + node-uuid@~1.4.7: + version "1.4.8" + resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" + + "nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + + nopt@^4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" + dependencies: + abbrev "1" + osenv "^0.1.4" + + normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: + version "2.4.0" + resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" + dependencies: + hosted-git-info "^2.1.4" + is-builtin-module "^1.0.0" + semver "2 || 3 || 4 || 5" + validate-npm-package-license "^3.0.1" + + normalize-path@^2.0.0, normalize-path@^2.0.1, normalize-path@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/normalize-path/-/normalize-path-2.1.1.tgz#1ab28b556e198363a8c1a6f7e6fa20137fe6aed9" + dependencies: + remove-trailing-separator "^1.0.1" + + normalize-range@^0.1.2: + version "0.1.2" + resolved "https://registry.yarnpkg.com/normalize-range/-/normalize-range-0.1.2.tgz#2d10c06bdfd312ea9777695a4d28439456b75942" + + normalize-url@^1.4.0: + version "1.9.1" + resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-1.9.1.tgz#2cc0d66b31ea23036458436e3620d85954c66c3c" + dependencies: + object-assign "^4.0.1" + prepend-http "^1.0.0" + query-string "^4.1.0" + sort-keys "^1.0.0" + + npm-run-path@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-2.0.2.tgz#35a9232dfa35d7067b4cb2ddf2357b1871536c5f" + dependencies: + path-key "^2.0.0" + + "npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: + version "4.1.2" + resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" + dependencies: + are-we-there-yet "~1.1.2" + console-control-strings "~1.1.0" + gauge "~2.7.3" + set-blocking "~2.0.0" + + nth-check@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/nth-check/-/nth-check-1.0.1.tgz#9929acdf628fc2c41098deab82ac580cf149aae4" + dependencies: + boolbase "~1.0.0" + + num2fraction@^1.2.2: + version "1.2.2" + resolved "https://registry.yarnpkg.com/num2fraction/-/num2fraction-1.2.2.tgz#6f682b6a027a4e9ddfa4564cd2589d1d4e669ede" + + number-is-nan@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/number-is-nan/-/number-is-nan-1.0.1.tgz#097b602b53422a522c1afb8790318336941a011d" + + oauth-sign@~0.8.1, oauth-sign@~0.8.2: + version "0.8.2" + resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.8.2.tgz#46a6ab7f0aead8deae9ec0565780b7d4efeb9d43" + + object-assign@^4.0.1, object-assign@^4.1.0, object-assign@^4.1.1: + version "4.1.1" + resolved "https://registry.yarnpkg.com/object-assign/-/object-assign-4.1.1.tgz#2109adc7965887cfc05cbbd442cac8bfbb360863" + + object-copy@^0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/object-copy/-/object-copy-0.1.0.tgz#7e7d858b781bd7c991a41ba975ed3812754e998c" + dependencies: + copy-descriptor "^0.1.0" + define-property "^0.2.5" + kind-of "^3.0.3" + + object-keys@^1.0.8: + version "1.0.11" + resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.0.11.tgz#c54601778ad560f1142ce0e01bcca8b56d13426d" + + object-path@^0.9.2: + version "0.9.2" + resolved "https://registry.yarnpkg.com/object-path/-/object-path-0.9.2.tgz#0fd9a74fc5fad1ae3968b586bda5c632bd6c05a5" + + object-visit@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/object-visit/-/object-visit-1.0.1.tgz#f79c4493af0c5377b59fe39d395e41042dd045bb" + dependencies: + isobject "^3.0.0" + + object.omit@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/object.omit/-/object.omit-2.0.1.tgz#1a9c744829f39dbb858c76ca3579ae2a54ebd1fa" + dependencies: + for-own "^0.1.4" + is-extendable "^0.1.1" + + object.pick@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/object.pick/-/object.pick-1.3.0.tgz#87a10ac4c1694bd2e1cbf53591a66141fb5dd747" + dependencies: + isobject "^3.0.1" + + obuf@^1.0.0, obuf@^1.1.1: + version "1.1.2" + resolved "https://registry.yarnpkg.com/obuf/-/obuf-1.1.2.tgz#09bea3343d41859ebd446292d11c9d4db619084e" + + on-finished@~2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/on-finished/-/on-finished-2.3.0.tgz#20f1336481b083cd75337992a16971aa2d906947" + dependencies: + ee-first "1.1.1" + + on-headers@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/on-headers/-/on-headers-1.0.1.tgz#928f5d0f470d49342651ea6794b0857c100693f7" + + once@^1.3.0, once@^1.3.1, once@^1.3.3, once@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/once/-/once-1.4.0.tgz#583b1aa775961d4b113ac17d9c50baef9dd76bd1" + dependencies: + wrappy "1" + + opn@^5.1.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/opn/-/opn-5.3.0.tgz#64871565c863875f052cfdf53d3e3cb5adb53b1c" + dependencies: + is-wsl "^1.1.0" + + original@>=0.0.5: + version "1.0.0" + resolved "https://registry.yarnpkg.com/original/-/original-1.0.0.tgz#9147f93fa1696d04be61e01bd50baeaca656bd3b" + dependencies: + url-parse "1.0.x" + + os-browserify@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27" + + os-homedir@^1.0.0, os-homedir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" + + os-locale@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-1.4.0.tgz#20f9f17ae29ed345e8bde583b13d2009803c14d9" + dependencies: + lcid "^1.0.0" + + os-locale@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-2.1.0.tgz#42bc2900a6b5b8bd17376c8e882b65afccf24bf2" + dependencies: + execa "^0.7.0" + lcid "^1.0.0" + mem "^1.1.0" + + os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" + + osenv@0, osenv@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" + dependencies: + os-homedir "^1.0.0" + os-tmpdir "^1.0.0" + + p-finally@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" + + p-limit@^1.0.0, p-limit@^1.1.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.2.0.tgz#0e92b6bedcb59f022c13d0f1949dc82d15909f1c" + dependencies: + p-try "^1.0.0" + + p-locate@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/p-locate/-/p-locate-2.0.0.tgz#20a0103b222a70c8fd39cc2e580680f3dde5ec43" + dependencies: + p-limit "^1.1.0" + + p-map@^1.1.1: + version "1.2.0" + resolved "https://registry.yarnpkg.com/p-map/-/p-map-1.2.0.tgz#e4e94f311eabbc8633a1e79908165fca26241b6b" + + p-try@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/p-try/-/p-try-1.0.0.tgz#cbc79cdbaf8fd4228e13f621f2b1a237c1b207b3" + + pako@~1.0.5: + version "1.0.6" + resolved "https://registry.yarnpkg.com/pako/-/pako-1.0.6.tgz#0101211baa70c4bca4a0f63f2206e97b7dfaf258" + + parallel-transform@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/parallel-transform/-/parallel-transform-1.1.0.tgz#d410f065b05da23081fcd10f28854c29bda33b06" + dependencies: + cyclist "~0.2.2" + inherits "^2.0.3" + readable-stream "^2.1.5" + + param-case@2.1.x: + version "2.1.1" + resolved "https://registry.yarnpkg.com/param-case/-/param-case-2.1.1.tgz#df94fd8cf6531ecf75e6bef9a0858fbc72be2247" + dependencies: + no-case "^2.2.0" + + parse-asn1@^5.0.0: + version "5.1.1" + resolved "https://registry.yarnpkg.com/parse-asn1/-/parse-asn1-5.1.1.tgz#f6bf293818332bd0dab54efb16087724745e6ca8" + dependencies: + asn1.js "^4.0.0" + browserify-aes "^1.0.0" + create-hash "^1.1.0" + evp_bytestokey "^1.0.0" + pbkdf2 "^3.0.3" + + parse-color@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/parse-color/-/parse-color-1.0.0.tgz#7b748b95a83f03f16a94f535e52d7f3d94658619" + dependencies: + color-convert "~0.5.0" + + parse-glob@^3.0.4: + version "3.0.4" + resolved "https://registry.yarnpkg.com/parse-glob/-/parse-glob-3.0.4.tgz#b2c376cfb11f35513badd173ef0bb6e3a388391c" + dependencies: + glob-base "^0.3.0" + is-dotfile "^1.0.0" + is-extglob "^1.0.0" + is-glob "^2.0.0" + + parse-json@^2.2.0: + version "2.2.0" + resolved "https://registry.yarnpkg.com/parse-json/-/parse-json-2.2.0.tgz#f480f40434ef80741f8469099f8dea18f55a4dc9" + dependencies: + error-ex "^1.2.0" + + parseurl@~1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/parseurl/-/parseurl-1.3.2.tgz#fc289d4ed8993119460c156253262cdc8de65bf3" + + pascalcase@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/pascalcase/-/pascalcase-0.1.1.tgz#b363e55e8006ca6fe21784d2db22bd15d7917f14" + + path-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/path-browserify/-/path-browserify-0.0.0.tgz#a0b870729aae214005b7d5032ec2cbbb0fb4451a" + + path-dirname@^1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-dirname/-/path-dirname-1.0.2.tgz#cc33d24d525e099a5388c0336c6e32b9160609e0" + + path-exists@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-2.1.0.tgz#0feb6c64f0fc518d9a754dd5efb62c7022761f4b" + dependencies: + pinkie-promise "^2.0.0" + + path-exists@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-exists/-/path-exists-3.0.0.tgz#ce0ebeaa5f78cb18925ea7d810d7b59b010fd515" + + path-is-absolute@^1.0.0, path-is-absolute@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" + + path-is-inside@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/path-is-inside/-/path-is-inside-1.0.2.tgz#365417dede44430d1c11af61027facf074bdfc53" + + path-key@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/path-key/-/path-key-2.0.1.tgz#411cadb574c5a140d3a4b1910d40d80cc9f40b40" + + path-to-regexp@0.1.7: + version "0.1.7" + resolved "https://registry.yarnpkg.com/path-to-regexp/-/path-to-regexp-0.1.7.tgz#df604178005f522f15eb4490e7247a1bfaa67f8c" + + path-type@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-1.1.0.tgz#59c44f7ee491da704da415da5a4070ba4f8fe441" + dependencies: + graceful-fs "^4.1.2" + pify "^2.0.0" + pinkie-promise "^2.0.0" + + path-type@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-2.0.0.tgz#f012ccb8415b7096fc2daa1054c3d72389594c73" + dependencies: + pify "^2.0.0" + + path-type@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/path-type/-/path-type-3.0.0.tgz#cef31dc8e0a1a3bb0d105c0cd97cf3bf47f4e36f" + dependencies: + pify "^3.0.0" + + pbkdf2@^3.0.3: + version "3.0.14" + resolved "https://registry.yarnpkg.com/pbkdf2/-/pbkdf2-3.0.14.tgz#a35e13c64799b06ce15320f459c230e68e73bade" + dependencies: + create-hash "^1.1.2" + create-hmac "^1.1.4" + ripemd160 "^2.0.1" + safe-buffer "^5.0.1" + sha.js "^2.4.8" + + performance-now@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-0.2.0.tgz#33ef30c5c77d4ea21c5a53869d91b56d8f2555e5" + + performance-now@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" + + pify@^2.0.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-2.3.0.tgz#ed141a6ac043a849ea588498e7dca8b15330e90c" + + pify@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/pify/-/pify-3.0.0.tgz#e5a4acd2c101fdf3d9a4d07f0dbc4db49dd28176" + + pinkie-promise@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pinkie-promise/-/pinkie-promise-2.0.1.tgz#2135d6dfa7a358c069ac9b178776288228450ffa" + dependencies: + pinkie "^2.0.0" + + pinkie@^2.0.0: + version "2.0.4" + resolved "https://registry.yarnpkg.com/pinkie/-/pinkie-2.0.4.tgz#72556b80cfa0d48a974e80e77248e80ed4f7f870" + + pkg-dir@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/pkg-dir/-/pkg-dir-2.0.0.tgz#f6d5d1109e19d63edf428e0bd57e12777615334b" + dependencies: + find-up "^2.1.0" + + portfinder@^1.0.9: + version "1.0.13" + resolved "https://registry.yarnpkg.com/portfinder/-/portfinder-1.0.13.tgz#bb32ecd87c27104ae6ee44b5a3ccbf0ebb1aede9" + dependencies: + async "^1.5.2" + debug "^2.2.0" + mkdirp "0.5.x" + + posix-character-classes@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/posix-character-classes/-/posix-character-classes-0.1.1.tgz#01eac0fe3b5af71a2a6c02feabb8c1fef7e00eab" + + postcss-calc@^5.2.0: + version "5.3.1" + resolved "https://registry.yarnpkg.com/postcss-calc/-/postcss-calc-5.3.1.tgz#77bae7ca928ad85716e2fda42f261bf7c1d65b5e" + dependencies: + postcss "^5.0.2" + postcss-message-helpers "^2.0.0" + reduce-css-calc "^1.2.6" + + postcss-colormin@^2.1.8: + version "2.2.2" + resolved "https://registry.yarnpkg.com/postcss-colormin/-/postcss-colormin-2.2.2.tgz#6631417d5f0e909a3d7ec26b24c8a8d1e4f96e4b" + dependencies: + colormin "^1.0.5" + postcss "^5.0.13" + postcss-value-parser "^3.2.3" + + postcss-convert-values@^2.3.4: + version "2.6.1" + resolved "https://registry.yarnpkg.com/postcss-convert-values/-/postcss-convert-values-2.6.1.tgz#bbd8593c5c1fd2e3d1c322bb925dcae8dae4d62d" + dependencies: + postcss "^5.0.11" + postcss-value-parser "^3.1.2" + + postcss-discard-comments@^2.0.4: + version "2.0.4" + resolved "https://registry.yarnpkg.com/postcss-discard-comments/-/postcss-discard-comments-2.0.4.tgz#befe89fafd5b3dace5ccce51b76b81514be00e3d" + dependencies: + postcss "^5.0.14" + + postcss-discard-duplicates@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-duplicates/-/postcss-discard-duplicates-2.1.0.tgz#b9abf27b88ac188158a5eb12abcae20263b91932" + dependencies: + postcss "^5.0.4" + + postcss-discard-empty@^2.0.1: + version "2.1.0" + resolved "https://registry.yarnpkg.com/postcss-discard-empty/-/postcss-discard-empty-2.1.0.tgz#d2b4bd9d5ced5ebd8dcade7640c7d7cd7f4f92b5" + dependencies: + postcss "^5.0.14" + + postcss-discard-overridden@^0.1.1: + version "0.1.1" + resolved "https://registry.yarnpkg.com/postcss-discard-overridden/-/postcss-discard-overridden-0.1.1.tgz#8b1eaf554f686fb288cd874c55667b0aa3668d58" + dependencies: + postcss "^5.0.16" + + postcss-discard-unused@^2.2.1: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-discard-unused/-/postcss-discard-unused-2.2.3.tgz#bce30b2cc591ffc634322b5fb3464b6d934f4433" + dependencies: + postcss "^5.0.14" + uniqs "^2.0.0" + + postcss-filter-plugins@^2.0.0: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-filter-plugins/-/postcss-filter-plugins-2.0.2.tgz#6d85862534d735ac420e4a85806e1f5d4286d84c" + dependencies: + postcss "^5.0.4" + uniqid "^4.0.0" + + postcss-load-config@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-config/-/postcss-load-config-1.2.0.tgz#539e9afc9ddc8620121ebf9d8c3673e0ce50d28a" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + postcss-load-options "^1.2.0" + postcss-load-plugins "^2.3.0" + + postcss-load-options@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-load-options/-/postcss-load-options-1.2.0.tgz#b098b1559ddac2df04bc0bb375f99a5cfe2b6d8c" + dependencies: + cosmiconfig "^2.1.0" + object-assign "^4.1.0" + + postcss-load-plugins@^2.3.0: + version "2.3.0" + resolved "https://registry.yarnpkg.com/postcss-load-plugins/-/postcss-load-plugins-2.3.0.tgz#745768116599aca2f009fad426b00175049d8d92" + dependencies: + cosmiconfig "^2.1.1" + object-assign "^4.1.0" + + postcss-loader@^2.0.9: + version "2.1.3" + resolved "https://registry.yarnpkg.com/postcss-loader/-/postcss-loader-2.1.3.tgz#eb210da734e475a244f76ccd61f9860f5bb3ee09" + dependencies: + loader-utils "^1.1.0" + postcss "^6.0.0" + postcss-load-config "^1.2.0" + schema-utils "^0.4.0" + + postcss-merge-idents@^2.1.5: + version "2.1.7" + resolved "https://registry.yarnpkg.com/postcss-merge-idents/-/postcss-merge-idents-2.1.7.tgz#4c5530313c08e1d5b3bbf3d2bbc747e278eea270" + dependencies: + has "^1.0.1" + postcss "^5.0.10" + postcss-value-parser "^3.1.1" + + postcss-merge-longhand@^2.0.1: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-merge-longhand/-/postcss-merge-longhand-2.0.2.tgz#23d90cd127b0a77994915332739034a1a4f3d658" + dependencies: + postcss "^5.0.4" + + postcss-merge-rules@^2.0.3: + version "2.1.2" + resolved "https://registry.yarnpkg.com/postcss-merge-rules/-/postcss-merge-rules-2.1.2.tgz#d1df5dfaa7b1acc3be553f0e9e10e87c61b5f721" + dependencies: + browserslist "^1.5.2" + caniuse-api "^1.5.2" + postcss "^5.0.4" + postcss-selector-parser "^2.2.2" + vendors "^1.0.0" + + postcss-message-helpers@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/postcss-message-helpers/-/postcss-message-helpers-2.0.0.tgz#a4f2f4fab6e4fe002f0aed000478cdf52f9ba60e" + + postcss-minify-font-values@^1.0.2: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-font-values/-/postcss-minify-font-values-1.0.5.tgz#4b58edb56641eba7c8474ab3526cafd7bbdecb69" + dependencies: + object-assign "^4.0.1" + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + + postcss-minify-gradients@^1.0.1: + version "1.0.5" + resolved "https://registry.yarnpkg.com/postcss-minify-gradients/-/postcss-minify-gradients-1.0.5.tgz#5dbda11373703f83cfb4a3ea3881d8d75ff5e6e1" + dependencies: + postcss "^5.0.12" + postcss-value-parser "^3.3.0" + + postcss-minify-params@^1.0.4: + version "1.2.2" + resolved "https://registry.yarnpkg.com/postcss-minify-params/-/postcss-minify-params-1.2.2.tgz#ad2ce071373b943b3d930a3fa59a358c28d6f1f3" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.2" + postcss-value-parser "^3.0.2" + uniqs "^2.0.0" + + postcss-minify-selectors@^2.0.4: + version "2.1.1" + resolved "https://registry.yarnpkg.com/postcss-minify-selectors/-/postcss-minify-selectors-2.1.1.tgz#b2c6a98c0072cf91b932d1a496508114311735bf" + dependencies: + alphanum-sort "^1.0.2" + has "^1.0.1" + postcss "^5.0.14" + postcss-selector-parser "^2.0.0" + + postcss-modules-extract-imports@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-extract-imports/-/postcss-modules-extract-imports-1.2.0.tgz#66140ecece38ef06bf0d3e355d69bf59d141ea85" + dependencies: + postcss "^6.0.1" + + postcss-modules-local-by-default@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/postcss-modules-local-by-default/-/postcss-modules-local-by-default-1.2.0.tgz#f7d80c398c5a393fa7964466bd19500a7d61c069" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + + postcss-modules-scope@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/postcss-modules-scope/-/postcss-modules-scope-1.1.0.tgz#d6ea64994c79f97b62a72b426fbe6056a194bb90" + dependencies: + css-selector-tokenizer "^0.7.0" + postcss "^6.0.1" + + postcss-modules-values@^1.3.0: + version "1.3.0" + resolved "https://registry.yarnpkg.com/postcss-modules-values/-/postcss-modules-values-1.3.0.tgz#ecffa9d7e192518389f42ad0e83f72aec456ea20" + dependencies: + icss-replace-symbols "^1.1.0" + postcss "^6.0.1" + + postcss-normalize-charset@^1.1.0: + version "1.1.1" + resolved "https://registry.yarnpkg.com/postcss-normalize-charset/-/postcss-normalize-charset-1.1.1.tgz#ef9ee71212d7fe759c78ed162f61ed62b5cb93f1" + dependencies: + postcss "^5.0.5" + + postcss-normalize-url@^3.0.7: + version "3.0.8" + resolved "https://registry.yarnpkg.com/postcss-normalize-url/-/postcss-normalize-url-3.0.8.tgz#108f74b3f2fcdaf891a2ffa3ea4592279fc78222" + dependencies: + is-absolute-url "^2.0.0" + normalize-url "^1.4.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + + postcss-ordered-values@^2.1.0: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-ordered-values/-/postcss-ordered-values-2.2.3.tgz#eec6c2a67b6c412a8db2042e77fe8da43f95c11d" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.1" + + postcss-reduce-idents@^2.2.2: + version "2.4.0" + resolved "https://registry.yarnpkg.com/postcss-reduce-idents/-/postcss-reduce-idents-2.4.0.tgz#c2c6d20cc958284f6abfbe63f7609bf409059ad3" + dependencies: + postcss "^5.0.4" + postcss-value-parser "^3.0.2" + + postcss-reduce-initial@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/postcss-reduce-initial/-/postcss-reduce-initial-1.0.1.tgz#68f80695f045d08263a879ad240df8dd64f644ea" + dependencies: + postcss "^5.0.4" + + postcss-reduce-transforms@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/postcss-reduce-transforms/-/postcss-reduce-transforms-1.0.4.tgz#ff76f4d8212437b31c298a42d2e1444025771ae1" + dependencies: + has "^1.0.1" + postcss "^5.0.8" + postcss-value-parser "^3.0.1" + + postcss-selector-parser@^2.0.0, postcss-selector-parser@^2.2.2: + version "2.2.3" + resolved "https://registry.yarnpkg.com/postcss-selector-parser/-/postcss-selector-parser-2.2.3.tgz#f9437788606c3c9acee16ffe8d8b16297f27bb90" + dependencies: + flatten "^1.0.2" + indexes-of "^1.0.1" + uniq "^1.0.1" + + postcss-svgo@^2.1.1: + version "2.1.6" + resolved "https://registry.yarnpkg.com/postcss-svgo/-/postcss-svgo-2.1.6.tgz#b6df18aa613b666e133f08adb5219c2684ac108d" + dependencies: + is-svg "^2.0.0" + postcss "^5.0.14" + postcss-value-parser "^3.2.3" + svgo "^0.7.0" + + postcss-unique-selectors@^2.0.2: + version "2.0.2" + resolved "https://registry.yarnpkg.com/postcss-unique-selectors/-/postcss-unique-selectors-2.0.2.tgz#981d57d29ddcb33e7b1dfe1fd43b8649f933ca1d" + dependencies: + alphanum-sort "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + + postcss-value-parser@^3.0.1, postcss-value-parser@^3.0.2, postcss-value-parser@^3.1.1, postcss-value-parser@^3.1.2, postcss-value-parser@^3.2.3, postcss-value-parser@^3.3.0: + version "3.3.0" + resolved "https://registry.yarnpkg.com/postcss-value-parser/-/postcss-value-parser-3.3.0.tgz#87f38f9f18f774a4ab4c8a232f5c5ce8872a9d15" + + postcss-zindex@^2.0.1: + version "2.2.0" + resolved "https://registry.yarnpkg.com/postcss-zindex/-/postcss-zindex-2.2.0.tgz#d2109ddc055b91af67fc4cb3b025946639d2af22" + dependencies: + has "^1.0.1" + postcss "^5.0.4" + uniqs "^2.0.0" + + postcss@^5.0.10, postcss@^5.0.11, postcss@^5.0.12, postcss@^5.0.13, postcss@^5.0.14, postcss@^5.0.16, postcss@^5.0.2, postcss@^5.0.4, postcss@^5.0.5, postcss@^5.0.6, postcss@^5.0.8, postcss@^5.2.16: + version "5.2.18" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-5.2.18.tgz#badfa1497d46244f6390f58b319830d9107853c5" + dependencies: + chalk "^1.1.3" + js-base64 "^2.1.9" + source-map "^0.5.6" + supports-color "^3.2.3" + + postcss@^6.0.0, postcss@^6.0.1: + version "6.0.21" + resolved "https://registry.yarnpkg.com/postcss/-/postcss-6.0.21.tgz#8265662694eddf9e9a5960db6da33c39e4cd069d" + dependencies: + chalk "^2.3.2" + source-map "^0.6.1" + supports-color "^5.3.0" + + prepend-http@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/prepend-http/-/prepend-http-1.0.4.tgz#d4f4562b0ce3696e41ac52d0e002e57a635dc6dc" + + preserve@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/preserve/-/preserve-0.2.0.tgz#815ed1f6ebc65926f865b310c0713bcb3315ce4b" + + pretty-error@^2.0.2: + version "2.1.1" + resolved "https://registry.yarnpkg.com/pretty-error/-/pretty-error-2.1.1.tgz#5f4f87c8f91e5ae3f3ba87ab4cf5e03b1a17f1a3" + dependencies: + renderkid "^2.0.1" + utila "~0.4" + + private@^0.1.6, private@^0.1.7: + version "0.1.8" + resolved "https://registry.yarnpkg.com/private/-/private-0.1.8.tgz#2381edb3689f7a53d653190060fcf822d2f368ff" + + process-nextick-args@~1.0.6: + version "1.0.7" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-1.0.7.tgz#150e20b756590ad3f91093f25a4f2ad8bff30ba3" + + process-nextick-args@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/process-nextick-args/-/process-nextick-args-2.0.0.tgz#a37d732f4271b4ab1ad070d35508e8290788ffaa" + + process@^0.11.10: + version "0.11.10" + resolved "https://registry.yarnpkg.com/process/-/process-0.11.10.tgz#7332300e840161bda3e69a1d1d91a7d4bc16f182" + + promise-inflight@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/promise-inflight/-/promise-inflight-1.0.1.tgz#98472870bf228132fcbdd868129bad12c3c029e3" + + promise@7.1.1: + version "7.1.1" + resolved "https://registry.yarnpkg.com/promise/-/promise-7.1.1.tgz#489654c692616b8aa55b0724fa809bb7db49c5bf" + dependencies: + asap "~2.0.3" + + proxy-addr@~2.0.3: + version "2.0.3" + resolved "https://registry.yarnpkg.com/proxy-addr/-/proxy-addr-2.0.3.tgz#355f262505a621646b3130a728eb647e22055341" + dependencies: + forwarded "~0.1.2" + ipaddr.js "1.6.0" + + prr@~1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/prr/-/prr-1.0.1.tgz#d3fc114ba06995a45ec6893f484ceb1d78f5f476" + + pseudomap@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" + + public-encrypt@^4.0.0: + version "4.0.2" + resolved "https://registry.yarnpkg.com/public-encrypt/-/public-encrypt-4.0.2.tgz#46eb9107206bf73489f8b85b69d91334c6610994" + dependencies: + bn.js "^4.1.0" + browserify-rsa "^4.0.0" + create-hash "^1.1.0" + parse-asn1 "^5.0.0" + randombytes "^2.0.1" + + pump@^2.0.0, pump@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/pump/-/pump-2.0.1.tgz#12399add6e4cf7526d973cbc8b5ce2e2908b3909" + dependencies: + end-of-stream "^1.1.0" + once "^1.3.1" + + pumpify@^1.3.3: + version "1.4.0" + resolved "https://registry.yarnpkg.com/pumpify/-/pumpify-1.4.0.tgz#80b7c5df7e24153d03f0e7ac8a05a5d068bd07fb" + dependencies: + duplexify "^3.5.3" + inherits "^2.0.3" + pump "^2.0.0" + + punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + + punycode@^1.2.4, punycode@^1.4.1: + version "1.4.1" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" + + punycode@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" + + q@^1.1.2: + version "1.5.1" + resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" + + qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + + qs@~6.2.0: + version "6.2.3" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" + + qs@~6.3.0: + version "6.3.2" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.3.2.tgz#e75bd5f6e268122a2a0e0bda630b2550c166502c" + + qs@~6.4.0: + version "6.4.0" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" + + query-string@^4.1.0: + version "4.3.4" + resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" + dependencies: + object-assign "^4.1.0" + strict-uri-encode "^1.0.0" + + querystring-es3@^0.2.0: + version "0.2.1" + resolved "https://registry.yarnpkg.com/querystring-es3/-/querystring-es3-0.2.1.tgz#9ec61f79049875707d69414596fd907a4d711e73" + + querystring@0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" + + querystringify@0.0.x: + version "0.0.4" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" + + querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + + randomatic@^1.1.3: + version "1.1.7" + resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" + dependencies: + is-number "^3.0.0" + kind-of "^4.0.0" + + randombytes@^2.0.0, randombytes@^2.0.1, randombytes@^2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/randombytes/-/randombytes-2.0.6.tgz#d302c522948588848a8d300c932b44c24231da80" + dependencies: + safe-buffer "^5.1.0" + + randomfill@^1.0.3: + version "1.0.4" + resolved "https://registry.yarnpkg.com/randomfill/-/randomfill-1.0.4.tgz#c92196fc86ab42be983f1bf31778224931d61458" + dependencies: + randombytes "^2.0.5" + safe-buffer "^5.1.0" + + range-parser@^1.0.3, range-parser@~1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/range-parser/-/range-parser-1.2.0.tgz#f49be6b487894ddc40dcc94a322f611092e00d5e" + + raw-body@2.3.2: + version "2.3.2" + resolved "https://registry.yarnpkg.com/raw-body/-/raw-body-2.3.2.tgz#bcd60c77d3eb93cde0050295c3f379389bc88f89" + dependencies: + bytes "3.0.0" + http-errors "1.6.2" + iconv-lite "0.4.19" + unpipe "1.0.0" + + rc@^1.1.7: + version "1.2.6" + resolved "https://registry.yarnpkg.com/rc/-/rc-1.2.6.tgz#eb18989c6d4f4f162c399f79ddd29f3835568092" + dependencies: + deep-extend "~0.4.0" + ini "~1.3.0" + minimist "^1.2.0" + strip-json-comments "~2.0.1" + + read-pkg-up@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-1.0.1.tgz#9d63c13276c065918d57f002a57f40a1b643fb02" + dependencies: + find-up "^1.0.0" + read-pkg "^1.0.0" + + read-pkg-up@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg-up/-/read-pkg-up-2.0.0.tgz#6b72a8048984e0c41e79510fd5e9fa99b3b549be" + dependencies: + find-up "^2.0.0" + read-pkg "^2.0.0" + + read-pkg@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-1.1.0.tgz#f5ffaa5ecd29cb31c0474bca7d756b6bb29e3f28" + dependencies: + load-json-file "^1.0.0" + normalize-package-data "^2.3.2" + path-type "^1.0.0" + + read-pkg@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/read-pkg/-/read-pkg-2.0.0.tgz#8ef1c0623c6a6db0dc6713c4bfac46332b2368f8" + dependencies: + load-json-file "^2.0.0" + normalize-package-data "^2.3.2" + path-type "^2.0.0" + + "readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: + version "2.3.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.3" + isarray "~1.0.0" + process-nextick-args "~2.0.0" + safe-buffer "~5.1.1" + string_decoder "~1.1.1" + util-deprecate "~1.0.1" + + readable-stream@1.0: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + + readable-stream@~2.0.5: + version "2.0.6" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "~1.0.0" + process-nextick-args "~1.0.6" + string_decoder "~0.10.x" + util-deprecate "~1.0.1" + + readdirp@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" + dependencies: + graceful-fs "^4.1.2" + minimatch "^3.0.2" + readable-stream "^2.0.2" + set-immediate-shim "^1.0.1" + + redent@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/redent/-/redent-1.0.0.tgz#cf916ab1fd5f1f16dfb20822dd6ec7f730c2afde" + dependencies: + indent-string "^2.1.0" + strip-indent "^1.0.1" + + reduce-css-calc@^1.2.6: + version "1.3.0" + resolved "https://registry.yarnpkg.com/reduce-css-calc/-/reduce-css-calc-1.3.0.tgz#747c914e049614a4c9cfbba629871ad1d2927716" + dependencies: + balanced-match "^0.4.2" + math-expression-evaluator "^1.2.14" + reduce-function-call "^1.0.1" + + reduce-function-call@^1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/reduce-function-call/-/reduce-function-call-1.0.2.tgz#5a200bf92e0e37751752fe45b0ab330fd4b6be99" + dependencies: + balanced-match "^0.4.2" + + regenerate@^1.2.1: + version "1.3.3" + resolved "https://registry.yarnpkg.com/regenerate/-/regenerate-1.3.3.tgz#0c336d3980553d755c39b586ae3b20aa49c82b7f" + + regenerator-runtime@^0.11.0: + version "0.11.1" + resolved "https://registry.yarnpkg.com/regenerator-runtime/-/regenerator-runtime-0.11.1.tgz#be05ad7f9bf7d22e056f9726cee5017fbf19e2e9" + + regenerator-transform@^0.10.0: + version "0.10.1" + resolved "https://registry.yarnpkg.com/regenerator-transform/-/regenerator-transform-0.10.1.tgz#1e4996837231da8b7f3cf4114d71b5691a0680dd" + dependencies: + babel-runtime "^6.18.0" + babel-types "^6.19.0" + private "^0.1.6" + + regex-cache@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/regex-cache/-/regex-cache-0.4.4.tgz#75bdc58a2a1496cec48a12835bc54c8d562336dd" + dependencies: + is-equal-shallow "^0.1.3" + + regex-not@^1.0.0, regex-not@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/regex-not/-/regex-not-1.0.2.tgz#1f4ece27e00b0b65e0247a6810e6a85d83a5752c" + dependencies: + extend-shallow "^3.0.2" + safe-regex "^1.1.0" + + regex-parser@^2.2.9: + version "2.2.9" + resolved "https://registry.yarnpkg.com/regex-parser/-/regex-parser-2.2.9.tgz#a372f45a248b62976a568037c1b6e60a60599192" + + regexpu-core@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-1.0.0.tgz#86a763f58ee4d7c2f6b102e4764050de7ed90c6b" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + + regexpu-core@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/regexpu-core/-/regexpu-core-2.0.0.tgz#49d038837b8dcf8bfa5b9a42139938e6ea2ae240" + dependencies: + regenerate "^1.2.1" + regjsgen "^0.2.0" + regjsparser "^0.1.4" + + regjsgen@^0.2.0: + version "0.2.0" + resolved "https://registry.yarnpkg.com/regjsgen/-/regjsgen-0.2.0.tgz#6c016adeac554f75823fe37ac05b92d5a4edb1f7" + + regjsparser@^0.1.4: + version "0.1.5" + resolved "https://registry.yarnpkg.com/regjsparser/-/regjsparser-0.1.5.tgz#7ee8f84dc6fa792d3fd0ae228d24bd949ead205c" + dependencies: + jsesc "~0.5.0" + + relateurl@0.2.x: + version "0.2.7" + resolved "https://registry.yarnpkg.com/relateurl/-/relateurl-0.2.7.tgz#54dbf377e51440aca90a4cd274600d3ff2d888a9" + + remove-trailing-separator@^1.0.1: + version "1.1.0" + resolved "https://registry.yarnpkg.com/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz#c24bce2a283adad5bc3f58e0d48249b92379d8ef" + + renderkid@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/renderkid/-/renderkid-2.0.1.tgz#898cabfc8bede4b7b91135a3ffd323e58c0db319" + dependencies: + css-select "^1.1.0" + dom-converter "~0.1" + htmlparser2 "~3.3.0" + strip-ansi "^3.0.0" + utila "~0.3" + + repeat-element@^1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/repeat-element/-/repeat-element-1.1.2.tgz#ef089a178d1483baae4d93eb98b4f9e4e11d990a" + + repeat-string@^1.5.2, repeat-string@^1.6.1: + version "1.6.1" + resolved "https://registry.yarnpkg.com/repeat-string/-/repeat-string-1.6.1.tgz#8dcae470e1c88abc2d600fff4a776286da75e637" + + repeating@^2.0.0: + version "2.0.1" + resolved "https://registry.yarnpkg.com/repeating/-/repeating-2.0.1.tgz#5214c53a926d3552707527fbab415dbc08d06dda" + dependencies: + is-finite "^1.0.0" + + request@2: + version "2.85.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" + dependencies: + aws-sign2 "~0.7.0" + aws4 "^1.6.0" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.1" + forever-agent "~0.6.1" + form-data "~2.3.1" + har-validator "~5.0.3" + hawk "~6.0.2" + http-signature "~1.2.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.17" + oauth-sign "~0.8.2" + performance-now "^2.1.0" + qs "~6.5.1" + safe-buffer "^5.1.1" + stringstream "~0.0.5" + tough-cookie "~2.3.3" + tunnel-agent "^0.6.0" + uuid "^3.1.0" + + request@2.74.0: + version "2.74.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.74.0.tgz#7693ca768bbb0ea5c8ce08c084a45efa05b892ab" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + bl "~1.1.2" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~1.0.0-rc4" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + node-uuid "~1.4.7" + oauth-sign "~0.8.1" + qs "~6.2.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + + request@2.79.0, request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + + request@2.81.0: + version "2.81.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.12.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~4.2.1" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + performance-now "^0.2.0" + qs "~6.4.0" + safe-buffer "^5.0.1" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "^0.6.0" + uuid "^3.0.0" + + require-directory@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/require-directory/-/require-directory-2.1.1.tgz#8c64ad5fd30dab1c976e2344ffe7f792a6a6df42" + + require-from-string@^1.1.0: + version "1.2.1" + resolved "https://registry.yarnpkg.com/require-from-string/-/require-from-string-1.2.1.tgz#529c9ccef27380adfec9a2f965b649bbee636418" + + require-main-filename@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" + + requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" + + resolve-cwd@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/resolve-cwd/-/resolve-cwd-2.0.0.tgz#00a9f7387556e27038eae232caa372a6a59b665a" + dependencies: + resolve-from "^3.0.0" + + resolve-from@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/resolve-from/-/resolve-from-3.0.0.tgz#b22c7af7d9d6881bc8b6e653335eebcb0a188748" + + resolve-url-loader@^2.2.1: + version "2.3.0" + resolved "https://registry.yarnpkg.com/resolve-url-loader/-/resolve-url-loader-2.3.0.tgz#e1b37034d48f22f8cfb9f04c026faaa070fdaf26" + dependencies: + adjust-sourcemap-loader "^1.1.0" + camelcase "^4.1.0" + convert-source-map "^1.5.1" + loader-utils "^1.1.0" + lodash.defaults "^4.0.0" + rework "^1.0.1" + rework-visit "^1.0.0" + source-map "^0.5.7" + urix "^0.1.0" + + resolve-url@^0.2.1, resolve-url@~0.2.1: + version "0.2.1" + resolved "https://registry.yarnpkg.com/resolve-url/-/resolve-url-0.2.1.tgz#2c637fe77c893afd2a663fe21aa9080068e2052a" + + ret@~0.1.10: + version "0.1.15" + resolved "https://registry.yarnpkg.com/ret/-/ret-0.1.15.tgz#b8a4825d5bdb1fc3f6f53c2bc33f81388681c7bc" + + rework-visit@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/rework-visit/-/rework-visit-1.0.0.tgz#9945b2803f219e2f7aca00adb8bc9f640f842c9a" + + rework@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/rework/-/rework-1.0.1.tgz#30806a841342b54510aa4110850cd48534144aa7" + dependencies: + convert-source-map "^0.3.3" + css "^2.0.0" + + right-align@^0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/right-align/-/right-align-0.1.3.tgz#61339b722fe6a3515689210d24e14c96148613ef" + dependencies: + align-text "^0.1.1" + + rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: + version "2.6.2" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" + dependencies: + glob "^7.0.5" + + rimraf@~2.2.6: + version "2.2.8" + resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.2.8.tgz#e439be2aaee327321952730f99a8929e4fc50582" + + ripemd160@^2.0.0, ripemd160@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/ripemd160/-/ripemd160-2.0.1.tgz#0f4584295c53a3628af7e6d79aca21ce57d1c6e7" + dependencies: + hash-base "^2.0.0" + inherits "^2.0.1" + + run-queue@^1.0.0, run-queue@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/run-queue/-/run-queue-1.0.3.tgz#e848396f057d223f24386924618e25694161ec47" + dependencies: + aproba "^1.1.1" + + safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: + version "5.1.1" + resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" + + safe-regex@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/safe-regex/-/safe-regex-1.1.0.tgz#40a3669f3b077d1e943d44629e157dd48023bf2e" + dependencies: + ret "~0.1.10" + + sass-graph@^2.2.4: + version "2.2.4" + resolved "https://registry.yarnpkg.com/sass-graph/-/sass-graph-2.2.4.tgz#13fbd63cd1caf0908b9fd93476ad43a51d1e0b49" + dependencies: + glob "^7.0.0" + lodash "^4.0.0" + scss-tokenizer "^0.2.3" + yargs "^7.0.0" + + sax@~1.2.1: + version "1.2.4" + resolved "https://registry.yarnpkg.com/sax/-/sax-1.2.4.tgz#2816234e2378bddc4e5354fab5caa895df7100d9" + + schema-utils@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.3.0.tgz#f5877222ce3e931edae039f17eb3716e7137f8cf" + dependencies: + ajv "^5.0.0" + + schema-utils@^0.4.0, schema-utils@^0.4.5: + version "0.4.5" + resolved "https://registry.yarnpkg.com/schema-utils/-/schema-utils-0.4.5.tgz#21836f0608aac17b78f9e3e24daff14a5ca13a3e" + dependencies: + ajv "^6.1.0" + ajv-keywords "^3.1.0" + + scss-tokenizer@^0.2.3: + version "0.2.3" + resolved "https://registry.yarnpkg.com/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz#8eb06db9a9723333824d3f5530641149847ce5d1" + dependencies: + js-base64 "^2.1.8" + source-map "^0.4.2" + + select-hose@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/select-hose/-/select-hose-2.0.0.tgz#625d8658f865af43ec962bfc376a37359a4994ca" + + selfsigned@^1.9.1: + version "1.10.2" + resolved "https://registry.yarnpkg.com/selfsigned/-/selfsigned-1.10.2.tgz#b4449580d99929b65b10a48389301a6592088758" + dependencies: + node-forge "0.7.1" + + "semver@2 || 3 || 4 || 5", semver@^5.3.0: + version "5.5.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" + + semver@~5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/semver/-/semver-5.3.0.tgz#9b2ce5d3de02d17c6012ad326aa6b4d0cf54f94f" + + send@0.16.2: + version "0.16.2" + resolved "https://registry.yarnpkg.com/send/-/send-0.16.2.tgz#6ecca1e0f8c156d141597559848df64730a6bbc1" + dependencies: + debug "2.6.9" + depd "~1.1.2" + destroy "~1.0.4" + encodeurl "~1.0.2" + escape-html "~1.0.3" + etag "~1.8.1" + fresh "0.5.2" + http-errors "~1.6.2" + mime "1.4.1" + ms "2.0.0" + on-finished "~2.3.0" + range-parser "~1.2.0" + statuses "~1.4.0" + + serialize-javascript@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/serialize-javascript/-/serialize-javascript-1.4.0.tgz#7c958514db6ac2443a8abc062dc9f7886a7f6005" + + serve-index@^1.7.2: + version "1.9.1" + resolved "https://registry.yarnpkg.com/serve-index/-/serve-index-1.9.1.tgz#d3768d69b1e7d82e5ce050fff5b453bea12a9239" + dependencies: + accepts "~1.3.4" + batch "0.6.1" + debug "2.6.9" + escape-html "~1.0.3" + http-errors "~1.6.2" + mime-types "~2.1.17" + parseurl "~1.3.2" + + serve-static@1.13.2: + version "1.13.2" + resolved "https://registry.yarnpkg.com/serve-static/-/serve-static-1.13.2.tgz#095e8472fd5b46237db50ce486a43f4b86c6cec1" + dependencies: + encodeurl "~1.0.2" + escape-html "~1.0.3" + parseurl "~1.3.2" + send "0.16.2" + + set-blocking@^2.0.0, set-blocking@~2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-blocking/-/set-blocking-2.0.0.tgz#045f9782d011ae9a6803ddd382b24392b3d890f7" + + set-immediate-shim@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz#4b2b1b27eb808a9f8dcc481a58e5e56f599f3f61" + + set-value@^0.4.3: + version "0.4.3" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-0.4.3.tgz#7db08f9d3d22dc7f78e53af3c3bf4666ecdfccf1" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.1" + to-object-path "^0.3.0" + + set-value@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/set-value/-/set-value-2.0.0.tgz#71ae4a88f0feefbbf52d1ea604f3fb315ebb6274" + dependencies: + extend-shallow "^2.0.1" + is-extendable "^0.1.1" + is-plain-object "^2.0.3" + split-string "^3.0.1" + + setimmediate@^1.0.4: + version "1.0.5" + resolved "https://registry.yarnpkg.com/setimmediate/-/setimmediate-1.0.5.tgz#290cbb232e306942d7d7ea9b83732ab7856f8285" + + setprototypeof@1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.0.3.tgz#66567e37043eeb4f04d91bd658c0cbefb55b8e04" + + setprototypeof@1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/setprototypeof/-/setprototypeof-1.1.0.tgz#d0bd85536887b6fe7c0d818cb962d9d91c54e656" + + sha.js@^2.4.0, sha.js@^2.4.8: + version "2.4.11" + resolved "https://registry.yarnpkg.com/sha.js/-/sha.js-2.4.11.tgz#37a5cf0b81ecbc6943de109ba2960d1b26584ae7" + dependencies: + inherits "^2.0.1" + safe-buffer "^5.0.1" + + shebang-command@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/shebang-command/-/shebang-command-1.2.0.tgz#44aac65b695b03398968c39f363fee5deafdf1ea" + dependencies: + shebang-regex "^1.0.0" + + shebang-regex@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/shebang-regex/-/shebang-regex-1.0.0.tgz#da42f49740c0b42db2ca9728571cb190c98efea3" + + shell-quote@^1.4.3: + version "1.6.1" + resolved "https://registry.yarnpkg.com/shell-quote/-/shell-quote-1.6.1.tgz#f4781949cce402697127430ea3b3c5476f481767" + dependencies: + array-filter "~0.0.0" + array-map "~0.0.0" + array-reduce "~0.0.0" + jsonify "~0.0.0" + + signal-exit@^3.0.0: + version "3.0.2" + resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.2.tgz#b5fdc08f1287ea1178628e415e25132b73646c6d" + + slash@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/slash/-/slash-1.0.0.tgz#c41f2f6c39fc16d1cd17ad4b5d896114ae470d55" + + snapdragon-node@^2.0.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/snapdragon-node/-/snapdragon-node-2.1.1.tgz#6c175f86ff14bdb0724563e8f3c1b021a286853b" + dependencies: + define-property "^1.0.0" + isobject "^3.0.0" + snapdragon-util "^3.0.1" + + snapdragon-util@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/snapdragon-util/-/snapdragon-util-3.0.1.tgz#f956479486f2acd79700693f6f7b805e45ab56e2" + dependencies: + kind-of "^3.2.0" + + snapdragon@^0.8.1: + version "0.8.2" + resolved "https://registry.yarnpkg.com/snapdragon/-/snapdragon-0.8.2.tgz#64922e7c565b0e14204ba1aa7d6964278d25182d" + dependencies: + base "^0.11.1" + debug "^2.2.0" + define-property "^0.2.5" + extend-shallow "^2.0.1" + map-cache "^0.2.2" + source-map "^0.5.6" + source-map-resolve "^0.5.0" + use "^3.1.0" + + sntp@1.x.x: + version "1.0.9" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-1.0.9.tgz#6541184cc90aeea6c6e7b35e2659082443c66198" + dependencies: + hoek "2.x.x" + + sntp@2.x.x: + version "2.1.0" + resolved "https://registry.yarnpkg.com/sntp/-/sntp-2.1.0.tgz#2c6cec14fedc2222739caf9b5c3d85d1cc5a2cc8" + dependencies: + hoek "4.x.x" + + sockjs-client@1.1.4: + version "1.1.4" + resolved "https://registry.yarnpkg.com/sockjs-client/-/sockjs-client-1.1.4.tgz#5babe386b775e4cf14e7520911452654016c8b12" + dependencies: + debug "^2.6.6" + eventsource "0.1.6" + faye-websocket "~0.11.0" + inherits "^2.0.1" + json3 "^3.3.2" + url-parse "^1.1.8" + + sockjs@0.3.19: + version "0.3.19" + resolved "https://registry.yarnpkg.com/sockjs/-/sockjs-0.3.19.tgz#d976bbe800af7bd20ae08598d582393508993c0d" + dependencies: + faye-websocket "^0.10.0" + uuid "^3.0.1" + + sort-keys@^1.0.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/sort-keys/-/sort-keys-1.1.2.tgz#441b6d4d346798f1b4e49e8920adfba0e543f9ad" + dependencies: + is-plain-obj "^1.0.0" + + source-list-map@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/source-list-map/-/source-list-map-2.0.0.tgz#aaa47403f7b245a92fbc97ea08f250d6087ed085" + + source-map-resolve@^0.3.0: + version "0.3.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.3.1.tgz#610f6122a445b8dd51535a2a71b783dfc1248761" + dependencies: + atob "~1.1.0" + resolve-url "~0.2.1" + source-map-url "~0.3.0" + urix "~0.1.0" + + source-map-resolve@^0.5.0: + version "0.5.1" + resolved "https://registry.yarnpkg.com/source-map-resolve/-/source-map-resolve-0.5.1.tgz#7ad0f593f2281598e854df80f19aae4b92d7a11a" + dependencies: + atob "^2.0.0" + decode-uri-component "^0.2.0" + resolve-url "^0.2.1" + source-map-url "^0.4.0" + urix "^0.1.0" + + source-map-support@^0.4.15: + version "0.4.18" + resolved "https://registry.yarnpkg.com/source-map-support/-/source-map-support-0.4.18.tgz#0286a6de8be42641338594e97ccea75f0a2c585f" + dependencies: + source-map "^0.5.6" + + source-map-url@^0.4.0: + version "0.4.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.4.0.tgz#3e935d7ddd73631b97659956d55128e87b5084a3" + + source-map-url@~0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" + + source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + + source-map@^0.1.38: + version "0.1.43" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" + dependencies: + amdefine ">=0.0.4" + + source-map@^0.4.2: + version "0.4.4" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.4.4.tgz#eba4f5da9c0dc999de68032d8b4f76173652036b" + dependencies: + amdefine ">=0.0.4" + + source-map@^0.6.1, source-map@~0.6.1: + version "0.6.1" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" + + spdx-correct@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-correct/-/spdx-correct-3.0.0.tgz#05a5b4d7153a195bc92c3c425b69f3b2a9524c82" + dependencies: + spdx-expression-parse "^3.0.0" + spdx-license-ids "^3.0.0" + + spdx-exceptions@^2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdx-exceptions/-/spdx-exceptions-2.1.0.tgz#2c7ae61056c714a5b9b9b2b2af7d311ef5c78fe9" + + spdx-expression-parse@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz#99e119b7a5da00e05491c9fa338b7904823b41d0" + dependencies: + spdx-exceptions "^2.1.0" + spdx-license-ids "^3.0.0" + + spdx-license-ids@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/spdx-license-ids/-/spdx-license-ids-3.0.0.tgz#7a7cd28470cc6d3a1cfe6d66886f6bc430d3ac87" + + spdy-transport@^2.0.18: + version "2.1.0" + resolved "https://registry.yarnpkg.com/spdy-transport/-/spdy-transport-2.1.0.tgz#4bbb15aaffed0beefdd56ad61dbdc8ba3e2cb7a1" + dependencies: + debug "^2.6.8" + detect-node "^2.0.3" + hpack.js "^2.1.6" + obuf "^1.1.1" + readable-stream "^2.2.9" + safe-buffer "^5.0.1" + wbuf "^1.7.2" + + spdy@^3.4.1: + version "3.4.7" + resolved "https://registry.yarnpkg.com/spdy/-/spdy-3.4.7.tgz#42ff41ece5cc0f99a3a6c28aabb73f5c3b03acbc" + dependencies: + debug "^2.6.8" + handle-thing "^1.2.5" + http-deceiver "^1.2.7" + safe-buffer "^5.0.1" + select-hose "^2.0.0" + spdy-transport "^2.0.18" + + split-string@^3.0.1, split-string@^3.0.2: + version "3.1.0" + resolved "https://registry.yarnpkg.com/split-string/-/split-string-3.1.0.tgz#7cb09dda3a86585705c64b39a6466038682e8fe2" + dependencies: + extend-shallow "^3.0.0" + + split@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/split/-/split-1.0.1.tgz#605bd9be303aa59fb35f9229fbea0ddec9ea07d9" + dependencies: + through "2" + + sprintf-js@~1.0.2: + version "1.0.3" + resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" + + sshpk@^1.7.0: + version "1.14.1" + resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.14.1.tgz#130f5975eddad963f1d56f92b9ac6c51fa9f83eb" + dependencies: + asn1 "~0.2.3" + assert-plus "^1.0.0" + dashdash "^1.12.0" + getpass "^0.1.1" + optionalDependencies: + bcrypt-pbkdf "^1.0.0" + ecc-jsbn "~0.1.1" + jsbn "~0.1.0" + tweetnacl "~0.14.0" + + ssri@^5.2.4: + version "5.3.0" + resolved "https://registry.yarnpkg.com/ssri/-/ssri-5.3.0.tgz#ba3872c9c6d33a0704a7d71ff045e5ec48999d06" + dependencies: + safe-buffer "^5.1.1" + + static-extend@^0.1.1: + version "0.1.2" + resolved "https://registry.yarnpkg.com/static-extend/-/static-extend-0.1.2.tgz#60809c39cbff55337226fd5e0b520f341f1fb5c6" + dependencies: + define-property "^0.2.5" + object-copy "^0.1.0" + + "statuses@>= 1.3.1 < 2", "statuses@>= 1.4.0 < 2": + version "1.5.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" + + statuses@~1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.4.0.tgz#bb73d446da2796106efcc1b601a253d6c46bd087" + + stdout-stream@^1.4.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/stdout-stream/-/stdout-stream-1.4.0.tgz#a2c7c8587e54d9427ea9edb3ac3f2cd522df378b" + dependencies: + readable-stream "^2.0.1" + + stream-browserify@^2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/stream-browserify/-/stream-browserify-2.0.1.tgz#66266ee5f9bdb9940a4e4514cafb43bb71e5c9db" + dependencies: + inherits "~2.0.1" + readable-stream "^2.0.2" + + stream-each@^1.1.0: + version "1.2.2" + resolved "https://registry.yarnpkg.com/stream-each/-/stream-each-1.2.2.tgz#8e8c463f91da8991778765873fe4d960d8f616bd" + dependencies: + end-of-stream "^1.1.0" + stream-shift "^1.0.0" + + stream-http@^2.7.2: + version "2.8.1" + resolved "https://registry.yarnpkg.com/stream-http/-/stream-http-2.8.1.tgz#d0441be1a457a73a733a8a7b53570bebd9ef66a4" + dependencies: + builtin-status-codes "^3.0.0" + inherits "^2.0.1" + readable-stream "^2.3.3" + to-arraybuffer "^1.0.0" + xtend "^4.0.0" + + stream-shift@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/stream-shift/-/stream-shift-1.0.0.tgz#d5c752825e5367e786f78e18e445ea223a155952" + + strict-uri-encode@^1.0.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" + + string-width@^1.0.1, string-width@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" + dependencies: + code-point-at "^1.0.0" + is-fullwidth-code-point "^1.0.0" + strip-ansi "^3.0.0" + + string-width@^2.0.0, string-width@^2.1.1: + version "2.1.1" + resolved "https://registry.yarnpkg.com/string-width/-/string-width-2.1.1.tgz#ab93f27a8dc13d28cac815c462143a6d9012ae9e" + dependencies: + is-fullwidth-code-point "^2.0.0" + strip-ansi "^4.0.0" + + string_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + + string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + + stringstream@~0.0.4, stringstream@~0.0.5: + version "0.0.5" + resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" + + strip-ansi@^3.0.0, strip-ansi@^3.0.1: + version "3.0.1" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-3.0.1.tgz#6a385fb8853d952d5ff05d0e8aaf94278dc63dcf" + dependencies: + ansi-regex "^2.0.0" + + strip-ansi@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/strip-ansi/-/strip-ansi-4.0.0.tgz#a8479022eb1ac368a871389b635262c505ee368f" + dependencies: + ansi-regex "^3.0.0" + + strip-bom@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-2.0.0.tgz#6219a85616520491f35788bdbf1447a99c7e6b0e" + dependencies: + is-utf8 "^0.2.0" + + strip-bom@^3.0.0: + version "3.0.0" + resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" + + strip-eof@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/strip-eof/-/strip-eof-1.0.0.tgz#bb43ff5598a6eb05d89b59fcd129c983313606bf" + + strip-indent@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/strip-indent/-/strip-indent-1.0.1.tgz#0c7962a6adefa7bbd4ac366460a638552ae1a0a2" + dependencies: + get-stdin "^4.0.1" + + strip-json-comments@~2.0.1: + version "2.0.1" + resolved "https://registry.yarnpkg.com/strip-json-comments/-/strip-json-comments-2.0.1.tgz#3c531942e908c2697c0ec344858c286c7ca0a60a" + + style-loader@^0.19.0: + version "0.19.1" + resolved "https://registry.yarnpkg.com/style-loader/-/style-loader-0.19.1.tgz#591ffc80bcefe268b77c5d9ebc0505d772619f85" + dependencies: + loader-utils "^1.0.2" + schema-utils "^0.3.0" + + supports-color@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" + dependencies: + has-flag "^2.0.0" + + supports-color@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" + + supports-color@^3.2.3: + version "3.2.3" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-3.2.3.tgz#65ac0504b3954171d8a64946b2ae3cbb8a5f54f6" + dependencies: + has-flag "^1.0.0" + + supports-color@^4.0.0, supports-color@^4.2.1: + version "4.5.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.5.0.tgz#be7a0de484dec5c5cddf8b3d59125044912f635b" + dependencies: + has-flag "^2.0.0" + + supports-color@^5.1.0, supports-color@^5.3.0: + version "5.3.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-5.3.0.tgz#5b24ac15db80fa927cf5227a4a33fd3c4c7676c0" + dependencies: + has-flag "^3.0.0" + + svgo@^0.7.0: + version "0.7.2" + resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" + dependencies: + coa "~1.0.1" + colors "~1.1.2" + csso "~2.3.1" + js-yaml "~3.7.0" + mkdirp "~0.5.1" + sax "~1.2.1" + whet.extend "~0.9.9" + + tapable@^0.2.7: + version "0.2.8" + resolved "https://registry.yarnpkg.com/tapable/-/tapable-0.2.8.tgz#99372a5c999bf2df160afc0d74bed4f47948cd22" + + tar-pack@^3.4.0: + version "3.4.1" + resolved "https://registry.yarnpkg.com/tar-pack/-/tar-pack-3.4.1.tgz#e1dbc03a9b9d3ba07e896ad027317eb679a10a1f" + dependencies: + debug "^2.2.0" + fstream "^1.0.10" + fstream-ignore "^1.0.5" + once "^1.3.3" + readable-stream "^2.1.4" + rimraf "^2.5.1" + tar "^2.2.1" + uid-number "^0.0.6" + + tar@2.2.1, tar@^2.0.0, tar@^2.2.1: + version "2.2.1" + resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" + dependencies: + block-stream "*" + fstream "^1.0.2" + inherits "2" + + temp@^0.8.3: + version "0.8.3" + resolved "https://registry.yarnpkg.com/temp/-/temp-0.8.3.tgz#e0c6bc4d26b903124410e4fed81103014dfc1f59" + dependencies: + os-tmpdir "^1.0.0" + rimraf "~2.2.6" + + through2@^2.0.0: + version "2.0.3" + resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" + dependencies: + readable-stream "^2.1.5" + xtend "~4.0.1" + + through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + + thunky@^1.0.2: + version "1.0.2" + resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" + + time-stamp@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/time-stamp/-/time-stamp-2.0.0.tgz#95c6a44530e15ba8d6f4a3ecb8c3a3fac46da357" + + timers-browserify@^2.0.4: + version "2.0.6" + resolved "https://registry.yarnpkg.com/timers-browserify/-/timers-browserify-2.0.6.tgz#241e76927d9ca05f4d959819022f5b3664b64bae" + dependencies: + setimmediate "^1.0.4" + + to-arraybuffer@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz#7d229b1fcc637e466ca081180836a7aabff83f43" + + to-fast-properties@^1.0.3: + version "1.0.3" + resolved "https://registry.yarnpkg.com/to-fast-properties/-/to-fast-properties-1.0.3.tgz#b83571fa4d8c25b82e231b06e3a3055de4ca1a47" + + to-object-path@^0.3.0: + version "0.3.0" + resolved "https://registry.yarnpkg.com/to-object-path/-/to-object-path-0.3.0.tgz#297588b7b0e7e0ac08e04e672f85c1f4999e17af" + dependencies: + kind-of "^3.0.2" + + to-regex-range@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/to-regex-range/-/to-regex-range-2.1.1.tgz#7c80c17b9dfebe599e27367e0d4dd5590141db38" + dependencies: + is-number "^3.0.0" + repeat-string "^1.6.1" + + to-regex@^3.0.1, to-regex@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/to-regex/-/to-regex-3.0.2.tgz#13cfdd9b336552f30b51f33a8ae1b42a7a7599ce" + dependencies: + define-property "^2.0.2" + extend-shallow "^3.0.2" + regex-not "^1.0.2" + safe-regex "^1.1.0" + + toposort@^1.0.0: + version "1.0.6" + resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" + + tough-cookie@~2.3.0, tough-cookie@~2.3.3: + version "2.3.4" + resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.3.4.tgz#ec60cee38ac675063ffc97a5c18970578ee83655" + dependencies: + punycode "^1.4.1" + + trim-newlines@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/trim-newlines/-/trim-newlines-1.0.0.tgz#5887966bb582a4503a41eb524f7d35011815a613" + + trim-right@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/trim-right/-/trim-right-1.0.1.tgz#cb2e1203067e0c8de1f614094b9fe45704ea6003" + + "true-case-path@^1.0.2": + version "1.0.2" + resolved "https://registry.yarnpkg.com/true-case-path/-/true-case-path-1.0.2.tgz#7ec91130924766c7f573be3020c34f8fdfd00d62" + dependencies: + glob "^6.0.4" + + tty-browserify@0.0.0: + version "0.0.0" + resolved "https://registry.yarnpkg.com/tty-browserify/-/tty-browserify-0.0.0.tgz#a157ba402da24e9bf957f9aa69d524eed42901a6" + + tunnel-agent@^0.6.0: + version "0.6.0" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.6.0.tgz#27a5dea06b36b04a0a9966774b290868f0fc40fd" + dependencies: + safe-buffer "^5.0.1" + + tunnel-agent@~0.4.1: + version "0.4.3" + resolved "https://registry.yarnpkg.com/tunnel-agent/-/tunnel-agent-0.4.3.tgz#6373db76909fe570e08d73583365ed828a74eeeb" + + tweetnacl@^0.14.3, tweetnacl@~0.14.0: + version "0.14.5" + resolved "https://registry.yarnpkg.com/tweetnacl/-/tweetnacl-0.14.5.tgz#5ae68177f192d4456269d108afa93ff8743f4f64" + + type-is@~1.6.15, type-is@~1.6.16: + version "1.6.16" + resolved "https://registry.yarnpkg.com/type-is/-/type-is-1.6.16.tgz#f89ce341541c672b25ee7ae3c73dee3b2be50194" + dependencies: + media-typer "0.3.0" + mime-types "~2.1.18" + + typedarray@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" + + uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" + dependencies: + commander "~2.13.0" + source-map "~0.6.1" + + uglify-js@3.3.x: + version "3.3.20" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-3.3.20.tgz#dc8bdee7d454c7d31dddc36f922d170bfcee3a0a" + dependencies: + commander "~2.15.0" + source-map "~0.6.1" + + uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + + uglify-to-browserify@~1.0.0: + version "1.0.2" + resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" + + uglifyjs-webpack-plugin@^0.4.6: + version "0.4.6" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-0.4.6.tgz#b951f4abb6bd617e66f63eb891498e391763e309" + dependencies: + source-map "^0.5.6" + uglify-js "^2.8.29" + webpack-sources "^1.0.1" + + uglifyjs-webpack-plugin@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + + uid-number@^0.0.6: + version "0.0.6" + resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" + + union-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/union-value/-/union-value-1.0.0.tgz#5c71c34cb5bad5dcebe3ea0cd08207ba5aa1aea4" + dependencies: + arr-union "^3.1.0" + get-value "^2.0.6" + is-extendable "^0.1.1" + set-value "^0.4.3" + + uniq@^1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/uniq/-/uniq-1.0.1.tgz#b31c5ae8254844a3a8281541ce2b04b865a734ff" + + uniqid@^4.0.0: + version "4.1.1" + resolved "https://registry.yarnpkg.com/uniqid/-/uniqid-4.1.1.tgz#89220ddf6b751ae52b5f72484863528596bb84c1" + dependencies: + macaddress "^0.2.8" + + uniqs@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/uniqs/-/uniqs-2.0.0.tgz#ffede4b36b25290696e6e165d4a59edb998e6b02" + + unique-filename@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/unique-filename/-/unique-filename-1.1.0.tgz#d05f2fe4032560871f30e93cbe735eea201514f3" + dependencies: + unique-slug "^2.0.0" + + unique-slug@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/unique-slug/-/unique-slug-2.0.0.tgz#db6676e7c7cc0629878ff196097c78855ae9f4ab" + dependencies: + imurmurhash "^0.1.4" + + universalify@^0.1.0: + version "0.1.1" + resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" + + unpipe@1.0.0, unpipe@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" + + unset-value@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/unset-value/-/unset-value-1.0.0.tgz#8376873f7d2335179ffb1e6fc3a8ed0dfc8ab559" + dependencies: + has-value "^0.3.1" + isobject "^3.0.0" + + upath@^1.0.0: + version "1.0.4" + resolved "https://registry.yarnpkg.com/upath/-/upath-1.0.4.tgz#ee2321ba0a786c50973db043a50b7bcba822361d" + + upper-case@^1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/upper-case/-/upper-case-1.1.3.tgz#f6b4501c2ec4cdd26ba78be7222961de77621598" + + uri-js@^3.0.2: + version "3.0.2" + resolved "https://registry.yarnpkg.com/uri-js/-/uri-js-3.0.2.tgz#f90b858507f81dea4dcfbb3c4c3dbfa2b557faaa" + dependencies: + punycode "^2.1.0" + + urix@^0.1.0, urix@~0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/urix/-/urix-0.1.0.tgz#da937f7a62e21fec1fd18d49b35c2935067a6c72" + + url-loader@^0.6.2: + version "0.6.2" + resolved "https://registry.yarnpkg.com/url-loader/-/url-loader-0.6.2.tgz#a007a7109620e9d988d14bce677a1decb9a993f7" + dependencies: + loader-utils "^1.0.2" + mime "^1.4.1" + schema-utils "^0.3.0" + + url-parse@1.0.x: + version "1.0.5" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" + dependencies: + querystringify "0.0.x" + requires-port "1.0.x" + + url-parse@^1.1.8: + version "1.3.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.3.0.tgz#04a06c420d22beb9804f7ada2d57ad13160a4258" + dependencies: + querystringify "~1.0.0" + requires-port "~1.0.0" + + url@^0.11.0: + version "0.11.0" + resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" + dependencies: + punycode "1.3.2" + querystring "0.2.0" + + use@^3.1.0: + version "3.1.0" + resolved "https://registry.yarnpkg.com/use/-/use-3.1.0.tgz#14716bf03fdfefd03040aef58d8b4b85f3a7c544" + dependencies: + kind-of "^6.0.2" + + util-deprecate@~1.0.1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" + + util@0.10.3, util@^0.10.3: + version "0.10.3" + resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" + dependencies: + inherits "2.0.1" + + utila@~0.3: + version "0.3.3" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.3.3.tgz#d7e8e7d7e309107092b05f8d9688824d633a4226" + + utila@~0.4: + version "0.4.0" + resolved "https://registry.yarnpkg.com/utila/-/utila-0.4.0.tgz#8a16a05d445657a3aea5eecc5b12a4fa5379772c" + + utils-merge@1.0.1: + version "1.0.1" + resolved "https://registry.yarnpkg.com/utils-merge/-/utils-merge-1.0.1.tgz#9f95710f50a267947b2ccc124741c1028427e713" + + uuid@^3.0.0, uuid@^3.0.1, uuid@^3.1.0: + version "3.2.1" + resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.2.1.tgz#12c528bb9d58d0b9265d9a2f6f0fe8be17ff1f14" + + validate-npm-package-license@^3.0.1: + version "3.0.3" + resolved "https://registry.yarnpkg.com/validate-npm-package-license/-/validate-npm-package-license-3.0.3.tgz#81643bcbef1bdfecd4623793dc4648948ba98338" + dependencies: + spdx-correct "^3.0.0" + spdx-expression-parse "^3.0.0" + + vary@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" + + vendors@^1.0.0: + version "1.0.1" + resolved "https://registry.yarnpkg.com/vendors/-/vendors-1.0.1.tgz#37ad73c8ee417fb3d580e785312307d274847f22" + + verror@1.10.0: + version "1.10.0" + resolved "https://registry.yarnpkg.com/verror/-/verror-1.10.0.tgz#3a105ca17053af55d6e270c1f8288682e18da400" + dependencies: + assert-plus "^1.0.0" + core-util-is "1.0.2" + extsprintf "^1.2.0" + + vm-browserify@0.0.4: + version "0.0.4" + resolved "https://registry.yarnpkg.com/vm-browserify/-/vm-browserify-0.0.4.tgz#5d7ea45bbef9e4a6ff65f95438e0a87c357d5a73" + dependencies: + indexof "0.0.1" + + watchpack@^1.4.0: + version "1.5.0" + resolved "https://registry.yarnpkg.com/watchpack/-/watchpack-1.5.0.tgz#231e783af830a22f8966f65c4c4bacc814072eed" + dependencies: + chokidar "^2.0.2" + graceful-fs "^4.1.2" + neo-async "^2.5.0" + + wbuf@^1.1.0, wbuf@^1.7.2: + version "1.7.3" + resolved "https://registry.yarnpkg.com/wbuf/-/wbuf-1.7.3.tgz#c1d8d149316d3ea852848895cb6a0bfe887b87df" + dependencies: + minimalistic-assert "^1.0.0" + + webpack-dev-middleware@1.12.2: + version "1.12.2" + resolved "https://registry.yarnpkg.com/webpack-dev-middleware/-/webpack-dev-middleware-1.12.2.tgz#f8fc1120ce3b4fc5680ceecb43d777966b21105e" + dependencies: + memory-fs "~0.4.1" + mime "^1.5.0" + path-is-absolute "^1.0.0" + range-parser "^1.0.3" + time-stamp "^2.0.0" + + webpack-dev-server@^2.9.7: + version "2.11.2" + resolved "https://registry.yarnpkg.com/webpack-dev-server/-/webpack-dev-server-2.11.2.tgz#1f4f4c78bf1895378f376815910812daf79a216f" + dependencies: + ansi-html "0.0.7" + array-includes "^3.0.3" + bonjour "^3.5.0" + chokidar "^2.0.0" + compression "^1.5.2" + connect-history-api-fallback "^1.3.0" + debug "^3.1.0" + del "^3.0.0" + express "^4.16.2" + html-entities "^1.2.0" + http-proxy-middleware "~0.17.4" + import-local "^1.0.0" + internal-ip "1.2.0" + ip "^1.1.5" + killable "^1.0.0" + loglevel "^1.4.1" + opn "^5.1.0" + portfinder "^1.0.9" + selfsigned "^1.9.1" + serve-index "^1.7.2" + sockjs "0.3.19" + sockjs-client "1.1.4" + spdy "^3.4.1" + strip-ansi "^3.0.0" + supports-color "^5.1.0" + webpack-dev-middleware "1.12.2" + yargs "6.6.0" + + webpack-merge@^4.1.1: + version "4.1.2" + resolved "https://registry.yarnpkg.com/webpack-merge/-/webpack-merge-4.1.2.tgz#5d372dddd3e1e5f8874f5bf5a8e929db09feb216" + dependencies: + lodash "^4.17.5" + + webpack-sources@^1.0.1, webpack-sources@^1.1.0: + version "1.1.0" + resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" + dependencies: + source-list-map "^2.0.0" + source-map "~0.6.1" + + webpack@^3.10.0: + version "3.11.0" + resolved "https://registry.yarnpkg.com/webpack/-/webpack-3.11.0.tgz#77da451b1d7b4b117adaf41a1a93b5742f24d894" + dependencies: + acorn "^5.0.0" + acorn-dynamic-import "^2.0.0" + ajv "^6.1.0" + ajv-keywords "^3.1.0" + async "^2.1.2" + enhanced-resolve "^3.4.0" + escope "^3.6.0" + interpret "^1.0.0" + json-loader "^0.5.4" + json5 "^0.5.1" + loader-runner "^2.3.0" + loader-utils "^1.1.0" + memory-fs "~0.4.1" + mkdirp "~0.5.0" + node-libs-browser "^2.0.0" + source-map "^0.5.3" + supports-color "^4.2.1" + tapable "^0.2.7" + uglifyjs-webpack-plugin "^0.4.6" + watchpack "^1.4.0" + webpack-sources "^1.0.1" + yargs "^8.0.2" + + websocket-driver@>=0.5.1: + version "0.7.0" + resolved "https://registry.yarnpkg.com/websocket-driver/-/websocket-driver-0.7.0.tgz#0caf9d2d755d93aee049d4bdd0d3fe2cca2a24eb" + dependencies: + http-parser-js ">=0.4.0" + websocket-extensions ">=0.1.1" + + websocket-extensions@>=0.1.1: + version "0.1.3" + resolved "https://registry.yarnpkg.com/websocket-extensions/-/websocket-extensions-0.1.3.tgz#5d2ff22977003ec687a4b87073dfbbac146ccf29" + + whet.extend@~0.9.9: + version "0.9.9" + resolved "https://registry.yarnpkg.com/whet.extend/-/whet.extend-0.9.9.tgz#f877d5bf648c97e5aa542fadc16d6a259b9c11a1" + + which-module@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-1.0.0.tgz#bba63ca861948994ff307736089e3b96026c2a4f" + + which-module@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" + + which@1, which@^1.2.9: + version "1.3.0" + resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" + dependencies: + isexe "^2.0.0" + + wide-align@^1.1.0: + version "1.1.2" + resolved "https://registry.yarnpkg.com/wide-align/-/wide-align-1.1.2.tgz#571e0f1b0604636ebc0dfc21b0339bbe31341710" + dependencies: + string-width "^1.0.2" + + window-size@0.1.0: + version "0.1.0" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" + + window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + + wordwrap@0.0.2: + version "0.0.2" + resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" + + worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + + wrap-ansi@^2.0.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" + dependencies: + string-width "^1.0.1" + strip-ansi "^3.0.1" + + wrappy@1: + version "1.0.2" + resolved "https://registry.yarnpkg.com/wrappy/-/wrappy-1.0.2.tgz#b5243d8f3ec1aa35f1364605bc0d1036e30ab69f" + + xmlbuilder@^8.2.2: + version "8.2.2" + resolved "https://registry.yarnpkg.com/xmlbuilder/-/xmlbuilder-8.2.2.tgz#69248673410b4ba42e1a6136551d2922335aa773" + + xtend@^4.0.0, xtend@~4.0.1: + version "4.0.1" + resolved "https://registry.yarnpkg.com/xtend/-/xtend-4.0.1.tgz#a5c6d532be656e23db820efb943a1f04998d63af" + + y18n@^3.2.0, y18n@^3.2.1: + version "3.2.1" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-3.2.1.tgz#6d15fba884c08679c0d77e88e7759e811e07fa41" + + y18n@^4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/y18n/-/y18n-4.0.0.tgz#95ef94f85ecc81d007c264e190a120f0a3c8566b" + + yallist@^2.1.2: + version "2.1.2" + resolved "https://registry.yarnpkg.com/yallist/-/yallist-2.1.2.tgz#1c11f9218f076089a47dd512f93c6699a6a81d52" + + yargs-parser@^4.2.0: + version "4.2.1" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-4.2.1.tgz#29cceac0dc4f03c6c87b4a9f217dd18c9f74871c" + dependencies: + camelcase "^3.0.0" + + yargs-parser@^5.0.0: + version "5.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-5.0.0.tgz#275ecf0d7ffe05c77e64e7c86e4cd94bf0e1228a" + dependencies: + camelcase "^3.0.0" + + yargs-parser@^7.0.0: + version "7.0.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-7.0.0.tgz#8d0ac42f16ea55debd332caf4c4038b3e3f5dfd9" + dependencies: + camelcase "^4.1.0" + + yargs-parser@^8.1.0: + version "8.1.0" + resolved "https://registry.yarnpkg.com/yargs-parser/-/yargs-parser-8.1.0.tgz#f1376a33b6629a5d063782944da732631e966950" + dependencies: + camelcase "^4.1.0" + + yargs@6.6.0, yargs@^6.5.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + + yargs@^10.0.3: + version "10.1.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" + dependencies: + cliui "^4.0.0" + decamelize "^1.1.1" + find-up "^2.1.0" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^8.1.0" + + yargs@^3.7.2: + version "3.32.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.32.0.tgz#03088e9ebf9e756b69751611d2a5ef591482c995" + dependencies: + camelcase "^2.0.1" + cliui "^3.0.3" + decamelize "^1.1.1" + os-locale "^1.4.0" + string-width "^1.0.1" + window-size "^0.1.4" + y18n "^3.2.0" + + yargs@^7.0.0: + version "7.1.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^5.0.0" + + yargs@^8.0.2: + version "8.0.2" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-8.0.2.tgz#6299a9055b1cefc969ff7e79c1d918dceb22c360" + dependencies: + camelcase "^4.1.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^2.0.0" + read-pkg-up "^2.0.0" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^2.0.0" + which-module "^2.0.0" + y18n "^3.2.1" + yargs-parser "^7.0.0" + + yargs@~3.10.0: + version "3.10.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-3.10.0.tgz#f7ee7bd857dd7c1d2d38c0e74efbd681d1431fd1" + dependencies: + camelcase "^1.0.2" + cliui "^2.1.0" + decamelize "^1.0.0" + window-size "0.1.0" + +Trace: + Error: Command "add" not found. + at new MessageError (/usr/local/lib/node_modules/yarn/lib/cli.js:186:110) + at /usr/local/lib/node_modules/yarn/lib/cli.js:87307:17 + at Generator.next () + at step (/usr/local/lib/node_modules/yarn/lib/cli.js:98:30) + at /usr/local/lib/node_modules/yarn/lib/cli.js:116:14 + at new Promise () + at new F (/usr/local/lib/node_modules/yarn/lib/cli.js:23451:28) + at /usr/local/lib/node_modules/yarn/lib/cli.js:95:12 + at runCommand (/usr/local/lib/node_modules/yarn/lib/cli.js:87312:22) + at Object. (/usr/local/lib/node_modules/yarn/lib/cli.js:87412:14) diff --git a/yarn.lock b/yarn.lock index d9044a9..14b05de 100644 --- a/yarn.lock +++ b/yarn.lock @@ -1,5 +1,7 @@ # THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY. # yarn lockfile v1 + + "@ubio/css@^1.3.11": version "1.3.11" resolved "https://registry.yarnpkg.com/@ubio/css/-/css-1.3.11.tgz#357206258f7582c14960b7871106088e72cb2afc" @@ -167,14 +169,14 @@ array-find-index@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/array-find-index/-/array-find-index-1.0.2.tgz#df010aa1287e164bbda6f9723b0a96a1ec4187a1" -array-flatten@^2.1.0: - version "2.1.1" - resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" - array-flatten@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-1.1.1.tgz#9a5f699051b1e7073328f2a008968b64ea2955d2" +array-flatten@^2.1.0: + version "2.1.1" + resolved "https://registry.yarnpkg.com/array-flatten/-/array-flatten-2.1.1.tgz#426bb9da84090c1838d812c8150af20a8331e296" + array-includes@^3.0.3: version "3.0.3" resolved "https://registry.yarnpkg.com/array-includes/-/array-includes-3.0.3.tgz#184b48f62d92d7452bb31b323165c7f8bd02266d" @@ -228,14 +230,14 @@ asn1@~0.2.3: version "0.2.3" resolved "https://registry.yarnpkg.com/asn1/-/asn1-0.2.3.tgz#dac8787713c9966849fc8180777ebe9c1ddf3b86" +assert-plus@1.0.0, assert-plus@^1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" + assert-plus@^0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-0.2.0.tgz#d74e1b87e7affc0db8aadb7021f3fe48101ab234" -assert-plus@^1.0.0, assert-plus@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/assert-plus/-/assert-plus-1.0.0.tgz#f12e0f3c5d77b0b1cdd9146942e4e96c1e4dd525" - assert@^1.1.1, assert@^1.3.0: version "1.4.1" resolved "https://registry.yarnpkg.com/assert/-/assert-1.4.1.tgz#99912d591836b5a6f5b345c0f07eefc08fc65d91" @@ -254,16 +256,16 @@ async-foreach@^0.1.3: version "0.1.3" resolved "https://registry.yarnpkg.com/async-foreach/-/async-foreach-0.1.3.tgz#36121f845c0578172de419a97dbeb1d16ec34542" -async@^1.5.2: - version "1.5.2" - resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" - -async@^2.0.1, async@^2.1.2, async@^2.4.1, async@2.6.0: +async@2.6.0, async@^2.0.1, async@^2.1.2, async@^2.4.1: version "2.6.0" resolved "https://registry.yarnpkg.com/async/-/async-2.6.0.tgz#61a29abb6fcc026fea77e56d1c6ec53a795951f4" dependencies: lodash "^4.14.0" +async@^1.5.2: + version "1.5.2" + resolved "https://registry.yarnpkg.com/async/-/async-1.5.2.tgz#ec6a61ae56480c0c3cb241c95618e20892f9672a" + asynckit@^0.4.0: version "0.4.0" resolved "https://registry.yarnpkg.com/asynckit/-/asynckit-0.4.0.tgz#c79ed97f7f34cb8f2ba1bc9790bcc366474b4b79" @@ -773,6 +775,14 @@ balanced-match@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/balanced-match/-/balanced-match-1.0.0.tgz#89b4d199ab2bee49de164ea02b89ce462d71b767" +base64-js@^1.0.2: + version "1.2.3" + resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" + +base64url@^2.0.0: + version "2.0.0" + resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" + base@^0.11.1: version "0.11.2" resolved "https://registry.yarnpkg.com/base/-/base-0.11.2.tgz#7bde5ced145b6d551a90db87f83c558b4eb48a8f" @@ -785,14 +795,6 @@ base@^0.11.1: mixin-deep "^1.2.0" pascalcase "^0.1.1" -base64-js@^1.0.2: - version "1.2.3" - resolved "https://registry.yarnpkg.com/base64-js/-/base64-js-1.2.3.tgz#fb13668233d9614cf5fb4bce95a9ba4096cdf801" - -base64url@^2.0.0: - version "2.0.0" - resolved "https://registry.yarnpkg.com/base64url/-/base64url-2.0.0.tgz#eac16e03ea1438eff9423d69baa36262ed1f70bb" - batch@0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/batch/-/batch-0.6.1.tgz#dc34314f4e679318093fc760272525f94bf25c16" @@ -1116,6 +1118,14 @@ center-align@^0.1.1: align-text "^0.1.3" lazy-cache "^1.0.3" +chalk@2.1.0: + version "2.1.0" + resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" + dependencies: + ansi-styles "^3.1.0" + escape-string-regexp "^1.0.5" + supports-color "^4.0.0" + chalk@^1.1.1, chalk@^1.1.3: version "1.1.3" resolved "https://registry.yarnpkg.com/chalk/-/chalk-1.1.3.tgz#a8115c55e4a702fe4d150abd3872822a7e09fc98" @@ -1134,14 +1144,6 @@ chalk@^2.3.0, chalk@^2.3.2: escape-string-regexp "^1.0.5" supports-color "^5.3.0" -chalk@2.1.0: - version "2.1.0" - resolved "https://registry.yarnpkg.com/chalk/-/chalk-2.1.0.tgz#ac5becf14fa21b99c6c92ca7a7d7cfd5b17e743e" - dependencies: - ansi-styles "^3.1.0" - escape-string-regexp "^1.0.5" - supports-color "^4.0.0" - chokidar-cli@^1.2.0: version "1.2.0" resolved "https://registry.yarnpkg.com/chokidar-cli/-/chokidar-cli-1.2.0.tgz#8e7f58442273182018be1868e53c22af65a21948" @@ -1153,6 +1155,21 @@ chokidar-cli@^1.2.0: shell-quote "^1.4.3" yargs "^3.7.2" +chokidar@1.6.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058" + dependencies: + anymatch "^1.3.0" + async-each "^1.0.0" + glob-parent "^2.0.0" + inherits "^2.0.1" + is-binary-path "^1.0.0" + is-glob "^2.0.0" + path-is-absolute "^1.0.0" + readdirp "^2.0.0" + optionalDependencies: + fsevents "^1.0.0" + chokidar@^1.0.1: version "1.7.0" resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.7.0.tgz#798e689778151c8076b4b360e5edd28cda2bb468" @@ -1186,21 +1203,6 @@ chokidar@^2.0.0, chokidar@^2.0.2: optionalDependencies: fsevents "^1.1.2" -chokidar@1.6.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.6.0.tgz#90c32ad4802901d7713de532dc284e96a63ad058" - dependencies: - anymatch "^1.3.0" - async-each "^1.0.0" - glob-parent "^2.0.0" - inherits "^2.0.1" - is-binary-path "^1.0.0" - is-glob "^2.0.0" - path-is-absolute "^1.0.0" - readdirp "^2.0.0" - optionalDependencies: - fsevents "^1.0.0" - chownr@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/chownr/-/chownr-1.0.1.tgz#e2a75042a9551908bebd25b8523d5f9769d79181" @@ -1328,20 +1330,24 @@ colors@~1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/colors/-/colors-1.1.2.tgz#168a4701756b6a7f51a12ce0c97bfa28c084ed63" -combined-stream@^1.0.5, combined-stream@~1.0.5, combined-stream@1.0.6: +combined-stream@1.0.6, combined-stream@^1.0.5, combined-stream@~1.0.5: version "1.0.6" resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.6.tgz#723e7df6e801ac5613113a7e445a9b69cb632818" dependencies: delayed-stream "~1.0.0" -commander@^2.9.0, commander@~2.15.0, commander@2.15.x: - version "2.15.1" - resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" - commander@2.11.0: version "2.11.0" resolved "https://registry.yarnpkg.com/commander/-/commander-2.11.0.tgz#157152fd1e7a6c8d98a5b715cf376df928004563" +commander@2.15.x, commander@^2.9.0, commander@~2.15.0: + version "2.15.1" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.15.1.tgz#df46e867d0fc2aec66a34662b406a9ccafff5b0f" + +commander@~2.13.0: + version "2.13.0" + resolved "https://registry.yarnpkg.com/commander/-/commander-2.13.0.tgz#6964bca67685df7c1f1430c584f07d7597885b9c" + commondir@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/commondir/-/commondir-1.0.1.tgz#ddd800da0c66127393cca5950ea968a3aaf1253b" @@ -1455,7 +1461,7 @@ core-js@^2.4.0, core-js@^2.5.0: version "2.5.5" resolved "https://registry.yarnpkg.com/core-js/-/core-js-2.5.5.tgz#b14dde936c640c0579a6b50cabcc132dd6127e3b" -core-util-is@~1.0.0, core-util-is@1.0.2: +core-util-is@1.0.2, core-util-is@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/core-util-is/-/core-util-is-1.0.2.tgz#b5fd54220aa2bc5ab57aab7140c940754503c1a7" @@ -1499,6 +1505,13 @@ create-hmac@^1.1.0, create-hmac@^1.1.2, create-hmac@^1.1.4: safe-buffer "^5.0.1" sha.js "^2.4.8" +cross-spawn@4.0.0: + version "4.0.0" + resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.0.tgz#8254774ab4786b8c5b3cf4dfba66ce563932c252" + dependencies: + lru-cache "^4.0.1" + which "^1.2.9" + cross-spawn@^3.0.0: version "3.0.1" resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-3.0.1.tgz#1256037ecb9f0c5f79e3d6ef135e30770184b982" @@ -1514,13 +1527,6 @@ cross-spawn@^5.0.1: shebang-command "^1.2.0" which "^1.2.9" -cross-spawn@4.0.0: - version "4.0.0" - resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-4.0.0.tgz#8254774ab4786b8c5b3cf4dfba66ce563932c252" - dependencies: - lru-cache "^4.0.1" - which "^1.2.9" - cryptiles@2.x.x: version "2.0.5" resolved "https://registry.yarnpkg.com/cryptiles/-/cryptiles-2.0.5.tgz#3bdfecdc608147c1c67202fa291e7dca59eaa3b8" @@ -1676,7 +1682,7 @@ date-now@^0.1.4: version "0.1.4" resolved "https://registry.yarnpkg.com/date-now/-/date-now-0.1.4.tgz#eaf439fd4d4848ad74e5cc7dbef200672b9e345b" -debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8, debug@2.6.9: +debug@2.6.9, debug@^2.2.0, debug@^2.3.3, debug@^2.6.6, debug@^2.6.8: version "2.6.9" resolved "https://registry.yarnpkg.com/debug/-/debug-2.6.9.tgz#5d128515df134ff327e90a4c93f4e077a536341f" dependencies: @@ -1753,14 +1759,14 @@ delegates@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/delegates/-/delegates-1.0.0.tgz#84c6e159b81904fdca59a0ef44cd870d31250f9a" -depd@~1.1.1, depd@~1.1.2: - version "1.1.2" - resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" - depd@1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.1.tgz#5783b4e1c459f06fa5ca27f991f3d06e7a310359" +depd@~1.1.1, depd@~1.1.2: + version "1.1.2" + resolved "https://registry.yarnpkg.com/depd/-/depd-1.1.2.tgz#9bcd52e14c097763e749b274c4346ed2e560b5a9" + des.js@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/des.js/-/des.js-1.0.0.tgz#c074d2e2aa6a8a9a07dbd61f9a15c2cd83ec8ecc" @@ -1835,14 +1841,14 @@ domain-browser@^1.1.1: version "1.2.0" resolved "https://registry.yarnpkg.com/domain-browser/-/domain-browser-1.2.0.tgz#3d31f50191a6749dd1375a7f522e823d42e54eda" -domelementtype@~1.1.1: - version "1.1.3" - resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" - domelementtype@1: version "1.3.0" resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.3.0.tgz#b17aed82e8ab59e52dd9c19b1756e0fc187204c2" +domelementtype@~1.1.1: + version "1.1.3" + resolved "https://registry.yarnpkg.com/domelementtype/-/domelementtype-1.1.3.tgz#bd28773e2642881aec51544924299c5cd822185b" + domhandler@2.1: version "2.1.0" resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-2.1.0.tgz#d2646f5e57f6c3bab11cf6cb05d3c0acf7412594" @@ -1982,7 +1988,7 @@ entities@~1.1.1: version "1.1.1" resolved "https://registry.yarnpkg.com/entities/-/entities-1.1.1.tgz#6e5c2d0a5621b5dadaecef80b90edfb5cd7772f0" -errno@^0.1.3: +errno@^0.1.3, errno@~0.1.7: version "0.1.7" resolved "https://registry.yarnpkg.com/errno/-/errno-0.1.7.tgz#4684d71779ad39af177e3f007996f7c67c852618" dependencies: @@ -2049,7 +2055,7 @@ es6-set@~0.1.5: es6-symbol "3.1.1" event-emitter "~0.3.5" -es6-symbol@^3.1.1, es6-symbol@~3.1.1, es6-symbol@3.1.1: +es6-symbol@3.1.1, es6-symbol@^3.1.1, es6-symbol@~3.1.1: version "3.1.1" resolved "https://registry.yarnpkg.com/es6-symbol/-/es6-symbol-3.1.1.tgz#bf00ef4fdab6ba1b46ecb7b629b4c7ed5715cc77" dependencies: @@ -2252,14 +2258,14 @@ extract-text-webpack-plugin@^3.0.2: schema-utils "^0.3.0" webpack-sources "^1.0.1" -extsprintf@^1.2.0: - version "1.4.0" - resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" - extsprintf@1.3.0: version "1.3.0" resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" +extsprintf@^1.2.0: + version "1.4.0" + resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.4.0.tgz#e2689f8f356fad62cca65a3a91c5df5f9551692f" + fast-deep-equal@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz#c053477817c86b51daa853c81e059b733d023614" @@ -2440,6 +2446,16 @@ from2@^2.1.0: inherits "^2.0.1" readable-stream "^2.0.0" +fs-extra@0.30.0: + version "0.30.0" + resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" + dependencies: + graceful-fs "^4.1.2" + jsonfile "^2.1.0" + klaw "^1.0.0" + path-is-absolute "^1.0.0" + rimraf "^2.2.8" + fs-extra@^4.0.2: version "4.0.3" resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-4.0.3.tgz#0d852122e5bc5beb453fb028e9c0c9bf36340c94" @@ -2456,16 +2472,6 @@ fs-extra@^5.0.0: jsonfile "^4.0.0" universalify "^0.1.0" -fs-extra@0.30.0: - version "0.30.0" - resolved "https://registry.yarnpkg.com/fs-extra/-/fs-extra-0.30.0.tgz#f233ffcc08d4da7d432daa449776989db1df93f0" - dependencies: - graceful-fs "^4.1.2" - jsonfile "^2.1.0" - klaw "^1.0.0" - path-is-absolute "^1.0.0" - rimraf "^2.2.8" - fs-write-stream-atomic@^1.0.8: version "1.0.10" resolved "https://registry.yarnpkg.com/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz#b47df53493ef911df75731e70a9ded0189db40c9" @@ -2479,13 +2485,6 @@ fs.realpath@^1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/fs.realpath/-/fs.realpath-1.0.0.tgz#1504ad2523158caa40db4a2787cb01411994ea4f" -fsevents@^1.0.0, fsevents@^1.1.2: - version "1.1.3" - resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" - dependencies: - nan "^2.3.0" - node-pre-gyp "^0.6.39" - fsevents@1.1.2: version "1.1.2" resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.2.tgz#3282b713fb3ad80ede0e9fcf4611b5aa6fc033f4" @@ -2493,6 +2492,13 @@ fsevents@1.1.2: nan "^2.3.0" node-pre-gyp "^0.6.36" +fsevents@^1.0.0, fsevents@^1.1.2: + version "1.1.3" + resolved "https://registry.yarnpkg.com/fsevents/-/fsevents-1.1.3.tgz#11f82318f5fe7bb2cd22965a108e9306208216d8" + dependencies: + nan "^2.3.0" + node-pre-gyp "^0.6.39" + fstream-ignore@^1.0.5: version "1.0.5" resolved "https://registry.yarnpkg.com/fstream-ignore/-/fstream-ignore-1.0.5.tgz#9c31dae34767018fe1d249b24dada67d092da105" @@ -2651,7 +2657,7 @@ globule@^1.0.0: lodash "~4.17.4" minimatch "~3.0.2" -graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9, graceful-fs@4.1.11: +graceful-fs@4.1.11, graceful-fs@^4.1.11, graceful-fs@^4.1.2, graceful-fs@^4.1.6, graceful-fs@^4.1.9: version "4.1.11" resolved "https://registry.yarnpkg.com/graceful-fs/-/graceful-fs-4.1.11.tgz#0e8bdfe4d1ddb8854d64e04ea7c00e2a026e5658" @@ -2765,7 +2771,7 @@ hash.js@^1.0.0, hash.js@^1.0.3: inherits "^2.0.3" minimalistic-assert "^1.0.0" -hawk@~3.1.3, hawk@3.1.3: +hawk@3.1.3, hawk@~3.1.3: version "3.1.3" resolved "https://registry.yarnpkg.com/hawk/-/hawk-3.1.3.tgz#078444bd7c1640b0fe540d2c9b73d59678e8e1c4" dependencies: @@ -2867,15 +2873,6 @@ http-deceiver@^1.2.7: version "1.2.7" resolved "https://registry.yarnpkg.com/http-deceiver/-/http-deceiver-1.2.7.tgz#fa7168944ab9a519d337cb0bec7284dc3e723d87" -http-errors@~1.6.2: - version "1.6.3" - resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" - dependencies: - depd "~1.1.2" - inherits "2.0.3" - setprototypeof "1.1.0" - statuses ">= 1.4.0 < 2" - http-errors@1.6.2: version "1.6.2" resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.2.tgz#0a002cc85707192a7e7946ceedc11155f60ec736" @@ -2885,6 +2882,15 @@ http-errors@1.6.2: setprototypeof "1.0.3" statuses ">= 1.3.1 < 2" +http-errors@~1.6.2: + version "1.6.3" + resolved "https://registry.yarnpkg.com/http-errors/-/http-errors-1.6.3.tgz#8b55680bb4be283a0b5bf4ea2e38580be1d9320d" + dependencies: + depd "~1.1.2" + inherits "2.0.3" + setprototypeof "1.1.0" + statuses ">= 1.4.0 < 2" + http-parser-js@>=0.4.0: version "0.4.11" resolved "https://registry.yarnpkg.com/http-parser-js/-/http-parser-js-0.4.11.tgz#5b720849c650903c27e521633d94696ee95f3529" @@ -2987,7 +2993,7 @@ inflight@^1.0.4: once "^1.3.0" wrappy "1" -inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3, inherits@2, inherits@2.0.3: +inherits@2, inherits@2.0.3, inherits@^2.0.1, inherits@^2.0.3, inherits@~2.0.0, inherits@~2.0.1, inherits@~2.0.3: version "2.0.3" resolved "https://registry.yarnpkg.com/inherits/-/inherits-2.0.3.tgz#633c2c83e3da42a502f52466022480f4208261de" @@ -3275,14 +3281,14 @@ is-wsl@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/is-wsl/-/is-wsl-1.1.0.tgz#1f16e4aa22b04d1336b66188a66af3c600c3a66d" -isarray@^1.0.0, isarray@~1.0.0, isarray@1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" - isarray@0.0.1: version "0.0.1" resolved "https://registry.yarnpkg.com/isarray/-/isarray-0.0.1.tgz#8a18acfca9a8f4177e09abfc6038939b05d1eedf" +isarray@1.0.0, isarray@^1.0.0, isarray@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/isarray/-/isarray-1.0.0.tgz#bb935d48582cba168c06834957a54a3e07124f11" + isexe@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" @@ -3575,14 +3581,6 @@ lodash.uniq@^4.5.0: version "4.5.0" resolved "https://registry.yarnpkg.com/lodash.uniq/-/lodash.uniq-4.5.0.tgz#d0225373aeb652adc1bc82e4945339a842754773" -lodash@^3.7.0: - version "3.10.1" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" - -lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4: - version "4.17.5" - resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" - lodash@4.13.1: version "4.13.1" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.13.1.tgz#83e4b10913f48496d4d16fec4a560af2ee744b68" @@ -3591,6 +3589,14 @@ lodash@4.14.2: version "4.14.2" resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.14.2.tgz#bbccce6373a400fbfd0a8c67ca42f6d1ef416432" +lodash@^3.7.0: + version "3.10.1" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-3.10.1.tgz#5bf45e8e49ba4189e17d482789dfd15bd140b7b6" + +lodash@^4.0.0, lodash@^4.14.0, lodash@^4.17.2, lodash@^4.17.3, lodash@^4.17.4, lodash@^4.17.5, lodash@~4.17.4: + version "4.17.5" + resolved "https://registry.yarnpkg.com/lodash/-/lodash-4.17.5.tgz#99a92d65c0272debe8c96b6057bc8fbfa3bed511" + loglevel@^1.4.1: version "1.6.1" resolved "https://registry.yarnpkg.com/loglevel/-/loglevel-1.6.1.tgz#e0fc95133b6ef276cdc8887cdaf24aa6f156f8fa" @@ -3751,14 +3757,14 @@ mime-types@^2.1.11, mime-types@^2.1.12, mime-types@~2.1.17, mime-types@~2.1.18, dependencies: mime-db "~1.33.0" -mime@^1.4.1, mime@^1.5.0: - version "1.6.0" - resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" - mime@1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/mime/-/mime-1.4.1.tgz#121f9ebc49e3766f311a76e1fa1c8003c4b03aa6" +mime@^1.4.1, mime@^1.5.0: + version "1.6.0" + resolved "https://registry.yarnpkg.com/mime/-/mime-1.6.0.tgz#32cd9e5c64553bd58d19a568af452acff04981b1" + mimic-fn@^1.0.0: version "1.2.0" resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-1.2.0.tgz#820c86a39334640e99516928bd03fca88057d022" @@ -3771,20 +3777,20 @@ minimalistic-crypto-utils@^1.0.0, minimalistic-crypto-utils@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz#f6c00c1c0b082246e5c4d99dfb8c7c083b2b582a" -minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2, "minimatch@2 || 3": +"minimatch@2 || 3", minimatch@^3.0.0, minimatch@^3.0.2, minimatch@^3.0.4, minimatch@~3.0.2: version "3.0.4" resolved "https://registry.yarnpkg.com/minimatch/-/minimatch-3.0.4.tgz#5166e286457f03306064be5497e8dbb0c3d32083" dependencies: brace-expansion "^1.1.7" -minimist@^1.1.3, minimist@^1.2.0: - version "1.2.0" - resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" - minimist@0.0.8: version "0.0.8" resolved "https://registry.yarnpkg.com/minimist/-/minimist-0.0.8.tgz#857fcabfc3397d2625b8228262e86aa7a011b05d" +minimist@^1.1.3, minimist@^1.2.0: + version "1.2.0" + resolved "https://registry.yarnpkg.com/minimist/-/minimist-1.2.0.tgz#a35008b20f41383eec1fb914f4cd5df79a264284" + mississippi@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/mississippi/-/mississippi-2.0.0.tgz#3442a508fafc28500486feea99409676e4ee5a6f" @@ -3807,7 +3813,7 @@ mixin-deep@^1.2.0: for-in "^1.0.2" is-extendable "^1.0.1" -mkdirp@^0.5.0, mkdirp@^0.5.1, "mkdirp@>=0.5 0", mkdirp@~0.5.0, mkdirp@~0.5.1, mkdirp@0.5.1, mkdirp@0.5.x: +mkdirp@0.5.1, mkdirp@0.5.x, "mkdirp@>=0.5 0", mkdirp@^0.5.0, mkdirp@^0.5.1, mkdirp@~0.5.0, mkdirp@~0.5.1: version "0.5.1" resolved "https://registry.yarnpkg.com/mkdirp/-/mkdirp-0.5.1.tgz#30057438eac6cf7f8c4767f38648d6697d75c903" dependencies: @@ -3882,18 +3888,18 @@ no-case@^2.2.0: dependencies: lower-case "^1.1.1" -node-elm-compiler@^4.5.0: - version "4.5.0" - resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.5.0.tgz#3029f053cfbfc68730e75a54f93495cc58bf7ceb" +node-elm-compiler@4.3.3: + version "4.3.3" + resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.3.3.tgz#44e48e8679876bf2f5bd8820dd15734ff3a28caf" dependencies: cross-spawn "4.0.0" find-elm-dependencies "1.0.2" lodash "4.14.2" temp "^0.8.3" -node-elm-compiler@4.3.3: - version "4.3.3" - resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.3.3.tgz#44e48e8679876bf2f5bd8820dd15734ff3a28caf" +node-elm-compiler@^4.5.0: + version "4.5.0" + resolved "https://registry.yarnpkg.com/node-elm-compiler/-/node-elm-compiler-4.5.0.tgz#3029f053cfbfc68730e75a54f93495cc58bf7ceb" dependencies: cross-spawn "4.0.0" find-elm-dependencies "1.0.2" @@ -3994,6 +4000,12 @@ node-uuid@~1.4.7: version "1.4.8" resolved "https://registry.yarnpkg.com/node-uuid/-/node-uuid-1.4.8.tgz#b040eb0923968afabf8d32fb1f17f1167fdab907" +"nopt@2 || 3": + version "3.0.6" + resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" + dependencies: + abbrev "1" + nopt@^4.0.1: version "4.0.1" resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.1.tgz#d0d4685afd5415193c8c7505602d0d17cd64474d" @@ -4001,12 +4013,6 @@ nopt@^4.0.1: abbrev "1" osenv "^0.1.4" -"nopt@2 || 3": - version "3.0.6" - resolved "https://registry.yarnpkg.com/nopt/-/nopt-3.0.6.tgz#c6465dbf08abcd4db359317f79ac68a646b28ff9" - dependencies: - abbrev "1" - normalize-package-data@^2.3.2, normalize-package-data@^2.3.4: version "2.4.0" resolved "https://registry.yarnpkg.com/normalize-package-data/-/normalize-package-data-2.4.0.tgz#12f95a307d58352075a04907b84ac8be98ac012f" @@ -4041,7 +4047,7 @@ npm-run-path@^2.0.0: dependencies: path-key "^2.0.0" -npmlog@^4.0.0, npmlog@^4.0.2, "npmlog@0 || 1 || 2 || 3 || 4": +"npmlog@0 || 1 || 2 || 3 || 4", npmlog@^4.0.0, npmlog@^4.0.2: version "4.1.2" resolved "https://registry.yarnpkg.com/npmlog/-/npmlog-4.1.2.tgz#08a7f2a8bf734604779a9efa4ad5cc717abb954b" dependencies: @@ -4165,7 +4171,7 @@ os-tmpdir@^1.0.0, os-tmpdir@^1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" -osenv@^0.1.4, osenv@0: +osenv@0, osenv@^0.1.4: version "0.1.5" resolved "https://registry.yarnpkg.com/osenv/-/osenv-0.1.5.tgz#85cdfafaeb28e8677f416e287592b5f3f49ea410" dependencies: @@ -4720,6 +4726,10 @@ pumpify@^1.3.3: inherits "^2.0.3" pump "^2.0.0" +punycode@1.3.2: + version "1.3.2" + resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" + punycode@^1.2.4, punycode@^1.4.1: version "1.4.1" resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.4.1.tgz#c0d5a63b2718800ad8e1eb0fa5269c84dd41845e" @@ -4728,14 +4738,14 @@ punycode@^2.1.0: version "2.1.0" resolved "https://registry.yarnpkg.com/punycode/-/punycode-2.1.0.tgz#5f863edc89b96db09074bad7947bf09056ca4e7d" -punycode@1.3.2: - version "1.3.2" - resolved "https://registry.yarnpkg.com/punycode/-/punycode-1.3.2.tgz#9653a036fb7c1ee42342f2325cceefea3926c48d" - q@^1.1.2: version "1.5.1" resolved "https://registry.yarnpkg.com/q/-/q-1.5.1.tgz#7e32f75b41381291d04611f1bf14109ac00651d7" +qs@6.5.1, qs@~6.5.1: + version "6.5.1" + resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" + qs@~6.2.0: version "6.2.3" resolved "https://registry.yarnpkg.com/qs/-/qs-6.2.3.tgz#1cfcb25c10a9b2b483053ff39f5dfc9233908cfe" @@ -4748,10 +4758,6 @@ qs@~6.4.0: version "6.4.0" resolved "https://registry.yarnpkg.com/qs/-/qs-6.4.0.tgz#13e26d28ad6b0ffaa91312cd3bf708ed351e7233" -qs@~6.5.1, qs@6.5.1: - version "6.5.1" - resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.1.tgz#349cdf6eef89ec45c12d7d5eb3fc0c870343a6d8" - query-string@^4.1.0: version "4.3.4" resolved "https://registry.yarnpkg.com/query-string/-/query-string-4.3.4.tgz#bbb693b9ca915c232515b228b1a02b609043dbeb" @@ -4767,14 +4773,14 @@ querystring@0.2.0: version "0.2.0" resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" -querystringify@~1.0.0: - version "1.0.0" - resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" - querystringify@0.0.x: version "0.0.4" resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-0.0.4.tgz#0cf7f84f9463ff0ae51c4c4b142d95be37724d9c" +querystringify@~1.0.0: + version "1.0.0" + resolved "https://registry.yarnpkg.com/querystringify/-/querystringify-1.0.0.tgz#6286242112c5b712fa654e526652bf6a13ff05cb" + randomatic@^1.1.3: version "1.1.7" resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-1.1.7.tgz#c7abe9cc8b87c0baa876b19fde83fd464797e38c" @@ -4847,7 +4853,7 @@ read-pkg@^2.0.0: normalize-package-data "^2.3.2" path-type "^2.0.0" -readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3, "readable-stream@1 || 2": +"readable-stream@1 || 2", readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable-stream@^2.0.4, readable-stream@^2.0.6, readable-stream@^2.1.4, readable-stream@^2.1.5, readable-stream@^2.2.2, readable-stream@^2.2.9, readable-stream@^2.3.3: version "2.3.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.3.6.tgz#b11c27d88b8ff1fbe070643cf94b0c79ae1b0aaf" dependencies: @@ -4859,6 +4865,15 @@ readable-stream@^2.0.0, readable-stream@^2.0.1, readable-stream@^2.0.2, readable string_decoder "~1.1.1" util-deprecate "~1.0.1" +readable-stream@1.0: + version "1.0.34" + resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" + dependencies: + core-util-is "~1.0.0" + inherits "~2.0.1" + isarray "0.0.1" + string_decoder "~0.10.x" + readable-stream@~2.0.5: version "2.0.6" resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-2.0.6.tgz#8f90341e68a53ccc928788dacfcd11b36eb9b78e" @@ -4870,15 +4885,6 @@ readable-stream@~2.0.5: string_decoder "~0.10.x" util-deprecate "~1.0.1" -readable-stream@1.0: - version "1.0.34" - resolved "https://registry.yarnpkg.com/readable-stream/-/readable-stream-1.0.34.tgz#125820e34bc842d2f2aaafafe4c2916ee32c157c" - dependencies: - core-util-is "~1.0.0" - inherits "~2.0.1" - isarray "0.0.1" - string_decoder "~0.10.x" - readdirp@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/readdirp/-/readdirp-2.1.0.tgz#4ed0ad060df3073300c48440373f72d1cc642d78" @@ -5000,31 +5006,6 @@ repeating@^2.0.0: dependencies: is-finite "^1.0.0" -request@~2.79.0, request@2.79.0: - version "2.79.0" - resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" - dependencies: - aws-sign2 "~0.6.0" - aws4 "^1.2.1" - caseless "~0.11.0" - combined-stream "~1.0.5" - extend "~3.0.0" - forever-agent "~0.6.1" - form-data "~2.1.1" - har-validator "~2.0.6" - hawk "~3.1.3" - http-signature "~1.1.0" - is-typedarray "~1.0.0" - isstream "~0.1.2" - json-stringify-safe "~5.0.1" - mime-types "~2.1.7" - oauth-sign "~0.8.1" - qs "~6.3.0" - stringstream "~0.0.4" - tough-cookie "~2.3.0" - tunnel-agent "~0.4.1" - uuid "^3.0.0" - request@2: version "2.85.0" resolved "https://registry.yarnpkg.com/request/-/request-2.85.0.tgz#5a03615a47c61420b3eb99b7dba204f83603e1fa" @@ -5078,6 +5059,31 @@ request@2.74.0: tough-cookie "~2.3.0" tunnel-agent "~0.4.1" +request@2.79.0, request@~2.79.0: + version "2.79.0" + resolved "https://registry.yarnpkg.com/request/-/request-2.79.0.tgz#4dfe5bf6be8b8cdc37fcf93e04b65577722710de" + dependencies: + aws-sign2 "~0.6.0" + aws4 "^1.2.1" + caseless "~0.11.0" + combined-stream "~1.0.5" + extend "~3.0.0" + forever-agent "~0.6.1" + form-data "~2.1.1" + har-validator "~2.0.6" + hawk "~3.1.3" + http-signature "~1.1.0" + is-typedarray "~1.0.0" + isstream "~0.1.2" + json-stringify-safe "~5.0.1" + mime-types "~2.1.7" + oauth-sign "~0.8.1" + qs "~6.3.0" + stringstream "~0.0.4" + tough-cookie "~2.3.0" + tunnel-agent "~0.4.1" + uuid "^3.0.0" + request@2.81.0: version "2.81.0" resolved "https://registry.yarnpkg.com/request/-/request-2.81.0.tgz#c6928946a0e06c5f8d6f8a9333469ffda46298a0" @@ -5117,7 +5123,7 @@ require-main-filename@^1.0.1: version "1.0.1" resolved "https://registry.yarnpkg.com/require-main-filename/-/require-main-filename-1.0.1.tgz#97f717b69d48784f5f526a6c5aa8ffdda055a4d1" -requires-port@~1.0.0, requires-port@1.0.x, requires-port@1.x.x: +requires-port@1.0.x, requires-port@1.x.x, requires-port@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/requires-port/-/requires-port-1.0.0.tgz#925d2601d39ac485e091cf0da5c6e694dc3dcaff" @@ -5170,7 +5176,7 @@ right-align@^0.1.1: dependencies: align-text "^0.1.1" -rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2, rimraf@2: +rimraf@2, rimraf@^2.2.8, rimraf@^2.5.1, rimraf@^2.5.4, rimraf@^2.6.1, rimraf@^2.6.2: version "2.6.2" resolved "https://registry.yarnpkg.com/rimraf/-/rimraf-2.6.2.tgz#2ed8150d24a16ea8651e6d6ef0f47c4158ce7a36" dependencies: @@ -5193,7 +5199,7 @@ run-queue@^1.0.0, run-queue@^1.0.3: dependencies: aproba "^1.1.1" -safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1, safe-buffer@5.1.1: +safe-buffer@5.1.1, safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.1, safe-buffer@~5.1.0, safe-buffer@~5.1.1: version "5.1.1" resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.1.tgz#893312af69b2123def71f57889001671eeb2c853" @@ -5246,7 +5252,7 @@ selfsigned@^1.9.1: dependencies: node-forge "0.7.1" -semver@^5.3.0, "semver@2 || 3 || 4 || 5": +"semver@2 || 3 || 4 || 5", semver@^5.3.0: version "5.5.0" resolved "https://registry.yarnpkg.com/semver/-/semver-5.5.0.tgz#dc4bbc7a6ca9d916dee5d43516f0092b58f7b8ab" @@ -5469,6 +5475,10 @@ source-map-url@~0.3.0: version "0.3.0" resolved "https://registry.yarnpkg.com/source-map-url/-/source-map-url-0.3.0.tgz#7ecaf13b57bcd09da8a40c5d269db33799d4aaf9" +source-map@0.5.x, source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1: + version "0.5.7" + resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" + source-map@^0.1.38: version "0.1.43" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.1.43.tgz#c24bc146ca517c1471f5dacbe2571b2b7f9e3346" @@ -5481,10 +5491,6 @@ source-map@^0.4.2: dependencies: amdefine ">=0.0.4" -source-map@^0.5.3, source-map@^0.5.6, source-map@^0.5.7, source-map@~0.5.1, source-map@0.5.x: - version "0.5.7" - resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.5.7.tgz#8a039d2d1021d22d1ea14c80d8ea468ba2ef3fcc" - source-map@^0.6.1, source-map@~0.6.1: version "0.6.1" resolved "https://registry.yarnpkg.com/source-map/-/source-map-0.6.1.tgz#74722af32e9614e9c287a8d0bbde48b5e2f1a263" @@ -5623,16 +5629,6 @@ strict-uri-encode@^1.0.0: version "1.1.0" resolved "https://registry.yarnpkg.com/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz#279b225df1d582b1f54e65addd4352e18faa0713" -string_decoder@^1.0.0, string_decoder@~1.1.1: - version "1.1.1" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" - dependencies: - safe-buffer "~5.1.0" - -string_decoder@~0.10.x: - version "0.10.31" - resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" - string-width@^1.0.1, string-width@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/string-width/-/string-width-1.0.2.tgz#118bdf5b8cdc51a2a7e70d211e07e2b0b9b107d3" @@ -5648,6 +5644,16 @@ string-width@^2.0.0, string-width@^2.1.1: is-fullwidth-code-point "^2.0.0" strip-ansi "^4.0.0" +string_decoder@^1.0.0, string_decoder@~1.1.1: + version "1.1.1" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-1.1.1.tgz#9cf1611ba62685d7030ae9e4ba34149c3af03fc8" + dependencies: + safe-buffer "~5.1.0" + +string_decoder@~0.10.x: + version "0.10.31" + resolved "https://registry.yarnpkg.com/string_decoder/-/string_decoder-0.10.31.tgz#62e203bc41766c6c28c9fc84301dab1c5310fa94" + stringstream@~0.0.4, stringstream@~0.0.5: version "0.0.5" resolved "https://registry.yarnpkg.com/stringstream/-/stringstream-0.0.5.tgz#4e484cd4de5a0bbbee18e46307710a8a81621878" @@ -5695,6 +5701,12 @@ style-loader@^0.19.0: loader-utils "^1.0.2" schema-utils "^0.3.0" +supports-color@4.2.0: + version "4.2.0" + resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" + dependencies: + has-flag "^2.0.0" + supports-color@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-2.0.0.tgz#535d045ce6b6363fa40117084629995e9df324c7" @@ -5717,12 +5729,6 @@ supports-color@^5.1.0, supports-color@^5.3.0: dependencies: has-flag "^3.0.0" -supports-color@4.2.0: - version "4.2.0" - resolved "https://registry.yarnpkg.com/supports-color/-/supports-color-4.2.0.tgz#ad986dc7eb2315d009b4d77c8169c2231a684037" - dependencies: - has-flag "^2.0.0" - svgo@^0.7.0: version "0.7.2" resolved "https://registry.yarnpkg.com/svgo/-/svgo-0.7.2.tgz#9f5772413952135c6fefbf40afe6a4faa88b4bb5" @@ -5752,7 +5758,7 @@ tar-pack@^3.4.0: tar "^2.2.1" uid-number "^0.0.6" -tar@^2.0.0, tar@^2.2.1, tar@2.2.1: +tar@2.2.1, tar@^2.0.0, tar@^2.2.1: version "2.2.1" resolved "https://registry.yarnpkg.com/tar/-/tar-2.2.1.tgz#8e4d2a256c0e2185c6b18ad694aec968b83cb1d1" dependencies: @@ -5767,10 +5773,6 @@ temp@^0.8.3: os-tmpdir "^1.0.0" rimraf "~2.2.6" -through@2: - version "2.3.8" - resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" - through2@^2.0.0: version "2.0.3" resolved "https://registry.yarnpkg.com/through2/-/through2-2.0.3.tgz#0004569b37c7c74ba39c43f3ced78d1ad94140be" @@ -5778,6 +5780,10 @@ through2@^2.0.0: readable-stream "^2.1.5" xtend "~4.0.1" +through@2: + version "2.3.8" + resolved "https://registry.yarnpkg.com/through/-/through-2.3.8.tgz#0dd4c9ffaabc357960b1b724115d7e0e86a2e1f5" + thunky@^1.0.2: version "1.0.2" resolved "https://registry.yarnpkg.com/thunky/-/thunky-1.0.2.tgz#a862e018e3fb1ea2ec3fce5d55605cf57f247371" @@ -5822,6 +5828,12 @@ to-regex@^3.0.1, to-regex@^3.0.2: regex-not "^1.0.2" safe-regex "^1.1.0" +to-string-loader@^1.1.5: + version "1.1.5" + resolved "https://registry.yarnpkg.com/to-string-loader/-/to-string-loader-1.1.5.tgz#7b7aa17891b7bb4947a7a11bfb03b5fde9c6e695" + dependencies: + loader-utils "^0.2.16" + toposort@^1.0.0: version "1.0.6" resolved "https://registry.yarnpkg.com/toposort/-/toposort-1.0.6.tgz#c31748e55d210effc00fdcdc7d6e68d7d7bb9cec" @@ -5875,14 +5887,12 @@ typedarray@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/typedarray/-/typedarray-0.0.6.tgz#867ac74e3864187b1d3d47d996a78ec5c8830777" -uglify-js@^2.8.29: - version "2.8.29" - resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" +uglify-es@^3.3.4: + version "3.3.9" + resolved "https://registry.yarnpkg.com/uglify-es/-/uglify-es-3.3.9.tgz#0c1c4f0700bed8dbc124cdb304d2592ca203e677" dependencies: - source-map "~0.5.1" - yargs "~3.10.0" - optionalDependencies: - uglify-to-browserify "~1.0.0" + commander "~2.13.0" + source-map "~0.6.1" uglify-js@3.3.x: version "3.3.20" @@ -5891,6 +5901,15 @@ uglify-js@3.3.x: commander "~2.15.0" source-map "~0.6.1" +uglify-js@^2.8.29: + version "2.8.29" + resolved "https://registry.yarnpkg.com/uglify-js/-/uglify-js-2.8.29.tgz#29c5733148057bb4e1f75df35b7a9cb72e6a59dd" + dependencies: + source-map "~0.5.1" + yargs "~3.10.0" + optionalDependencies: + uglify-to-browserify "~1.0.0" + uglify-to-browserify@~1.0.0: version "1.0.2" resolved "https://registry.yarnpkg.com/uglify-to-browserify/-/uglify-to-browserify-1.0.2.tgz#6e0924d6bda6b5afe349e39a6d632850a0f882b7" @@ -5903,6 +5922,19 @@ uglifyjs-webpack-plugin@^0.4.6: uglify-js "^2.8.29" webpack-sources "^1.0.1" +uglifyjs-webpack-plugin@^1.2.7: + version "1.2.7" + resolved "https://registry.yarnpkg.com/uglifyjs-webpack-plugin/-/uglifyjs-webpack-plugin-1.2.7.tgz#57638dd99c853a1ebfe9d97b42160a8a507f9d00" + dependencies: + cacache "^10.0.4" + find-cache-dir "^1.0.0" + schema-utils "^0.4.5" + serialize-javascript "^1.4.0" + source-map "^0.6.1" + uglify-es "^3.3.4" + webpack-sources "^1.1.0" + worker-farm "^1.5.2" + uid-number@^0.0.6: version "0.0.6" resolved "https://registry.yarnpkg.com/uid-number/-/uid-number-0.0.6.tgz#0ea10e8035e8eb5b8e4449f06da1c730663baa81" @@ -5946,7 +5978,7 @@ universalify@^0.1.0: version "0.1.1" resolved "https://registry.yarnpkg.com/universalify/-/universalify-0.1.1.tgz#fa71badd4437af4c148841e3b3b165f9e9e590b7" -unpipe@~1.0.0, unpipe@1.0.0: +unpipe@1.0.0, unpipe@~1.0.0: version "1.0.0" resolved "https://registry.yarnpkg.com/unpipe/-/unpipe-1.0.0.tgz#b2bf4ee8514aae6165b4817829d21b2ef49904ec" @@ -5983,13 +6015,6 @@ url-loader@^0.6.2: mime "^1.4.1" schema-utils "^0.3.0" -url-parse@^1.1.8: - version "1.3.0" - resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.3.0.tgz#04a06c420d22beb9804f7ada2d57ad13160a4258" - dependencies: - querystringify "~1.0.0" - requires-port "~1.0.0" - url-parse@1.0.x: version "1.0.5" resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.0.5.tgz#0854860422afdcfefeb6c965c662d4800169927b" @@ -5997,6 +6022,13 @@ url-parse@1.0.x: querystringify "0.0.x" requires-port "1.0.x" +url-parse@^1.1.8: + version "1.3.0" + resolved "https://registry.yarnpkg.com/url-parse/-/url-parse-1.3.0.tgz#04a06c420d22beb9804f7ada2d57ad13160a4258" + dependencies: + querystringify "~1.0.0" + requires-port "~1.0.0" + url@^0.11.0: version "0.11.0" resolved "https://registry.yarnpkg.com/url/-/url-0.11.0.tgz#3838e97cfc60521eb73c525a8e55bfdd9e2e28f1" @@ -6014,7 +6046,7 @@ util-deprecate@~1.0.1: version "1.0.2" resolved "https://registry.yarnpkg.com/util-deprecate/-/util-deprecate-1.0.2.tgz#450d4dc9fa70de732762fbd2d4a28981419a0ccf" -util@^0.10.3, util@0.10.3: +util@0.10.3, util@^0.10.3: version "0.10.3" resolved "https://registry.yarnpkg.com/util/-/util-0.10.3.tgz#7afb1afe50805246489e3db7fe0ed379336ac0f9" dependencies: @@ -6127,7 +6159,7 @@ webpack-merge@^4.1.1: dependencies: lodash "^4.17.5" -webpack-sources@^1.0.1: +webpack-sources@^1.0.1, webpack-sources@^1.1.0: version "1.1.0" resolved "https://registry.yarnpkg.com/webpack-sources/-/webpack-sources-1.1.0.tgz#a101ebae59d6507354d71d8013950a3a8b7a5a54" dependencies: @@ -6184,7 +6216,7 @@ which-module@^2.0.0: version "2.0.0" resolved "https://registry.yarnpkg.com/which-module/-/which-module-2.0.0.tgz#d9ef07dce77b9902b8a3a8fa4b31c3e3f7e6e87a" -which@^1.2.9, which@1: +which@1, which@^1.2.9: version "1.3.0" resolved "https://registry.yarnpkg.com/which/-/which-1.3.0.tgz#ff04bdfc010ee547d780bec38e1ac1c2777d253a" dependencies: @@ -6196,18 +6228,24 @@ wide-align@^1.1.0: dependencies: string-width "^1.0.2" -window-size@^0.1.4: - version "0.1.4" - resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" - window-size@0.1.0: version "0.1.0" resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.0.tgz#5438cd2ea93b202efa3a19fe8887aee7c94f9c9d" +window-size@^0.1.4: + version "0.1.4" + resolved "https://registry.yarnpkg.com/window-size/-/window-size-0.1.4.tgz#f8e1aa1ee5a53ec5bf151ffa09742a6ad7697876" + wordwrap@0.0.2: version "0.0.2" resolved "https://registry.yarnpkg.com/wordwrap/-/wordwrap-0.0.2.tgz#b79669bb42ecb409f83d583cad52ca17eaa1643f" +worker-farm@^1.5.2: + version "1.6.0" + resolved "https://registry.yarnpkg.com/worker-farm/-/worker-farm-1.6.0.tgz#aecc405976fab5a95526180846f0dba288f3a4a0" + dependencies: + errno "~0.1.7" + wrap-ansi@^2.0.0: version "2.1.0" resolved "https://registry.yarnpkg.com/wrap-ansi/-/wrap-ansi-2.1.0.tgz#d8fc3d284dd05794fe84973caecdd1cf824fdd85" @@ -6263,6 +6301,24 @@ yargs-parser@^8.1.0: dependencies: camelcase "^4.1.0" +yargs@6.6.0, yargs@^6.5.0: + version "6.6.0" + resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" + dependencies: + camelcase "^3.0.0" + cliui "^3.2.0" + decamelize "^1.1.1" + get-caller-file "^1.0.1" + os-locale "^1.4.0" + read-pkg-up "^1.0.1" + require-directory "^2.1.1" + require-main-filename "^1.0.1" + set-blocking "^2.0.0" + string-width "^1.0.2" + which-module "^1.0.0" + y18n "^3.2.1" + yargs-parser "^4.2.0" + yargs@^10.0.3: version "10.1.2" resolved "https://registry.yarnpkg.com/yargs/-/yargs-10.1.2.tgz#454d074c2b16a51a43e2fb7807e4f9de69ccb5c5" @@ -6292,24 +6348,6 @@ yargs@^3.7.2: window-size "^0.1.4" y18n "^3.2.0" -yargs@^6.5.0, yargs@6.6.0: - version "6.6.0" - resolved "https://registry.yarnpkg.com/yargs/-/yargs-6.6.0.tgz#782ec21ef403345f830a808ca3d513af56065208" - dependencies: - camelcase "^3.0.0" - cliui "^3.2.0" - decamelize "^1.1.1" - get-caller-file "^1.0.1" - os-locale "^1.4.0" - read-pkg-up "^1.0.1" - require-directory "^2.1.1" - require-main-filename "^1.0.1" - set-blocking "^2.0.0" - string-width "^1.0.2" - which-module "^1.0.0" - y18n "^3.2.1" - yargs-parser "^4.2.0" - yargs@^7.0.0: version "7.1.0" resolved "https://registry.yarnpkg.com/yargs/-/yargs-7.1.0.tgz#6ba318eb16961727f5d284f8ea003e8d6154d0c8" @@ -6354,4 +6392,3 @@ yargs@~3.10.0: cliui "^2.1.0" decamelize "^1.0.0" window-size "0.1.0" - From 4afb8e730f5443062f9b1d9a5d996fe422a6ee13 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 15:10:34 +0100 Subject: [PATCH 03/71] React to attr changes in custom element --- bower.json | 17 +++++++++++++ package.json | 4 +-- src/CustomElement.elm | 58 ++++++++++++++++++++++++++++++++----------- src/Json/Form.elm | 4 +-- src/custom-element.js | 5 +++- 5 files changed, 69 insertions(+), 19 deletions(-) create mode 100644 bower.json diff --git a/bower.json b/bower.json new file mode 100644 index 0000000..c6c84ca --- /dev/null +++ b/bower.json @@ -0,0 +1,17 @@ +{ + "name": "json-form-custom-element", + "description": "JSON Schema based form generator", + "main": "build/custom-element.js", + "authors": [ + "Anatoliy " + ], + "license": "GNU GENERAL PUBLIC LICENSE v3", + "homepage": "https://github.com/1602/json-form", + "ignore": [ + "**/.*", + "node_modules", + "bower_components", + "test", + "tests" + ] +} diff --git a/package.json b/package.json index 274db8e..2bf7cf3 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "json-form-custom-element", - "private": true, - "version": "1.0.0", + "private": false, + "version": "1.0.5", "description": "JSON Schema based form generator", "main": "build/custom-element.js", "repository": "git@github.com:1602/json-form.git", diff --git a/src/CustomElement.elm b/src/CustomElement.elm index 7310c7d..81ba0e2 100644 --- a/src/CustomElement.elm +++ b/src/CustomElement.elm @@ -14,6 +14,7 @@ import Json.Schema.Definitions type alias Model = { form : Json.Form.Model + , schema : Json.Schema.Definitions.Schema , editedValue : Maybe JsonValue.JsonValue } @@ -21,32 +22,58 @@ type alias Model = init : Value -> ( Model, Cmd Msg ) init v = let - schema = v - |> decodeValue (Json.Decode.at [ "schema" ] Json.Schema.Definitions.decoder) - |> Result.withDefault Json.Schema.Definitions.blankSchema - - value = v - |> decodeValue (Json.Decode.at [ "value" ] JsonValue.decoder) - |> Result.toMaybe + schema = + v + |> decodeValue (Json.Decode.at [ "schema" ] Json.Schema.Definitions.decoder) + |> Result.mapError Debug.log + |> Result.withDefault Json.Schema.Definitions.blankSchema + + value = + v + |> decodeValue (Json.Decode.at [ "value" ] JsonValue.decoder) + |> Result.toMaybe in { form = Json.Form.init schema value , editedValue = value + , schema = schema } - ! [ loadSnippet "traveller" ] + ! [] type Msg = JsonFormMsg Json.Form.Msg | ChangeValue Value + | ChangeSchema Value update : Msg -> Model -> ( Model, Cmd Msg ) update message model = case message of + ChangeSchema v -> + let + schema = + v + |> decodeValue Json.Schema.Definitions.decoder + |> Result.withDefault Json.Schema.Definitions.blankSchema + in + { model + | schema = schema + , form = Json.Form.init schema model.editedValue + } + ! [] + ChangeValue v -> - { model | editedValue = v |> decodeValue JsonValue.decoder |> Result.toMaybe - } - ! [] + let + value = + v + |> decodeValue JsonValue.decoder + |> Result.toMaybe + in + { model + | editedValue = value + , form = Json.Form.init model.schema value + } + ! [] JsonFormMsg msg -> let @@ -73,12 +100,15 @@ view model = |> Html.map JsonFormMsg -port loadSnippet : String -> Cmd msg +port valueChange : (Value -> msg) -> Sub msg -port valueChange : (Value -> msg) -> Sub msg +port schemaChange : (Value -> msg) -> Sub msg subscriptions : Model -> Sub Msg subscriptions _ = - valueChange ChangeValue + Sub.batch + [ valueChange ChangeValue + , schemaChange ChangeSchema + ] diff --git a/src/Json/Form.elm b/src/Json/Form.elm index cb2a02d..c6fe0b5 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -64,8 +64,8 @@ viewNode model schema isRequired path = Object -> viewObject model schema isRequired path - _ -> - text "Not implemented" + x -> + text (toString x ++ ": not implemented") editingMode : Model -> Schema -> EditingMode diff --git a/src/custom-element.js b/src/custom-element.js index 78a3030..a828228 100644 --- a/src/custom-element.js +++ b/src/custom-element.js @@ -6,7 +6,7 @@ customElements.define('json-form', class extends HTMLElement { static get observedAttributes() { - return ['value']; + return ['value', 'schema']; } constructor() { @@ -32,6 +32,9 @@ customElements.define('json-form', case 'value': this.app.ports.valueChange.send(JSON.parse(newValue)); break; + case 'schema': + this.app.ports.schemaChange.send(JSON.parse(newValue)); + break; } } }); From f1f9dc8b90823e12ebdcb4f7feda6a7031f35bf1 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 16:41:02 +0100 Subject: [PATCH 04/71] Added json-form.html --- json-form.html | 1 + 1 file changed, 1 insertion(+) create mode 100644 json-form.html diff --git a/json-form.html b/json-form.html new file mode 100644 index 0000000..34d02bd --- /dev/null +++ b/json-form.html @@ -0,0 +1 @@ + From 9d7472cf5841336f8ca954c4483dde4609b5eb64 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 18:42:31 +0100 Subject: [PATCH 05/71] Added build for custom element demo --- .gitignore | 1 - build/custom-element.js | 1 + 2 files changed, 1 insertion(+), 1 deletion(-) create mode 100644 build/custom-element.js diff --git a/.gitignore b/.gitignore index d19ac5f..832f6d8 100644 --- a/.gitignore +++ b/.gitignore @@ -2,7 +2,6 @@ elm-stuff # elm-repl generated files repl-temp-* -build node_modules/ documentation.json dist/ diff --git a/build/custom-element.js b/build/custom-element.js new file mode 100644 index 0000000..5d9f5aa --- /dev/null +++ b/build/custom-element.js @@ -0,0 +1 @@ +(e=>{var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=((e,t,n)=>{r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})}),r.n=(e=>{var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t}),r.o=((e,t)=>Object.prototype.hasOwnProperty.call(e,t)),r.p="",r(r.s="./src/custom-element.js")})({"./node_modules/css-loader/index.js!./stylesheets/checkbox.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-checkbox {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-checkbox__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-checkbox__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 24px;\n cursor: pointer;\n}\n\n.jf-checkbox__box-outline {\n width: 16px;\n height: 16px;\n position: absolute;\n top: calc(50% - 8px);\n left: 0;\n border-radius: 2px;\n border: 2px solid #0000008a;\n cursor: pointer;\n z-index: 2;\n}\n\n.jf-checkbox__tick-outline {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n mask: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==);\n background: 0 0;\n transition-duration: .28s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n transition-property: background;\n}\n\n\n.jf-checkbox--on .jf-checkbox__tick-outline {\n background: #009688 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K);\n}\n\n\n.jf-checkbox--on .jf-checkbox__box-outline {\n border: 2px solid #009688;\n}\n\n\n.jf-checkbox__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-checkbox--invalid .jf-checkbox__helper-text {\n color: var(--color-red--500);\n}\n\n",""])},"./node_modules/css-loader/index.js!./stylesheets/globals.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n:host {\n --font-family: helvetica, sans-serif;\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/json-form.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/textfield.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/switch.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/checkbox.css"),""),t.push([e.i,":root {\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/standalone.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/globals.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/json-form.css"),""),t.push([e.i,"\n",""])},"./node_modules/css-loader/index.js!./stylesheets/switch.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-switch {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-switch__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-switch__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 50px;\n cursor: pointer;\n}\n\n.jf-switch__track {\n background-color: lightgrey;\n width: 40px;\n height: 14px;\n position: absolute;\n top: calc(50% - 7px);\n left: 0;\n border-radius: 14px;\n cursor: pointer;\n}\n\n.jf-switch__thumb {\n background-color: #fafafa;\n width: 20px;\n height: 20px;\n position: absolute;\n top: calc(50% - 10px);\n left: 0;\n cursor: pointer;\n border-radius: 50%;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n box-shadow: 0 3px 4px 0 rgba(0,0,0,.14), 0 3px 3px -2px rgba(0,0,0,.2), 0 1px 8px 0 rgba(0,0,0,.12);\n}\n\n.jf-switch--on .jf-switch__thumb {\n left: 20px;\n}\n\n.jf-switch--on .jf-switch__thumb {\n background-color: var(--color-swatch--500);\n}\n\n.jf-switch__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-switch--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/textfield.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-textfield {\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n width: 300px;\n max-width: 100%;\n margin: 0;\n padding: 20px 0;\n margin-left: 16px;\n margin-bottom: 16px;\n}\n\n.jf-textfield__input {\n border: none;\n border-radius: 0;\n outline: none;\n display: block;\n font-size: 16px;\n font-family: var(--font-family);\n margin: 0;\n padding: 8px 0;\n width: 100%;\n background: 0 0;\n text-align: left;\n color: inherit;\n}\n\n.jf-textfield--focused .jf-textfield__input {\n color: var(--color-active);\n}\n\n.jf-textfield--empty .jf-textfield__label {\n top: 29px;\n font-size: 16px;\n}\n\n.jf-textfield--focused .jf-textfield__label {\n color: var(--color-active);\n visibility: visible;\n font-size: 12px;\n top: 10px;\n}\n\n.jf-textfield__label {\n color: var(--color-inactive);\n font-size: 12px;\n left: 0;\n right: 0;\n pointer-events: none;\n position: absolute;\n display: block;\n bottom: 0;\n top: 10px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n/*\n.jf-textfield__bottom-border {\n border-bottom: 2px solid var(--color-active);\n height: 0;\n position: absolute;\n top: 46px;\n transition: width .1s ease-in 0s;\n width: 0;\n}\n\n.jf-textfield--focused .jf-textfield__bottom-border {\n width: 100%;\n}\n*/\n\n.jf-textfield__label:after {\n background-color: var(--color-active);\n bottom: 20px;\n content: '';\n height: 2px;\n left: 45%;\n position: absolute;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n visibility: hidden;\n width: 10px;\n}\n\n.jf-textfield--focused .jf-textfield__label:after {\n left: 0;\n visibility: visible;\n width: 100%;\n}\n\n/*\n.jf-textfield:before {\n content: '';\n background-color: rgba(0,0,0,0.06);\n position: absolute;\n top: 0;\n bottom: 20px;\n width: calc(100% + 32px);\n z-index: -1;\n border-radius: 4px;\n margin-left: -16px;\n}\n*/\n\n.jf-textfield:after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n bottom: 20px;\n background-color: var(--color-inactive);\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n}\n\n.jf-textfield--focused:after {\n background-color: transparent;\n}\n\n.jf-textfield:hover:after {\n background-color: #222;\n bottom: 20px;\n height: 2px;\n}\n\n.jf-textfield--focused:hover:after {\n background-color: transparent;\n}\n\n\n.jf-textfield__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n.jf-textfield--invalid .jf-textfield__label:after {\n background-color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__label {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid:after {\n background-color: var(--color-red--500) !important;\n}\n",""])},"./node_modules/css-loader/lib/css-base.js"(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(t=>{var r=function(e,t){var r=e[1]||"",n=e[3];if(!n)return r;if(t&&"function"==typeof btoa){var o="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */",a=n.sources.map(e=>"/*# sourceURL="+n.sourceRoot+e+" */");return[r].concat(a).concat([o]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,r){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},o=0;this.length>o;o++){var a=this[o][0];"number"==typeof a&&(n[a]=!0)}for(o=0;e.length>o;o++){var i=e[o];"number"==typeof i[0]&&n[i[0]]||(r&&!i[2]?i[2]=r:r&&(i[2]="("+i[2]+") and ("+r+")"),t.push(i))}},t}},"./src/JsonFormCustomElement.elm"(e,t){var r;(()=>{"use strict";function n(e){function t(t){return r=>e(t,r)}return t.arity=2,t.func=e,t}function o(e){function t(t){return r=>n=>e(t,r,n)}return t.arity=3,t.func=e,t}function a(e){function t(t){return r=>n=>o=>e(t,r,n,o)}return t.arity=4,t.func=e,t}function i(e){function t(t){return r=>n=>o=>a=>e(t,r,n,o,a)}return t.arity=5,t.func=e,t}function c(e){function t(t){return r=>n=>o=>a=>i=>e(t,r,n,o,a,i)}return t.arity=6,t.func=e,t}function u(e,t,r){return 2===e.arity?e.func(t,r):e(t)(r)}function s(e,t,r,n){return 3===e.arity?e.func(t,r,n):e(t)(r)(n)}function l(e,t,r,n,o){return 4===e.arity?e.func(t,r,n,o):e(t)(r)(n)(o)}function _(e,t,r,n,o,a){return 5===e.arity?e.func(t,r,n,o,a):e(t)(r)(n)(o)(a)}var d=(()=>{var e=32,t=2,r={ctor:"_Array",height:0,table:[]};function a(t,r){var n=t.height;r.length===n&&r.push({ctor:"_Array",height:n+1,table:[],lengths:[]});r[n].table.push(t);var o=v(t);r[n].lengths.length>0&&(o+=r[n].lengths[r[n].lengths.length-1]),r[n].lengths.push(o),r[n].table.length===e&&(a(r[n],r),r[n]={ctor:"_Array",height:n+1,table:[],lengths:[]})}function i(e,t){var r=e.table.length-1;e.table[r]=t,e.lengths[r]=v(t),e.lengths[r]+=r>0?e.lengths[r-1]:0}function c(e,t){if(t.table.length>0){e.table[0]=t,e.lengths[0]=v(t);for(var r=v(e.table[0]),n=1;e.lengths.length>n;n++)r+=v(e.table[n]),e.lengths[n]=r}else{e.table.shift();for(n=1;e.lengths.length>n;n++)e.lengths[n]=e.lengths[n]-e.lengths[0];e.lengths.shift()}}function s(t,r){for(var n=0,o=0;t.table.length>o;o++)n+=t.table[o].table.length;for(o=0;r.table.length>o;o++)n+=r.table[o].table.length;return t.table.length+r.table.length-(Math.floor((n-1)/e)+1)}function l(e,t,r){return e.length>r?e[r]:t[r-e.length]}function _(e,t,r,n){e.length>r?e[r]=n:t[r-e.length]=n}function d(e,t,r,n){_(e.table,t.table,r,n);var o=0===r||r===e.lengths.length?0:l(e.lengths,e.lengths,r-1);_(e.lengths,t.lengths,r,o+v(n))}function f(e,t){0>t&&(t=0);var r={ctor:"_Array",height:e,table:new Array(t)};return e>0&&(r.lengths=new Array(t)),r}function p(t,r,n){for(var o=f(t.height,Math.min(e,t.table.length+r.table.length-n)),a=f(t.height,o.table.length-(t.table.length+r.table.length-n)),i=0;l(t.table,r.table,i).table.length%e==0;)_(o.table,a.table,i,l(t.table,r.table,i)),_(o.lengths,a.lengths,i,l(t.lengths,r.lengths,i)),i++;for(var c=i,u=new f(t.height-1,0),s=0;n>i-c-(u.table.length>0?1:0);){var p=l(t.table,r.table,i),h=Math.min(e-u.table.length,p.table.length);if(u.table=u.table.concat(p.table.slice(s,h)),u.height>0)for(var m=u.lengths.length,g=m;m+h-s>g;g++)u.lengths[g]=v(u.table[g]),u.lengths[g]+=g>0?u.lengths[g-1]:0;s+=h,p.table.length>h||(i++,s=0),u.table.length===e&&(d(o,a,c,u),u=f(t.height-1,0),c++)}for(u.table.length>0&&(d(o,a,c,u),c++);t.table.length+r.table.length>i;)d(o,a,c,l(t.table,r.table,i)),i++,c++;return[o,a]}function h(e){return e.table[e.table.length-1]}function m(e){return e.table[0]}function g(e){var t={ctor:"_Array",height:e.height,table:e.table.slice()};return e.height>0&&(t.lengths=e.lengths.slice()),t}function v(e){return 0===e.height?e.table.length:e.lengths[e.lengths.length-1]}function b(e,t){for(var r=e>>5*t.height;e>=t.lengths[r];)r++;return r}function y(e,t){return 0===t?{ctor:"_Array",height:0,table:[e]}:{ctor:"_Array",height:t,table:[y(e,t-1)],lengths:[1]}}function x(e,t){return t===e.height?e:{ctor:"_Array",height:t,table:[x(e,t-1)],lengths:[v(e)]}}function k(e,t){return{ctor:"_Array",height:e.height+1,table:[e,t],lengths:[v(e),v(e)+v(t)]}}return{empty:r,fromList(t){if("[]"===t.ctor)return r;for(var n=new Array(e),o=[],i=0;"[]"!==t.ctor;)n[i]=t._0,t=t._1,++i===e&&(a({ctor:"_Array",height:0,table:n},o),n=new Array(e),i=0);i>0&&a({ctor:"_Array",height:0,table:n.splice(0,i)},o);for(var c=0;o.length-1>c;c++)o[c].table.length>0&&a(o[c],o);var u=o[o.length-1];return u.height>0&&1===u.table.length?u.table[0]:u},toList(e){return function e(t,r){for(var n=r.table.length-1;n>=0;n--)t=0===r.height?A.Cons(r.table[n],t):e(t,r.table[n]);return t}(A.Nil,e)},initialize:n(function(t,n){return t>0?function t(r,n,o,a){if(0===n){for(var i=new Array((a-o)%(e+1)),c=0;i.length>c;c++)i[c]=r(o+c);return{ctor:"_Array",height:0,table:i}}for(var u=Math.pow(e,n),i=new Array(Math.ceil((a-o)/u)),s=new Array(i.length),c=0;i.length>c;c++)i[c]=t(r,n-1,o+c*u,Math.min(o+(c+1)*u,a)),s[c]=v(i[c])+(c>0?s[c-1]:0);return{ctor:"_Array",height:n,table:i,lengths:s}}(n,Math.floor(Math.log(t)/Math.log(e)),0,t):r}),append:n(function(r,n){if(0===r.table.length)return n;if(0===n.table.length)return r;var o=function e(r,n){if(0===r.height&&0===n.height)return[r,n];if(1!==r.height||1!==n.height)if(r.height===n.height){r=g(r),n=g(n);var o=e(h(r),m(n));i(r,o[1]),c(n,o[0])}else if(r.height>n.height){r=g(r);var o=e(h(r),n);i(r,o[0]),n=x(o[1],o[1].height+1)}else{n=g(n);var o=e(r,m(n)),a=0===o[0].table.length?0:1,u=0===a?1:0;c(n,o[a]),r=x(o[u],o[u].height+1)}if(0===r.table.length||0===n.table.length)return[r,n];var l=s(r,n);return l>t?p(r,n,l):[r,n]}(r,n);if(e>=o[0].table.length+o[1].table.length){if(0===o[0].table.length)return o[1];if(0===o[1].table.length)return o[0];if(o[0].table=o[0].table.concat(o[1].table),o[0].height>0){for(var a=v(o[0]),u=0;o[1].lengths.length>u;u++)o[1].lengths[u]+=a;o[0].lengths=o[0].lengths.concat(o[1].lengths)}return o[0]}if(o[0].height>0){var l=s(r,n);l>t&&(o=p(o[0],o[1],l))}return k(o[0],o[1])}),push:n(function(t,r){var n=function t(r,n){if(0===n.height){if(e>n.table.length){var o={ctor:"_Array",height:0,table:n.table.slice()};return o.table.push(r),o}return null}var a=t(r,h(n));if(null!==a){var o=g(n);return o.table[o.table.length-1]=a,o.lengths[o.lengths.length-1]++,o}if(e>n.table.length){var i=y(r,n.height-1),o=g(n);return o.table.push(i),o.lengths.push(o.lengths[o.lengths.length-1]+v(i)),o}return null}(t,r);return null!==n?n:k(r,y(t,r.height))}),slice:o(function(e,t,r){return 0>e&&(e+=v(r)),0>t&&(t+=v(r)),function e(t,r){if(0===t)return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(t,r.table.length+1),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(o===r.table.length-1)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(o,r.table.length+1),lengths:new Array(r.table.length-o)};n.table[0]=a;for(var i=0,c=0;n.table.length>c;c++)i+=v(n.table[c]),n.lengths[c]=i;return n}(e,function e(t,r){if(t===v(r))return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(0,t),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(0===o)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(0,o),lengths:r.lengths.slice(0,o)};return a.table.length>0&&(n.table[o]=a,n.lengths[o]=v(a)+(o>0?n.lengths[o-1]:0)),n}(t,r))}),get:n(function(e,t){if(0>e||e>=v(t))throw new Error("Index "+e+" is out of range. Check the length of your array first or use getMaybe or getWithDefault.");return((e,t)=>{for(var r=t.height;r>0;r--){for(var n=e>>5*r;e>=t.lengths[n];)n++;n>0&&(e-=t.lengths[n-1]),t=t.table[n]}return t.table[e]})(e,t)}),set:o(function(e,t,r){return 0>e||v(r)<=e?r:function e(t,r,n){if(0===(n=g(n)).height)n.table[t]=r;else{var o=b(t,n);o>0&&(t-=n.lengths[o-1]),n.table[o]=e(t,r,n.table[o])}return n}(e,t,r)}),map:n(function e(t,r){var n={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(n.lengths=r.lengths);for(var o=0;r.table.length>o;o++)n.table[o]=0===r.height?t(r.table[o]):e(t,r.table[o]);return n}),indexedMap:n(function(e,t){return function e(t,r,n){var o={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(o.lengths=r.lengths);for(var a=0;r.table.length>a;a++)o.table[a]=0===r.height?u(t,n+a,r.table[a]):e(t,r.table[a],0==a?n:n+r.lengths[a-1]);return o}(e,t,0)}),foldl:o(function e(t,r,n){if(0===n.height)for(var o=0;n.table.length>o;o++)r=u(t,n.table[o],r);else for(o=0;n.table.length>o;o++)r=e(t,r,n.table[o]);return r}),foldr:o(function e(t,r,n){if(0===n.height)for(var o=n.table.length;o--;)r=u(t,n.table[o],r);else for(o=n.table.length;o--;)r=e(t,r,n.table[o]);return r}),length:v,toJSArray(e){var t=new Array(v(e));return function e(t,r,n){for(var o=0;n.table.length>o;o++)if(0===n.height)t[r+o]=n.table[o];else{var a=0===o?0:n.lengths[o-1];e(t,r+a,n.table[o])}}(t,0,e),t},fromJSArray(t){return 0===t.length?r:function t(r,n,o,a){if(0===n)return{ctor:"_Array",height:0,table:r.slice(o,a)};for(var i=Math.pow(e,n),c=new Array(Math.ceil((a-o)/i)),u=new Array(c.length),s=0;c.length>s;s++)c[s]=t(r,n-1,o+s*i,Math.min(o+(s+1)*i,a)),u[s]=v(c[s])+(s>0?u[s-1]:0);return{ctor:"_Array",height:n,table:c,lengths:u}}(t,Math.floor(Math.log(t.length)/Math.log(e)),0,t.length)}}})(),f=(()=>{var e=["LT","EQ","GT"];return{div:n(function(e,t){return e/t|0}),rem:n(function(e,t){return e%t}),mod:n(function e(t,r){if(0===r)throw new Error("Cannot perform mod 0. Division by zero error.");var n=t%r,o=0===t?0:r>0?0>t?n+r:n:-e(-t,-r);return o===r?0:o}),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:n(Math.atan2),degrees(e){return e*Math.PI/180},turns(e){return 2*Math.PI*e},fromPolar(e){var t=e._0,r=e._1;return p.Tuple2(t*Math.cos(r),t*Math.sin(r))},toPolar(e){var t=e._0,r=e._1;return p.Tuple2(Math.sqrt(t*t+r*r),Math.atan2(r,t))},sqrt:Math.sqrt,logBase:n(function(e,t){return Math.log(t)/Math.log(e)}),negate(e){return-e},abs(e){return 0>e?-e:e},min:n(function(e,t){return 0>p.cmp(e,t)?e:t}),max:n(function(e,t){return p.cmp(e,t)>0?e:t}),clamp:o(function(e,t,r){return 0>p.cmp(r,e)?e:p.cmp(r,t)>0?t:r}),compare:n(function(t,r){return{ctor:e[p.cmp(t,r)+1]}}),xor:n(function(e,t){return e!==t}),not(e){return!e},truncate(e){return 0|e},ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:e=>e,isNaN,isInfinite(e){return e===1/0||e===-1/0}}})(),p=(()=>{function e(t,r,n,o){if(n>100)return o.push({x:t,y:r}),!0;if(t===r)return!0;if("object"!=typeof t){if("function"==typeof t)throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense. Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#== which describes why it is this way and what the better version will look like.');return!1}if(null===t||null===r)return!1;if(t instanceof Date)return t.getTime()===r.getTime();if(!("ctor"in t)){for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}if("RBNode_elm_builtin"!==t.ctor&&"RBEmpty_elm_builtin"!==t.ctor||(t=ye(t),r=ye(r)),"Set_elm_builtin"===t.ctor&&(t=_elm_lang$core$Set$toList(t),r=_elm_lang$core$Set$toList(r)),"::"===t.ctor){for(var i=t,c=r;"::"===i.ctor&&"::"===c.ctor;){if(!e(i._0,c._0,n+1,o))return!1;i=i._1,c=c._1}return i.ctor===c.ctor}if("_Array"===t.ctor){var u=d.toJSArray(t),s=d.toJSArray(r);if(u.length!==s.length)return!1;for(var l=0;u.length>l;l++)if(!e(u[l],s[l],n+1,o))return!1;return!0}if(!e(t.ctor,r.ctor,n+1,o))return!1;for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}var t=-1,r=0,o=1;var a=0;var i={ctor:"[]"};function c(e,t){return{ctor:"::",_0:e,_1:t}}function u(e){return e.start.line==e.end.line?"on line "+e.start.line:"between lines "+e.start.line+" and "+e.end.line}function s(e){var t=typeof e;if("function"===t)return"";if("boolean"===t)return e?"True":"False";if("number"===t)return e+"";if(e instanceof String)return"'"+l(e,!0)+"'";if("string"===t)return'"'+l(e,!1)+'"';if(null===e)return"null";if("object"===t&&"ctor"in e){var r=e.ctor.substring(0,5);if("_Tupl"===r){var n=[];for(var o in e)"ctor"!==o&&n.push(s(e[o]));return"("+n.join(",")+")"}if("_Task"===r)return"";if("_Array"===e.ctor)return"Array.fromList "+s(K(e));if(""===e.ctor)return"";if("_Process"===e.ctor)return"";if("::"===e.ctor){n="["+s(e._0);for(e=e._1;"::"===e.ctor;)n+=","+s(e._0),e=e._1;return n+"]"}if("[]"===e.ctor)return"[]";if("Set_elm_builtin"===e.ctor)return"Set.fromList "+s(_elm_lang$core$Set$toList(e));if("RBNode_elm_builtin"===e.ctor||"RBEmpty_elm_builtin"===e.ctor)return"Dict.fromList "+s(ye(e));n="";for(var a in e)if("ctor"!==a){var i=s(e[a]),c=i[0];n+=" "+("{"===c||"("===c||"<"===c||'"'===c||0>i.indexOf(" ")?i:"("+i+")")}return e.ctor+n}if("object"===t){if(e instanceof Date)return"<"+e.toString()+">";if(e.elm_web_socket)return"";n=[];for(var o in e)n.push(o+" = "+s(e[o]));return 0===n.length?"{}":"{ "+n.join(", ")+" }"}return""}function l(e,t){var r=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return t?r.replace(/\'/g,"\\'"):r.replace(/\"/g,'\\"')}return{eq(t,r){for(var n,o=[],a=e(t,r,0,o);a&&(n=o.pop());)a=e(n.x,n.y,0,o);return a},cmp:function e(n,a){if("object"!=typeof n)return n===a?r:a>n?t:o;if(n instanceof String){var i=n.valueOf(),c=a.valueOf();return i===c?r:c>i?t:o}if("::"===n.ctor||"[]"===n.ctor){for(;"::"===n.ctor&&"::"===a.ctor;){if((u=e(n._0,a._0))!==r)return u;n=n._1,a=a._1}return n.ctor===a.ctor?r:"[]"===n.ctor?t:o}if("_Tuple"===n.ctor.slice(0,6)){var u,s=n.ctor.slice(6)-0;if(0===s)return r;if(s>=1){if((u=e(n._0,a._0))!==r)return u;if(s>=2){if((u=e(n._1,a._1))!==r)return u;if(s>=3){if((u=e(n._2,a._2))!==r)return u;if(s>=4){if((u=e(n._3,a._3))!==r)return u;if(s>=5){if((u=e(n._4,a._4))!==r)return u;if(s>=6){if((u=e(n._5,a._5))!==r)return u;if(s>=7)throw new Error("Comparison error: cannot compare tuples with more than 6 elements.")}}}}}}return r}throw new Error("Comparison error: comparison is only defined on ints, floats, times, chars, strings, lists of comparable values, and tuples of comparable values.")},Tuple0:{ctor:"_Tuple0"},Tuple2(e,t){return{ctor:"_Tuple2",_0:e,_1:t}},chr(e){return new String(e)},update(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},guid(){return a++},append:n(function(e,t){if("string"==typeof e)return e+t;if("[]"===e.ctor)return t;var r=c(e._0,i),n=r;for(e=e._1;"[]"!==e.ctor;)n._1=c(e._0,i),e=e._1,n=n._1;return n._1=t,r}),crash(e,t){return r=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"` "+u(t)+"\nThe message provided by the code author is:\n\n "+r)}},crashCase(e,t,r){return n=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"`\n\nThis was caused by the `case` expression "+u(t)+".\nOne of the branches ended with a crash and the following value got through:\n\n "+s(r)+"\n\nThe message provided by the code author is:\n\n "+n)}},toString:s}})(),h=o((e,t,r)=>u(e,r,t)),m=n(e=>e),g=e=>e;(k=k||{})["<|"]=n((e,t)=>e(t)),(k=k||{})["|>"]=n((e,t)=>t(e)),(k=k||{})[">>"]=o((e,t,r)=>t(e(r))),(k=k||{})["<<"]=o((e,t,r)=>e(t(r))),(k=k||{})["++"]=p.append;var v=p.toString,b=f.toFloat,y=f.round;(k=k||{})["||"]=f.or,(k=k||{})["&&"]=f.and;var x=f.compare;(k=k||{})[">="]=f.ge,(k=k||{})["<="]=f.le,(k=k||{})[">"]=f.gt,(k=k||{})["<"]=f.lt,(k=k||{})["/="]=f.neq,(k=k||{})["=="]=f.eq;(k=k||{})["^"]=f.exp,(k=k||{})["%"]=f.mod;var k;(k=k||{})["//"]=f.div,(k=k||{})["/"]=f.floatDiv,(k=k||{})["*"]=f.mul,(k=k||{})["-"]=f.sub,(k=k||{})["+"]=f.add;var w=n((e,t)=>{return"Just"===t.ctor?t._0:e}),N={ctor:"Nothing"},I=n((e,t)=>{return"Just"===t.ctor?e(t._0):N}),j=e=>({ctor:"Just",_0:e}),T=n((e,t)=>{return"Just"===t.ctor?j(e(t._0)):N}),A=(()=>{var e={ctor:"[]"};function t(e,t){return{ctor:"::",_0:e,_1:t}}function r(r){for(var n=e,o=r.length;o--;)n=t(r[o],n);return n}function d(e){for(var t=[];"[]"!==e.ctor;)t.push(e._0),e=e._1;return t}return{Nil:e,Cons:t,cons:n(t),toArray:d,fromArray:r,foldr:o(function(e,t,r){for(var n=d(r),o=t,a=n.length;a--;)o=u(e,n[a],o);return o}),map2:o(function(e,t,n){for(var o=[];"[]"!==t.ctor&&"[]"!==n.ctor;)o.push(u(e,t._0,n._0)),t=t._1,n=n._1;return r(o)}),map3:a(function(e,t,n,o){for(var a=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor;)a.push(s(e,t._0,n._0,o._0)),t=t._1,n=n._1,o=o._1;return r(a)}),map4:i(function(e,t,n,o,a){for(var i=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor;)i.push(l(e,t._0,n._0,o._0,a._0)),t=t._1,n=n._1,o=o._1,a=a._1;return r(i)}),map5:c(function(e,t,n,o,a,i){for(var c=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor&&"[]"!==i.ctor;)c.push(_(e,t._0,n._0,o._0,a._0,i._0)),t=t._1,n=n._1,o=o._1,a=a._1,i=i._1;return r(c)}),sortBy:n(function(e,t){return r(d(t).sort((t,r)=>p.cmp(e(t),e(r))))}),sortWith:n(function(e,t){return r(d(t).sort((t,r)=>{var n=e(t)(r).ctor;return"EQ"===n?0:"LT"===n?-1:1}))})}})(),M=A.sortBy,C=n((e,t)=>{for(;;){if(1>p.cmp(e,0))return t;var r=t;if("[]"===r.ctor)return t;e=e-1,t=r._1}}),B=A.map2,O=n((e,t)=>{for(;;){var r=t;if("[]"===r.ctor)return!1;if(e(r._0))return!0;e=e,t=r._1}}),E=A.foldr,R=o((e,t,r)=>{for(;;){var n=r;if("[]"===n.ctor)return t;var o=e,a=u(e,n._0,t);e=o,t=a,r=n._1}}),S=e=>s(R,n((e,t)=>t+1),0,e),L=n((e,t)=>u(O,t=>p.eq(t,e),t)),z=e=>{return"[]"===e.ctor},D=e=>{return"::"===e.ctor?j(e._0):N},P=P||{};P["::"]=A.cons;var $,q=n((e,t)=>s(E,n((t,r)=>({ctor:"::",_0:e(t),_1:r})),{ctor:"[]"},t)),J=n((e,t)=>{return s(E,n((t,r)=>e(t)?{ctor:"::",_0:t,_1:r}:r),{ctor:"[]"},t)}),V=o((e,t,r)=>{var n=e(t);return"Just"===n.ctor?{ctor:"::",_0:n._0,_1:r}:r}),Z=n((e,t)=>s(E,V(e),{ctor:"[]"},t)),U=e=>s(R,n((e,t)=>({ctor:"::",_0:e,_1:t})),{ctor:"[]"},e),F=n((e,t)=>{return"[]"===t.ctor?e:s(E,n((e,t)=>({ctor:"::",_0:e,_1:t})),t,e)}),W=e=>s(E,F,{ctor:"[]"},e),G=o((e,t,r)=>{for(;;){if(p.cmp(e,t)>=1)return r;var n={ctor:"::",_0:t,_1:r};e=e,t=t-1,r=n}}),Y=n((e,t)=>s(G,e,t,{ctor:"[]"})),H=n((e,t)=>s(B,e,u(Y,0,S(t)-1),t)),K=d.toList,Q=(()=>{return{crash(e){throw new Error(e)},log:n(function(e,t){var r=e+": "+p.toString(t),n=n||{};return n.stdout?n.stdout.write(r):console.log(r),t})}})(),X=(()=>{function e(e,t){for(var r="";e>0;)1&e&&(r+=t),e>>=1,t+=t;return r}function t(e){return ae("could not convert string '"+e+"' to an Int")}function r(e){return ae("could not convert string '"+e+"' to a Float")}return{isEmpty(e){return 0===e.length},cons:n(function(e,t){return e+t}),uncons(e){var t=e[0];return t?j(p.Tuple2(p.chr(t),e.slice(1))):N},append:n(function(e,t){return e+t}),concat(e){return A.toArray(e).join("")},length(e){return e.length},map:n(function(e,t){for(var r=t.split(""),n=r.length;n--;)r[n]=e(p.chr(r[n]));return r.join("")}),filter:n(function(e,t){return t.split("").map(p.chr).filter(e).join("")}),reverse(e){return e.split("").reverse().join("")},foldl:o(function(e,t,r){for(var n=r.length,o=0;n>o;++o)t=u(e,p.chr(r[o]),t);return t}),foldr:o(function(e,t,r){for(var n=r.length;n--;)t=u(e,p.chr(r[n]),t);return t}),split:n(function(e,t){return A.fromArray(t.split(e))}),join:n(function(e,t){return A.toArray(t).join(e)}),repeat:n(e),slice:o(function(e,t,r){return r.slice(e,t)}),left:n(function(e,t){return 1>e?"":t.slice(0,e)}),right:n(function(e,t){return 1>e?"":t.slice(-e)}),dropLeft:n(function(e,t){return 1>e?t:t.slice(e)}),dropRight:n(function(e,t){return 1>e?t:t.slice(0,-e)}),pad:o(function(t,r,n){var o=(t-n.length)/2;return e(Math.ceil(o),r)+n+e(0|o,r)}),padLeft:o(function(t,r,n){return e(t-n.length,r)+n}),padRight:o(function(t,r,n){return n+e(t-n.length,r)}),trim(e){return e.trim()},trimLeft(e){return e.replace(/^\s+/,"")},trimRight(e){return e.replace(/\s+$/,"")},words(e){return A.fromArray(e.trim().split(/\s+/g))},lines(e){return A.fromArray(e.split(/\r\n|\r|\n/g))},toUpper(e){return e.toUpperCase()},toLower(e){return e.toLowerCase()},any:n(function(e,t){for(var r=t.length;r--;)if(e(p.chr(t[r])))return!0;return!1}),all:n(function(e,t){for(var r=t.length;r--;)if(!e(p.chr(t[r])))return!1;return!0}),contains:n(function(e,t){return t.indexOf(e)>-1}),startsWith:n(function(e,t){return 0===t.indexOf(e)}),endsWith:n(function(e,t){return t.length>=e.length&&t.lastIndexOf(e)===t.length-e.length}),indexes:n(function(e,t){var r=e.length;if(1>r)return A.Nil;for(var n=0,o=[];(n=t.indexOf(e,n))>-1;)o.push(n),n+=r;return A.fromArray(o)}),toInt(e){var r=e.length;if(0===r)return t(e);if("0"===(o=e[0])&&"x"===e[1]){for(var n=2;r>n;++n)if(("0">(o=e[n])||o>"9")&&("A">o||o>"F")&&("a">o||o>"f"))return t(e);return ce(parseInt(e,16))}if(o>"9"||"0">o&&"-"!==o&&"+"!==o)return t(e);for(n=1;r>n;++n){var o;if("0">(o=e[n])||o>"9")return t(e)}return ce(parseInt(e,10))},toFloat(e){if(0===e.length||/[\sxbo]/.test(e))return r(e);var t=+e;return t==t?ce(t):r(e)},toList(e){return A.fromArray(e.split("").map(p.chr))},fromList(e){return A.toArray(e).join("")}}})(),ee=(()=>({fromCode:e=>p.chr(String.fromCharCode(e)),toCode:e=>e.charCodeAt(0),toUpper:e=>p.chr(e.toUpperCase()),toLower:e=>p.chr(e.toLowerCase()),toLocaleUpper:e=>p.chr(e.toLocaleUpperCase()),toLocaleLower:e=>p.chr(e.toLocaleLowerCase())}))(),te=ee.toCode,re=o((e,t,r)=>{var n=te(r);return p.cmp(n,te(e))>-1&&1>p.cmp(n,te(t))}),ne=(u(re,p.chr("A"),p.chr("Z")),u(re,p.chr("a"),p.chr("z")),u(re,p.chr("0"),p.chr("9")),u(re,p.chr("0"),p.chr("7")),e=>{return"Ok"===e.ctor?j(e._0):N}),oe=n((e,t)=>{return"Ok"===t.ctor?t._0:e}),ae=e=>({ctor:"Err",_0:e}),ie=n((e,t)=>{var r=t;return"Ok"===r.ctor?e(r._0):ae(r._0)}),ce=e=>({ctor:"Ok",_0:e}),ue=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(e(r._0)):ae(r._0)}),se=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(r._0):ae(e(r._0))}),le=n((e,t)=>{return"Just"===t.ctor?ce(t._0):ae(e)}),_e=X.toFloat,de=X.toInt,fe=X.endsWith,pe=X.dropRight,he=X.join,me=X.split,ge=X.foldl,ve=X.concat,be=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return t;var o=e,a=s(e,n._1,n._2,s(be,e,t,n._4));e=o,t=a,r=n._3}}),ye=e=>s(be,o((e,t,r)=>({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:r})),{ctor:"[]"},e),xe=a((e,t,r,n)=>Q.crash(ve({ctor:"::",_0:"Internal red-black tree invariant violated, expected ",_1:{ctor:"::",_0:e,_1:{ctor:"::",_0:" and got ",_1:{ctor:"::",_0:v(t),_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:r,_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:n,_1:{ctor:"::",_0:"\nPlease report this bug to ",_1:{ctor:"[]"}}}}}}}}}}))),ke=e=>{var t=e;e:do{if("RBNode_elm_builtin"===t.ctor){if("BBlack"===t._0.ctor)return!0;break e}if("LBBlack"===t._0.ctor)return!0;break e}while(0);return!1},we=n((e,t)=>{e:for(;;){var r=t;if("RBEmpty_elm_builtin"===r.ctor)return N;switch(u(x,e,r._1).ctor){case"LT":e=e,t=r._3;continue e;case"EQ":return j(r._2);default:e=e,t=r._4;continue e}}}),Ne=n((e,t)=>{return"Just"===u(we,e,t).ctor}),Ie=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return{ctor:"_Tuple2",_0:e,_1:t};e=n._1,t=n._2,r=n._4}}),je={ctor:"NBlack"},Te={ctor:"BBlack"},Ae={ctor:"Black"},Me={ctor:"Red"},Ce=e=>{switch(e.ctor){case"BBlack":return Ae;case"Black":return Me;case"Red":return je;default:return Q.crash("Can't make a negative black node less black!")}},Be={ctor:"LBBlack"},Oe={ctor:"LBlack"},Ee=e=>({ctor:"RBEmpty_elm_builtin",_0:e}),Re=Ee(Oe),Se=i((e,t,r,n,o)=>({ctor:"RBNode_elm_builtin",_0:e,_1:t,_2:r,_3:n,_4:o})),Le=e=>{var t=e;return"RBNode_elm_builtin"===t.ctor?_(Se,Ce(t._0),t._1,t._2,t._3,t._4):Ee(Oe)},ze=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_(Se,Ce(e),n,o,_(Se,Ae,t,r,c,u),_(Se,Ae,a,i,s,l)),De=e=>{var t=e;return"RBEmpty_elm_builtin"===t.ctor?Q.crash("can't make a Leaf red"):_(Se,Me,t._1,t._2,t._3,t._4)},Pe=i((e,t,r,n,o)=>{var a=_(Se,e,t,r,n,o);return(e=>{if("RBNode_elm_builtin"===e.ctor){var t=e._0;return p.eq(t,Ae)||p.eq(t,Te)}return!0})(a)?(e=>{var t=e;e:do{t:do{r:do{n:do{o:do{a:do{i:do{if("RBNode_elm_builtin"!==t.ctor)break e;if("RBNode_elm_builtin"===t._3.ctor)if("RBNode_elm_builtin"===t._4.ctor)switch(t._3._0.ctor){case"Red":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e}case"NBlack":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;case"NBlack":if("BBlack"===t._0.ctor){if("RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;if("RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}break e;default:if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}default:switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}else switch(t._3._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;default:break e}else{if("RBNode_elm_builtin"!==t._4.ctor)break e;switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}}while(0);return ze(t._0)(t._3._3._1)(t._3._3._2)(t._3._1)(t._3._2)(t._1)(t._2)(t._3._3._3)(t._3._3._4)(t._3._4)(t._4)}while(0);return ze(t._0)(t._3._1)(t._3._2)(t._3._4._1)(t._3._4._2)(t._1)(t._2)(t._3._3)(t._3._4._3)(t._3._4._4)(t._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._3._1)(t._4._3._2)(t._4._1)(t._4._2)(t._3)(t._4._3._3)(t._4._3._4)(t._4._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._1)(t._4._2)(t._4._4._1)(t._4._4._2)(t._3)(t._4._3)(t._4._4._3)(t._4._4._4)}while(0);return _(Se,Ae,t._4._3._1,t._4._3._2,_(Se,Ae,t._1,t._2,t._3,t._4._3._3),_(Pe,Ae,t._4._1,t._4._2,t._4._3._4,De(t._4._4)))}while(0);return _(Se,Ae,t._3._4._1,t._3._4._2,_(Pe,Ae,t._3._1,t._3._2,De(t._3._3),t._3._4._3),_(Se,Ae,t._1,t._2,t._3._4._4,t._4))}while(0);return e})(a):a}),$e=i((e,t,r,n,o)=>ke(n)||ke(o)?_(Pe,(e=>{switch(e.ctor){case"Black":return Te;case"Red":return Ae;case"NBlack":return Me;default:return Q.crash("Can't make a double black node more black!")}})(e),t,r,Le(n),Le(o)):_(Se,e,t,r,n,o)),qe=i((e,t,r,n,o)=>{var a=o;return"RBEmpty_elm_builtin"===a.ctor?s(Je,e,n,o):_($e,e,t,r,n,_(qe,a._0,a._1,a._2,a._3,a._4))}),Je=o((e,t,r)=>{var n={ctor:"_Tuple2",_0:t,_1:r};if("RBEmpty_elm_builtin"!==n._0.ctor){if("RBEmpty_elm_builtin"===n._1.ctor){var o=n._1._0,a=n._0._0,i={ctor:"_Tuple3",_0:e,_1:a,_2:o};return"_Tuple3"===i.ctor&&"Black"===i._0.ctor&&"Red"===i._1.ctor&&"LBlack"===i._2.ctor?_(Se,Ae,n._0._1,n._0._2,n._0._3,n._0._4):l(xe,"Black/Red/LBlack",e,v(a),v(o))}var c=n._0._2,u=n._0._4,d=n._0._1,f=_(qe,n._0._0,d,c,n._0._3,u),p=s(Ie,d,c,u);return _($e,e,p._0,p._1,f,r)}if("RBEmpty_elm_builtin"!==n._1.ctor){var h=n._1._0,m=n._0._0,g={ctor:"_Tuple3",_0:e,_1:m,_2:h};return"_Tuple3"===g.ctor&&"Black"===g._0.ctor&&"LBlack"===g._1.ctor&&"Red"===g._2.ctor?_(Se,Ae,n._1._1,n._1._2,n._1._3,n._1._4):l(xe,"Black/LBlack/Red",e,v(m),v(h))}switch(e.ctor){case"Red":return Ee(Oe);case"Black":return Ee(Be);default:return Q.crash("cannot have bblack or nblack nodes at this point")}}),Ve={ctor:"Same"},Ze={ctor:"Remove"},Ue={ctor:"Insert"},Fe=o((e,t,r)=>{var n,o=r=>{var n=r;if("RBEmpty_elm_builtin"===n.ctor){var a=t(N);return"Nothing"===a.ctor?{ctor:"_Tuple2",_0:Ve,_1:Re}:{ctor:"_Tuple2",_0:Ue,_1:_(Se,Me,e,a._0,Re,Re)}}var i=n._2,c=n._4,l=n._3,d=n._1,f=n._0;switch(u(x,e,d).ctor){case"EQ":var p=t(j(i));return"Nothing"===p.ctor?{ctor:"_Tuple2",_0:Ze,_1:s(Je,f,l,c)}:{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,p._0,l,c)};case"LT":var h=o(l),m=h._1;switch(h._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,i,m,c)};case"Insert":return{ctor:"_Tuple2",_0:Ue,_1:_(Pe,f,d,i,m,c)};default:return{ctor:"_Tuple2",_0:Ze,_1:_($e,f,d,i,m,c)}}default:var g=o(c),v=g._1;switch(g._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,i,l,v)};case"Insert":return{ctor:"_Tuple2",_0:Ue,_1:_(Pe,f,d,i,l,v)};default:return{ctor:"_Tuple2",_0:Ze,_1:_($e,f,d,i,l,v)}}}},a=o(r),i=a._1;switch(a._0.ctor){case"Same":return i;case"Insert":return(e=>{return"RBNode_elm_builtin"===e.ctor&&"Red"===e._0.ctor?_(Se,Ae,e._1,e._2,e._3,e._4):e})(i);default:return"RBEmpty_elm_builtin"===(n=i).ctor?Ee(Oe):_(Se,Ae,n._1,n._2,n._3,n._4)}}),We=o((e,t,r)=>s(Fe,e,m(j(t)),r)),Ge=e=>s(R,n((e,t)=>{return s(We,e._0,e._1,t)}),Re,e),Ye=(()=>{function e(e,t){return{ctor:"",tag:"map-many",func:e,decoders:t}}function t(e){return{tag:"ok",value:e}}function r(e,t){return{tag:"primitive",type:e,value:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function s(e,t){return{tag:"field",field:e,rest:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function l(e,n){var o=function e(n,o){switch(n.tag){case"bool":return"boolean"==typeof o?t(o):r("a Bool",o);case"int":return"number"!=typeof o?r("an Int",o):o>-2147483647&&2147483647>o&&(0|o)===o?t(o):!isFinite(o)||o%1?r("an Int",o):t(o);case"float":return"number"==typeof o?t(o):r("a Float",o);case"string":return"string"==typeof o?t(o):o instanceof String?t(o+""):r("a String",o);case"null":return null===o?t(n.value):r("null",o);case"value":return t(o);case"list":if(!(o instanceof Array))return r("a List",o);for(var a=A.Nil,i=o.length;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);a=A.Cons(c.value,a)}return t(a);case"array":if(!(o instanceof Array))return r("an Array",o);for(var l=o.length,_=new Array(l),i=l;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);_[i]=c.value}return t(d.fromJSArray(_));case"maybe":var c=e(n.decoder,o);return t("ok"===c.tag?j(c.value):N);case"field":var f=n.field;if("object"!=typeof o||null===o||!(f in o))return r("an object with a field named `"+f+"`",o);var c=e(n.decoder,o[f]);return"ok"===c.tag?c:s(f,c);case"index":var h=n.index;if(!(o instanceof Array))return r("an array",o);if(h>=o.length)return r("a longer array. Need index "+h+" but there are only "+o.length+" entries",o);var c=e(n.decoder,o[h]);return"ok"===c.tag?c:u(h,c);case"key-value":if("object"!=typeof o||null===o||o instanceof Array)return r("an object",o);var m=A.Nil;for(var g in o){var c=e(n.decoder,o[g]);if("ok"!==c.tag)return s(g,c);var v=p.Tuple2(g,c.value);m=A.Cons(v,m)}return t(m);case"map-many":for(var b=n.func,y=n.decoders,i=0;y.length>i;i++){var c=e(y[i],o);if("ok"!==c.tag)return c;b=b(c.value)}return t(b);case"andThen":var c=e(n.decoder,o);return"ok"!==c.tag?c:e(n.callback(c.value),o);case"oneOf":for(var x=[],k=n.decoders;"[]"!==k.ctor;){var c=e(k._0,o);if("ok"===c.tag)return c;x.push(c),k=k._1}return{tag:"oneOf",problems:x};case"fail":return{tag:"fail",msg:n.msg};case"succeed":return t(n.msg)}}(e,n);return"ok"===o.tag?ce(o.value):ae(function e(t){for(var r,n="_";t;)switch(t.tag){case"primitive":return"Expecting "+t.type+("_"===n?"":" at "+n)+" but instead got: "+(void 0===(r=t.value)?"undefined":JSON.stringify(r));case"index":n+="["+t.index+"]",t=t.rest;break;case"field":n+="."+t.field,t=t.rest;break;case"oneOf":for(var o=t.problems,a=0;o.length>a;a++)o[a]=e(o[a]);return"I ran into the following problems"+("_"===n?"":" at "+n)+":\n\n"+o.join("\n");case"fail":return"I ran into a `fail` decoder"+("_"===n?"":" at "+n)+": "+t.msg}}(o))}function _(e,t){if(e===t)return!0;if(e.tag!==t.tag)return!1;switch(e.tag){case"succeed":case"fail":return e.msg===t.msg;case"bool":case"int":case"float":case"string":case"value":return!0;case"null":return e.value===t.value;case"list":case"array":case"maybe":case"key-value":return _(e.decoder,t.decoder);case"field":return e.field===t.field&&_(e.decoder,t.decoder);case"index":return e.index===t.index&&_(e.decoder,t.decoder);case"map-many":return e.func===t.func&&f(e.decoders,t.decoders);case"andThen":return e.callback===t.callback&&_(e.decoder,t.decoder);case"oneOf":return f(e.decoders,t.decoders)}}function f(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;r>n;n++)if(!_(e[n],t[n]))return!1;return!0}return{encode:n(function(e,t){return JSON.stringify(t,null,e)}),runOnString:n(function(e,t){var r;try{r=JSON.parse(t)}catch(e){return ae("Given an invalid JSON: "+e.message)}return l(e,r)}),run:n(l),decodeNull(e){return{ctor:"",tag:"null",value:e}},decodePrimitive(e){return{ctor:"",tag:e}},decodeContainer:n(function(e,t){return{ctor:"",tag:e,decoder:t}}),decodeField:n(function(e,t){return{ctor:"",tag:"field",field:e,decoder:t}}),decodeIndex:n(function(e,t){return{ctor:"",tag:"index",index:e,decoder:t}}),map1:n(function(t,r){return e(t,[r])}),map2:o(function(t,r,n){return e(t,[r,n])}),map3:a(function(t,r,n,o){return e(t,[r,n,o])}),map4:i(function(t,r,n,o,a){return e(t,[r,n,o,a])}),map5:c(function(t,r,n,o,a,i){return e(t,[r,n,o,a,i])}),map6:function(e){function t(t){return r=>n=>o=>a=>i=>c=>e(t,r,n,o,a,i,c)}return t.arity=7,t.func=e,t}(function(t,r,n,o,a,i,c){return e(t,[r,n,o,a,i,c])}),map7:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>e(t,r,n,o,a,i,c,u)}return t.arity=8,t.func=e,t}(function(t,r,n,o,a,i,c,u){return e(t,[r,n,o,a,i,c,u])}),map8:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>s=>e(t,r,n,o,a,i,c,u,s)}return t.arity=9,t.func=e,t}(function(t,r,n,o,a,i,c,u,s){return e(t,[r,n,o,a,i,c,u,s])}),decodeKeyValuePairs(e){return{ctor:"",tag:"key-value",decoder:e}},andThen:n(function(e,t){return{ctor:"",tag:"andThen",decoder:t,callback:e}}),fail(e){return{ctor:"",tag:"fail",msg:e}},succeed(e){return{ctor:"",tag:"succeed",msg:e}},oneOf(e){return{ctor:"",tag:"oneOf",decoders:e}},identity(e){return e},encodeNull:null,encodeArray:d.toJSArray,encodeList:A.toArray,encodeObject(e){for(var t={};"[]"!==e.ctor;){var r=e._0;t[r._0]=r._1,e=e._1}return t},equality:_}})(),He=Ye.encodeList,Ke=Ye.encodeObject,Qe=Ye.encodeNull,Xe=Ye.identity,et=Ye.identity,tt=Ye.identity,rt=Ye.encode,nt=Ye.decodeNull,ot=Ye.decodePrimitive("value"),at=Ye.andThen,it=Ye.fail,ct=Ye.succeed,ut=e=>u(at,e,ct({ctor:"_Tuple0"})),st=Ye.run,lt=Ye.runOnString,_t=Ye.map2,dt=Ye.map1,ft=Ye.oneOf,pt=e=>u(Ye.decodeContainer,"maybe",e),ht=Ye.decodeField,mt=n((e,t)=>s(E,ht,t,e)),gt=Ye.decodeKeyValuePairs,vt=e=>u(Ye.decodeContainer,"list",e),bt=e=>ft({ctor:"::",_0:nt(N),_1:{ctor:"::",_0:u(dt,j,e),_1:{ctor:"[]"}}}),yt=Ye.decodePrimitive("float"),xt=Ye.decodePrimitive("int"),kt=Ye.decodePrimitive("bool"),wt=Ye.decodePrimitive("string"),Nt=(()=>{var e="STYLE",t="EVENT",r="ATTR",i="ATTR_NS",c="undefined"!=typeof document?document:{};function l(e,t,r){return{type:"thunk",func:e,args:t,thunk:r,node:void 0}}function _(n){for(var o,a={};"[]"!==n.ctor;){var c=n._0,u=c.key;if(u===r||u===i||u===t){var s=a[u]||{};s[c.realKey]=c.value,a[u]=s}else if(u===e){for(var l=a[u]||{},_=c.value;"[]"!==_.ctor;){var d=_._0;l[d._0]=d._1,_=_._1}a[u]=l}else if("namespace"===u)o=c.value;else if("className"===u){var f=a[u];a[u]=void 0===f?c.value:f+" "+c.value}else a[u]=c.value;n=n._1}return{facts:a,namespace:o}}function d(e,r,n){return{key:t,realKey:e,value:{options:r,decoder:n}}}function f(e,t){return(e.options===t.options||e.options.stopPropagation===t.options.stopPropagation&&e.options.preventDefault===t.options.preventDefault)&&Ye.equality(e.decoder,t.decoder)}function h(e,t){switch(e.type){case"thunk":return e.node||(e.node=e.thunk()),h(e.node,t);case"tagger":for(var r=e.node,n=e.tagger;"tagger"===r.type;)"object"!=typeof n?n=[n,r.tagger]:n.push(r.tagger),r=r.node;var o={tagger:n,parent:t};return(u=h(r,o)).elm_event_node_ref=o,u;case"text":return c.createTextNode(e.text);case"node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(var a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i],t));return u;case"keyed-node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i]._1,t));return u;case"custom":var u;return m(u=e.impl.render(e.model),t,e.facts),u}}function m(n,o,a){for(var c in a){var u=a[c];switch(c){case e:g(n,u);break;case t:v(n,o,u);break;case r:y(n,u);break;case i:x(n,u);break;case"value":n[c]!==u&&(n[c]=u);break;default:n[c]=u}}}function g(e,t){var r=e.style;for(var n in t)r[n]=t[n]}function v(e,t,r){var n=e.elm_handlers||{};for(var o in r){var a=n[o],i=r[o];if(void 0===i)e.removeEventListener(o,a),n[o]=void 0;else if(void 0===a){a=b(t,i);e.addEventListener(o,a),n[o]=a}else a.info=i}e.elm_handlers=n}function b(e,t){function r(t){var n=r.info,o=u(Ye.run,n.decoder,t);if("Ok"===o.ctor){var a=n.options;a.stopPropagation&&t.stopPropagation(),a.preventDefault&&t.preventDefault();for(var i=o._0,c=e;c;){var s=c.tagger;if("function"==typeof s)i=s(i);else for(var l=s.length;l--;)i=s[l](i);c=c.parent}}}return r.info=t,r}function y(e,t){for(var r in t){var n=t[r];void 0===n?e.removeAttribute(r):e.setAttribute(r,n)}}function x(e,t){for(var r in t){var n=t[r],o=n.namespace,a=n.value;void 0===a?e.removeAttributeNS(o,r):e.setAttributeNS(o,r,a)}}function k(e,t){var r=[];return N(e,t,r,0),r}function w(e,t,r){return{index:t,type:e,data:r,domNode:void 0,eventNode:void 0}}function N(e,t,r,n){if(e!==t){var o=t.type;if(e.type===o)switch(o){case"thunk":for(var a=e.args,i=t.args,c=a.length,u=e.func===t.func&&c===i.length;u&&c--;)u=a[c]===i[c];if(u)return void(t.node=e.node);t.node=t.thunk();var s=[];return N(e.node,t.node,s,0),void(s.length>0&&r.push(w("p-thunk",n,s)));case"tagger":for(var l=e.tagger,_=t.tagger,d=!1,f=e.node;"tagger"===f.type;)d=!0,"object"!=typeof l?l=[l,f.tagger]:l.push(f.tagger),f=f.node;for(var p=t.node;"tagger"===p.type;)d=!0,"object"!=typeof _?_=[_,p.tagger]:_.push(p.tagger),p=p.node;return d&&l.length!==_.length?void r.push(w("p-redraw",n,t)):((d?function(e,t){for(var r=0;e.length>r;r++)if(e[r]!==t[r])return!1;return!0}(l,_):l===_)||r.push(w("p-tagger",n,_)),void N(f,p,r,n+1));case"text":return e.text!==t.text?void r.push(w("p-text",n,t.text)):void 0;case"node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o=e.children,a=t.children,i=o.length,c=a.length;i>c?r.push(w("p-remove-last",n,i-c)):c>i&&r.push(w("p-append",n,a.slice(i)));for(var u=n,s=c>i?i:c,l=0;s>l;l++){var _=o[l];N(_,a[l],r,++u),u+=_.descendantsCount||0}}(e,t,r,n));case"keyed-node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o,a=[],i={},c=[],u=e.children,s=t.children,l=u.length,_=s.length,d=0,f=0,p=n;for(;l>d&&_>f;){var h=u[d],m=s[f],g=h._0,v=m._0,b=h._1,y=m._1;if(g!==v){var x=l>d+1,k=_>f+1;if(x)var I=u[d+1],j=I._0,M=I._1,C=v===j;if(k)var B=s[f+1],O=B._0,E=B._1,R=g===O;if(x&&k&&R&&C)N(b,E,a,++p),T(i,a,g,y,f,c),p+=b.descendantsCount||0,A(i,a,g,M,++p),p+=M.descendantsCount||0,d+=2,f+=2;else if(k&&R)p++,T(i,a,v,y,f,c),N(b,E,a,p),p+=b.descendantsCount||0,d+=1,f+=2;else if(x&&C)A(i,a,g,b,++p),p+=b.descendantsCount||0,N(M,y,a,++p),p+=M.descendantsCount||0,d+=2,f+=1;else{if(!x||!k||j!==O)break;A(i,a,g,b,++p),T(i,a,v,y,f,c),p+=b.descendantsCount||0,N(M,E,a,++p),p+=M.descendantsCount||0,d+=2,f+=2}}else N(b,y,a,++p),p+=b.descendantsCount||0,d++,f++}for(;l>d;){var h=u[d],b=h._1;A(i,a,h._0,b,++p),p+=b.descendantsCount||0,d++}for(;_>f;){var m=s[f];T(i,a,m._0,m._1,void 0,o=o||[]),f++}(a.length>0||c.length>0||void 0!==o)&&r.push(w("p-reorder",n,{patches:a,inserts:c,endInserts:o}))}(e,t,r,n));case"custom":if(e.impl!==t.impl)return void r.push(w("p-redraw",n,t));var h;void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h));var m=t.impl.diff(e,t);return m?void r.push(w("p-custom",n,m)):void 0}else r.push(w("p-redraw",n,t))}}function I(n,o,a){var c;for(var u in n)if(u!==e&&u!==t&&u!==r&&u!==i)if(u in o){var s=n[u],l=o[u];s===l&&"value"!==u||a===t&&f(s,l)||((c=c||{})[u]=l)}else(c=c||{})[u]=void 0===a?"string"==typeof n[u]?"":null:a===e?"":a===t||a===r?void 0:{namespace:n[u].namespace,value:void 0};else{var _=I(n[u],o[u]||{},u);_&&((c=c||{})[u]=_)}for(var d in o)d in n||((c=c||{})[d]=o[d]);return c}var j="_elmW6BL";function T(e,t,r,n,o,a){var i=e[r];if(void 0===i)return a.push({index:o,entry:i={tag:"insert",vnode:n,index:o,data:void 0}}),void(e[r]=i);if("remove"===i.tag){a.push({index:o,entry:i}),i.tag="move";var c=[];return N(i.vnode,n,c,i.index),i.index=o,void(i.data.data={patches:c,entry:i})}T(e,t,r+j,n,o,a)}function A(e,t,r,n,o){var a=e[r];if(void 0===a){var i=w("p-remove",o,void 0);return t.push(i),void(e[r]={tag:"remove",vnode:n,index:o,data:i})}if("insert"!==a.tag)A(e,t,r+j,n,o);else{a.tag="move";var c=[];N(n,a.vnode,c,o);i=w("p-remove",o,{patches:c,entry:a});t.push(i)}}function M(e,t,r,n){!function e(t,r,n,o,a,i,c){var u=n[o];var s=u.index;for(;s===a;){var l=u.type;if("p-thunk"===l)M(t,r.node,u.data,c);else if("p-reorder"===l){u.domNode=t,u.eventNode=c;var _=u.data.patches;_.length>0&&e(t,r,_,0,a,i,c)}else if("p-remove"===l){u.domNode=t,u.eventNode=c;var d=u.data;if(void 0!==d){d.entry.data=t;var _=d.patches;_.length>0&&e(t,r,_,0,a,i,c)}}else u.domNode=t,u.eventNode=c;if(!(u=n[++o])||(s=u.index)>i)return o}switch(r.type){case"tagger":for(var f=r.node;"tagger"===f.type;)f=f.node;return e(t,f,n,o,a+1,i,t.elm_event_node_ref);case"node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m],v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"keyed-node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m]._1,v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"text":case"thunk":throw new Error("should never traverse `text` or `thunk` nodes like this")}}(e,t,r,0,0,t.descendantsCount,n)}function C(e,t,r,n){return 0===r.length?e:(M(e,t,r,n),B(e,r))}function B(e,t){for(var r=0;t.length>r;r++){var n=t[r],o=n.domNode,a=O(o,n);o===e&&(e=a)}return e}function O(e,t){switch(t.type){case"p-redraw":return function(e,t,r){var n=e.parentNode,o=h(t,r);void 0===o.elm_event_node_ref&&(o.elm_event_node_ref=e.elm_event_node_ref);n&&o!==e&&n.replaceChild(o,e);return o}(e,t.data,t.eventNode);case"p-facts":return m(e,t.eventNode,t.data),e;case"p-text":return e.replaceData(0,e.length,t.data),e;case"p-thunk":return B(e,t.data);case"p-tagger":return void 0!==e.elm_event_node_ref?e.elm_event_node_ref.tagger=t.data:e.elm_event_node_ref={tagger:t.data,parent:t.eventNode},e;case"p-remove-last":for(var r=t.data;r--;)e.removeChild(e.lastChild);return e;case"p-append":var n=t.data;for(r=0;n.length>r;r++)e.appendChild(h(n[r],t.eventNode));return e;case"p-remove":var o=t.data;if(void 0===o)return e.parentNode.removeChild(e),e;var a=o.entry;return void 0!==a.index&&e.parentNode.removeChild(e),a.data=B(e,o.patches),e;case"p-reorder":return function(e,t){var r=t.data,n=function(e,t){if(void 0===e)return;for(var r=c.createDocumentFragment(),n=0;e.length>n;n++){var o=e[n],a=o.entry;r.appendChild("move"===a.tag?a.data:h(a.vnode,t.eventNode))}return r}(r.endInserts,t);e=B(e,r.patches);for(var o=r.inserts,a=0;o.length>a;a++){var i=o[a],u=i.entry,s="move"===u.tag?u.data:h(u.vnode,t.eventNode);e.insertBefore(s,e.childNodes[i.index])}void 0!==n&&e.appendChild(n);return e}(e,t);case"p-custom":var i=t.data;return i.applyPatch(e,i.data);default:throw new Error("Ran into an unknown patch!")}}var E=S(function(e,t){return(e,r,n)=>{if(void 0===r)return e;var o="The `"+t+"` module does not need flags.\nInitialize it with no arguments and you should be all set!";L(o,n)}}),R=S(function(e,t){return(r,n,o)=>{if(void 0===e){var a="Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+t+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.";L(a,o)}var i=u(Ye.run,e,n);if("Ok"===i.ctor)return r(i._0);var a="Trying to initialize the `"+t+"` module with an unexpected flag.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0;L(a,o)}});function S(e){return n((t,r)=>n=>(o,a,i)=>{var c=e(n,a);void 0===i?function(e,t,r,n){t.embed=function(t,r){for(;t.lastChild;)t.removeChild(t.lastChild);return At.initialize(n(e.init,r,t),e.update,e.subscriptions,z(t,e.view))},t.fullscreen=function(t){return At.initialize(n(e.init,t,document.body),e.update,e.subscriptions,z(document.body,e.view))}}(r,o,0,c):function(e,t,r,n){t.fullscreen=function(t){var o={doc:void 0};return At.initialize(n(e.init,t,document.body),e.update(q(o)),e.subscriptions,J(r,document.body,o,e.view,e.viewIn,e.viewOut))},t.embed=function(t,o){var a={doc:void 0};return At.initialize(n(e.init,o,t),e.update(q(a)),e.subscriptions,J(r,t,a,e.view,e.viewIn,e.viewOut))}}(u(t,i,r),o,a,c)})}function L(e,t){throw t&&(t.innerHTML='

Oops! Something went wrong when starting your Elm program.

'+e+"
"),new Error(e)}function z(e,t){return(r,n)=>{var o={tagger:r,parent:void 0},a=t(n),i=h(a,o);return e.appendChild(i),P(i,t,a,o)}}var D="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:e=>{setTimeout(e,1e3/60)};function P(e,t,r,n){var o,a="NO_REQUEST",i=r;function c(){switch(a){case"NO_REQUEST":throw new Error("Unexpected draw callback.\nPlease report this to .");case"PENDING_REQUEST":D(c),a="EXTRA_REQUEST";var r=t(o),u=k(i,r);return e=C(e,i,u,n),void(i=r);case"EXTRA_REQUEST":return void(a="NO_REQUEST")}}return function(e){"NO_REQUEST"===a&&D(c),a="PENDING_REQUEST",o=e}}function q(e){return Mt.nativeBinding(t=>{var r=e.doc;if(r){var n=r.getElementsByClassName("debugger-sidebar-messages")[0];n&&(n.scrollTop=n.scrollHeight)}t(Mt.succeed(p.Tuple0))})}function J(e,t,r,n,o,a){return(i,u)=>{var s={tagger:i,parent:void 0},l={tagger:i,parent:void 0},_=n(u),d=h(_,s);t.appendChild(d);var f=P(d,n,_,s),p=o(u)._1,m=h(p,l);t.appendChild(m);var g=P(m,function(e,t,r){var n,o=function(e){return t=>{if("keydown"!==t.type||!t.metaKey||82!==t.which){for(var r="scroll"===t.type||"wheel"===t.type,n=t.target;null!==n;){if("elm-overlay-message-details"===n.className&&r)return;if(n===e&&!r)return;n=n.parentNode}t.stopPropagation(),t.preventDefault()}}}(t),a="Normal",i=e.tagger,c=()=>{};return t=>{var u=r(t),s=u._0.ctor;return e.tagger="Normal"===s?i:c,a!==s&&(V("removeEventListener",o,a),V("addEventListener",o,s),"Normal"===a&&(n=document.body.style.overflow,document.body.style.overflow="hidden"),"Normal"===s&&(document.body.style.overflow=n),a=s),u._1}}(s,m,o),p,l),v=function(e,t,r,n,o,a){var i,u;return function(e){if(e.isDebuggerOpen){if(!a.doc)return i=t(e),void(u=function(e,t,r,n){var o=screen.width-900,a=screen.height-360,i=window.open("","","width=900,height=360,left="+o+",top="+a);t.doc=c=i.document,c.title="Debugger - "+e,c.body.style.margin="0",c.body.style.padding="0";var u=h(r,n);function s(){t.doc=void 0,i.close()}return c.body.appendChild(u),c.addEventListener("keydown",e=>{e.metaKey&&82===e.which&&window.location.reload(),38===e.which&&(n.tagger({ctor:"Up"}),e.preventDefault()),40===e.which&&(n.tagger({ctor:"Down"}),e.preventDefault())}),window.addEventListener("unload",s),i.addEventListener("unload",()=>{t.doc=void 0,window.removeEventListener("unload",s),n.tagger({ctor:"Close"})}),c=document,u}(o,a,i,r));c=a.doc;var n=t(e),s=k(i,n);u=C(u,i,s,r),i=n,c=document}}}(0,a,l,0,e,r);return function(e){f(e),g(e),v(e)}}}function V(e,t,r){switch(r){case"Normal":return;case"Pause":return Z(e,t,U);case"Message":return Z(e,t,F)}}function Z(e,t,r){for(var n=0;r.length>n;n++)document.body[e](r[n],t,!0)}var U=["click","dblclick","mousemove","mouseup","mousedown","mouseenter","mouseleave","touchstart","touchend","touchcancel","touchmove","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointercancel","dragstart","drag","dragend","dragenter","dragover","dragleave","drop","keyup","keydown","keypress","input","change","focus","blur"],F=U.concat("wheel","scroll");return{node(e){return n((t,r)=>((e,t,r)=>{for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u.descendantsCount||0,i.push(u),r=r._1}return{type:"node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}})(e,t,r))},text(e){return{type:"text",text:e}},custom(e,t,r){return{type:"custom",facts:_(e).facts,model:t,impl:r}},map:n(function(e,t){return{type:"tagger",tagger:e,node:t,descendantsCount:1+(t.descendantsCount||0)}}),on:o(d),style(t){return{key:e,value:t}},property:n(function(e,t){return{key:e,value:t}}),attribute:n(function(e,t){return{key:r,realKey:e,value:t}}),attributeNS:o(function(e,t,r){return{key:i,realKey:t,value:{value:r,namespace:e}}}),mapProperty:n(function(e,r){return r.key!==t?r:d(r.realKey,r.value.options,u(dt,e,r.value.decoder))}),lazy:n(function(e,t){return l(e,[t],()=>e(t))}),lazy2:o(function(e,t,r){return l(e,[t,r],()=>u(e,t,r))}),lazy3:a(function(e,t,r,n){return l(e,[t,r,n],()=>s(e,t,r,n))}),keyedNode:o(function(e,t,r){for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u._1.descendantsCount||0,i.push(u),r=r._1}return{type:"keyed-node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}}),program:E,programWithFlags:R,staticProgram(e){var t=p.Tuple2(p.Tuple0,Bt);return u(E,$,{init:t,view:()=>e,update:n(()=>t),subscriptions:()=>Jt})()}}})(),It=Q.log,jt=e=>{return e._1},Tt=e=>{return e._0},At=(()=>{function e(){return()=>{}}function t(e,t,n,o){var c,s={};var l=i(Mt.nativeBinding(t=>{var r=e._0;c=o(_,r);var a=e._1,i=n(r);d(s,a,i),t(Mt.succeed(r))}),function(e,r){return Mt.nativeBinding(o=>{var a=u(t,e,r);c(r=a._0);var i=a._1,l=n(r);d(s,i,l),o(Mt.succeed(r))})});function _(e){Mt.rawSend(l,e)}var f=function(e,t){var n;for(var o in r){var i=r[o];i.isForeign&&((n=n||{})[o]="cmd"===i.tag?g(o):b(o,t)),e[o]=a(i,t)}return n}(s,_);return f?{ports:f}:{}}var r={};function a(e,t){var r={main:t,self:void 0},n=e.tag,o=e.onEffects,a=e.onSelfMsg;var c=i(e.init,function(e,t){if("self"===e.ctor)return s(a,r,e._0,t);var i=e._0;switch(n){case"cmd":return s(o,r,i.cmds,t);case"sub":return s(o,r,i.subs,t);case"fx":return l(o,r,i.cmds,i.subs,t)}});return r.self=c,c}function i(e,t){var r=Mt.andThen;var n=u(r,function e(n){var o=Mt.receive(e=>t(e,n));return u(r,e,o)},e);return Mt.rawSpawn(n)}function c(e){return t=>({type:"leaf",home:e,value:t})}function _(e){return{type:"node",branches:e}}function d(e,t,r){var n={};for(var o in f(!0,t,n,null),f(!1,r,n,null),e){Mt.rawSend(e[o],{ctor:"fx",_0:o in n?n[o]:{cmds:A.Nil,subs:A.Nil}})}}function f(e,t,n,o){switch(t.type){case"leaf":var a=t.home,i=function(e,t,n,o){return u(e?r[t].cmdMap:r[t].subMap,function(e){var t=n;for(;t;)e=t.tagger(e),t=t.rest;return e},o)}(e,a,o,t.value);return void(n[a]=function(e,t,r){if(r=r||{cmds:A.Nil,subs:A.Nil},e)return r.cmds=A.Cons(t,r.cmds),r;return r.subs=A.Cons(t,r.subs),r}(e,i,n[a]));case"node":for(var c=t.branches;"[]"!==c.ctor;)f(e,c._0,n,o),c=c._1;return;case"map":return void f(e,t.tree,n,{tagger:t.tagger,rest:o})}}function h(e){if(e in r)throw new Error("There can only be one port named `"+e+"`, but your program has multiple.")}var m=n(function(e,t){return t});function g(e){var t=[],n=r[e].converter,a=Mt.succeed(null);return r[e].init=a,r[e].onEffects=o(function(e,r){for(;"[]"!==r.ctor;){for(var o=t,i=n(r._0),c=0;o.length>c;c++)o[c](i);r=r._1}return a}),{subscribe(e){t.push(e)},unsubscribe(e){var r=(t=t.slice()).indexOf(e);0>r||t.splice(r,1)}}}var v=n(function(e,t){return r=>e(t(r))});function b(e,t){var n=[],a=A.Nil,i=r[e].converter,c=function(e,t,r){for(var o=_(e,t,r),a=0;n.length>a;a++)d(n[a]);return n=null,s=d,c=_,o},s=function(e){n.push(e)},l=Mt.succeed(null);function _(e,t){return a=t,l}function d(e){for(var r=a;"[]"!==r.ctor;)t(r._0(e)),r=r._1}return r[e].init=l,r[e].onEffects=o(function(e,t,r){return c(e,t,r)}),{send(t){var r=u(st,i,t);if("Err"===r.ctor)throw new Error("Trying to send an unexpected type of value through port `"+e+"`:\n"+r._0);s(r._0)}}}return{sendToApp:n(function(e,t){return Mt.nativeBinding(r=>{e.main(t),r(Mt.succeed(p.Tuple0))})}),sendToSelf:n(function(e,t){return u(Mt.send,e.self,{ctor:"self",_0:t})}),effectManagers:r,outgoingPort(e,t){return h(e),r[e]={tag:"cmd",cmdMap:m,converter:t,isForeign:!0},c(e)},incomingPort(e,t){return h(e),r[e]={tag:"sub",subMap:v,converter:t,isForeign:!0},c(e)},htmlToProgram(){var e=_(A.Nil),t=p.Tuple2(p.Tuple0,e);return Zt({init:t,view:()=>main,update:n(()=>t),subscriptions:()=>e})},program(r){return()=>(n,o)=>{n.worker=(n=>{if(void 0!==n)throw new Error("The `"+o+"` module does not need flags.\nCall "+o+".worker() with no arguments and you should be all set!");return t(r.init,r.update,r.subscriptions,e)})}},programWithFlags(r){return n=>(o,a)=>{o.worker=(o=>{if(void 0===n)throw new Error("Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+a+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.");var i=u(Ye.run,n,o);if("Err"===i.ctor)throw new Error(a+".worker(...) was called with an unexpected argument.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0);return t(r.init(i._0),r.update,r.subscriptions,e)})}},initialize:t,leaf:c,batch:_,map:n(function(e,t){return{type:"map",tagger:e,tree:t}})}})(),Mt=(()=>{var e=1e4;function t(e){return{ctor:"_Task_succeed",value:e}}function r(e){return{ctor:"_Task_nativeBinding",callback:e,cancel:null}}function o(e){var t={ctor:"_Process",id:p.guid(),root:e,stack:null,mailbox:[]};return s(t),t}function a(e,t){e.mailbox.push(t),s(e)}function i(t,r){for(;e>t;){var n=r.root.ctor;if("_Task_succeed"!==n)if("_Task_fail"!==n)if("_Task_andThen"!==n)if("_Task_onError"!==n){if("_Task_nativeBinding"===n){r.root.cancel=r.root.callback(e=>{r.root=e,s(r)});break}if("_Task_receive"!==n)throw new Error(n);var o=r.mailbox;if(0===o.length)break;r.root=r.root.callback(o.shift()),++t}else r.stack={ctor:"_Task_onError",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else r.stack={ctor:"_Task_andThen",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else{for(;r.stack&&"_Task_andThen"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}else{for(;r.stack&&"_Task_onError"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}}return e>t?t+1:(s(r),t)}var c=!1,u=[];function s(e){u.push(e),c||(setTimeout(l,0),c=!0)}function l(){for(var t,r=0;e>r&&(t=u.shift());)t.root&&(r=i(r,t));t?setTimeout(l,0):c=!1}return{succeed:t,fail(e){return{ctor:"_Task_fail",value:e}},nativeBinding:r,andThen:n(function(e,t){return{ctor:"_Task_andThen",callback:e,task:t}}),onError:n(function(e,t){return{ctor:"_Task_onError",callback:e,task:t}}),receive(e){return{ctor:"_Task_receive",callback:e}},spawn(e){return r(r=>{r(t(o(e)))})},kill(e){return r(r=>{var n=e.root;"_Task_nativeBinding"===n.ctor&&n.cancel&&n.cancel(),e.root=null,r(t(p.Tuple0))})},sleep(e){return r(r=>{var n=setTimeout(()=>{r(t(p.Tuple0))},e);return()=>{clearTimeout(n)}})},send:n(function(e,n){return r(r=>{a(e,n),r(t(p.Tuple0))})}),rawSpawn:o,rawSend:a}})(),Ct=At.batch,Bt=Ct({ctor:"[]"}),Ot=Ot||{};Ot["!"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:Ct(t)}));var Et,Rt,St,Lt,zt,Dt,Pt,$t=At.map,qt=At.batch,Jt=qt({ctor:"[]"}),Vt=e=>u(Nt.programWithFlags,void 0,e),Zt=e=>u(Nt.program,$,e),Ut={stopPropagation:!1,preventDefault:!1},Ft=Nt.on,Wt=n((e,t)=>s(Ft,e,Ut,t)),Gt=Nt.property,Yt=Nt.map,Ht=Nt.text,Kt=Nt.node,Qt=Vt,Xt=Yt,er=Ht,tr=Kt,rr=(tr("body"),tr("section"),tr("nav"),tr("article"),tr("aside"),tr("h1"),tr("h2"),tr("h3"),tr("h4"),tr("h5"),tr("h6"),tr("header"),tr("footer"),tr("address"),tr("main"),tr("p"),tr("hr"),tr("pre"),tr("blockquote"),tr("ol"),tr("ul"),tr("li"),tr("dl"),tr("dt"),tr("dd"),tr("figure"),tr("figcaption"),tr("div")),nr=(tr("a"),tr("em"),tr("strong"),tr("small"),tr("s"),tr("cite"),tr("q"),tr("dfn"),tr("abbr"),tr("time"),tr("code"),tr("var"),tr("samp"),tr("kbd"),tr("sub"),tr("sup"),tr("i"),tr("b"),tr("u"),tr("mark"),tr("ruby"),tr("rt"),tr("rp"),tr("bdi"),tr("bdo"),tr("span")),or=(tr("br"),tr("wbr"),tr("ins"),tr("del"),tr("img"),tr("iframe"),tr("embed"),tr("object"),tr("param"),tr("video"),tr("audio"),tr("source"),tr("track"),tr("canvas"),tr("math"),tr("table"),tr("caption"),tr("colgroup"),tr("col"),tr("tbody"),tr("thead"),tr("tfoot"),tr("tr"),tr("td"),tr("th"),tr("form"),tr("fieldset"),tr("legend"),tr("label")),ar=tr("input"),ir=(tr("button"),tr("select"),tr("datalist"),tr("optgroup"),tr("option"),tr("textarea"),tr("keygen"),tr("output"),tr("progress"),tr("meter"),tr("details"),tr("summary"),tr("menuitem"),tr("menu"),n((e,t)=>{var r=e;if("[]"===r.ctor)return ce(t);var o=r._1,a=r._0,i=t;switch(i.ctor){case"ObjectValue":return u(ie,ir(o),u(le,"Key not found",s(R,n((e,t)=>{var r=e;return p.eq(t,N)?p.eq(r._0,a)?j(r._1):N:t}),N,i._0)));case"ArrayValue":return u(ie,ir(o),u(ie,e=>u(le,"Index is too big",D(u(C,e,i._0))),de(a)));default:return ae("You are trying to access property of something that is not object or array")}})),cr=e=>{var t=e;switch(t.ctor){case"ObjectValue":return Ke(u(q,e=>{return{ctor:"_Tuple2",_0:e._0,_1:cr(e._1)}},t._0));case"ArrayValue":return He(u(q,cr,t._0));case"StringValue":return tt(t._0);case"BoolValue":return Xe(t._0);case"NullValue":return Qe;default:return et(t._0)}},ur=e=>({ctor:"StringValue",_0:e}),sr=e=>({ctor:"NumericValue",_0:e}),lr={ctor:"NullValue"},_r=e=>({ctor:"BoolValue",_0:e}),dr=e=>({ctor:"ArrayValue",_0:e}),fr=e=>({ctor:"ObjectValue",_0:e}),pr=(Et=u(dt,dr,vt(ut(()=>pr))),Rt=u(dt,fr,u(at,e=>ct(U(e)),gt(ut(()=>pr)))),ft({ctor:"::",_0:Rt,_1:{ctor:"::",_0:Et,_1:{ctor:"::",_0:nt(lr),_1:{ctor:"::",_0:u(dt,ur,wt),_1:{ctor:"::",_0:u(dt,sr,yt),_1:{ctor:"::",_0:u(dt,_r,kt),_1:{ctor:"[]"}}}}}}})),hr=o((e,t,r)=>{var o=r;switch(o.ctor){case"ObjectValue":return ce(fr((r=>u(O,t=>p.eq(t._0,e),r)?u(q,r=>{var n=r,o=n._0;return p.eq(o,e)?{ctor:"_Tuple2",_0:e,_1:t}:{ctor:"_Tuple2",_0:o,_1:n._1}},r):u(k["++"],r,{ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))(o._0)));case"ArrayValue":var a=o._0,i=u(oe,S(a),u(lt,xt,e));return p.cmp(S(a),i)>0?ce(dr(u(H,n((e,r)=>p.eq(e,i)?t:r),a))):ce(dr(u(k["++"],a,{ctor:"::",_0:t,_1:{ctor:"[]"}})));default:return p.eq(e,"0")?ce(dr({ctor:"::",_0:t,_1:{ctor:"[]"}})):ce(fr({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))}}),mr=o((e,t,r)=>{var o,a=U(e);return"[]"===(o=a).ctor?ce(t):s(R,n((e,t)=>{var n=t,o=n._0,a=U(o),i=u(ie,t=>u(ie,u(hr,e,t),u(ir,a,r)),n._1),c=o;return"[]"===c.ctor?{ctor:"_Tuple2",_0:{ctor:"[]"},_1:i}:{ctor:"_Tuple2",_0:c._1,_1:i}}),{ctor:"_Tuple2",_0:o._1,_1:ce(t)},a)._1}),gr=e=>({ctor:"Unknown",_0:e}),vr={ctor:"Switch"},br={ctor:"PasswordField"},yr=ft({ctor:"::",_0:u(at,e=>p.eq(e,"password")?ct(br):p.eq(e,"switch")?ct(vr):it(""),u(ht,"widget",wt)),_1:{ctor:"::",_0:u(dt,gr,ot),_1:{ctor:"[]"}}}),xr=e=>s(R,n((e,t)=>{var r=t,n=r._2,o=r._1,a=r._0;return{ctor:"_Tuple3",_0:a+1,_1:p.cmp(o,-1)>0?o:u(L,e,n)?a:-1,_2:u(C,1,n)}}),{ctor:"_Tuple3",_0:0,_1:-1,_2:u(C,1,e)},e)._1,kr=e=>p.eq(e,(()=>b(y(e)))()),wr=ct,Nr=(at(g),_t(n((e,t)=>t(e)))),Ir=o((e,t,r)=>{return u(at,n=>{var o=u(st,e,n);if("Ok"===o.ctor){var a=u(st,(e=>ft({ctor:"::",_0:e,_1:{ctor:"::",_0:nt(r),_1:{ctor:"[]"}}}))(t),o._0);return"Ok"===a.ctor?ct(a._0):it(a._0)}return ct(r)},ot)}),jr=a((e,t,r,n)=>u(Nr,s(Ir,u(ht,e,ot),t,r),n)),Tr=o((e,t,r)=>u(Nr,u(mt,e,t),r)),Ar=n((e,t)=>{var r=t;return"ObjectSchema"===r.ctor?D(u(Z,t=>{var r=t;return p.eq(r._0,e)?j(r._1):N},u(oe,{ctor:"[]"},u(st,gt(ot),r._0.source)))):N}),Mr=u(at,e=>p.cmp(e,0)>-1&&kr(e)?ct(e):it("Expected non-negative int"),xt),Cr=e=>z(e)?it("List is empty"):ct(e),Br=u(at,Cr,u(at,e=>ct(e),vt(ot))),Or=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_=>d=>f=>p=>h=>m=>g=>v=>b=>y=>x=>k=>w=>N=>I=>j=>T=>A=>M=>C=>B=>O=>E=>R=>S=>L=>z=>({type_:e,id:t,ref:r,title:n,description:o,$default:a,examples:i,definitions:c,multipleOf:u,maximum:s,exclusiveMaximum:l,minimum:_,exclusiveMinimum:d,maxLength:f,minLength:p,pattern:h,format:m,items:g,additionalItems:v,maxItems:b,minItems:y,uniqueItems:x,contains:k,maxProperties:w,minProperties:N,required:I,properties:j,patternProperties:T,additionalProperties:A,dependencies:M,propertyNames:C,$enum:B,$const:O,allOf:E,anyOf:R,oneOf:S,not:L,source:z}),Er=e=>({ctor:"ObjectSchema",_0:e}),Rr=e=>({ctor:"BooleanSchema",_0:e}),Sr={ctor:"NoItems"},Lr=e=>({ctor:"NumberBoundary",_0:e}),zr=e=>({ctor:"BoolBoundary",_0:e}),Dr=e=>({ctor:"NullableType",_0:e}),Pr=e=>({ctor:"SingleType",_0:e}),$r={ctor:"AnyType"},qr={type_:$r,id:N,ref:N,title:N,description:N,$default:N,examples:N,definitions:N,multipleOf:N,maximum:N,exclusiveMaximum:N,minimum:N,exclusiveMinimum:N,maxLength:N,minLength:N,pattern:N,format:N,items:Sr,additionalItems:N,maxItems:N,minItems:N,uniqueItems:N,contains:N,maxProperties:N,minProperties:N,required:N,properties:N,patternProperties:N,additionalProperties:N,dependencies:{ctor:"[]"},propertyNames:N,$enum:N,$const:N,allOf:N,anyOf:N,oneOf:N,not:N,source:Ke({ctor:"[]"})},Jr=Er(qr),Vr={ctor:"NullType"},Zr={ctor:"ObjectType"},Ur={ctor:"ArrayType"},Fr={ctor:"BooleanType"},Wr={ctor:"StringType"},Gr={ctor:"NumberType"},Yr={ctor:"IntegerType"},Hr=e=>{switch(e){case"integer":return ce(Yr);case"number":return ce(Gr);case"string":return ce(Wr);case"boolean":return ce(Fr);case"array":return ce(Ur);case"object":return ce(Zr);case"null":return ce(Vr);default:return ae(u(k["++"],"Unknown type: ",e))}},Kr=e=>{var t=Hr(e);return"Ok"===t.ctor?ct(t._0):it(t._0)},Qr=e=>{var t,r,o=e;e:do{if("::"===o.ctor){if("::"===o._1.ctor){if("[]"===o._1._1.ctor){if("null"===o._1._0)return u(dt,Dr,Kr(o._0));if("null"===o._0)return u(dt,Dr,Kr(o._1._0));break e}break e}return u(dt,Pr,Kr(o._0))}break e}while(0);return t=u(ie,e=>ce((e=>({ctor:"UnionType",_0:e}))(e)),(e=>u(ue,U,s(R,e=>ie(t=>u(ue,u(h,n((e,t)=>({ctor:"::",_0:e,_1:t})),t),e)),ce({ctor:"[]"}),e)))(u(q,Hr,(e=>u(M,g,e))(o)))),"Ok"===(r=t).ctor?ct(r._0):it(r._0)},Xr=(St=ft({ctor:"::",_0:u(dt,zr,kt),_1:{ctor:"::",_0:u(dt,Lr,yt),_1:{ctor:"[]"}}}),Lt=u(at,e=>ct(Rr(!!e)),kt),zt=u(at,Qr,vt(wt)),Dt=u(at,Kr,wt),Pt=s(Tr,{ctor:"[]"},ot,l(jr,"not",bt(ut(()=>Xr)),N,l(jr,"oneOf",bt(ut(()=>rn)),N,l(jr,"anyOf",bt(ut(()=>rn)),N,l(jr,"allOf",bt(ut(()=>rn)),N,l(jr,"const",u(dt,j,ot),N,l(jr,"enum",bt(Br),N,l(jr,"propertyNames",bt(ut(()=>Xr)),N,l(jr,"dependencies",ut(()=>en),{ctor:"[]"},l(jr,"additionalProperties",bt(ut(()=>Xr)),N,l(jr,"patternProperties",bt(ut(()=>nn)),N,l(jr,"properties",bt(ut(()=>nn)),N,l(jr,"required",bt(vt(wt)),N,l(jr,"minProperties",bt(Mr),N,l(jr,"maxProperties",bt(Mr),N,l(jr,"contains",bt(ut(()=>Xr)),N,l(jr,"uniqueItems",bt(kt),N,l(jr,"minItems",bt(Mr),N,l(jr,"maxItems",bt(Mr),N,l(jr,"additionalItems",bt(ut(()=>Xr)),N,l(jr,"items",ut(()=>tn),Sr,l(jr,"format",bt(wt),N,l(jr,"pattern",bt(wt),N,l(jr,"minLength",bt(Mr),N,l(jr,"maxLength",bt(Mr),N,l(jr,"exclusiveMinimum",bt(St),N,l(jr,"minimum",bt(yt),N,l(jr,"exclusiveMaximum",bt(St),N,l(jr,"maximum",bt(yt),N,l(jr,"multipleOf",bt(yt),N,l(jr,"definitions",bt(ut(()=>nn)),N,l(jr,"examples",bt(vt(ot)),N,l(jr,"default",u(dt,j,ot),N,l(jr,"description",bt(wt),N,l(jr,"title",bt(wt),N,l(jr,"$ref",bt(wt),N,u(Nr,s(_t,n((e,t)=>p.eq(e,N)?t:e),pt(u(ht,"$id",wt)),pt(u(ht,"id",wt))),l(jr,"type",ft({ctor:"::",_0:zt,_1:{ctor:"::",_0:u(dt,Pr,Dt),_1:{ctor:"[]"}}}),$r,wr(Or))))))))))))))))))))))))))))))))))))))),ft({ctor:"::",_0:Lt,_1:{ctor:"::",_0:u(at,e=>ct(Er(e)),Pt),_1:{ctor:"[]"}}})),en=gt(ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayPropNames",_0:e}),vt(wt)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"PropSchema",_0:e}),Xr),_1:{ctor:"[]"}}})),tn=ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayOfItems",_0:e}),vt(Xr)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"ItemDefinition",_0:e}),Xr),_1:{ctor:"[]"}}}),rn=u(at,Cr,vt(ut(()=>Xr))),nn=u(dt,e=>({ctor:"Schemata",_0:e}),u(at,e=>ct(U(e)),gt(ut(()=>Xr)))),on=n((e,t)=>({schema:e,focused:N,value:t,errors:Re,beingEdited:{ctor:"[]"},editedNumber:""})),an=e=>({ctor:"EditNumber",_0:e}),cn=n((e,t)=>({ctor:"EditValue",_0:e,_1:t})),un=e=>({ctor:"FocusNumericInput",_0:e}),sn=e=>({ctor:"FocusInput",_0:e}),ln={ctor:"Object"},_n={ctor:"JsonEditor"},dn={ctor:"Checkbox"},fn={ctor:"Switch"},pn={ctor:"NumberField"},hn={ctor:"TextField"},mn=(()=>{return{regex(e){return new RegExp(e,"g")},caseInsensitive(e){return new RegExp(e.source,"gi")},escape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},contains:n(function(e,t){return null!==t.match(e)}),find:o(function(e,t,r){e="All"===e.ctor?1/0:e._0;for(var n,o=[],a=0,i=r,c=t.lastIndex,u=-1;a++0;){var _=n[s];l[--s]=void 0===_?N:j(_)}o.push({match:n[0],submatches:A.fromArray(l),index:n.index,number:a}),u=t.lastIndex}return t.lastIndex=c,A.fromArray(o)}),replace:a(function(e,t,r,n){e="All"===e.ctor?1/0:e._0;var o=0;return n.replace(t,function(t){if(o++>=e)return t;for(var n=arguments.length-3,a=new Array(n);n>0;){var i=arguments[n];a[--n]=void 0===i?N:j(i)}return r({match:t,submatches:A.fromArray(a),index:arguments[arguments.length-2],number:o})})}),split:o(function(e,t,r){if((e="All"===e.ctor?1/0:e._0)===1/0)return A.fromArray(r.split(t));for(var n,o=r,a=[],i=t.lastIndex,c=t.lastIndex;e--&&(n=t.exec(o));)a.push(o.slice(i,n.index)),i=t.lastIndex;return a.push(o.slice(i)),t.lastIndex=c,A.fromArray(a)})}})(),gn=mn.replace,vn=mn.contains,bn=mn.regex,yn={ctor:"All"},xn=e=>u(oe,Jr,u(lt,Xr,e)),kn=xn('\n {\n "$schema": "http://json-schema.org/draft-06/schema#",\n "$id": "http://json-schema.org/draft-06/schema#",\n "title": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "nonNegativeInteger": {\n "type": "integer",\n "minimum": 0\n },\n "nonNegativeIntegerDefault0": {\n "allOf": [\n { "$ref": "#/definitions/nonNegativeInteger" },\n { "default": 0 }\n ]\n },\n "simpleTypes": {\n "enum": [\n "array",\n "boolean",\n "integer",\n "null",\n "number",\n "object",\n "string"\n ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "uniqueItems": true,\n "default": []\n }\n },\n "type": ["object", "boolean"],\n "properties": {\n "$id": {\n "type": "string",\n "format": "uri-reference",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "$ref": {\n "type": "string",\n "format": "uri-reference"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "exclusiveMinimum": 0\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "number"\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "number"\n },\n "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },\n "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": { "$ref": "#" },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },\n "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "contains": { "$ref": "#" },\n "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },\n "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": { "$ref": "#" },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "propertyNames": { "$ref": "#" },\n "const": {},\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "format": { "type": "string" },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "default": {}\n }\n '),wn=xn('\n {\n "id": "http://json-schema.org/draft-04/schema#",\n "$schema": "http://json-schema.org/draft-04/schema#",\n "description": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "positiveInteger": {\n "type": "integer",\n "minimum": 0\n },\n "positiveIntegerDefault0": {\n "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]\n },\n "simpleTypes": {\n "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "minItems": 1,\n "uniqueItems": true\n }\n },\n "type": "object",\n "properties": {\n "id": {\n "type": "string",\n "format": "uri",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "minimum": 0,\n "exclusiveMinimum": true\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "boolean",\n "default": false\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "boolean",\n "default": false\n },\n "maxLength": { "$ref": "#/definitions/positiveInteger" },\n "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/positiveInteger" },\n "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "maxProperties": { "$ref": "#/definitions/positiveInteger" },\n "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "dependencies": {\n "exclusiveMaximum": [ "maximum" ],\n "exclusiveMinimum": [ "minimum" ]\n },\n "default": {}\n }\n '),Nn=e=>{return"ObjectSchema"===e.ctor?j(e._0):N},In=e=>u(fe,"#",e)?u(pe,1,e):e,jn=bn("%25"),Tn=bn("~1"),An=bn("~0"),Mn=e=>l(gn,yn,jn,()=>"%",l(gn,yn,Tn,()=>"/",l(gn,yn,An,()=>"~",e))),Cn=bn("\\/[^\\/]*$"),Bn=bn("\\/\\/|^\\/"),On=n((e,t)=>{var r=vn(Bn),o=vn(Cn),a=n((e,t)=>r(e)&&o(e)?l(gn,yn,Cn,()=>u(k["++"],"/",t),e):t),i=(()=>{var n=u(me,"#",e);if("[]"===n.ctor)return{ctor:"_Tuple2",_0:t,_1:""};if("[]"===n._1.ctor){var o=n._0;return p.eq(o,"")?{ctor:"_Tuple2",_0:t,_1:""}:r(o)?{ctor:"_Tuple2",_0:o,_1:""}:{ctor:"_Tuple2",_0:u(a,t,o),_1:""}}var i=n._1._0,c=n._0;return p.eq(c,"")?{ctor:"_Tuple2",_0:t,_1:i}:r(c)?{ctor:"_Tuple2",_0:c,_1:i}:{ctor:"_Tuple2",_0:u(a,t,c),_1:i}})(),c=i._0,s=i._1,_=o(s);return{ctor:"_Tuple3",_0:_,_1:c,_2:_?u(q,Mn,u(C,1,u(me,"/",s))):p.eq(s,"")?{ctor:"[]"}:{ctor:"::",_0:s,_1:{ctor:"[]"}}}}),En=a((e,t,r,i)=>{var c=a((e,r,a,i)=>{(e=>s(be,o((e,t,r)=>({ctor:"::",_0:e,_1:r})),{ctor:"[]"},e))(t);var _,d,f,h=u(On,i,e),m=h._0,g=h._1,v=h._2,b=(d=(_={ctor:"_Tuple3",_0:m,_1:g,_2:v})._2,f=_._1,_._0?u(n((e,t)=>u(k["++"],e,t)),f,u(he,"/",{ctor:"::",_0:"#",_1:d})):z(d)?f:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],f,"#"),u(he,"/",d)));return p.cmp(r,0)>0?m?u(I,e=>u(I,e=>{if("ObjectSchema"===e.ctor){var t=e._0.ref;return"Just"===t.ctor?l(c,g,r-1,a,t._0):j({ctor:"_Tuple2",_0:g,_1:e})}return j({ctor:"_Tuple2",_0:g,_1:e})},ne(u(st,u(mt,v,Xr),e.source))),u(I,Nn,p.eq(g,"")?j(a):u(we,g,t))):p.eq(b,"")?j({ctor:"_Tuple2",_0:"",_1:a}):u(T,e=>({ctor:"_Tuple2",_0:g,_1:e}),u(we,b,t)):j({ctor:"_Tuple2",_0:g,_1:a})}),_=u(w,e,u(T,In,u(I,e=>e.id,Nn(r))));return l(c,_,10,r,i)}),Rn=s(We,"http://json-schema.org/draft-04/schema",wn,s(We,"http://json-schema.org/draft-06/schema#",kn,s(We,"http://json-schema.org/draft-06/schema",kn,Re))),Sn=((()=>({and:n(function(e,t){return e&t}),or:n(function(e,t){return e|t}),xor:n(function(e,t){return e^t}),complement(e){return~e},shiftLeftBy:n((e,t)=>t<t>>e),shiftRightZfBy:n((e,t)=>t>>>e)}))(),o((e,t,r)=>{var o=r._0,a=r._1;return"Nothing"===a.ctor?p.cmp(t,55296)>-1&&0>p.cmp(t,57344)?{ctor:"_Tuple2",_0:o,_1:j(t)}:{ctor:"_Tuple2",_0:u(e,t,o),_1:N}:{ctor:"_Tuple2",_0:s(h,e,o,u(n((e,t)=>e+t),65536,1023&t|(1023&a._0)<<10)),_1:N}})),Ln=o((e,t,r)=>Tt(s(ge,t=>u(Sn,e,te(t)),{ctor:"_Tuple2",_0:t,_1:N},r))),zn=e=>s(Ln,m(n((e,t)=>e+t)(1)),0,e),Dn=R(n((e,t)=>{var r=e;if("Ok"===r.ctor)return t;return"Ok"===t.ctor?e:ae(u(k["++"],t._0,r._0))})),Pn=rt(0),$n=e=>{var t=u(st,gt(ot),e);return Pn("Ok"===t.ctor?Ke(u(M,e=>{return e._0},t._0)):e)},qn=n((e,t)=>({ns:e,path:t})),Jn=n((e,t)=>({jsonPointer:e,details:t})),Vn={ctor:"AlwaysFail"},Zn=e=>({ctor:"UnresolvableReference",_0:e}),Un={ctor:"Not"},Fn={ctor:"OneOfNoneSucceed"},Wn=e=>({ctor:"InvalidType",_0:e}),Gn={ctor:"Const"},Yn={ctor:"Enum"},Hn={ctor:"AdditionalPropertyDisallowed"},Kn={ctor:"RequiredProperty"},Qn=n((e,t)=>({ctor:"MinProperties",_0:e,_1:t})),Xn=n((e,t)=>({ctor:"MaxProperties",_0:e,_1:t})),eo={ctor:"Contains"},to=n((e,t)=>({ctor:"MinItems",_0:e,_1:t})),ro=n((e,t)=>({ctor:"MaxItems",_0:e,_1:t})),no=n((e,t)=>({ctor:"Pattern",_0:e,_1:t})),oo=n((e,t)=>({ctor:"MinLength",_0:e,_1:t})),ao=n((e,t)=>({ctor:"MaxLength",_0:e,_1:t})),io=n((e,t)=>({ctor:"ExclusiveMinimum",_0:e,_1:t})),co=n((e,t)=>({ctor:"ExclusiveMaximum",_0:e,_1:t})),uo=n((e,t)=>({ctor:"Minimum",_0:e,_1:t})),so=n((e,t)=>({ctor:"Maximum",_0:e,_1:t})),lo=n((e,t)=>({ctor:"MultipleOf",_0:e,_1:t})),_o=i((e,t,r,c,d)=>{var f=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(ue,()=>n,u(r,a._0,i._0)):ce(n)}return ce(n)}),m=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(r,a._0,i._0):ce(n)}return ce(n)}),g=n((e,t)=>u(J,t=>{var r=t;return u(vn,bn(e),r._0)},t)),b=n((e,t)=>{return D(u(q,e=>{return e._1},u(J,t=>{return p.eq(t._0,e)},t._0)))}),y=a((e,t,r,n)=>{var o=e=>u(se,e=>({ctor:"::",_0:u(Jn,t,Wn(e)),_1:{ctor:"[]"}}),u(ue,()=>n,u(st,e,n)));switch(r.ctor){case"IntegerType":return o(xt);case"NumberType":return o(yt);case"StringType":return o(wt);case"BooleanType":return o(kt);case"NullType":return o(nt(N));case"ArrayType":return o(vt(ot));default:return o(gt(ot))}}),x=a((e,t,r,n)=>{var o=n.type_;switch(o.ctor){case"AnyType":return ce(r);case"SingleType":return l(y,e,t,o._0,r);case"NullableType":return"Err"===l(y,e,t,Vr,r).ctor?l(y,e,t,o._0,r):ce(r);default:return u(O,n=>p.eq(l(y,e,t,n,r),ce(r)),o._0)?ce(r):ae({ctor:"::",_0:u(Jn,t,Wn("None of desired types match")),_1:{ctor:"[]"}})}}),w=n((e,t)=>s(m,e=>e.$const,ot,n((e,r)=>{var n=$n(r),o=$n(e);return p.eq(o,n)?ce(r):ae({ctor:"::",_0:u(Jn,t,Gn),_1:{ctor:"[]"}})}))),T=n((e,t)=>s(m,e=>e.$enum,ot,n((e,r)=>u(O,e=>p.eq(Pn(e),Pn(r)),e)?ce(r):ae({ctor:"::",_0:u(Jn,t,Yn),_1:{ctor:"[]"}})))),A=a((e,t,r,o)=>_(m,e=>e.required,gt(ot),n((e,o)=>{var a=u(q,e=>{return e._0},o),i=u(J,e=>!s(h,L,a,e),e);return z(i)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"Required",_0:e}))(i)),u(q,e=>u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e,_1:{ctor:"[]"}})}),Kn),i)))}),r,o)),M=o((e,t,r)=>l(m,e=>e.minProperties,gt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Qn,e,o)),_1:{ctor:"[]"}})}),r)),B=o((e,t,r)=>l(m,e=>e.maxProperties,gt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Xn,e,o)),_1:{ctor:"[]"}})}),r)),E=o((e,t,r)=>l(m,e=>e.uniqueItems,vt(ot),n((e,n)=>{if(e){var o=(e=>(t=>p.eq(t,-1)?N:D(u(C,t,e)))(xr(u(q,rt(0),e))))(n);return"Just"===o.ctor?ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"UniqueItems",_0:e}))(o._0)),_1:{ctor:"[]"}}):ce(r)}return ce(r)}),r)),P=o((e,t,r)=>l(m,e=>e.minItems,vt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(to,e,o)),_1:{ctor:"[]"}})}),r)),$=o((e,t,r)=>l(m,e=>e.maxItems,vt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ro,e,o)),_1:{ctor:"[]"}})}),r)),V=o((e,t,r)=>l(m,e=>e.pattern,wt,n((e,n)=>u(vn,bn(e),n)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(no,e,n)),_1:{ctor:"[]"}})),r)),F=o((e,t,r)=>l(m,e=>e.minLength,wt,n((e,n)=>{var o=zn(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(oo,e,o)),_1:{ctor:"[]"}})}),r)),G=o((e,t,r)=>l(m,e=>e.maxLength,wt,n((e,n)=>{var o=zn(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ao,e,o)),_1:{ctor:"[]"}})}),r)),Y=a((e,t,r,o)=>_(m,e=>e.exclusiveMinimum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return p.cmp(n,o)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),H=a((e,t,r,o)=>_(m,e=>e.exclusiveMaximum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return 0>p.cmp(n,o)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),K=a((e,t,r,o)=>_(m,e=>e.minimum,yt,n((e,n)=>{var a=o.exclusiveMinimum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?p.cmp(n,e)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,e,n)),_1:{ctor:"[]"}}):p.cmp(n,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(uo,e,n)),_1:{ctor:"[]"}})}),r,o)),Q=a((e,t,r,o)=>_(m,e=>e.maximum,yt,n((e,n)=>{var a=o.exclusiveMaximum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?0>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,e,n)),_1:{ctor:"[]"}}):1>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(so,e,n)),_1:{ctor:"[]"}})}),r,o)),X=o((e,t,r)=>l(m,e=>e.multipleOf,yt,n((e,n)=>kr(n/e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(lo,e,n)),_1:{ctor:"[]"}})),r)),ee=i((e,t,r,o,a)=>{return i=s(R,n((r,n)=>{var a=n._1,i=n._0,c=l(r,e,t,a,o);return"Ok"===c.ctor?{ctor:"_Tuple2",_0:i,_1:c._0}:{ctor:"_Tuple2",_0:u(k["++"],i,c._0),_1:a}}),{ctor:"_Tuple2",_0:{ctor:"[]"},_1:r},a),"[]"===(c=i._0).ctor?ce(i._1):ae(c);var i,c}),te=a((e,t,r,n)=>_(ee,e,t,n,r,{ctor:"::",_0:X,_1:{ctor:"::",_0:Q,_1:{ctor:"::",_0:K,_1:{ctor:"::",_0:H,_1:{ctor:"::",_0:Y,_1:{ctor:"::",_0:G,_1:{ctor:"::",_0:F,_1:{ctor:"::",_0:V,_1:{ctor:"::",_0:fe,_1:{ctor:"::",_0:$,_1:{ctor:"::",_0:P,_1:{ctor:"::",_0:E,_1:{ctor:"::",_0:_e,_1:{ctor:"::",_0:ge,_1:{ctor:"::",_0:B,_1:{ctor:"::",_0:M,_1:{ctor:"::",_0:A,_1:{ctor:"::",_0:me,_1:{ctor:"::",_0:re,_1:{ctor:"::",_0:de,_1:{ctor:"::",_0:be,_1:{ctor:"::",_0:T,_1:{ctor:"::",_0:w,_1:{ctor:"::",_0:x,_1:{ctor:"::",_0:ie,_1:{ctor:"::",_0:le,_1:{ctor:"::",_0:he,_1:{ctor:"::",_0:pe,_1:{ctor:"[]"}}}}}}}}}}}}}}}}}}}}}}}}}}}}})),re=a((e,t,r,a)=>{var i=o((e,t,r)=>{if("Just"===e.ctor){var n=u(q,e=>{return e._0},e._0._0);return u(J,e=>{var r=e;return!u(O,e=>u(t,e,r._0),n)},r)}return r});return _(f,e=>e.additionalProperties,gt(ot),n((o,c)=>(a=>{return"BooleanSchema"===o.ctor?o._0?ce(r):z(a)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"AdditionalPropertiesDisallowed",_0:e}))(u(q,e=>{return e._0},a))),u(q,e=>{return u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e._0,_1:{ctor:"[]"}})}),Hn)},a))):u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,o)},a))})(s(i,a.patternProperties,n((e,t)=>u(vn,bn(e),t)),s(i,a.properties,n((e,t)=>p.eq(e,t)),c)))),r,a)}),oe=a((e,r,n,o)=>{var a=o;if("BooleanSchema"===a.ctor)return a._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Vn),_1:{ctor:"[]"}});var i=a._0,s=i.ref;if("Just"===s.ctor){var _=s._0,d=l(En,r.ns,t,c,_);return"Just"===d.ctor?"ObjectSchema"===d._0._1.ctor?l(te,e,p.update(r,{ns:d._0._0}),d._0._1._0,n):d._0._1._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Vn),_1:{ctor:"[]"}}):ae({ctor:"::",_0:u(Jn,r,Zn(_)),_1:{ctor:"[]"}})}return l(te,e,r,i,n)}),ie=n((e,t)=>s(m,e=>e.allOf,ot,n((r,o)=>s(R,n((r,n)=>p.eq(n,ce(o))?l(oe,e,t,o,r):n),ce(o),r)))),le=n((e,t)=>s(m,e=>e.anyOf,ot,n((r,n)=>{var o=u(q,s(oe,e,t,n),r);return u(O,e=>{return"Ok"===e.ctor},o)?ce(n):u(Dn,ce(n),o)}))),_e=o((e,t,r)=>l(f,e=>e.contains,vt(ot),n((n,o)=>u(O,r=>{return"Ok"===l(oe,e,t,r,n).ctor},o)?ce(r):ae({ctor:"::",_0:u(Jn,t,eo),_1:{ctor:"[]"}})),r)),de=a((e,t,r,o)=>{if(z(o.dependencies))return ce(r);var a=u(st,gt(ot),r);return"Ok"===a.ctor?(a=>s(R,n((n,o)=>{var i=n;if("Err"===o.ctor)return o;if(u(Ne,i._0,Ge(a))){var c=i._1;return l(oe,e,t,r,"PropSchema"===c.ctor?c._0:Er(p.update(qr,{required:j(c._0)})))}return o}),ce(r),o.dependencies))(a._0):ce(r)}),fe=a((e,t,r,a)=>{var i=o((r,n,o)=>u(ue,()=>o+1,l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:v(o),_1:{ctor:"[]"}})}),r,n))),c=a.items;switch(c.ctor){case"ItemDefinition":var _=u(st,vt(ot),r);return"Ok"===_.ctor?u(ue,()=>r,s(R,n((e,t)=>{return"Ok"===t.ctor?s(i,e,c._0,t._0):t}),ce(0),_._0)):ce(r);case"ArrayOfItems":var d=u(st,vt(ot),r);return"Ok"===d.ctor?u(ue,()=>r,s(R,n((e,t)=>{if("Ok"===t.ctor){var r=t._0,n=D(u(C,r,c._0));if("Just"===n.ctor)return s(i,e,n._0,r);var o=a.additionalItems;return"Just"===o.ctor?s(i,e,o._0,r):ce(r+1)}return t}),ce(0),d._0)):ce(r);default:return ce(r)}}),pe=n((e,t)=>s(f,e=>e.not,ot,n((r,n)=>p.eq(l(oe,e,t,n,r),ce(n))?ae({ctor:"::",_0:u(Jn,t,Un),_1:{ctor:"[]"}}):ce(n)))),he=n((e,t)=>s(m,e=>e.oneOf,ot,n((r,n)=>{var o=S(u(J,r=>p.eq(l(oe,e,t,n,r),ce(n)),r));switch(o){case 1:return ce(n);case 0:return ae({ctor:"::",_0:u(Jn,t,Fn),_1:{ctor:"[]"}});default:return ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"OneOfManySucceed",_0:e}))(o)),_1:{ctor:"[]"}})}}))),me=o((e,t,r)=>l(m,e=>e.patternProperties,gt(ot),n((o,a)=>{var i=o;return s(R,n((n,o)=>{var i=n;return"Ok"===o.ctor?u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,i._1)},u(g,i._0,a))):o}),ce(r),i._0)}),r)),ge=a((e,t,r,o)=>_(m,e=>e.properties,gt(ot),n((r,n)=>{var a=U(n),i=l(ve,e,t,o.properties,a),c=u(q,e=>{return e._0},i),s=u(k["++"],a,i);return u(Dn,ce(Ke(s)),u(q,n=>{var o=n._1,a=n._0;if(u(L,a,c))return ce(o);var i=u(b,a,r);return"Just"===i.ctor?l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:a,_1:{ctor:"[]"}})}),o,i._0):ce(o)},s))}),r,o)),ve=a((e,t,r,a)=>{var i=n((e,t)=>z(u(J,t=>{return p.eq(t._0,e)},t))),c=o((r,n,o)=>{if(u(i,n,r)){return"ObjectSchema"===o.ctor?u(I,r=>ne(l(oe,p.update(e,{applyDefaults:!1}),p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),r,o)),o._0.$default):N}return N});if(e.applyDefaults){var _=r;return"Just"===_.ctor?U(s(R,n((e,t)=>{var r=e._0,n=s(c,a,r,e._1);return"Just"===n.ctor?{ctor:"::",_0:{ctor:"_Tuple2",_0:r,_1:n._0},_1:t}:t}),{ctor:"[]"},_._0._0)):{ctor:"[]"}}return{ctor:"[]"}}),be=o((e,t,r)=>{var o=n((r,n)=>{var o=l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),tt(n),r);return"Ok"===o.ctor?N:j(o._0)});return l(f,e=>e.propertyNames,gt(ot),n((e,n)=>(e=>z(e)?ce(r):ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"InvalidPropertyName",_0:e}))(W(e))),_1:{ctor:"[]"}}))(u(Z,o(e),u(q,e=>{return e._0},n)))),r)});return l(oe,e,u(qn,"",{ctor:"[]"}),r,d)}),fo=n((e,t)=>{var r=a((e,t,r,o)=>{var a=u(J,e=>{var t=e._0;return p.eq(t,"id")||p.eq(t,"$id")},o);return"::"===a.ctor&&"_Tuple2"===a._0.ctor?u(oe,{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}},u(ue,a=>{var i,c,l,_=u(On,a,e),d=_._0,f=_._1,p=_._2,h=u(st,Xr,t);return"Ok"===h.ctor?{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:s(We,(i={ctor:"_Tuple3",_0:d,_1:f,_2:p},c=i._2,l=i._1,i._0?u(n((e,t)=>u(k["++"],e,t)),l,u(he,"/",{ctor:"::",_0:"#",_1:c})):z(c)?l:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],l,"#"),u(he,"/",c))),h._0,r),_1:f}}:{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}},u(st,wt,a._0._1))):{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}}),o=n((e,t)=>{var n;return n=l(r,t._1,e,t._0,u(oe,{ctor:"[]"},u(st,gt(ot),e))),s(R,e=>o(e._1),n._1,n._0)});return"ObjectSchema"===e.ctor?u(o,e._0.source,{ctor:"_Tuple2",_0:t,_1:(e=>{if("Just"===e.ctor){var t=u(On,e._0,"");return t._1}return""})(e._0.id)}):{ctor:"_Tuple2",_0:t,_1:""}}),po=(lt(Xr),st(Xr),o((e,t,r)=>{var n=u(fo,r,Rn);return _(_o,e,n._0,t,r,r)})),ho=n((e,t)=>{return 1===e?u(k["++"],"1 ",t):u(k["++"],v(e),u(k["++"]," ",u(k["++"],t,"s")))}),mo=e=>{var t=e;switch(t.ctor){case"MultipleOf":return u(k["++"],v(t._1),u(k["++"]," is not a multiple of ",v(t._0)));case"Maximum":return u(k["++"],v(t._1),u(k["++"]," is more than maximum ",v(t._0)));case"Minimum":return u(k["++"],v(t._1),u(k["++"]," is less than minimum ",v(t._0)));case"ExclusiveMaximum":return u(k["++"],v(t._1),u(k["++"]," is not less than exclusive maximum ",v(t._0)));case"ExclusiveMinimum":return u(k["++"],v(t._1),u(k["++"]," is not more than exclusive minimum ",v(t._0)));case"MaxLength":return u(k["++"],"Expected string not longer than ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," but actual length is ",u(ho,t._1,"character"))));case"MinLength":return u(k["++"],"Expected string to be at least ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," long but its length is ",u(ho,t._1,"character"))));case"Pattern":return u(k["++"],"String ",u(k["++"],v(t._1),u(k["++"]," does not match pattern ",t._0)));case"MaxItems":return u(k["++"],"List expected to have at most ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"MinItems":return u(k["++"],"List expected to have at least ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"UniqueItems":return u(k["++"],"Expected array of unique items, but a duplicate found: ",u(rt,0,t._0));case"Contains":return"None of array items is valid against the given schema";case"MaxProperties":return"MaxProperties";case"MinProperties":return"MinProperties";case"RequiredProperty":return"This property is required";case"Required":return"";case"AdditionalPropertyDisallowed":return"This is an additional property and it is not allowed";case"AdditionalPropertiesDisallowed":return"";case"InvalidPropertyName":return u(k["++"],"Some property names are not passing validation: ",u(he,", ",u(q,v,t._0)));case"Enum":return"Value does not match enumeration defined in the schema";case"Const":return"Value does not match const defined in the schema";case"InvalidType":return t._0;case"OneOfNoneSucceed":return"Value does not pass the validation with none of the schemata listed in '.oneOf'";case"OneOfManySucceed":return u(k["++"],"Value should pass validation with exactly one schema, but ",u(k["++"],v(t._0)," return a positive result"));case"Not":return"This value expected to fail validation";case"AlwaysFail":return"This is not expected to succeed";default:return u(k["++"],"Reference ",u(k["++"],v(t._0)," can not be resolved"))}},go=Gt,vo=n((e,t)=>u(go,e,tt(t))),bo=e=>u(vo,"className",e),yo=e=>u(vo,"type",e),xo=e=>u(vo,"value",e),ko=n((e,t)=>u(go,e,Xe(t))),wo=e=>u(ko,"checked",e),No=e=>bo(u(he," ",u(q,Tt,u(J,jt,e)))),Io=(u(ht,"keyCode",xt),u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"checked",_1:{ctor:"[]"}}},kt)),jo=u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"value",_1:{ctor:"[]"}}},wt),To=Wt,Ao=e=>u(To,"focus",ct(e)),Mo=e=>u(To,"blur",ct(e)),Co=(p.update(Ut,{preventDefault:!0}),e=>u(To,"change",u(dt,e,Io))),Bo=e=>u(To,"input",u(dt,e,jo)),Oo=Oo||{};Oo["=>"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:t}));var Eo=e=>u(w,gr(Qe),u(I,e=>ne(u(st,yr,e)),u(Ar,"ui",e))),Ro=o((e,t,r)=>{return"ObjectSchema"===e.ctor?u(w,r,t(e._0)):r}),So=n((e,t)=>(t=>e?u(k["++"],t," *"):t)(s(Ro,t,e=>e.title,""))),Lo=e=>{var t=e;switch(t.ctor){case"StringValue":return t._0;case"NumericValue":return v(t._0);default:return""}},zo=o((e,t,r)=>{var o=u(we,r,e.errors),a=!p.eq(o,N)&&u(L,r,e.beingEdited);return{ctor:"_Tuple2",_0:a,_1:er(a?u(n((e,t)=>u(k["++"],e,t)),"Error: ",u(he,", ",u(w,{ctor:"[]"},o))):(e=>s(Ro,e,e=>e.description,""))(t))}}),Do=a((e,t,r,o)=>{var a=s(zo,e,t,o),i=a._0,c=a._1,l=u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused)),_=l?e.editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:l},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:i},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(un(j(o))),_1:{ctor:"::",_0:Mo(un(N)),_1:{ctor:"::",_0:Bo(an),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo("number"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:c,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),Po=a((e,t,r,o)=>{var a="PasswordField"===Eo(t).ctor,i=s(zo,e,t,o),c=i._0,l=i._1,_=u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Bo(e=>u(cn,o,ur(e))),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo(a?"password":"text"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),$o=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-checkbox__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-checkbox__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__box-outline"),_1:{ctor:"[]"}},{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__tick-outline"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}})}),qo=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-switch__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-switch__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__track"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__thumb"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}}})}),Jo=o((e,t,r)=>p.eq(e,N)?u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(w,{ctor:"[]"},t),r):r),Vo=e=>{return"Switch"===Eo(e).ctor?fn:dn},Zo=n((e,t)=>{if("ObjectSchema"===t.ctor){var r=t._0.type_;e:do{if("SingleType"!==r.ctor)break e;switch(r._0.ctor){case"NumberType":return pn;case"StringType":return hn;case"BooleanType":return Vo(t);case"ObjectType":return ln;default:break e}}while(0);return _n}return _n}),Uo=a((e,t,r,n)=>{var o=u(Zo,e,t);switch(o.ctor){case"TextField":return l(Po,e,t,r,n);case"NumberField":return l(Do,e,t,r,n);case"Switch":return l(qo,e,t,r,n);case"Checkbox":return l($o,e,t,r,n);case"Object":return l(Fo,e,t,r,n);default:return er(u(k["++"],v(o),u(k["++"],"Not implemented: ",v(t))))}}),Fo=a((e,t,r,n)=>{if("ObjectSchema"===t.ctor){var a=t._0;return u(rr,{ctor:"[]"},u(w,{ctor:"[]"},u(T,u(o((t,r,o)=>{return u(q,t=>{var o=t._0;return l(Uo,e,t._1,u(L,o,u(w,{ctor:"[]"},r)),u(k["++"],n,{ctor:"::",_0:o,_1:{ctor:"[]"}}))},o._0)}),Re,a.required),a.properties)))}return er("")}),Wo=on,Go=o((e,t,r)=>{var o,a=u(w,lr,ne(s(mr,t,r,u(w,lr,e.value)))),i=cr(a),c=s(po,{applyDefaults:!0},i,e.schema);return u(Oo["=>"],u(Ot["!"],p.update(e,"Ok"===(o=c).ctor?{value:ne(u(st,pr,o._0)),errors:Re}:{value:j(a),errors:(e=>s(R,n((e,t)=>s(Fe,e.jsonPointer.path,t=>j("Just"===t.ctor?u(k["++"],t._0,{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}):{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}),t)),Re,e))(o._0)}),{ctor:"[]"}),(e=>({ctor:"UpdateValue",_0:e}))(j(a)))}),Yo={ctor:"None"},Ho=n((e,t)=>{var r,n=e;switch(n.ctor){case"FocusInput":var o=n._0;return u(Oo["=>"],u(Ot["!"],p.update(t,{focused:o,beingEdited:s(Jo,o,t.focused,t.beingEdited)}),{ctor:"[]"}),Yo);case"FocusNumericInput":var a=n._0,i=a;return"Nothing"===i.ctor?s(Go,p.update(t,{beingEdited:s(Jo,a,t.focused,t.beingEdited)}),u(w,{ctor:"[]"},t.focused),"Ok"===(r=_e(t.editedNumber)).ctor?sr(r._0):ur(t.editedNumber)):u(Oo["=>"],u(Ot["!"],p.update(t,{focused:a,editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(i._0),t.value))))}),{ctor:"[]"}),Yo);case"EditValue":return s(Go,t,n._0,n._1);default:var c=n._0,l=_e(c);return"Ok"===l.ctor?s(Go,p.update(t,{editedNumber:c}),u(w,{ctor:"[]"},t.focused),sr(l._0)):u(Oo["=>"],u(Ot["!"],p.update(t,{editedNumber:c}),{ctor:"[]"}),Yo)}}),Ko=At.incomingPort("valueChange",ot),Qo=At.incomingPort("schemaChange",ot),Xo=e=>({ctor:"ChangeSchema",_0:e}),ea=e=>({ctor:"ChangeValue",_0:e}),ta=e=>({ctor:"JsonFormMsg",_0:e}),ra=Qt({init(e){var t=ne(u(st,u(mt,{ctor:"::",_0:"value",_1:{ctor:"[]"}},pr),e)),r=u(oe,Jr,u(se,It,u(st,u(mt,{ctor:"::",_0:"schema",_1:{ctor:"[]"}},Xr),e)));return u(Ot["!"],{form:u(Wo,r,t),editedValue:t,schema:r},{ctor:"[]"})},update:n((e,t)=>{var r=e;switch(r.ctor){case"ChangeSchema":var n=u(oe,Jr,u(st,Xr,r._0));return u(Ot["!"],p.update(t,{schema:n,form:u(Wo,n,t.editedValue)}),{ctor:"[]"});case"ChangeValue":var o=ne(u(st,pr,r._0));return u(Ot["!"],p.update(t,{editedValue:o,form:u(Wo,t.schema,o)}),{ctor:"[]"});default:var a=u(Ho,r._0,t.form),i=a._0._1,c=a._1;return u(Ot["!"],p.update(t,{form:a._0._0,editedValue:"UpdateValue"===c.ctor?c._0:t.editedValue}),{ctor:"::",_0:u($t,ta,i),_1:{ctor:"[]"}})}}),view:e=>u(rr,{ctor:"[]"},{ctor:"::",_0:u(Xt,ta,(e=>l(Uo,e,e.schema,!1,{ctor:"[]"}))(e.form)),_1:{ctor:"::",_0:er(v(e.schema)),_1:{ctor:"::",_0:er(v(e.editedValue)),_1:{ctor:"[]"}}}}),subscriptions:()=>qt({ctor:"::",_0:Ko(ea),_1:{ctor:"::",_0:Qo(Xo),_1:{ctor:"[]"}}})})(ot),na={};na.JsonFormCustomElement=na.JsonFormCustomElement||{},void 0!==ra&&ra(na.JsonFormCustomElement,"JsonFormCustomElement",void 0);var oa=()=>{};oa(na),void 0===(r=(()=>na).apply(t,[]))||(e.exports=r)}).call(this)},"./src/custom-element.js"(e,t,r){"use strict";const n=r("./src/JsonFormCustomElement.elm"),o=r("./stylesheets/standalone.css").toString();customElements.define("json-form",class extends HTMLElement{static get observedAttributes(){return["value","schema"]}constructor(){super();const e=document.createElement("div"),t=document.createElement("style");t.textContent=o;const r=this.attachShadow({mode:"open"});r.appendChild(t),r.appendChild(e);const a=this.getAttribute("value"),i=JSON.parse(this.getAttribute("schema")),c=JSON.parse(a);console.log({schema:i,value:c});const u=n.JsonFormCustomElement.embed(e,{schema:i,value:c});this.app=u}attributeChangedCallback(e,t,r){switch(e){case"value":this.app.ports.valueChange.send(JSON.parse(r));break;case"schema":this.app.ports.schemaChange.send(JSON.parse(r))}}})},"./stylesheets/standalone.css"(e,t,r){var n=r("./node_modules/css-loader/index.js!./stylesheets/standalone.css");e.exports="string"==typeof n?n:n.toString()}}); \ No newline at end of file From c975c37210bda73dd0a496d53b605ede38d48368 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 18:50:29 +0100 Subject: [PATCH 06/71] Update build for demo --- build/custom-element.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build/custom-element.js b/build/custom-element.js index 5d9f5aa..0b7c2ce 100644 --- a/build/custom-element.js +++ b/build/custom-element.js @@ -1 +1 @@ -(e=>{var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=((e,t,n)=>{r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})}),r.n=(e=>{var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t}),r.o=((e,t)=>Object.prototype.hasOwnProperty.call(e,t)),r.p="",r(r.s="./src/custom-element.js")})({"./node_modules/css-loader/index.js!./stylesheets/checkbox.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-checkbox {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-checkbox__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-checkbox__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 24px;\n cursor: pointer;\n}\n\n.jf-checkbox__box-outline {\n width: 16px;\n height: 16px;\n position: absolute;\n top: calc(50% - 8px);\n left: 0;\n border-radius: 2px;\n border: 2px solid #0000008a;\n cursor: pointer;\n z-index: 2;\n}\n\n.jf-checkbox__tick-outline {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n mask: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==);\n background: 0 0;\n transition-duration: .28s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n transition-property: background;\n}\n\n\n.jf-checkbox--on .jf-checkbox__tick-outline {\n background: #009688 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K);\n}\n\n\n.jf-checkbox--on .jf-checkbox__box-outline {\n border: 2px solid #009688;\n}\n\n\n.jf-checkbox__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-checkbox--invalid .jf-checkbox__helper-text {\n color: var(--color-red--500);\n}\n\n",""])},"./node_modules/css-loader/index.js!./stylesheets/globals.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n:host {\n --font-family: helvetica, sans-serif;\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/json-form.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/textfield.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/switch.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/checkbox.css"),""),t.push([e.i,":root {\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/standalone.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/globals.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/json-form.css"),""),t.push([e.i,"\n",""])},"./node_modules/css-loader/index.js!./stylesheets/switch.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-switch {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-switch__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-switch__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 50px;\n cursor: pointer;\n}\n\n.jf-switch__track {\n background-color: lightgrey;\n width: 40px;\n height: 14px;\n position: absolute;\n top: calc(50% - 7px);\n left: 0;\n border-radius: 14px;\n cursor: pointer;\n}\n\n.jf-switch__thumb {\n background-color: #fafafa;\n width: 20px;\n height: 20px;\n position: absolute;\n top: calc(50% - 10px);\n left: 0;\n cursor: pointer;\n border-radius: 50%;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n box-shadow: 0 3px 4px 0 rgba(0,0,0,.14), 0 3px 3px -2px rgba(0,0,0,.2), 0 1px 8px 0 rgba(0,0,0,.12);\n}\n\n.jf-switch--on .jf-switch__thumb {\n left: 20px;\n}\n\n.jf-switch--on .jf-switch__thumb {\n background-color: var(--color-swatch--500);\n}\n\n.jf-switch__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-switch--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/textfield.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-textfield {\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n width: 300px;\n max-width: 100%;\n margin: 0;\n padding: 20px 0;\n margin-left: 16px;\n margin-bottom: 16px;\n}\n\n.jf-textfield__input {\n border: none;\n border-radius: 0;\n outline: none;\n display: block;\n font-size: 16px;\n font-family: var(--font-family);\n margin: 0;\n padding: 8px 0;\n width: 100%;\n background: 0 0;\n text-align: left;\n color: inherit;\n}\n\n.jf-textfield--focused .jf-textfield__input {\n color: var(--color-active);\n}\n\n.jf-textfield--empty .jf-textfield__label {\n top: 29px;\n font-size: 16px;\n}\n\n.jf-textfield--focused .jf-textfield__label {\n color: var(--color-active);\n visibility: visible;\n font-size: 12px;\n top: 10px;\n}\n\n.jf-textfield__label {\n color: var(--color-inactive);\n font-size: 12px;\n left: 0;\n right: 0;\n pointer-events: none;\n position: absolute;\n display: block;\n bottom: 0;\n top: 10px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n/*\n.jf-textfield__bottom-border {\n border-bottom: 2px solid var(--color-active);\n height: 0;\n position: absolute;\n top: 46px;\n transition: width .1s ease-in 0s;\n width: 0;\n}\n\n.jf-textfield--focused .jf-textfield__bottom-border {\n width: 100%;\n}\n*/\n\n.jf-textfield__label:after {\n background-color: var(--color-active);\n bottom: 20px;\n content: '';\n height: 2px;\n left: 45%;\n position: absolute;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n visibility: hidden;\n width: 10px;\n}\n\n.jf-textfield--focused .jf-textfield__label:after {\n left: 0;\n visibility: visible;\n width: 100%;\n}\n\n/*\n.jf-textfield:before {\n content: '';\n background-color: rgba(0,0,0,0.06);\n position: absolute;\n top: 0;\n bottom: 20px;\n width: calc(100% + 32px);\n z-index: -1;\n border-radius: 4px;\n margin-left: -16px;\n}\n*/\n\n.jf-textfield:after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n bottom: 20px;\n background-color: var(--color-inactive);\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n}\n\n.jf-textfield--focused:after {\n background-color: transparent;\n}\n\n.jf-textfield:hover:after {\n background-color: #222;\n bottom: 20px;\n height: 2px;\n}\n\n.jf-textfield--focused:hover:after {\n background-color: transparent;\n}\n\n\n.jf-textfield__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n.jf-textfield--invalid .jf-textfield__label:after {\n background-color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__label {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid:after {\n background-color: var(--color-red--500) !important;\n}\n",""])},"./node_modules/css-loader/lib/css-base.js"(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(t=>{var r=function(e,t){var r=e[1]||"",n=e[3];if(!n)return r;if(t&&"function"==typeof btoa){var o="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */",a=n.sources.map(e=>"/*# sourceURL="+n.sourceRoot+e+" */");return[r].concat(a).concat([o]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,r){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},o=0;this.length>o;o++){var a=this[o][0];"number"==typeof a&&(n[a]=!0)}for(o=0;e.length>o;o++){var i=e[o];"number"==typeof i[0]&&n[i[0]]||(r&&!i[2]?i[2]=r:r&&(i[2]="("+i[2]+") and ("+r+")"),t.push(i))}},t}},"./src/JsonFormCustomElement.elm"(e,t){var r;(()=>{"use strict";function n(e){function t(t){return r=>e(t,r)}return t.arity=2,t.func=e,t}function o(e){function t(t){return r=>n=>e(t,r,n)}return t.arity=3,t.func=e,t}function a(e){function t(t){return r=>n=>o=>e(t,r,n,o)}return t.arity=4,t.func=e,t}function i(e){function t(t){return r=>n=>o=>a=>e(t,r,n,o,a)}return t.arity=5,t.func=e,t}function c(e){function t(t){return r=>n=>o=>a=>i=>e(t,r,n,o,a,i)}return t.arity=6,t.func=e,t}function u(e,t,r){return 2===e.arity?e.func(t,r):e(t)(r)}function s(e,t,r,n){return 3===e.arity?e.func(t,r,n):e(t)(r)(n)}function l(e,t,r,n,o){return 4===e.arity?e.func(t,r,n,o):e(t)(r)(n)(o)}function _(e,t,r,n,o,a){return 5===e.arity?e.func(t,r,n,o,a):e(t)(r)(n)(o)(a)}var d=(()=>{var e=32,t=2,r={ctor:"_Array",height:0,table:[]};function a(t,r){var n=t.height;r.length===n&&r.push({ctor:"_Array",height:n+1,table:[],lengths:[]});r[n].table.push(t);var o=v(t);r[n].lengths.length>0&&(o+=r[n].lengths[r[n].lengths.length-1]),r[n].lengths.push(o),r[n].table.length===e&&(a(r[n],r),r[n]={ctor:"_Array",height:n+1,table:[],lengths:[]})}function i(e,t){var r=e.table.length-1;e.table[r]=t,e.lengths[r]=v(t),e.lengths[r]+=r>0?e.lengths[r-1]:0}function c(e,t){if(t.table.length>0){e.table[0]=t,e.lengths[0]=v(t);for(var r=v(e.table[0]),n=1;e.lengths.length>n;n++)r+=v(e.table[n]),e.lengths[n]=r}else{e.table.shift();for(n=1;e.lengths.length>n;n++)e.lengths[n]=e.lengths[n]-e.lengths[0];e.lengths.shift()}}function s(t,r){for(var n=0,o=0;t.table.length>o;o++)n+=t.table[o].table.length;for(o=0;r.table.length>o;o++)n+=r.table[o].table.length;return t.table.length+r.table.length-(Math.floor((n-1)/e)+1)}function l(e,t,r){return e.length>r?e[r]:t[r-e.length]}function _(e,t,r,n){e.length>r?e[r]=n:t[r-e.length]=n}function d(e,t,r,n){_(e.table,t.table,r,n);var o=0===r||r===e.lengths.length?0:l(e.lengths,e.lengths,r-1);_(e.lengths,t.lengths,r,o+v(n))}function f(e,t){0>t&&(t=0);var r={ctor:"_Array",height:e,table:new Array(t)};return e>0&&(r.lengths=new Array(t)),r}function p(t,r,n){for(var o=f(t.height,Math.min(e,t.table.length+r.table.length-n)),a=f(t.height,o.table.length-(t.table.length+r.table.length-n)),i=0;l(t.table,r.table,i).table.length%e==0;)_(o.table,a.table,i,l(t.table,r.table,i)),_(o.lengths,a.lengths,i,l(t.lengths,r.lengths,i)),i++;for(var c=i,u=new f(t.height-1,0),s=0;n>i-c-(u.table.length>0?1:0);){var p=l(t.table,r.table,i),h=Math.min(e-u.table.length,p.table.length);if(u.table=u.table.concat(p.table.slice(s,h)),u.height>0)for(var m=u.lengths.length,g=m;m+h-s>g;g++)u.lengths[g]=v(u.table[g]),u.lengths[g]+=g>0?u.lengths[g-1]:0;s+=h,p.table.length>h||(i++,s=0),u.table.length===e&&(d(o,a,c,u),u=f(t.height-1,0),c++)}for(u.table.length>0&&(d(o,a,c,u),c++);t.table.length+r.table.length>i;)d(o,a,c,l(t.table,r.table,i)),i++,c++;return[o,a]}function h(e){return e.table[e.table.length-1]}function m(e){return e.table[0]}function g(e){var t={ctor:"_Array",height:e.height,table:e.table.slice()};return e.height>0&&(t.lengths=e.lengths.slice()),t}function v(e){return 0===e.height?e.table.length:e.lengths[e.lengths.length-1]}function b(e,t){for(var r=e>>5*t.height;e>=t.lengths[r];)r++;return r}function y(e,t){return 0===t?{ctor:"_Array",height:0,table:[e]}:{ctor:"_Array",height:t,table:[y(e,t-1)],lengths:[1]}}function x(e,t){return t===e.height?e:{ctor:"_Array",height:t,table:[x(e,t-1)],lengths:[v(e)]}}function k(e,t){return{ctor:"_Array",height:e.height+1,table:[e,t],lengths:[v(e),v(e)+v(t)]}}return{empty:r,fromList(t){if("[]"===t.ctor)return r;for(var n=new Array(e),o=[],i=0;"[]"!==t.ctor;)n[i]=t._0,t=t._1,++i===e&&(a({ctor:"_Array",height:0,table:n},o),n=new Array(e),i=0);i>0&&a({ctor:"_Array",height:0,table:n.splice(0,i)},o);for(var c=0;o.length-1>c;c++)o[c].table.length>0&&a(o[c],o);var u=o[o.length-1];return u.height>0&&1===u.table.length?u.table[0]:u},toList(e){return function e(t,r){for(var n=r.table.length-1;n>=0;n--)t=0===r.height?A.Cons(r.table[n],t):e(t,r.table[n]);return t}(A.Nil,e)},initialize:n(function(t,n){return t>0?function t(r,n,o,a){if(0===n){for(var i=new Array((a-o)%(e+1)),c=0;i.length>c;c++)i[c]=r(o+c);return{ctor:"_Array",height:0,table:i}}for(var u=Math.pow(e,n),i=new Array(Math.ceil((a-o)/u)),s=new Array(i.length),c=0;i.length>c;c++)i[c]=t(r,n-1,o+c*u,Math.min(o+(c+1)*u,a)),s[c]=v(i[c])+(c>0?s[c-1]:0);return{ctor:"_Array",height:n,table:i,lengths:s}}(n,Math.floor(Math.log(t)/Math.log(e)),0,t):r}),append:n(function(r,n){if(0===r.table.length)return n;if(0===n.table.length)return r;var o=function e(r,n){if(0===r.height&&0===n.height)return[r,n];if(1!==r.height||1!==n.height)if(r.height===n.height){r=g(r),n=g(n);var o=e(h(r),m(n));i(r,o[1]),c(n,o[0])}else if(r.height>n.height){r=g(r);var o=e(h(r),n);i(r,o[0]),n=x(o[1],o[1].height+1)}else{n=g(n);var o=e(r,m(n)),a=0===o[0].table.length?0:1,u=0===a?1:0;c(n,o[a]),r=x(o[u],o[u].height+1)}if(0===r.table.length||0===n.table.length)return[r,n];var l=s(r,n);return l>t?p(r,n,l):[r,n]}(r,n);if(e>=o[0].table.length+o[1].table.length){if(0===o[0].table.length)return o[1];if(0===o[1].table.length)return o[0];if(o[0].table=o[0].table.concat(o[1].table),o[0].height>0){for(var a=v(o[0]),u=0;o[1].lengths.length>u;u++)o[1].lengths[u]+=a;o[0].lengths=o[0].lengths.concat(o[1].lengths)}return o[0]}if(o[0].height>0){var l=s(r,n);l>t&&(o=p(o[0],o[1],l))}return k(o[0],o[1])}),push:n(function(t,r){var n=function t(r,n){if(0===n.height){if(e>n.table.length){var o={ctor:"_Array",height:0,table:n.table.slice()};return o.table.push(r),o}return null}var a=t(r,h(n));if(null!==a){var o=g(n);return o.table[o.table.length-1]=a,o.lengths[o.lengths.length-1]++,o}if(e>n.table.length){var i=y(r,n.height-1),o=g(n);return o.table.push(i),o.lengths.push(o.lengths[o.lengths.length-1]+v(i)),o}return null}(t,r);return null!==n?n:k(r,y(t,r.height))}),slice:o(function(e,t,r){return 0>e&&(e+=v(r)),0>t&&(t+=v(r)),function e(t,r){if(0===t)return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(t,r.table.length+1),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(o===r.table.length-1)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(o,r.table.length+1),lengths:new Array(r.table.length-o)};n.table[0]=a;for(var i=0,c=0;n.table.length>c;c++)i+=v(n.table[c]),n.lengths[c]=i;return n}(e,function e(t,r){if(t===v(r))return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(0,t),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(0===o)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(0,o),lengths:r.lengths.slice(0,o)};return a.table.length>0&&(n.table[o]=a,n.lengths[o]=v(a)+(o>0?n.lengths[o-1]:0)),n}(t,r))}),get:n(function(e,t){if(0>e||e>=v(t))throw new Error("Index "+e+" is out of range. Check the length of your array first or use getMaybe or getWithDefault.");return((e,t)=>{for(var r=t.height;r>0;r--){for(var n=e>>5*r;e>=t.lengths[n];)n++;n>0&&(e-=t.lengths[n-1]),t=t.table[n]}return t.table[e]})(e,t)}),set:o(function(e,t,r){return 0>e||v(r)<=e?r:function e(t,r,n){if(0===(n=g(n)).height)n.table[t]=r;else{var o=b(t,n);o>0&&(t-=n.lengths[o-1]),n.table[o]=e(t,r,n.table[o])}return n}(e,t,r)}),map:n(function e(t,r){var n={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(n.lengths=r.lengths);for(var o=0;r.table.length>o;o++)n.table[o]=0===r.height?t(r.table[o]):e(t,r.table[o]);return n}),indexedMap:n(function(e,t){return function e(t,r,n){var o={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(o.lengths=r.lengths);for(var a=0;r.table.length>a;a++)o.table[a]=0===r.height?u(t,n+a,r.table[a]):e(t,r.table[a],0==a?n:n+r.lengths[a-1]);return o}(e,t,0)}),foldl:o(function e(t,r,n){if(0===n.height)for(var o=0;n.table.length>o;o++)r=u(t,n.table[o],r);else for(o=0;n.table.length>o;o++)r=e(t,r,n.table[o]);return r}),foldr:o(function e(t,r,n){if(0===n.height)for(var o=n.table.length;o--;)r=u(t,n.table[o],r);else for(o=n.table.length;o--;)r=e(t,r,n.table[o]);return r}),length:v,toJSArray(e){var t=new Array(v(e));return function e(t,r,n){for(var o=0;n.table.length>o;o++)if(0===n.height)t[r+o]=n.table[o];else{var a=0===o?0:n.lengths[o-1];e(t,r+a,n.table[o])}}(t,0,e),t},fromJSArray(t){return 0===t.length?r:function t(r,n,o,a){if(0===n)return{ctor:"_Array",height:0,table:r.slice(o,a)};for(var i=Math.pow(e,n),c=new Array(Math.ceil((a-o)/i)),u=new Array(c.length),s=0;c.length>s;s++)c[s]=t(r,n-1,o+s*i,Math.min(o+(s+1)*i,a)),u[s]=v(c[s])+(s>0?u[s-1]:0);return{ctor:"_Array",height:n,table:c,lengths:u}}(t,Math.floor(Math.log(t.length)/Math.log(e)),0,t.length)}}})(),f=(()=>{var e=["LT","EQ","GT"];return{div:n(function(e,t){return e/t|0}),rem:n(function(e,t){return e%t}),mod:n(function e(t,r){if(0===r)throw new Error("Cannot perform mod 0. Division by zero error.");var n=t%r,o=0===t?0:r>0?0>t?n+r:n:-e(-t,-r);return o===r?0:o}),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:n(Math.atan2),degrees(e){return e*Math.PI/180},turns(e){return 2*Math.PI*e},fromPolar(e){var t=e._0,r=e._1;return p.Tuple2(t*Math.cos(r),t*Math.sin(r))},toPolar(e){var t=e._0,r=e._1;return p.Tuple2(Math.sqrt(t*t+r*r),Math.atan2(r,t))},sqrt:Math.sqrt,logBase:n(function(e,t){return Math.log(t)/Math.log(e)}),negate(e){return-e},abs(e){return 0>e?-e:e},min:n(function(e,t){return 0>p.cmp(e,t)?e:t}),max:n(function(e,t){return p.cmp(e,t)>0?e:t}),clamp:o(function(e,t,r){return 0>p.cmp(r,e)?e:p.cmp(r,t)>0?t:r}),compare:n(function(t,r){return{ctor:e[p.cmp(t,r)+1]}}),xor:n(function(e,t){return e!==t}),not(e){return!e},truncate(e){return 0|e},ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:e=>e,isNaN,isInfinite(e){return e===1/0||e===-1/0}}})(),p=(()=>{function e(t,r,n,o){if(n>100)return o.push({x:t,y:r}),!0;if(t===r)return!0;if("object"!=typeof t){if("function"==typeof t)throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense. Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#== which describes why it is this way and what the better version will look like.');return!1}if(null===t||null===r)return!1;if(t instanceof Date)return t.getTime()===r.getTime();if(!("ctor"in t)){for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}if("RBNode_elm_builtin"!==t.ctor&&"RBEmpty_elm_builtin"!==t.ctor||(t=ye(t),r=ye(r)),"Set_elm_builtin"===t.ctor&&(t=_elm_lang$core$Set$toList(t),r=_elm_lang$core$Set$toList(r)),"::"===t.ctor){for(var i=t,c=r;"::"===i.ctor&&"::"===c.ctor;){if(!e(i._0,c._0,n+1,o))return!1;i=i._1,c=c._1}return i.ctor===c.ctor}if("_Array"===t.ctor){var u=d.toJSArray(t),s=d.toJSArray(r);if(u.length!==s.length)return!1;for(var l=0;u.length>l;l++)if(!e(u[l],s[l],n+1,o))return!1;return!0}if(!e(t.ctor,r.ctor,n+1,o))return!1;for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}var t=-1,r=0,o=1;var a=0;var i={ctor:"[]"};function c(e,t){return{ctor:"::",_0:e,_1:t}}function u(e){return e.start.line==e.end.line?"on line "+e.start.line:"between lines "+e.start.line+" and "+e.end.line}function s(e){var t=typeof e;if("function"===t)return"";if("boolean"===t)return e?"True":"False";if("number"===t)return e+"";if(e instanceof String)return"'"+l(e,!0)+"'";if("string"===t)return'"'+l(e,!1)+'"';if(null===e)return"null";if("object"===t&&"ctor"in e){var r=e.ctor.substring(0,5);if("_Tupl"===r){var n=[];for(var o in e)"ctor"!==o&&n.push(s(e[o]));return"("+n.join(",")+")"}if("_Task"===r)return"";if("_Array"===e.ctor)return"Array.fromList "+s(K(e));if(""===e.ctor)return"";if("_Process"===e.ctor)return"";if("::"===e.ctor){n="["+s(e._0);for(e=e._1;"::"===e.ctor;)n+=","+s(e._0),e=e._1;return n+"]"}if("[]"===e.ctor)return"[]";if("Set_elm_builtin"===e.ctor)return"Set.fromList "+s(_elm_lang$core$Set$toList(e));if("RBNode_elm_builtin"===e.ctor||"RBEmpty_elm_builtin"===e.ctor)return"Dict.fromList "+s(ye(e));n="";for(var a in e)if("ctor"!==a){var i=s(e[a]),c=i[0];n+=" "+("{"===c||"("===c||"<"===c||'"'===c||0>i.indexOf(" ")?i:"("+i+")")}return e.ctor+n}if("object"===t){if(e instanceof Date)return"<"+e.toString()+">";if(e.elm_web_socket)return"";n=[];for(var o in e)n.push(o+" = "+s(e[o]));return 0===n.length?"{}":"{ "+n.join(", ")+" }"}return""}function l(e,t){var r=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return t?r.replace(/\'/g,"\\'"):r.replace(/\"/g,'\\"')}return{eq(t,r){for(var n,o=[],a=e(t,r,0,o);a&&(n=o.pop());)a=e(n.x,n.y,0,o);return a},cmp:function e(n,a){if("object"!=typeof n)return n===a?r:a>n?t:o;if(n instanceof String){var i=n.valueOf(),c=a.valueOf();return i===c?r:c>i?t:o}if("::"===n.ctor||"[]"===n.ctor){for(;"::"===n.ctor&&"::"===a.ctor;){if((u=e(n._0,a._0))!==r)return u;n=n._1,a=a._1}return n.ctor===a.ctor?r:"[]"===n.ctor?t:o}if("_Tuple"===n.ctor.slice(0,6)){var u,s=n.ctor.slice(6)-0;if(0===s)return r;if(s>=1){if((u=e(n._0,a._0))!==r)return u;if(s>=2){if((u=e(n._1,a._1))!==r)return u;if(s>=3){if((u=e(n._2,a._2))!==r)return u;if(s>=4){if((u=e(n._3,a._3))!==r)return u;if(s>=5){if((u=e(n._4,a._4))!==r)return u;if(s>=6){if((u=e(n._5,a._5))!==r)return u;if(s>=7)throw new Error("Comparison error: cannot compare tuples with more than 6 elements.")}}}}}}return r}throw new Error("Comparison error: comparison is only defined on ints, floats, times, chars, strings, lists of comparable values, and tuples of comparable values.")},Tuple0:{ctor:"_Tuple0"},Tuple2(e,t){return{ctor:"_Tuple2",_0:e,_1:t}},chr(e){return new String(e)},update(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},guid(){return a++},append:n(function(e,t){if("string"==typeof e)return e+t;if("[]"===e.ctor)return t;var r=c(e._0,i),n=r;for(e=e._1;"[]"!==e.ctor;)n._1=c(e._0,i),e=e._1,n=n._1;return n._1=t,r}),crash(e,t){return r=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"` "+u(t)+"\nThe message provided by the code author is:\n\n "+r)}},crashCase(e,t,r){return n=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"`\n\nThis was caused by the `case` expression "+u(t)+".\nOne of the branches ended with a crash and the following value got through:\n\n "+s(r)+"\n\nThe message provided by the code author is:\n\n "+n)}},toString:s}})(),h=o((e,t,r)=>u(e,r,t)),m=n(e=>e),g=e=>e;(k=k||{})["<|"]=n((e,t)=>e(t)),(k=k||{})["|>"]=n((e,t)=>t(e)),(k=k||{})[">>"]=o((e,t,r)=>t(e(r))),(k=k||{})["<<"]=o((e,t,r)=>e(t(r))),(k=k||{})["++"]=p.append;var v=p.toString,b=f.toFloat,y=f.round;(k=k||{})["||"]=f.or,(k=k||{})["&&"]=f.and;var x=f.compare;(k=k||{})[">="]=f.ge,(k=k||{})["<="]=f.le,(k=k||{})[">"]=f.gt,(k=k||{})["<"]=f.lt,(k=k||{})["/="]=f.neq,(k=k||{})["=="]=f.eq;(k=k||{})["^"]=f.exp,(k=k||{})["%"]=f.mod;var k;(k=k||{})["//"]=f.div,(k=k||{})["/"]=f.floatDiv,(k=k||{})["*"]=f.mul,(k=k||{})["-"]=f.sub,(k=k||{})["+"]=f.add;var w=n((e,t)=>{return"Just"===t.ctor?t._0:e}),N={ctor:"Nothing"},I=n((e,t)=>{return"Just"===t.ctor?e(t._0):N}),j=e=>({ctor:"Just",_0:e}),T=n((e,t)=>{return"Just"===t.ctor?j(e(t._0)):N}),A=(()=>{var e={ctor:"[]"};function t(e,t){return{ctor:"::",_0:e,_1:t}}function r(r){for(var n=e,o=r.length;o--;)n=t(r[o],n);return n}function d(e){for(var t=[];"[]"!==e.ctor;)t.push(e._0),e=e._1;return t}return{Nil:e,Cons:t,cons:n(t),toArray:d,fromArray:r,foldr:o(function(e,t,r){for(var n=d(r),o=t,a=n.length;a--;)o=u(e,n[a],o);return o}),map2:o(function(e,t,n){for(var o=[];"[]"!==t.ctor&&"[]"!==n.ctor;)o.push(u(e,t._0,n._0)),t=t._1,n=n._1;return r(o)}),map3:a(function(e,t,n,o){for(var a=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor;)a.push(s(e,t._0,n._0,o._0)),t=t._1,n=n._1,o=o._1;return r(a)}),map4:i(function(e,t,n,o,a){for(var i=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor;)i.push(l(e,t._0,n._0,o._0,a._0)),t=t._1,n=n._1,o=o._1,a=a._1;return r(i)}),map5:c(function(e,t,n,o,a,i){for(var c=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor&&"[]"!==i.ctor;)c.push(_(e,t._0,n._0,o._0,a._0,i._0)),t=t._1,n=n._1,o=o._1,a=a._1,i=i._1;return r(c)}),sortBy:n(function(e,t){return r(d(t).sort((t,r)=>p.cmp(e(t),e(r))))}),sortWith:n(function(e,t){return r(d(t).sort((t,r)=>{var n=e(t)(r).ctor;return"EQ"===n?0:"LT"===n?-1:1}))})}})(),M=A.sortBy,C=n((e,t)=>{for(;;){if(1>p.cmp(e,0))return t;var r=t;if("[]"===r.ctor)return t;e=e-1,t=r._1}}),B=A.map2,O=n((e,t)=>{for(;;){var r=t;if("[]"===r.ctor)return!1;if(e(r._0))return!0;e=e,t=r._1}}),E=A.foldr,R=o((e,t,r)=>{for(;;){var n=r;if("[]"===n.ctor)return t;var o=e,a=u(e,n._0,t);e=o,t=a,r=n._1}}),S=e=>s(R,n((e,t)=>t+1),0,e),L=n((e,t)=>u(O,t=>p.eq(t,e),t)),z=e=>{return"[]"===e.ctor},D=e=>{return"::"===e.ctor?j(e._0):N},P=P||{};P["::"]=A.cons;var $,q=n((e,t)=>s(E,n((t,r)=>({ctor:"::",_0:e(t),_1:r})),{ctor:"[]"},t)),J=n((e,t)=>{return s(E,n((t,r)=>e(t)?{ctor:"::",_0:t,_1:r}:r),{ctor:"[]"},t)}),V=o((e,t,r)=>{var n=e(t);return"Just"===n.ctor?{ctor:"::",_0:n._0,_1:r}:r}),Z=n((e,t)=>s(E,V(e),{ctor:"[]"},t)),U=e=>s(R,n((e,t)=>({ctor:"::",_0:e,_1:t})),{ctor:"[]"},e),F=n((e,t)=>{return"[]"===t.ctor?e:s(E,n((e,t)=>({ctor:"::",_0:e,_1:t})),t,e)}),W=e=>s(E,F,{ctor:"[]"},e),G=o((e,t,r)=>{for(;;){if(p.cmp(e,t)>=1)return r;var n={ctor:"::",_0:t,_1:r};e=e,t=t-1,r=n}}),Y=n((e,t)=>s(G,e,t,{ctor:"[]"})),H=n((e,t)=>s(B,e,u(Y,0,S(t)-1),t)),K=d.toList,Q=(()=>{return{crash(e){throw new Error(e)},log:n(function(e,t){var r=e+": "+p.toString(t),n=n||{};return n.stdout?n.stdout.write(r):console.log(r),t})}})(),X=(()=>{function e(e,t){for(var r="";e>0;)1&e&&(r+=t),e>>=1,t+=t;return r}function t(e){return ae("could not convert string '"+e+"' to an Int")}function r(e){return ae("could not convert string '"+e+"' to a Float")}return{isEmpty(e){return 0===e.length},cons:n(function(e,t){return e+t}),uncons(e){var t=e[0];return t?j(p.Tuple2(p.chr(t),e.slice(1))):N},append:n(function(e,t){return e+t}),concat(e){return A.toArray(e).join("")},length(e){return e.length},map:n(function(e,t){for(var r=t.split(""),n=r.length;n--;)r[n]=e(p.chr(r[n]));return r.join("")}),filter:n(function(e,t){return t.split("").map(p.chr).filter(e).join("")}),reverse(e){return e.split("").reverse().join("")},foldl:o(function(e,t,r){for(var n=r.length,o=0;n>o;++o)t=u(e,p.chr(r[o]),t);return t}),foldr:o(function(e,t,r){for(var n=r.length;n--;)t=u(e,p.chr(r[n]),t);return t}),split:n(function(e,t){return A.fromArray(t.split(e))}),join:n(function(e,t){return A.toArray(t).join(e)}),repeat:n(e),slice:o(function(e,t,r){return r.slice(e,t)}),left:n(function(e,t){return 1>e?"":t.slice(0,e)}),right:n(function(e,t){return 1>e?"":t.slice(-e)}),dropLeft:n(function(e,t){return 1>e?t:t.slice(e)}),dropRight:n(function(e,t){return 1>e?t:t.slice(0,-e)}),pad:o(function(t,r,n){var o=(t-n.length)/2;return e(Math.ceil(o),r)+n+e(0|o,r)}),padLeft:o(function(t,r,n){return e(t-n.length,r)+n}),padRight:o(function(t,r,n){return n+e(t-n.length,r)}),trim(e){return e.trim()},trimLeft(e){return e.replace(/^\s+/,"")},trimRight(e){return e.replace(/\s+$/,"")},words(e){return A.fromArray(e.trim().split(/\s+/g))},lines(e){return A.fromArray(e.split(/\r\n|\r|\n/g))},toUpper(e){return e.toUpperCase()},toLower(e){return e.toLowerCase()},any:n(function(e,t){for(var r=t.length;r--;)if(e(p.chr(t[r])))return!0;return!1}),all:n(function(e,t){for(var r=t.length;r--;)if(!e(p.chr(t[r])))return!1;return!0}),contains:n(function(e,t){return t.indexOf(e)>-1}),startsWith:n(function(e,t){return 0===t.indexOf(e)}),endsWith:n(function(e,t){return t.length>=e.length&&t.lastIndexOf(e)===t.length-e.length}),indexes:n(function(e,t){var r=e.length;if(1>r)return A.Nil;for(var n=0,o=[];(n=t.indexOf(e,n))>-1;)o.push(n),n+=r;return A.fromArray(o)}),toInt(e){var r=e.length;if(0===r)return t(e);if("0"===(o=e[0])&&"x"===e[1]){for(var n=2;r>n;++n)if(("0">(o=e[n])||o>"9")&&("A">o||o>"F")&&("a">o||o>"f"))return t(e);return ce(parseInt(e,16))}if(o>"9"||"0">o&&"-"!==o&&"+"!==o)return t(e);for(n=1;r>n;++n){var o;if("0">(o=e[n])||o>"9")return t(e)}return ce(parseInt(e,10))},toFloat(e){if(0===e.length||/[\sxbo]/.test(e))return r(e);var t=+e;return t==t?ce(t):r(e)},toList(e){return A.fromArray(e.split("").map(p.chr))},fromList(e){return A.toArray(e).join("")}}})(),ee=(()=>({fromCode:e=>p.chr(String.fromCharCode(e)),toCode:e=>e.charCodeAt(0),toUpper:e=>p.chr(e.toUpperCase()),toLower:e=>p.chr(e.toLowerCase()),toLocaleUpper:e=>p.chr(e.toLocaleUpperCase()),toLocaleLower:e=>p.chr(e.toLocaleLowerCase())}))(),te=ee.toCode,re=o((e,t,r)=>{var n=te(r);return p.cmp(n,te(e))>-1&&1>p.cmp(n,te(t))}),ne=(u(re,p.chr("A"),p.chr("Z")),u(re,p.chr("a"),p.chr("z")),u(re,p.chr("0"),p.chr("9")),u(re,p.chr("0"),p.chr("7")),e=>{return"Ok"===e.ctor?j(e._0):N}),oe=n((e,t)=>{return"Ok"===t.ctor?t._0:e}),ae=e=>({ctor:"Err",_0:e}),ie=n((e,t)=>{var r=t;return"Ok"===r.ctor?e(r._0):ae(r._0)}),ce=e=>({ctor:"Ok",_0:e}),ue=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(e(r._0)):ae(r._0)}),se=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(r._0):ae(e(r._0))}),le=n((e,t)=>{return"Just"===t.ctor?ce(t._0):ae(e)}),_e=X.toFloat,de=X.toInt,fe=X.endsWith,pe=X.dropRight,he=X.join,me=X.split,ge=X.foldl,ve=X.concat,be=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return t;var o=e,a=s(e,n._1,n._2,s(be,e,t,n._4));e=o,t=a,r=n._3}}),ye=e=>s(be,o((e,t,r)=>({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:r})),{ctor:"[]"},e),xe=a((e,t,r,n)=>Q.crash(ve({ctor:"::",_0:"Internal red-black tree invariant violated, expected ",_1:{ctor:"::",_0:e,_1:{ctor:"::",_0:" and got ",_1:{ctor:"::",_0:v(t),_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:r,_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:n,_1:{ctor:"::",_0:"\nPlease report this bug to ",_1:{ctor:"[]"}}}}}}}}}}))),ke=e=>{var t=e;e:do{if("RBNode_elm_builtin"===t.ctor){if("BBlack"===t._0.ctor)return!0;break e}if("LBBlack"===t._0.ctor)return!0;break e}while(0);return!1},we=n((e,t)=>{e:for(;;){var r=t;if("RBEmpty_elm_builtin"===r.ctor)return N;switch(u(x,e,r._1).ctor){case"LT":e=e,t=r._3;continue e;case"EQ":return j(r._2);default:e=e,t=r._4;continue e}}}),Ne=n((e,t)=>{return"Just"===u(we,e,t).ctor}),Ie=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return{ctor:"_Tuple2",_0:e,_1:t};e=n._1,t=n._2,r=n._4}}),je={ctor:"NBlack"},Te={ctor:"BBlack"},Ae={ctor:"Black"},Me={ctor:"Red"},Ce=e=>{switch(e.ctor){case"BBlack":return Ae;case"Black":return Me;case"Red":return je;default:return Q.crash("Can't make a negative black node less black!")}},Be={ctor:"LBBlack"},Oe={ctor:"LBlack"},Ee=e=>({ctor:"RBEmpty_elm_builtin",_0:e}),Re=Ee(Oe),Se=i((e,t,r,n,o)=>({ctor:"RBNode_elm_builtin",_0:e,_1:t,_2:r,_3:n,_4:o})),Le=e=>{var t=e;return"RBNode_elm_builtin"===t.ctor?_(Se,Ce(t._0),t._1,t._2,t._3,t._4):Ee(Oe)},ze=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_(Se,Ce(e),n,o,_(Se,Ae,t,r,c,u),_(Se,Ae,a,i,s,l)),De=e=>{var t=e;return"RBEmpty_elm_builtin"===t.ctor?Q.crash("can't make a Leaf red"):_(Se,Me,t._1,t._2,t._3,t._4)},Pe=i((e,t,r,n,o)=>{var a=_(Se,e,t,r,n,o);return(e=>{if("RBNode_elm_builtin"===e.ctor){var t=e._0;return p.eq(t,Ae)||p.eq(t,Te)}return!0})(a)?(e=>{var t=e;e:do{t:do{r:do{n:do{o:do{a:do{i:do{if("RBNode_elm_builtin"!==t.ctor)break e;if("RBNode_elm_builtin"===t._3.ctor)if("RBNode_elm_builtin"===t._4.ctor)switch(t._3._0.ctor){case"Red":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e}case"NBlack":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;case"NBlack":if("BBlack"===t._0.ctor){if("RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;if("RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}break e;default:if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}default:switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}else switch(t._3._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;default:break e}else{if("RBNode_elm_builtin"!==t._4.ctor)break e;switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}}while(0);return ze(t._0)(t._3._3._1)(t._3._3._2)(t._3._1)(t._3._2)(t._1)(t._2)(t._3._3._3)(t._3._3._4)(t._3._4)(t._4)}while(0);return ze(t._0)(t._3._1)(t._3._2)(t._3._4._1)(t._3._4._2)(t._1)(t._2)(t._3._3)(t._3._4._3)(t._3._4._4)(t._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._3._1)(t._4._3._2)(t._4._1)(t._4._2)(t._3)(t._4._3._3)(t._4._3._4)(t._4._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._1)(t._4._2)(t._4._4._1)(t._4._4._2)(t._3)(t._4._3)(t._4._4._3)(t._4._4._4)}while(0);return _(Se,Ae,t._4._3._1,t._4._3._2,_(Se,Ae,t._1,t._2,t._3,t._4._3._3),_(Pe,Ae,t._4._1,t._4._2,t._4._3._4,De(t._4._4)))}while(0);return _(Se,Ae,t._3._4._1,t._3._4._2,_(Pe,Ae,t._3._1,t._3._2,De(t._3._3),t._3._4._3),_(Se,Ae,t._1,t._2,t._3._4._4,t._4))}while(0);return e})(a):a}),$e=i((e,t,r,n,o)=>ke(n)||ke(o)?_(Pe,(e=>{switch(e.ctor){case"Black":return Te;case"Red":return Ae;case"NBlack":return Me;default:return Q.crash("Can't make a double black node more black!")}})(e),t,r,Le(n),Le(o)):_(Se,e,t,r,n,o)),qe=i((e,t,r,n,o)=>{var a=o;return"RBEmpty_elm_builtin"===a.ctor?s(Je,e,n,o):_($e,e,t,r,n,_(qe,a._0,a._1,a._2,a._3,a._4))}),Je=o((e,t,r)=>{var n={ctor:"_Tuple2",_0:t,_1:r};if("RBEmpty_elm_builtin"!==n._0.ctor){if("RBEmpty_elm_builtin"===n._1.ctor){var o=n._1._0,a=n._0._0,i={ctor:"_Tuple3",_0:e,_1:a,_2:o};return"_Tuple3"===i.ctor&&"Black"===i._0.ctor&&"Red"===i._1.ctor&&"LBlack"===i._2.ctor?_(Se,Ae,n._0._1,n._0._2,n._0._3,n._0._4):l(xe,"Black/Red/LBlack",e,v(a),v(o))}var c=n._0._2,u=n._0._4,d=n._0._1,f=_(qe,n._0._0,d,c,n._0._3,u),p=s(Ie,d,c,u);return _($e,e,p._0,p._1,f,r)}if("RBEmpty_elm_builtin"!==n._1.ctor){var h=n._1._0,m=n._0._0,g={ctor:"_Tuple3",_0:e,_1:m,_2:h};return"_Tuple3"===g.ctor&&"Black"===g._0.ctor&&"LBlack"===g._1.ctor&&"Red"===g._2.ctor?_(Se,Ae,n._1._1,n._1._2,n._1._3,n._1._4):l(xe,"Black/LBlack/Red",e,v(m),v(h))}switch(e.ctor){case"Red":return Ee(Oe);case"Black":return Ee(Be);default:return Q.crash("cannot have bblack or nblack nodes at this point")}}),Ve={ctor:"Same"},Ze={ctor:"Remove"},Ue={ctor:"Insert"},Fe=o((e,t,r)=>{var n,o=r=>{var n=r;if("RBEmpty_elm_builtin"===n.ctor){var a=t(N);return"Nothing"===a.ctor?{ctor:"_Tuple2",_0:Ve,_1:Re}:{ctor:"_Tuple2",_0:Ue,_1:_(Se,Me,e,a._0,Re,Re)}}var i=n._2,c=n._4,l=n._3,d=n._1,f=n._0;switch(u(x,e,d).ctor){case"EQ":var p=t(j(i));return"Nothing"===p.ctor?{ctor:"_Tuple2",_0:Ze,_1:s(Je,f,l,c)}:{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,p._0,l,c)};case"LT":var h=o(l),m=h._1;switch(h._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,i,m,c)};case"Insert":return{ctor:"_Tuple2",_0:Ue,_1:_(Pe,f,d,i,m,c)};default:return{ctor:"_Tuple2",_0:Ze,_1:_($e,f,d,i,m,c)}}default:var g=o(c),v=g._1;switch(g._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ve,_1:_(Se,f,d,i,l,v)};case"Insert":return{ctor:"_Tuple2",_0:Ue,_1:_(Pe,f,d,i,l,v)};default:return{ctor:"_Tuple2",_0:Ze,_1:_($e,f,d,i,l,v)}}}},a=o(r),i=a._1;switch(a._0.ctor){case"Same":return i;case"Insert":return(e=>{return"RBNode_elm_builtin"===e.ctor&&"Red"===e._0.ctor?_(Se,Ae,e._1,e._2,e._3,e._4):e})(i);default:return"RBEmpty_elm_builtin"===(n=i).ctor?Ee(Oe):_(Se,Ae,n._1,n._2,n._3,n._4)}}),We=o((e,t,r)=>s(Fe,e,m(j(t)),r)),Ge=e=>s(R,n((e,t)=>{return s(We,e._0,e._1,t)}),Re,e),Ye=(()=>{function e(e,t){return{ctor:"",tag:"map-many",func:e,decoders:t}}function t(e){return{tag:"ok",value:e}}function r(e,t){return{tag:"primitive",type:e,value:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function s(e,t){return{tag:"field",field:e,rest:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function l(e,n){var o=function e(n,o){switch(n.tag){case"bool":return"boolean"==typeof o?t(o):r("a Bool",o);case"int":return"number"!=typeof o?r("an Int",o):o>-2147483647&&2147483647>o&&(0|o)===o?t(o):!isFinite(o)||o%1?r("an Int",o):t(o);case"float":return"number"==typeof o?t(o):r("a Float",o);case"string":return"string"==typeof o?t(o):o instanceof String?t(o+""):r("a String",o);case"null":return null===o?t(n.value):r("null",o);case"value":return t(o);case"list":if(!(o instanceof Array))return r("a List",o);for(var a=A.Nil,i=o.length;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);a=A.Cons(c.value,a)}return t(a);case"array":if(!(o instanceof Array))return r("an Array",o);for(var l=o.length,_=new Array(l),i=l;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);_[i]=c.value}return t(d.fromJSArray(_));case"maybe":var c=e(n.decoder,o);return t("ok"===c.tag?j(c.value):N);case"field":var f=n.field;if("object"!=typeof o||null===o||!(f in o))return r("an object with a field named `"+f+"`",o);var c=e(n.decoder,o[f]);return"ok"===c.tag?c:s(f,c);case"index":var h=n.index;if(!(o instanceof Array))return r("an array",o);if(h>=o.length)return r("a longer array. Need index "+h+" but there are only "+o.length+" entries",o);var c=e(n.decoder,o[h]);return"ok"===c.tag?c:u(h,c);case"key-value":if("object"!=typeof o||null===o||o instanceof Array)return r("an object",o);var m=A.Nil;for(var g in o){var c=e(n.decoder,o[g]);if("ok"!==c.tag)return s(g,c);var v=p.Tuple2(g,c.value);m=A.Cons(v,m)}return t(m);case"map-many":for(var b=n.func,y=n.decoders,i=0;y.length>i;i++){var c=e(y[i],o);if("ok"!==c.tag)return c;b=b(c.value)}return t(b);case"andThen":var c=e(n.decoder,o);return"ok"!==c.tag?c:e(n.callback(c.value),o);case"oneOf":for(var x=[],k=n.decoders;"[]"!==k.ctor;){var c=e(k._0,o);if("ok"===c.tag)return c;x.push(c),k=k._1}return{tag:"oneOf",problems:x};case"fail":return{tag:"fail",msg:n.msg};case"succeed":return t(n.msg)}}(e,n);return"ok"===o.tag?ce(o.value):ae(function e(t){for(var r,n="_";t;)switch(t.tag){case"primitive":return"Expecting "+t.type+("_"===n?"":" at "+n)+" but instead got: "+(void 0===(r=t.value)?"undefined":JSON.stringify(r));case"index":n+="["+t.index+"]",t=t.rest;break;case"field":n+="."+t.field,t=t.rest;break;case"oneOf":for(var o=t.problems,a=0;o.length>a;a++)o[a]=e(o[a]);return"I ran into the following problems"+("_"===n?"":" at "+n)+":\n\n"+o.join("\n");case"fail":return"I ran into a `fail` decoder"+("_"===n?"":" at "+n)+": "+t.msg}}(o))}function _(e,t){if(e===t)return!0;if(e.tag!==t.tag)return!1;switch(e.tag){case"succeed":case"fail":return e.msg===t.msg;case"bool":case"int":case"float":case"string":case"value":return!0;case"null":return e.value===t.value;case"list":case"array":case"maybe":case"key-value":return _(e.decoder,t.decoder);case"field":return e.field===t.field&&_(e.decoder,t.decoder);case"index":return e.index===t.index&&_(e.decoder,t.decoder);case"map-many":return e.func===t.func&&f(e.decoders,t.decoders);case"andThen":return e.callback===t.callback&&_(e.decoder,t.decoder);case"oneOf":return f(e.decoders,t.decoders)}}function f(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;r>n;n++)if(!_(e[n],t[n]))return!1;return!0}return{encode:n(function(e,t){return JSON.stringify(t,null,e)}),runOnString:n(function(e,t){var r;try{r=JSON.parse(t)}catch(e){return ae("Given an invalid JSON: "+e.message)}return l(e,r)}),run:n(l),decodeNull(e){return{ctor:"",tag:"null",value:e}},decodePrimitive(e){return{ctor:"",tag:e}},decodeContainer:n(function(e,t){return{ctor:"",tag:e,decoder:t}}),decodeField:n(function(e,t){return{ctor:"",tag:"field",field:e,decoder:t}}),decodeIndex:n(function(e,t){return{ctor:"",tag:"index",index:e,decoder:t}}),map1:n(function(t,r){return e(t,[r])}),map2:o(function(t,r,n){return e(t,[r,n])}),map3:a(function(t,r,n,o){return e(t,[r,n,o])}),map4:i(function(t,r,n,o,a){return e(t,[r,n,o,a])}),map5:c(function(t,r,n,o,a,i){return e(t,[r,n,o,a,i])}),map6:function(e){function t(t){return r=>n=>o=>a=>i=>c=>e(t,r,n,o,a,i,c)}return t.arity=7,t.func=e,t}(function(t,r,n,o,a,i,c){return e(t,[r,n,o,a,i,c])}),map7:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>e(t,r,n,o,a,i,c,u)}return t.arity=8,t.func=e,t}(function(t,r,n,o,a,i,c,u){return e(t,[r,n,o,a,i,c,u])}),map8:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>s=>e(t,r,n,o,a,i,c,u,s)}return t.arity=9,t.func=e,t}(function(t,r,n,o,a,i,c,u,s){return e(t,[r,n,o,a,i,c,u,s])}),decodeKeyValuePairs(e){return{ctor:"",tag:"key-value",decoder:e}},andThen:n(function(e,t){return{ctor:"",tag:"andThen",decoder:t,callback:e}}),fail(e){return{ctor:"",tag:"fail",msg:e}},succeed(e){return{ctor:"",tag:"succeed",msg:e}},oneOf(e){return{ctor:"",tag:"oneOf",decoders:e}},identity(e){return e},encodeNull:null,encodeArray:d.toJSArray,encodeList:A.toArray,encodeObject(e){for(var t={};"[]"!==e.ctor;){var r=e._0;t[r._0]=r._1,e=e._1}return t},equality:_}})(),He=Ye.encodeList,Ke=Ye.encodeObject,Qe=Ye.encodeNull,Xe=Ye.identity,et=Ye.identity,tt=Ye.identity,rt=Ye.encode,nt=Ye.decodeNull,ot=Ye.decodePrimitive("value"),at=Ye.andThen,it=Ye.fail,ct=Ye.succeed,ut=e=>u(at,e,ct({ctor:"_Tuple0"})),st=Ye.run,lt=Ye.runOnString,_t=Ye.map2,dt=Ye.map1,ft=Ye.oneOf,pt=e=>u(Ye.decodeContainer,"maybe",e),ht=Ye.decodeField,mt=n((e,t)=>s(E,ht,t,e)),gt=Ye.decodeKeyValuePairs,vt=e=>u(Ye.decodeContainer,"list",e),bt=e=>ft({ctor:"::",_0:nt(N),_1:{ctor:"::",_0:u(dt,j,e),_1:{ctor:"[]"}}}),yt=Ye.decodePrimitive("float"),xt=Ye.decodePrimitive("int"),kt=Ye.decodePrimitive("bool"),wt=Ye.decodePrimitive("string"),Nt=(()=>{var e="STYLE",t="EVENT",r="ATTR",i="ATTR_NS",c="undefined"!=typeof document?document:{};function l(e,t,r){return{type:"thunk",func:e,args:t,thunk:r,node:void 0}}function _(n){for(var o,a={};"[]"!==n.ctor;){var c=n._0,u=c.key;if(u===r||u===i||u===t){var s=a[u]||{};s[c.realKey]=c.value,a[u]=s}else if(u===e){for(var l=a[u]||{},_=c.value;"[]"!==_.ctor;){var d=_._0;l[d._0]=d._1,_=_._1}a[u]=l}else if("namespace"===u)o=c.value;else if("className"===u){var f=a[u];a[u]=void 0===f?c.value:f+" "+c.value}else a[u]=c.value;n=n._1}return{facts:a,namespace:o}}function d(e,r,n){return{key:t,realKey:e,value:{options:r,decoder:n}}}function f(e,t){return(e.options===t.options||e.options.stopPropagation===t.options.stopPropagation&&e.options.preventDefault===t.options.preventDefault)&&Ye.equality(e.decoder,t.decoder)}function h(e,t){switch(e.type){case"thunk":return e.node||(e.node=e.thunk()),h(e.node,t);case"tagger":for(var r=e.node,n=e.tagger;"tagger"===r.type;)"object"!=typeof n?n=[n,r.tagger]:n.push(r.tagger),r=r.node;var o={tagger:n,parent:t};return(u=h(r,o)).elm_event_node_ref=o,u;case"text":return c.createTextNode(e.text);case"node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(var a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i],t));return u;case"keyed-node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i]._1,t));return u;case"custom":var u;return m(u=e.impl.render(e.model),t,e.facts),u}}function m(n,o,a){for(var c in a){var u=a[c];switch(c){case e:g(n,u);break;case t:v(n,o,u);break;case r:y(n,u);break;case i:x(n,u);break;case"value":n[c]!==u&&(n[c]=u);break;default:n[c]=u}}}function g(e,t){var r=e.style;for(var n in t)r[n]=t[n]}function v(e,t,r){var n=e.elm_handlers||{};for(var o in r){var a=n[o],i=r[o];if(void 0===i)e.removeEventListener(o,a),n[o]=void 0;else if(void 0===a){a=b(t,i);e.addEventListener(o,a),n[o]=a}else a.info=i}e.elm_handlers=n}function b(e,t){function r(t){var n=r.info,o=u(Ye.run,n.decoder,t);if("Ok"===o.ctor){var a=n.options;a.stopPropagation&&t.stopPropagation(),a.preventDefault&&t.preventDefault();for(var i=o._0,c=e;c;){var s=c.tagger;if("function"==typeof s)i=s(i);else for(var l=s.length;l--;)i=s[l](i);c=c.parent}}}return r.info=t,r}function y(e,t){for(var r in t){var n=t[r];void 0===n?e.removeAttribute(r):e.setAttribute(r,n)}}function x(e,t){for(var r in t){var n=t[r],o=n.namespace,a=n.value;void 0===a?e.removeAttributeNS(o,r):e.setAttributeNS(o,r,a)}}function k(e,t){var r=[];return N(e,t,r,0),r}function w(e,t,r){return{index:t,type:e,data:r,domNode:void 0,eventNode:void 0}}function N(e,t,r,n){if(e!==t){var o=t.type;if(e.type===o)switch(o){case"thunk":for(var a=e.args,i=t.args,c=a.length,u=e.func===t.func&&c===i.length;u&&c--;)u=a[c]===i[c];if(u)return void(t.node=e.node);t.node=t.thunk();var s=[];return N(e.node,t.node,s,0),void(s.length>0&&r.push(w("p-thunk",n,s)));case"tagger":for(var l=e.tagger,_=t.tagger,d=!1,f=e.node;"tagger"===f.type;)d=!0,"object"!=typeof l?l=[l,f.tagger]:l.push(f.tagger),f=f.node;for(var p=t.node;"tagger"===p.type;)d=!0,"object"!=typeof _?_=[_,p.tagger]:_.push(p.tagger),p=p.node;return d&&l.length!==_.length?void r.push(w("p-redraw",n,t)):((d?function(e,t){for(var r=0;e.length>r;r++)if(e[r]!==t[r])return!1;return!0}(l,_):l===_)||r.push(w("p-tagger",n,_)),void N(f,p,r,n+1));case"text":return e.text!==t.text?void r.push(w("p-text",n,t.text)):void 0;case"node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o=e.children,a=t.children,i=o.length,c=a.length;i>c?r.push(w("p-remove-last",n,i-c)):c>i&&r.push(w("p-append",n,a.slice(i)));for(var u=n,s=c>i?i:c,l=0;s>l;l++){var _=o[l];N(_,a[l],r,++u),u+=_.descendantsCount||0}}(e,t,r,n));case"keyed-node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o,a=[],i={},c=[],u=e.children,s=t.children,l=u.length,_=s.length,d=0,f=0,p=n;for(;l>d&&_>f;){var h=u[d],m=s[f],g=h._0,v=m._0,b=h._1,y=m._1;if(g!==v){var x=l>d+1,k=_>f+1;if(x)var I=u[d+1],j=I._0,M=I._1,C=v===j;if(k)var B=s[f+1],O=B._0,E=B._1,R=g===O;if(x&&k&&R&&C)N(b,E,a,++p),T(i,a,g,y,f,c),p+=b.descendantsCount||0,A(i,a,g,M,++p),p+=M.descendantsCount||0,d+=2,f+=2;else if(k&&R)p++,T(i,a,v,y,f,c),N(b,E,a,p),p+=b.descendantsCount||0,d+=1,f+=2;else if(x&&C)A(i,a,g,b,++p),p+=b.descendantsCount||0,N(M,y,a,++p),p+=M.descendantsCount||0,d+=2,f+=1;else{if(!x||!k||j!==O)break;A(i,a,g,b,++p),T(i,a,v,y,f,c),p+=b.descendantsCount||0,N(M,E,a,++p),p+=M.descendantsCount||0,d+=2,f+=2}}else N(b,y,a,++p),p+=b.descendantsCount||0,d++,f++}for(;l>d;){var h=u[d],b=h._1;A(i,a,h._0,b,++p),p+=b.descendantsCount||0,d++}for(;_>f;){var m=s[f];T(i,a,m._0,m._1,void 0,o=o||[]),f++}(a.length>0||c.length>0||void 0!==o)&&r.push(w("p-reorder",n,{patches:a,inserts:c,endInserts:o}))}(e,t,r,n));case"custom":if(e.impl!==t.impl)return void r.push(w("p-redraw",n,t));var h;void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h));var m=t.impl.diff(e,t);return m?void r.push(w("p-custom",n,m)):void 0}else r.push(w("p-redraw",n,t))}}function I(n,o,a){var c;for(var u in n)if(u!==e&&u!==t&&u!==r&&u!==i)if(u in o){var s=n[u],l=o[u];s===l&&"value"!==u||a===t&&f(s,l)||((c=c||{})[u]=l)}else(c=c||{})[u]=void 0===a?"string"==typeof n[u]?"":null:a===e?"":a===t||a===r?void 0:{namespace:n[u].namespace,value:void 0};else{var _=I(n[u],o[u]||{},u);_&&((c=c||{})[u]=_)}for(var d in o)d in n||((c=c||{})[d]=o[d]);return c}var j="_elmW6BL";function T(e,t,r,n,o,a){var i=e[r];if(void 0===i)return a.push({index:o,entry:i={tag:"insert",vnode:n,index:o,data:void 0}}),void(e[r]=i);if("remove"===i.tag){a.push({index:o,entry:i}),i.tag="move";var c=[];return N(i.vnode,n,c,i.index),i.index=o,void(i.data.data={patches:c,entry:i})}T(e,t,r+j,n,o,a)}function A(e,t,r,n,o){var a=e[r];if(void 0===a){var i=w("p-remove",o,void 0);return t.push(i),void(e[r]={tag:"remove",vnode:n,index:o,data:i})}if("insert"!==a.tag)A(e,t,r+j,n,o);else{a.tag="move";var c=[];N(n,a.vnode,c,o);i=w("p-remove",o,{patches:c,entry:a});t.push(i)}}function M(e,t,r,n){!function e(t,r,n,o,a,i,c){var u=n[o];var s=u.index;for(;s===a;){var l=u.type;if("p-thunk"===l)M(t,r.node,u.data,c);else if("p-reorder"===l){u.domNode=t,u.eventNode=c;var _=u.data.patches;_.length>0&&e(t,r,_,0,a,i,c)}else if("p-remove"===l){u.domNode=t,u.eventNode=c;var d=u.data;if(void 0!==d){d.entry.data=t;var _=d.patches;_.length>0&&e(t,r,_,0,a,i,c)}}else u.domNode=t,u.eventNode=c;if(!(u=n[++o])||(s=u.index)>i)return o}switch(r.type){case"tagger":for(var f=r.node;"tagger"===f.type;)f=f.node;return e(t,f,n,o,a+1,i,t.elm_event_node_ref);case"node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m],v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"keyed-node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m]._1,v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"text":case"thunk":throw new Error("should never traverse `text` or `thunk` nodes like this")}}(e,t,r,0,0,t.descendantsCount,n)}function C(e,t,r,n){return 0===r.length?e:(M(e,t,r,n),B(e,r))}function B(e,t){for(var r=0;t.length>r;r++){var n=t[r],o=n.domNode,a=O(o,n);o===e&&(e=a)}return e}function O(e,t){switch(t.type){case"p-redraw":return function(e,t,r){var n=e.parentNode,o=h(t,r);void 0===o.elm_event_node_ref&&(o.elm_event_node_ref=e.elm_event_node_ref);n&&o!==e&&n.replaceChild(o,e);return o}(e,t.data,t.eventNode);case"p-facts":return m(e,t.eventNode,t.data),e;case"p-text":return e.replaceData(0,e.length,t.data),e;case"p-thunk":return B(e,t.data);case"p-tagger":return void 0!==e.elm_event_node_ref?e.elm_event_node_ref.tagger=t.data:e.elm_event_node_ref={tagger:t.data,parent:t.eventNode},e;case"p-remove-last":for(var r=t.data;r--;)e.removeChild(e.lastChild);return e;case"p-append":var n=t.data;for(r=0;n.length>r;r++)e.appendChild(h(n[r],t.eventNode));return e;case"p-remove":var o=t.data;if(void 0===o)return e.parentNode.removeChild(e),e;var a=o.entry;return void 0!==a.index&&e.parentNode.removeChild(e),a.data=B(e,o.patches),e;case"p-reorder":return function(e,t){var r=t.data,n=function(e,t){if(void 0===e)return;for(var r=c.createDocumentFragment(),n=0;e.length>n;n++){var o=e[n],a=o.entry;r.appendChild("move"===a.tag?a.data:h(a.vnode,t.eventNode))}return r}(r.endInserts,t);e=B(e,r.patches);for(var o=r.inserts,a=0;o.length>a;a++){var i=o[a],u=i.entry,s="move"===u.tag?u.data:h(u.vnode,t.eventNode);e.insertBefore(s,e.childNodes[i.index])}void 0!==n&&e.appendChild(n);return e}(e,t);case"p-custom":var i=t.data;return i.applyPatch(e,i.data);default:throw new Error("Ran into an unknown patch!")}}var E=S(function(e,t){return(e,r,n)=>{if(void 0===r)return e;var o="The `"+t+"` module does not need flags.\nInitialize it with no arguments and you should be all set!";L(o,n)}}),R=S(function(e,t){return(r,n,o)=>{if(void 0===e){var a="Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+t+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.";L(a,o)}var i=u(Ye.run,e,n);if("Ok"===i.ctor)return r(i._0);var a="Trying to initialize the `"+t+"` module with an unexpected flag.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0;L(a,o)}});function S(e){return n((t,r)=>n=>(o,a,i)=>{var c=e(n,a);void 0===i?function(e,t,r,n){t.embed=function(t,r){for(;t.lastChild;)t.removeChild(t.lastChild);return At.initialize(n(e.init,r,t),e.update,e.subscriptions,z(t,e.view))},t.fullscreen=function(t){return At.initialize(n(e.init,t,document.body),e.update,e.subscriptions,z(document.body,e.view))}}(r,o,0,c):function(e,t,r,n){t.fullscreen=function(t){var o={doc:void 0};return At.initialize(n(e.init,t,document.body),e.update(q(o)),e.subscriptions,J(r,document.body,o,e.view,e.viewIn,e.viewOut))},t.embed=function(t,o){var a={doc:void 0};return At.initialize(n(e.init,o,t),e.update(q(a)),e.subscriptions,J(r,t,a,e.view,e.viewIn,e.viewOut))}}(u(t,i,r),o,a,c)})}function L(e,t){throw t&&(t.innerHTML='

Oops! Something went wrong when starting your Elm program.

'+e+"
"),new Error(e)}function z(e,t){return(r,n)=>{var o={tagger:r,parent:void 0},a=t(n),i=h(a,o);return e.appendChild(i),P(i,t,a,o)}}var D="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:e=>{setTimeout(e,1e3/60)};function P(e,t,r,n){var o,a="NO_REQUEST",i=r;function c(){switch(a){case"NO_REQUEST":throw new Error("Unexpected draw callback.\nPlease report this to .");case"PENDING_REQUEST":D(c),a="EXTRA_REQUEST";var r=t(o),u=k(i,r);return e=C(e,i,u,n),void(i=r);case"EXTRA_REQUEST":return void(a="NO_REQUEST")}}return function(e){"NO_REQUEST"===a&&D(c),a="PENDING_REQUEST",o=e}}function q(e){return Mt.nativeBinding(t=>{var r=e.doc;if(r){var n=r.getElementsByClassName("debugger-sidebar-messages")[0];n&&(n.scrollTop=n.scrollHeight)}t(Mt.succeed(p.Tuple0))})}function J(e,t,r,n,o,a){return(i,u)=>{var s={tagger:i,parent:void 0},l={tagger:i,parent:void 0},_=n(u),d=h(_,s);t.appendChild(d);var f=P(d,n,_,s),p=o(u)._1,m=h(p,l);t.appendChild(m);var g=P(m,function(e,t,r){var n,o=function(e){return t=>{if("keydown"!==t.type||!t.metaKey||82!==t.which){for(var r="scroll"===t.type||"wheel"===t.type,n=t.target;null!==n;){if("elm-overlay-message-details"===n.className&&r)return;if(n===e&&!r)return;n=n.parentNode}t.stopPropagation(),t.preventDefault()}}}(t),a="Normal",i=e.tagger,c=()=>{};return t=>{var u=r(t),s=u._0.ctor;return e.tagger="Normal"===s?i:c,a!==s&&(V("removeEventListener",o,a),V("addEventListener",o,s),"Normal"===a&&(n=document.body.style.overflow,document.body.style.overflow="hidden"),"Normal"===s&&(document.body.style.overflow=n),a=s),u._1}}(s,m,o),p,l),v=function(e,t,r,n,o,a){var i,u;return function(e){if(e.isDebuggerOpen){if(!a.doc)return i=t(e),void(u=function(e,t,r,n){var o=screen.width-900,a=screen.height-360,i=window.open("","","width=900,height=360,left="+o+",top="+a);t.doc=c=i.document,c.title="Debugger - "+e,c.body.style.margin="0",c.body.style.padding="0";var u=h(r,n);function s(){t.doc=void 0,i.close()}return c.body.appendChild(u),c.addEventListener("keydown",e=>{e.metaKey&&82===e.which&&window.location.reload(),38===e.which&&(n.tagger({ctor:"Up"}),e.preventDefault()),40===e.which&&(n.tagger({ctor:"Down"}),e.preventDefault())}),window.addEventListener("unload",s),i.addEventListener("unload",()=>{t.doc=void 0,window.removeEventListener("unload",s),n.tagger({ctor:"Close"})}),c=document,u}(o,a,i,r));c=a.doc;var n=t(e),s=k(i,n);u=C(u,i,s,r),i=n,c=document}}}(0,a,l,0,e,r);return function(e){f(e),g(e),v(e)}}}function V(e,t,r){switch(r){case"Normal":return;case"Pause":return Z(e,t,U);case"Message":return Z(e,t,F)}}function Z(e,t,r){for(var n=0;r.length>n;n++)document.body[e](r[n],t,!0)}var U=["click","dblclick","mousemove","mouseup","mousedown","mouseenter","mouseleave","touchstart","touchend","touchcancel","touchmove","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointercancel","dragstart","drag","dragend","dragenter","dragover","dragleave","drop","keyup","keydown","keypress","input","change","focus","blur"],F=U.concat("wheel","scroll");return{node(e){return n((t,r)=>((e,t,r)=>{for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u.descendantsCount||0,i.push(u),r=r._1}return{type:"node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}})(e,t,r))},text(e){return{type:"text",text:e}},custom(e,t,r){return{type:"custom",facts:_(e).facts,model:t,impl:r}},map:n(function(e,t){return{type:"tagger",tagger:e,node:t,descendantsCount:1+(t.descendantsCount||0)}}),on:o(d),style(t){return{key:e,value:t}},property:n(function(e,t){return{key:e,value:t}}),attribute:n(function(e,t){return{key:r,realKey:e,value:t}}),attributeNS:o(function(e,t,r){return{key:i,realKey:t,value:{value:r,namespace:e}}}),mapProperty:n(function(e,r){return r.key!==t?r:d(r.realKey,r.value.options,u(dt,e,r.value.decoder))}),lazy:n(function(e,t){return l(e,[t],()=>e(t))}),lazy2:o(function(e,t,r){return l(e,[t,r],()=>u(e,t,r))}),lazy3:a(function(e,t,r,n){return l(e,[t,r,n],()=>s(e,t,r,n))}),keyedNode:o(function(e,t,r){for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u._1.descendantsCount||0,i.push(u),r=r._1}return{type:"keyed-node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}}),program:E,programWithFlags:R,staticProgram(e){var t=p.Tuple2(p.Tuple0,Bt);return u(E,$,{init:t,view:()=>e,update:n(()=>t),subscriptions:()=>Jt})()}}})(),It=Q.log,jt=e=>{return e._1},Tt=e=>{return e._0},At=(()=>{function e(){return()=>{}}function t(e,t,n,o){var c,s={};var l=i(Mt.nativeBinding(t=>{var r=e._0;c=o(_,r);var a=e._1,i=n(r);d(s,a,i),t(Mt.succeed(r))}),function(e,r){return Mt.nativeBinding(o=>{var a=u(t,e,r);c(r=a._0);var i=a._1,l=n(r);d(s,i,l),o(Mt.succeed(r))})});function _(e){Mt.rawSend(l,e)}var f=function(e,t){var n;for(var o in r){var i=r[o];i.isForeign&&((n=n||{})[o]="cmd"===i.tag?g(o):b(o,t)),e[o]=a(i,t)}return n}(s,_);return f?{ports:f}:{}}var r={};function a(e,t){var r={main:t,self:void 0},n=e.tag,o=e.onEffects,a=e.onSelfMsg;var c=i(e.init,function(e,t){if("self"===e.ctor)return s(a,r,e._0,t);var i=e._0;switch(n){case"cmd":return s(o,r,i.cmds,t);case"sub":return s(o,r,i.subs,t);case"fx":return l(o,r,i.cmds,i.subs,t)}});return r.self=c,c}function i(e,t){var r=Mt.andThen;var n=u(r,function e(n){var o=Mt.receive(e=>t(e,n));return u(r,e,o)},e);return Mt.rawSpawn(n)}function c(e){return t=>({type:"leaf",home:e,value:t})}function _(e){return{type:"node",branches:e}}function d(e,t,r){var n={};for(var o in f(!0,t,n,null),f(!1,r,n,null),e){Mt.rawSend(e[o],{ctor:"fx",_0:o in n?n[o]:{cmds:A.Nil,subs:A.Nil}})}}function f(e,t,n,o){switch(t.type){case"leaf":var a=t.home,i=function(e,t,n,o){return u(e?r[t].cmdMap:r[t].subMap,function(e){var t=n;for(;t;)e=t.tagger(e),t=t.rest;return e},o)}(e,a,o,t.value);return void(n[a]=function(e,t,r){if(r=r||{cmds:A.Nil,subs:A.Nil},e)return r.cmds=A.Cons(t,r.cmds),r;return r.subs=A.Cons(t,r.subs),r}(e,i,n[a]));case"node":for(var c=t.branches;"[]"!==c.ctor;)f(e,c._0,n,o),c=c._1;return;case"map":return void f(e,t.tree,n,{tagger:t.tagger,rest:o})}}function h(e){if(e in r)throw new Error("There can only be one port named `"+e+"`, but your program has multiple.")}var m=n(function(e,t){return t});function g(e){var t=[],n=r[e].converter,a=Mt.succeed(null);return r[e].init=a,r[e].onEffects=o(function(e,r){for(;"[]"!==r.ctor;){for(var o=t,i=n(r._0),c=0;o.length>c;c++)o[c](i);r=r._1}return a}),{subscribe(e){t.push(e)},unsubscribe(e){var r=(t=t.slice()).indexOf(e);0>r||t.splice(r,1)}}}var v=n(function(e,t){return r=>e(t(r))});function b(e,t){var n=[],a=A.Nil,i=r[e].converter,c=function(e,t,r){for(var o=_(e,t,r),a=0;n.length>a;a++)d(n[a]);return n=null,s=d,c=_,o},s=function(e){n.push(e)},l=Mt.succeed(null);function _(e,t){return a=t,l}function d(e){for(var r=a;"[]"!==r.ctor;)t(r._0(e)),r=r._1}return r[e].init=l,r[e].onEffects=o(function(e,t,r){return c(e,t,r)}),{send(t){var r=u(st,i,t);if("Err"===r.ctor)throw new Error("Trying to send an unexpected type of value through port `"+e+"`:\n"+r._0);s(r._0)}}}return{sendToApp:n(function(e,t){return Mt.nativeBinding(r=>{e.main(t),r(Mt.succeed(p.Tuple0))})}),sendToSelf:n(function(e,t){return u(Mt.send,e.self,{ctor:"self",_0:t})}),effectManagers:r,outgoingPort(e,t){return h(e),r[e]={tag:"cmd",cmdMap:m,converter:t,isForeign:!0},c(e)},incomingPort(e,t){return h(e),r[e]={tag:"sub",subMap:v,converter:t,isForeign:!0},c(e)},htmlToProgram(){var e=_(A.Nil),t=p.Tuple2(p.Tuple0,e);return Zt({init:t,view:()=>main,update:n(()=>t),subscriptions:()=>e})},program(r){return()=>(n,o)=>{n.worker=(n=>{if(void 0!==n)throw new Error("The `"+o+"` module does not need flags.\nCall "+o+".worker() with no arguments and you should be all set!");return t(r.init,r.update,r.subscriptions,e)})}},programWithFlags(r){return n=>(o,a)=>{o.worker=(o=>{if(void 0===n)throw new Error("Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+a+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.");var i=u(Ye.run,n,o);if("Err"===i.ctor)throw new Error(a+".worker(...) was called with an unexpected argument.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0);return t(r.init(i._0),r.update,r.subscriptions,e)})}},initialize:t,leaf:c,batch:_,map:n(function(e,t){return{type:"map",tagger:e,tree:t}})}})(),Mt=(()=>{var e=1e4;function t(e){return{ctor:"_Task_succeed",value:e}}function r(e){return{ctor:"_Task_nativeBinding",callback:e,cancel:null}}function o(e){var t={ctor:"_Process",id:p.guid(),root:e,stack:null,mailbox:[]};return s(t),t}function a(e,t){e.mailbox.push(t),s(e)}function i(t,r){for(;e>t;){var n=r.root.ctor;if("_Task_succeed"!==n)if("_Task_fail"!==n)if("_Task_andThen"!==n)if("_Task_onError"!==n){if("_Task_nativeBinding"===n){r.root.cancel=r.root.callback(e=>{r.root=e,s(r)});break}if("_Task_receive"!==n)throw new Error(n);var o=r.mailbox;if(0===o.length)break;r.root=r.root.callback(o.shift()),++t}else r.stack={ctor:"_Task_onError",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else r.stack={ctor:"_Task_andThen",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else{for(;r.stack&&"_Task_andThen"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}else{for(;r.stack&&"_Task_onError"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}}return e>t?t+1:(s(r),t)}var c=!1,u=[];function s(e){u.push(e),c||(setTimeout(l,0),c=!0)}function l(){for(var t,r=0;e>r&&(t=u.shift());)t.root&&(r=i(r,t));t?setTimeout(l,0):c=!1}return{succeed:t,fail(e){return{ctor:"_Task_fail",value:e}},nativeBinding:r,andThen:n(function(e,t){return{ctor:"_Task_andThen",callback:e,task:t}}),onError:n(function(e,t){return{ctor:"_Task_onError",callback:e,task:t}}),receive(e){return{ctor:"_Task_receive",callback:e}},spawn(e){return r(r=>{r(t(o(e)))})},kill(e){return r(r=>{var n=e.root;"_Task_nativeBinding"===n.ctor&&n.cancel&&n.cancel(),e.root=null,r(t(p.Tuple0))})},sleep(e){return r(r=>{var n=setTimeout(()=>{r(t(p.Tuple0))},e);return()=>{clearTimeout(n)}})},send:n(function(e,n){return r(r=>{a(e,n),r(t(p.Tuple0))})}),rawSpawn:o,rawSend:a}})(),Ct=At.batch,Bt=Ct({ctor:"[]"}),Ot=Ot||{};Ot["!"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:Ct(t)}));var Et,Rt,St,Lt,zt,Dt,Pt,$t=At.map,qt=At.batch,Jt=qt({ctor:"[]"}),Vt=e=>u(Nt.programWithFlags,void 0,e),Zt=e=>u(Nt.program,$,e),Ut={stopPropagation:!1,preventDefault:!1},Ft=Nt.on,Wt=n((e,t)=>s(Ft,e,Ut,t)),Gt=Nt.property,Yt=Nt.map,Ht=Nt.text,Kt=Nt.node,Qt=Vt,Xt=Yt,er=Ht,tr=Kt,rr=(tr("body"),tr("section"),tr("nav"),tr("article"),tr("aside"),tr("h1"),tr("h2"),tr("h3"),tr("h4"),tr("h5"),tr("h6"),tr("header"),tr("footer"),tr("address"),tr("main"),tr("p"),tr("hr"),tr("pre"),tr("blockquote"),tr("ol"),tr("ul"),tr("li"),tr("dl"),tr("dt"),tr("dd"),tr("figure"),tr("figcaption"),tr("div")),nr=(tr("a"),tr("em"),tr("strong"),tr("small"),tr("s"),tr("cite"),tr("q"),tr("dfn"),tr("abbr"),tr("time"),tr("code"),tr("var"),tr("samp"),tr("kbd"),tr("sub"),tr("sup"),tr("i"),tr("b"),tr("u"),tr("mark"),tr("ruby"),tr("rt"),tr("rp"),tr("bdi"),tr("bdo"),tr("span")),or=(tr("br"),tr("wbr"),tr("ins"),tr("del"),tr("img"),tr("iframe"),tr("embed"),tr("object"),tr("param"),tr("video"),tr("audio"),tr("source"),tr("track"),tr("canvas"),tr("math"),tr("table"),tr("caption"),tr("colgroup"),tr("col"),tr("tbody"),tr("thead"),tr("tfoot"),tr("tr"),tr("td"),tr("th"),tr("form"),tr("fieldset"),tr("legend"),tr("label")),ar=tr("input"),ir=(tr("button"),tr("select"),tr("datalist"),tr("optgroup"),tr("option"),tr("textarea"),tr("keygen"),tr("output"),tr("progress"),tr("meter"),tr("details"),tr("summary"),tr("menuitem"),tr("menu"),n((e,t)=>{var r=e;if("[]"===r.ctor)return ce(t);var o=r._1,a=r._0,i=t;switch(i.ctor){case"ObjectValue":return u(ie,ir(o),u(le,"Key not found",s(R,n((e,t)=>{var r=e;return p.eq(t,N)?p.eq(r._0,a)?j(r._1):N:t}),N,i._0)));case"ArrayValue":return u(ie,ir(o),u(ie,e=>u(le,"Index is too big",D(u(C,e,i._0))),de(a)));default:return ae("You are trying to access property of something that is not object or array")}})),cr=e=>{var t=e;switch(t.ctor){case"ObjectValue":return Ke(u(q,e=>{return{ctor:"_Tuple2",_0:e._0,_1:cr(e._1)}},t._0));case"ArrayValue":return He(u(q,cr,t._0));case"StringValue":return tt(t._0);case"BoolValue":return Xe(t._0);case"NullValue":return Qe;default:return et(t._0)}},ur=e=>({ctor:"StringValue",_0:e}),sr=e=>({ctor:"NumericValue",_0:e}),lr={ctor:"NullValue"},_r=e=>({ctor:"BoolValue",_0:e}),dr=e=>({ctor:"ArrayValue",_0:e}),fr=e=>({ctor:"ObjectValue",_0:e}),pr=(Et=u(dt,dr,vt(ut(()=>pr))),Rt=u(dt,fr,u(at,e=>ct(U(e)),gt(ut(()=>pr)))),ft({ctor:"::",_0:Rt,_1:{ctor:"::",_0:Et,_1:{ctor:"::",_0:nt(lr),_1:{ctor:"::",_0:u(dt,ur,wt),_1:{ctor:"::",_0:u(dt,sr,yt),_1:{ctor:"::",_0:u(dt,_r,kt),_1:{ctor:"[]"}}}}}}})),hr=o((e,t,r)=>{var o=r;switch(o.ctor){case"ObjectValue":return ce(fr((r=>u(O,t=>p.eq(t._0,e),r)?u(q,r=>{var n=r,o=n._0;return p.eq(o,e)?{ctor:"_Tuple2",_0:e,_1:t}:{ctor:"_Tuple2",_0:o,_1:n._1}},r):u(k["++"],r,{ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))(o._0)));case"ArrayValue":var a=o._0,i=u(oe,S(a),u(lt,xt,e));return p.cmp(S(a),i)>0?ce(dr(u(H,n((e,r)=>p.eq(e,i)?t:r),a))):ce(dr(u(k["++"],a,{ctor:"::",_0:t,_1:{ctor:"[]"}})));default:return p.eq(e,"0")?ce(dr({ctor:"::",_0:t,_1:{ctor:"[]"}})):ce(fr({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))}}),mr=o((e,t,r)=>{var o,a=U(e);return"[]"===(o=a).ctor?ce(t):s(R,n((e,t)=>{var n=t,o=n._0,a=U(o),i=u(ie,t=>u(ie,u(hr,e,t),u(ir,a,r)),n._1),c=o;return"[]"===c.ctor?{ctor:"_Tuple2",_0:{ctor:"[]"},_1:i}:{ctor:"_Tuple2",_0:c._1,_1:i}}),{ctor:"_Tuple2",_0:o._1,_1:ce(t)},a)._1}),gr=e=>({ctor:"Unknown",_0:e}),vr={ctor:"Switch"},br={ctor:"PasswordField"},yr=ft({ctor:"::",_0:u(at,e=>p.eq(e,"password")?ct(br):p.eq(e,"switch")?ct(vr):it(""),u(ht,"widget",wt)),_1:{ctor:"::",_0:u(dt,gr,ot),_1:{ctor:"[]"}}}),xr=e=>s(R,n((e,t)=>{var r=t,n=r._2,o=r._1,a=r._0;return{ctor:"_Tuple3",_0:a+1,_1:p.cmp(o,-1)>0?o:u(L,e,n)?a:-1,_2:u(C,1,n)}}),{ctor:"_Tuple3",_0:0,_1:-1,_2:u(C,1,e)},e)._1,kr=e=>p.eq(e,(()=>b(y(e)))()),wr=ct,Nr=(at(g),_t(n((e,t)=>t(e)))),Ir=o((e,t,r)=>{return u(at,n=>{var o=u(st,e,n);if("Ok"===o.ctor){var a=u(st,(e=>ft({ctor:"::",_0:e,_1:{ctor:"::",_0:nt(r),_1:{ctor:"[]"}}}))(t),o._0);return"Ok"===a.ctor?ct(a._0):it(a._0)}return ct(r)},ot)}),jr=a((e,t,r,n)=>u(Nr,s(Ir,u(ht,e,ot),t,r),n)),Tr=o((e,t,r)=>u(Nr,u(mt,e,t),r)),Ar=n((e,t)=>{var r=t;return"ObjectSchema"===r.ctor?D(u(Z,t=>{var r=t;return p.eq(r._0,e)?j(r._1):N},u(oe,{ctor:"[]"},u(st,gt(ot),r._0.source)))):N}),Mr=u(at,e=>p.cmp(e,0)>-1&&kr(e)?ct(e):it("Expected non-negative int"),xt),Cr=e=>z(e)?it("List is empty"):ct(e),Br=u(at,Cr,u(at,e=>ct(e),vt(ot))),Or=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_=>d=>f=>p=>h=>m=>g=>v=>b=>y=>x=>k=>w=>N=>I=>j=>T=>A=>M=>C=>B=>O=>E=>R=>S=>L=>z=>({type_:e,id:t,ref:r,title:n,description:o,$default:a,examples:i,definitions:c,multipleOf:u,maximum:s,exclusiveMaximum:l,minimum:_,exclusiveMinimum:d,maxLength:f,minLength:p,pattern:h,format:m,items:g,additionalItems:v,maxItems:b,minItems:y,uniqueItems:x,contains:k,maxProperties:w,minProperties:N,required:I,properties:j,patternProperties:T,additionalProperties:A,dependencies:M,propertyNames:C,$enum:B,$const:O,allOf:E,anyOf:R,oneOf:S,not:L,source:z}),Er=e=>({ctor:"ObjectSchema",_0:e}),Rr=e=>({ctor:"BooleanSchema",_0:e}),Sr={ctor:"NoItems"},Lr=e=>({ctor:"NumberBoundary",_0:e}),zr=e=>({ctor:"BoolBoundary",_0:e}),Dr=e=>({ctor:"NullableType",_0:e}),Pr=e=>({ctor:"SingleType",_0:e}),$r={ctor:"AnyType"},qr={type_:$r,id:N,ref:N,title:N,description:N,$default:N,examples:N,definitions:N,multipleOf:N,maximum:N,exclusiveMaximum:N,minimum:N,exclusiveMinimum:N,maxLength:N,minLength:N,pattern:N,format:N,items:Sr,additionalItems:N,maxItems:N,minItems:N,uniqueItems:N,contains:N,maxProperties:N,minProperties:N,required:N,properties:N,patternProperties:N,additionalProperties:N,dependencies:{ctor:"[]"},propertyNames:N,$enum:N,$const:N,allOf:N,anyOf:N,oneOf:N,not:N,source:Ke({ctor:"[]"})},Jr=Er(qr),Vr={ctor:"NullType"},Zr={ctor:"ObjectType"},Ur={ctor:"ArrayType"},Fr={ctor:"BooleanType"},Wr={ctor:"StringType"},Gr={ctor:"NumberType"},Yr={ctor:"IntegerType"},Hr=e=>{switch(e){case"integer":return ce(Yr);case"number":return ce(Gr);case"string":return ce(Wr);case"boolean":return ce(Fr);case"array":return ce(Ur);case"object":return ce(Zr);case"null":return ce(Vr);default:return ae(u(k["++"],"Unknown type: ",e))}},Kr=e=>{var t=Hr(e);return"Ok"===t.ctor?ct(t._0):it(t._0)},Qr=e=>{var t,r,o=e;e:do{if("::"===o.ctor){if("::"===o._1.ctor){if("[]"===o._1._1.ctor){if("null"===o._1._0)return u(dt,Dr,Kr(o._0));if("null"===o._0)return u(dt,Dr,Kr(o._1._0));break e}break e}return u(dt,Pr,Kr(o._0))}break e}while(0);return t=u(ie,e=>ce((e=>({ctor:"UnionType",_0:e}))(e)),(e=>u(ue,U,s(R,e=>ie(t=>u(ue,u(h,n((e,t)=>({ctor:"::",_0:e,_1:t})),t),e)),ce({ctor:"[]"}),e)))(u(q,Hr,(e=>u(M,g,e))(o)))),"Ok"===(r=t).ctor?ct(r._0):it(r._0)},Xr=(St=ft({ctor:"::",_0:u(dt,zr,kt),_1:{ctor:"::",_0:u(dt,Lr,yt),_1:{ctor:"[]"}}}),Lt=u(at,e=>ct(Rr(!!e)),kt),zt=u(at,Qr,vt(wt)),Dt=u(at,Kr,wt),Pt=s(Tr,{ctor:"[]"},ot,l(jr,"not",bt(ut(()=>Xr)),N,l(jr,"oneOf",bt(ut(()=>rn)),N,l(jr,"anyOf",bt(ut(()=>rn)),N,l(jr,"allOf",bt(ut(()=>rn)),N,l(jr,"const",u(dt,j,ot),N,l(jr,"enum",bt(Br),N,l(jr,"propertyNames",bt(ut(()=>Xr)),N,l(jr,"dependencies",ut(()=>en),{ctor:"[]"},l(jr,"additionalProperties",bt(ut(()=>Xr)),N,l(jr,"patternProperties",bt(ut(()=>nn)),N,l(jr,"properties",bt(ut(()=>nn)),N,l(jr,"required",bt(vt(wt)),N,l(jr,"minProperties",bt(Mr),N,l(jr,"maxProperties",bt(Mr),N,l(jr,"contains",bt(ut(()=>Xr)),N,l(jr,"uniqueItems",bt(kt),N,l(jr,"minItems",bt(Mr),N,l(jr,"maxItems",bt(Mr),N,l(jr,"additionalItems",bt(ut(()=>Xr)),N,l(jr,"items",ut(()=>tn),Sr,l(jr,"format",bt(wt),N,l(jr,"pattern",bt(wt),N,l(jr,"minLength",bt(Mr),N,l(jr,"maxLength",bt(Mr),N,l(jr,"exclusiveMinimum",bt(St),N,l(jr,"minimum",bt(yt),N,l(jr,"exclusiveMaximum",bt(St),N,l(jr,"maximum",bt(yt),N,l(jr,"multipleOf",bt(yt),N,l(jr,"definitions",bt(ut(()=>nn)),N,l(jr,"examples",bt(vt(ot)),N,l(jr,"default",u(dt,j,ot),N,l(jr,"description",bt(wt),N,l(jr,"title",bt(wt),N,l(jr,"$ref",bt(wt),N,u(Nr,s(_t,n((e,t)=>p.eq(e,N)?t:e),pt(u(ht,"$id",wt)),pt(u(ht,"id",wt))),l(jr,"type",ft({ctor:"::",_0:zt,_1:{ctor:"::",_0:u(dt,Pr,Dt),_1:{ctor:"[]"}}}),$r,wr(Or))))))))))))))))))))))))))))))))))))))),ft({ctor:"::",_0:Lt,_1:{ctor:"::",_0:u(at,e=>ct(Er(e)),Pt),_1:{ctor:"[]"}}})),en=gt(ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayPropNames",_0:e}),vt(wt)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"PropSchema",_0:e}),Xr),_1:{ctor:"[]"}}})),tn=ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayOfItems",_0:e}),vt(Xr)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"ItemDefinition",_0:e}),Xr),_1:{ctor:"[]"}}}),rn=u(at,Cr,vt(ut(()=>Xr))),nn=u(dt,e=>({ctor:"Schemata",_0:e}),u(at,e=>ct(U(e)),gt(ut(()=>Xr)))),on=n((e,t)=>({schema:e,focused:N,value:t,errors:Re,beingEdited:{ctor:"[]"},editedNumber:""})),an=e=>({ctor:"EditNumber",_0:e}),cn=n((e,t)=>({ctor:"EditValue",_0:e,_1:t})),un=e=>({ctor:"FocusNumericInput",_0:e}),sn=e=>({ctor:"FocusInput",_0:e}),ln={ctor:"Object"},_n={ctor:"JsonEditor"},dn={ctor:"Checkbox"},fn={ctor:"Switch"},pn={ctor:"NumberField"},hn={ctor:"TextField"},mn=(()=>{return{regex(e){return new RegExp(e,"g")},caseInsensitive(e){return new RegExp(e.source,"gi")},escape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},contains:n(function(e,t){return null!==t.match(e)}),find:o(function(e,t,r){e="All"===e.ctor?1/0:e._0;for(var n,o=[],a=0,i=r,c=t.lastIndex,u=-1;a++0;){var _=n[s];l[--s]=void 0===_?N:j(_)}o.push({match:n[0],submatches:A.fromArray(l),index:n.index,number:a}),u=t.lastIndex}return t.lastIndex=c,A.fromArray(o)}),replace:a(function(e,t,r,n){e="All"===e.ctor?1/0:e._0;var o=0;return n.replace(t,function(t){if(o++>=e)return t;for(var n=arguments.length-3,a=new Array(n);n>0;){var i=arguments[n];a[--n]=void 0===i?N:j(i)}return r({match:t,submatches:A.fromArray(a),index:arguments[arguments.length-2],number:o})})}),split:o(function(e,t,r){if((e="All"===e.ctor?1/0:e._0)===1/0)return A.fromArray(r.split(t));for(var n,o=r,a=[],i=t.lastIndex,c=t.lastIndex;e--&&(n=t.exec(o));)a.push(o.slice(i,n.index)),i=t.lastIndex;return a.push(o.slice(i)),t.lastIndex=c,A.fromArray(a)})}})(),gn=mn.replace,vn=mn.contains,bn=mn.regex,yn={ctor:"All"},xn=e=>u(oe,Jr,u(lt,Xr,e)),kn=xn('\n {\n "$schema": "http://json-schema.org/draft-06/schema#",\n "$id": "http://json-schema.org/draft-06/schema#",\n "title": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "nonNegativeInteger": {\n "type": "integer",\n "minimum": 0\n },\n "nonNegativeIntegerDefault0": {\n "allOf": [\n { "$ref": "#/definitions/nonNegativeInteger" },\n { "default": 0 }\n ]\n },\n "simpleTypes": {\n "enum": [\n "array",\n "boolean",\n "integer",\n "null",\n "number",\n "object",\n "string"\n ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "uniqueItems": true,\n "default": []\n }\n },\n "type": ["object", "boolean"],\n "properties": {\n "$id": {\n "type": "string",\n "format": "uri-reference",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "$ref": {\n "type": "string",\n "format": "uri-reference"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "exclusiveMinimum": 0\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "number"\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "number"\n },\n "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },\n "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": { "$ref": "#" },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },\n "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "contains": { "$ref": "#" },\n "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },\n "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": { "$ref": "#" },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "propertyNames": { "$ref": "#" },\n "const": {},\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "format": { "type": "string" },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "default": {}\n }\n '),wn=xn('\n {\n "id": "http://json-schema.org/draft-04/schema#",\n "$schema": "http://json-schema.org/draft-04/schema#",\n "description": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "positiveInteger": {\n "type": "integer",\n "minimum": 0\n },\n "positiveIntegerDefault0": {\n "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]\n },\n "simpleTypes": {\n "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "minItems": 1,\n "uniqueItems": true\n }\n },\n "type": "object",\n "properties": {\n "id": {\n "type": "string",\n "format": "uri",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "minimum": 0,\n "exclusiveMinimum": true\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "boolean",\n "default": false\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "boolean",\n "default": false\n },\n "maxLength": { "$ref": "#/definitions/positiveInteger" },\n "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/positiveInteger" },\n "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "maxProperties": { "$ref": "#/definitions/positiveInteger" },\n "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "dependencies": {\n "exclusiveMaximum": [ "maximum" ],\n "exclusiveMinimum": [ "minimum" ]\n },\n "default": {}\n }\n '),Nn=e=>{return"ObjectSchema"===e.ctor?j(e._0):N},In=e=>u(fe,"#",e)?u(pe,1,e):e,jn=bn("%25"),Tn=bn("~1"),An=bn("~0"),Mn=e=>l(gn,yn,jn,()=>"%",l(gn,yn,Tn,()=>"/",l(gn,yn,An,()=>"~",e))),Cn=bn("\\/[^\\/]*$"),Bn=bn("\\/\\/|^\\/"),On=n((e,t)=>{var r=vn(Bn),o=vn(Cn),a=n((e,t)=>r(e)&&o(e)?l(gn,yn,Cn,()=>u(k["++"],"/",t),e):t),i=(()=>{var n=u(me,"#",e);if("[]"===n.ctor)return{ctor:"_Tuple2",_0:t,_1:""};if("[]"===n._1.ctor){var o=n._0;return p.eq(o,"")?{ctor:"_Tuple2",_0:t,_1:""}:r(o)?{ctor:"_Tuple2",_0:o,_1:""}:{ctor:"_Tuple2",_0:u(a,t,o),_1:""}}var i=n._1._0,c=n._0;return p.eq(c,"")?{ctor:"_Tuple2",_0:t,_1:i}:r(c)?{ctor:"_Tuple2",_0:c,_1:i}:{ctor:"_Tuple2",_0:u(a,t,c),_1:i}})(),c=i._0,s=i._1,_=o(s);return{ctor:"_Tuple3",_0:_,_1:c,_2:_?u(q,Mn,u(C,1,u(me,"/",s))):p.eq(s,"")?{ctor:"[]"}:{ctor:"::",_0:s,_1:{ctor:"[]"}}}}),En=a((e,t,r,i)=>{var c=a((e,r,a,i)=>{(e=>s(be,o((e,t,r)=>({ctor:"::",_0:e,_1:r})),{ctor:"[]"},e))(t);var _,d,f,h=u(On,i,e),m=h._0,g=h._1,v=h._2,b=(d=(_={ctor:"_Tuple3",_0:m,_1:g,_2:v})._2,f=_._1,_._0?u(n((e,t)=>u(k["++"],e,t)),f,u(he,"/",{ctor:"::",_0:"#",_1:d})):z(d)?f:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],f,"#"),u(he,"/",d)));return p.cmp(r,0)>0?m?u(I,e=>u(I,e=>{if("ObjectSchema"===e.ctor){var t=e._0.ref;return"Just"===t.ctor?l(c,g,r-1,a,t._0):j({ctor:"_Tuple2",_0:g,_1:e})}return j({ctor:"_Tuple2",_0:g,_1:e})},ne(u(st,u(mt,v,Xr),e.source))),u(I,Nn,p.eq(g,"")?j(a):u(we,g,t))):p.eq(b,"")?j({ctor:"_Tuple2",_0:"",_1:a}):u(T,e=>({ctor:"_Tuple2",_0:g,_1:e}),u(we,b,t)):j({ctor:"_Tuple2",_0:g,_1:a})}),_=u(w,e,u(T,In,u(I,e=>e.id,Nn(r))));return l(c,_,10,r,i)}),Rn=s(We,"http://json-schema.org/draft-04/schema",wn,s(We,"http://json-schema.org/draft-06/schema#",kn,s(We,"http://json-schema.org/draft-06/schema",kn,Re))),Sn=((()=>({and:n(function(e,t){return e&t}),or:n(function(e,t){return e|t}),xor:n(function(e,t){return e^t}),complement(e){return~e},shiftLeftBy:n((e,t)=>t<t>>e),shiftRightZfBy:n((e,t)=>t>>>e)}))(),o((e,t,r)=>{var o=r._0,a=r._1;return"Nothing"===a.ctor?p.cmp(t,55296)>-1&&0>p.cmp(t,57344)?{ctor:"_Tuple2",_0:o,_1:j(t)}:{ctor:"_Tuple2",_0:u(e,t,o),_1:N}:{ctor:"_Tuple2",_0:s(h,e,o,u(n((e,t)=>e+t),65536,1023&t|(1023&a._0)<<10)),_1:N}})),Ln=o((e,t,r)=>Tt(s(ge,t=>u(Sn,e,te(t)),{ctor:"_Tuple2",_0:t,_1:N},r))),zn=e=>s(Ln,m(n((e,t)=>e+t)(1)),0,e),Dn=R(n((e,t)=>{var r=e;if("Ok"===r.ctor)return t;return"Ok"===t.ctor?e:ae(u(k["++"],t._0,r._0))})),Pn=rt(0),$n=e=>{var t=u(st,gt(ot),e);return Pn("Ok"===t.ctor?Ke(u(M,e=>{return e._0},t._0)):e)},qn=n((e,t)=>({ns:e,path:t})),Jn=n((e,t)=>({jsonPointer:e,details:t})),Vn={ctor:"AlwaysFail"},Zn=e=>({ctor:"UnresolvableReference",_0:e}),Un={ctor:"Not"},Fn={ctor:"OneOfNoneSucceed"},Wn=e=>({ctor:"InvalidType",_0:e}),Gn={ctor:"Const"},Yn={ctor:"Enum"},Hn={ctor:"AdditionalPropertyDisallowed"},Kn={ctor:"RequiredProperty"},Qn=n((e,t)=>({ctor:"MinProperties",_0:e,_1:t})),Xn=n((e,t)=>({ctor:"MaxProperties",_0:e,_1:t})),eo={ctor:"Contains"},to=n((e,t)=>({ctor:"MinItems",_0:e,_1:t})),ro=n((e,t)=>({ctor:"MaxItems",_0:e,_1:t})),no=n((e,t)=>({ctor:"Pattern",_0:e,_1:t})),oo=n((e,t)=>({ctor:"MinLength",_0:e,_1:t})),ao=n((e,t)=>({ctor:"MaxLength",_0:e,_1:t})),io=n((e,t)=>({ctor:"ExclusiveMinimum",_0:e,_1:t})),co=n((e,t)=>({ctor:"ExclusiveMaximum",_0:e,_1:t})),uo=n((e,t)=>({ctor:"Minimum",_0:e,_1:t})),so=n((e,t)=>({ctor:"Maximum",_0:e,_1:t})),lo=n((e,t)=>({ctor:"MultipleOf",_0:e,_1:t})),_o=i((e,t,r,c,d)=>{var f=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(ue,()=>n,u(r,a._0,i._0)):ce(n)}return ce(n)}),m=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(r,a._0,i._0):ce(n)}return ce(n)}),g=n((e,t)=>u(J,t=>{var r=t;return u(vn,bn(e),r._0)},t)),b=n((e,t)=>{return D(u(q,e=>{return e._1},u(J,t=>{return p.eq(t._0,e)},t._0)))}),y=a((e,t,r,n)=>{var o=e=>u(se,e=>({ctor:"::",_0:u(Jn,t,Wn(e)),_1:{ctor:"[]"}}),u(ue,()=>n,u(st,e,n)));switch(r.ctor){case"IntegerType":return o(xt);case"NumberType":return o(yt);case"StringType":return o(wt);case"BooleanType":return o(kt);case"NullType":return o(nt(N));case"ArrayType":return o(vt(ot));default:return o(gt(ot))}}),x=a((e,t,r,n)=>{var o=n.type_;switch(o.ctor){case"AnyType":return ce(r);case"SingleType":return l(y,e,t,o._0,r);case"NullableType":return"Err"===l(y,e,t,Vr,r).ctor?l(y,e,t,o._0,r):ce(r);default:return u(O,n=>p.eq(l(y,e,t,n,r),ce(r)),o._0)?ce(r):ae({ctor:"::",_0:u(Jn,t,Wn("None of desired types match")),_1:{ctor:"[]"}})}}),w=n((e,t)=>s(m,e=>e.$const,ot,n((e,r)=>{var n=$n(r),o=$n(e);return p.eq(o,n)?ce(r):ae({ctor:"::",_0:u(Jn,t,Gn),_1:{ctor:"[]"}})}))),T=n((e,t)=>s(m,e=>e.$enum,ot,n((e,r)=>u(O,e=>p.eq(Pn(e),Pn(r)),e)?ce(r):ae({ctor:"::",_0:u(Jn,t,Yn),_1:{ctor:"[]"}})))),A=a((e,t,r,o)=>_(m,e=>e.required,gt(ot),n((e,o)=>{var a=u(q,e=>{return e._0},o),i=u(J,e=>!s(h,L,a,e),e);return z(i)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"Required",_0:e}))(i)),u(q,e=>u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e,_1:{ctor:"[]"}})}),Kn),i)))}),r,o)),M=o((e,t,r)=>l(m,e=>e.minProperties,gt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Qn,e,o)),_1:{ctor:"[]"}})}),r)),B=o((e,t,r)=>l(m,e=>e.maxProperties,gt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Xn,e,o)),_1:{ctor:"[]"}})}),r)),E=o((e,t,r)=>l(m,e=>e.uniqueItems,vt(ot),n((e,n)=>{if(e){var o=(e=>(t=>p.eq(t,-1)?N:D(u(C,t,e)))(xr(u(q,rt(0),e))))(n);return"Just"===o.ctor?ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"UniqueItems",_0:e}))(o._0)),_1:{ctor:"[]"}}):ce(r)}return ce(r)}),r)),P=o((e,t,r)=>l(m,e=>e.minItems,vt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(to,e,o)),_1:{ctor:"[]"}})}),r)),$=o((e,t,r)=>l(m,e=>e.maxItems,vt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ro,e,o)),_1:{ctor:"[]"}})}),r)),V=o((e,t,r)=>l(m,e=>e.pattern,wt,n((e,n)=>u(vn,bn(e),n)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(no,e,n)),_1:{ctor:"[]"}})),r)),F=o((e,t,r)=>l(m,e=>e.minLength,wt,n((e,n)=>{var o=zn(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(oo,e,o)),_1:{ctor:"[]"}})}),r)),G=o((e,t,r)=>l(m,e=>e.maxLength,wt,n((e,n)=>{var o=zn(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ao,e,o)),_1:{ctor:"[]"}})}),r)),Y=a((e,t,r,o)=>_(m,e=>e.exclusiveMinimum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return p.cmp(n,o)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),H=a((e,t,r,o)=>_(m,e=>e.exclusiveMaximum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return 0>p.cmp(n,o)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),K=a((e,t,r,o)=>_(m,e=>e.minimum,yt,n((e,n)=>{var a=o.exclusiveMinimum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?p.cmp(n,e)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,e,n)),_1:{ctor:"[]"}}):p.cmp(n,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(uo,e,n)),_1:{ctor:"[]"}})}),r,o)),Q=a((e,t,r,o)=>_(m,e=>e.maximum,yt,n((e,n)=>{var a=o.exclusiveMaximum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?0>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,e,n)),_1:{ctor:"[]"}}):1>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(so,e,n)),_1:{ctor:"[]"}})}),r,o)),X=o((e,t,r)=>l(m,e=>e.multipleOf,yt,n((e,n)=>kr(n/e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(lo,e,n)),_1:{ctor:"[]"}})),r)),ee=i((e,t,r,o,a)=>{return i=s(R,n((r,n)=>{var a=n._1,i=n._0,c=l(r,e,t,a,o);return"Ok"===c.ctor?{ctor:"_Tuple2",_0:i,_1:c._0}:{ctor:"_Tuple2",_0:u(k["++"],i,c._0),_1:a}}),{ctor:"_Tuple2",_0:{ctor:"[]"},_1:r},a),"[]"===(c=i._0).ctor?ce(i._1):ae(c);var i,c}),te=a((e,t,r,n)=>_(ee,e,t,n,r,{ctor:"::",_0:X,_1:{ctor:"::",_0:Q,_1:{ctor:"::",_0:K,_1:{ctor:"::",_0:H,_1:{ctor:"::",_0:Y,_1:{ctor:"::",_0:G,_1:{ctor:"::",_0:F,_1:{ctor:"::",_0:V,_1:{ctor:"::",_0:fe,_1:{ctor:"::",_0:$,_1:{ctor:"::",_0:P,_1:{ctor:"::",_0:E,_1:{ctor:"::",_0:_e,_1:{ctor:"::",_0:ge,_1:{ctor:"::",_0:B,_1:{ctor:"::",_0:M,_1:{ctor:"::",_0:A,_1:{ctor:"::",_0:me,_1:{ctor:"::",_0:re,_1:{ctor:"::",_0:de,_1:{ctor:"::",_0:be,_1:{ctor:"::",_0:T,_1:{ctor:"::",_0:w,_1:{ctor:"::",_0:x,_1:{ctor:"::",_0:ie,_1:{ctor:"::",_0:le,_1:{ctor:"::",_0:he,_1:{ctor:"::",_0:pe,_1:{ctor:"[]"}}}}}}}}}}}}}}}}}}}}}}}}}}}}})),re=a((e,t,r,a)=>{var i=o((e,t,r)=>{if("Just"===e.ctor){var n=u(q,e=>{return e._0},e._0._0);return u(J,e=>{var r=e;return!u(O,e=>u(t,e,r._0),n)},r)}return r});return _(f,e=>e.additionalProperties,gt(ot),n((o,c)=>(a=>{return"BooleanSchema"===o.ctor?o._0?ce(r):z(a)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"AdditionalPropertiesDisallowed",_0:e}))(u(q,e=>{return e._0},a))),u(q,e=>{return u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e._0,_1:{ctor:"[]"}})}),Hn)},a))):u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,o)},a))})(s(i,a.patternProperties,n((e,t)=>u(vn,bn(e),t)),s(i,a.properties,n((e,t)=>p.eq(e,t)),c)))),r,a)}),oe=a((e,r,n,o)=>{var a=o;if("BooleanSchema"===a.ctor)return a._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Vn),_1:{ctor:"[]"}});var i=a._0,s=i.ref;if("Just"===s.ctor){var _=s._0,d=l(En,r.ns,t,c,_);return"Just"===d.ctor?"ObjectSchema"===d._0._1.ctor?l(te,e,p.update(r,{ns:d._0._0}),d._0._1._0,n):d._0._1._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Vn),_1:{ctor:"[]"}}):ae({ctor:"::",_0:u(Jn,r,Zn(_)),_1:{ctor:"[]"}})}return l(te,e,r,i,n)}),ie=n((e,t)=>s(m,e=>e.allOf,ot,n((r,o)=>s(R,n((r,n)=>p.eq(n,ce(o))?l(oe,e,t,o,r):n),ce(o),r)))),le=n((e,t)=>s(m,e=>e.anyOf,ot,n((r,n)=>{var o=u(q,s(oe,e,t,n),r);return u(O,e=>{return"Ok"===e.ctor},o)?ce(n):u(Dn,ce(n),o)}))),_e=o((e,t,r)=>l(f,e=>e.contains,vt(ot),n((n,o)=>u(O,r=>{return"Ok"===l(oe,e,t,r,n).ctor},o)?ce(r):ae({ctor:"::",_0:u(Jn,t,eo),_1:{ctor:"[]"}})),r)),de=a((e,t,r,o)=>{if(z(o.dependencies))return ce(r);var a=u(st,gt(ot),r);return"Ok"===a.ctor?(a=>s(R,n((n,o)=>{var i=n;if("Err"===o.ctor)return o;if(u(Ne,i._0,Ge(a))){var c=i._1;return l(oe,e,t,r,"PropSchema"===c.ctor?c._0:Er(p.update(qr,{required:j(c._0)})))}return o}),ce(r),o.dependencies))(a._0):ce(r)}),fe=a((e,t,r,a)=>{var i=o((r,n,o)=>u(ue,()=>o+1,l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:v(o),_1:{ctor:"[]"}})}),r,n))),c=a.items;switch(c.ctor){case"ItemDefinition":var _=u(st,vt(ot),r);return"Ok"===_.ctor?u(ue,()=>r,s(R,n((e,t)=>{return"Ok"===t.ctor?s(i,e,c._0,t._0):t}),ce(0),_._0)):ce(r);case"ArrayOfItems":var d=u(st,vt(ot),r);return"Ok"===d.ctor?u(ue,()=>r,s(R,n((e,t)=>{if("Ok"===t.ctor){var r=t._0,n=D(u(C,r,c._0));if("Just"===n.ctor)return s(i,e,n._0,r);var o=a.additionalItems;return"Just"===o.ctor?s(i,e,o._0,r):ce(r+1)}return t}),ce(0),d._0)):ce(r);default:return ce(r)}}),pe=n((e,t)=>s(f,e=>e.not,ot,n((r,n)=>p.eq(l(oe,e,t,n,r),ce(n))?ae({ctor:"::",_0:u(Jn,t,Un),_1:{ctor:"[]"}}):ce(n)))),he=n((e,t)=>s(m,e=>e.oneOf,ot,n((r,n)=>{var o=S(u(J,r=>p.eq(l(oe,e,t,n,r),ce(n)),r));switch(o){case 1:return ce(n);case 0:return ae({ctor:"::",_0:u(Jn,t,Fn),_1:{ctor:"[]"}});default:return ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"OneOfManySucceed",_0:e}))(o)),_1:{ctor:"[]"}})}}))),me=o((e,t,r)=>l(m,e=>e.patternProperties,gt(ot),n((o,a)=>{var i=o;return s(R,n((n,o)=>{var i=n;return"Ok"===o.ctor?u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,i._1)},u(g,i._0,a))):o}),ce(r),i._0)}),r)),ge=a((e,t,r,o)=>_(m,e=>e.properties,gt(ot),n((r,n)=>{var a=U(n),i=l(ve,e,t,o.properties,a),c=u(q,e=>{return e._0},i),s=u(k["++"],a,i);return u(Dn,ce(Ke(s)),u(q,n=>{var o=n._1,a=n._0;if(u(L,a,c))return ce(o);var i=u(b,a,r);return"Just"===i.ctor?l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:a,_1:{ctor:"[]"}})}),o,i._0):ce(o)},s))}),r,o)),ve=a((e,t,r,a)=>{var i=n((e,t)=>z(u(J,t=>{return p.eq(t._0,e)},t))),c=o((r,n,o)=>{if(u(i,n,r)){return"ObjectSchema"===o.ctor?u(I,r=>ne(l(oe,p.update(e,{applyDefaults:!1}),p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),r,o)),o._0.$default):N}return N});if(e.applyDefaults){var _=r;return"Just"===_.ctor?U(s(R,n((e,t)=>{var r=e._0,n=s(c,a,r,e._1);return"Just"===n.ctor?{ctor:"::",_0:{ctor:"_Tuple2",_0:r,_1:n._0},_1:t}:t}),{ctor:"[]"},_._0._0)):{ctor:"[]"}}return{ctor:"[]"}}),be=o((e,t,r)=>{var o=n((r,n)=>{var o=l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),tt(n),r);return"Ok"===o.ctor?N:j(o._0)});return l(f,e=>e.propertyNames,gt(ot),n((e,n)=>(e=>z(e)?ce(r):ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"InvalidPropertyName",_0:e}))(W(e))),_1:{ctor:"[]"}}))(u(Z,o(e),u(q,e=>{return e._0},n)))),r)});return l(oe,e,u(qn,"",{ctor:"[]"}),r,d)}),fo=n((e,t)=>{var r=a((e,t,r,o)=>{var a=u(J,e=>{var t=e._0;return p.eq(t,"id")||p.eq(t,"$id")},o);return"::"===a.ctor&&"_Tuple2"===a._0.ctor?u(oe,{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}},u(ue,a=>{var i,c,l,_=u(On,a,e),d=_._0,f=_._1,p=_._2,h=u(st,Xr,t);return"Ok"===h.ctor?{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:s(We,(i={ctor:"_Tuple3",_0:d,_1:f,_2:p},c=i._2,l=i._1,i._0?u(n((e,t)=>u(k["++"],e,t)),l,u(he,"/",{ctor:"::",_0:"#",_1:c})):z(c)?l:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],l,"#"),u(he,"/",c))),h._0,r),_1:f}}:{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}},u(st,wt,a._0._1))):{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}}),o=n((e,t)=>{var n;return n=l(r,t._1,e,t._0,u(oe,{ctor:"[]"},u(st,gt(ot),e))),s(R,e=>o(e._1),n._1,n._0)});return"ObjectSchema"===e.ctor?u(o,e._0.source,{ctor:"_Tuple2",_0:t,_1:(e=>{if("Just"===e.ctor){var t=u(On,e._0,"");return t._1}return""})(e._0.id)}):{ctor:"_Tuple2",_0:t,_1:""}}),po=(lt(Xr),st(Xr),o((e,t,r)=>{var n=u(fo,r,Rn);return _(_o,e,n._0,t,r,r)})),ho=n((e,t)=>{return 1===e?u(k["++"],"1 ",t):u(k["++"],v(e),u(k["++"]," ",u(k["++"],t,"s")))}),mo=e=>{var t=e;switch(t.ctor){case"MultipleOf":return u(k["++"],v(t._1),u(k["++"]," is not a multiple of ",v(t._0)));case"Maximum":return u(k["++"],v(t._1),u(k["++"]," is more than maximum ",v(t._0)));case"Minimum":return u(k["++"],v(t._1),u(k["++"]," is less than minimum ",v(t._0)));case"ExclusiveMaximum":return u(k["++"],v(t._1),u(k["++"]," is not less than exclusive maximum ",v(t._0)));case"ExclusiveMinimum":return u(k["++"],v(t._1),u(k["++"]," is not more than exclusive minimum ",v(t._0)));case"MaxLength":return u(k["++"],"Expected string not longer than ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," but actual length is ",u(ho,t._1,"character"))));case"MinLength":return u(k["++"],"Expected string to be at least ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," long but its length is ",u(ho,t._1,"character"))));case"Pattern":return u(k["++"],"String ",u(k["++"],v(t._1),u(k["++"]," does not match pattern ",t._0)));case"MaxItems":return u(k["++"],"List expected to have at most ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"MinItems":return u(k["++"],"List expected to have at least ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"UniqueItems":return u(k["++"],"Expected array of unique items, but a duplicate found: ",u(rt,0,t._0));case"Contains":return"None of array items is valid against the given schema";case"MaxProperties":return"MaxProperties";case"MinProperties":return"MinProperties";case"RequiredProperty":return"This property is required";case"Required":return"";case"AdditionalPropertyDisallowed":return"This is an additional property and it is not allowed";case"AdditionalPropertiesDisallowed":return"";case"InvalidPropertyName":return u(k["++"],"Some property names are not passing validation: ",u(he,", ",u(q,v,t._0)));case"Enum":return"Value does not match enumeration defined in the schema";case"Const":return"Value does not match const defined in the schema";case"InvalidType":return t._0;case"OneOfNoneSucceed":return"Value does not pass the validation with none of the schemata listed in '.oneOf'";case"OneOfManySucceed":return u(k["++"],"Value should pass validation with exactly one schema, but ",u(k["++"],v(t._0)," return a positive result"));case"Not":return"This value expected to fail validation";case"AlwaysFail":return"This is not expected to succeed";default:return u(k["++"],"Reference ",u(k["++"],v(t._0)," can not be resolved"))}},go=Gt,vo=n((e,t)=>u(go,e,tt(t))),bo=e=>u(vo,"className",e),yo=e=>u(vo,"type",e),xo=e=>u(vo,"value",e),ko=n((e,t)=>u(go,e,Xe(t))),wo=e=>u(ko,"checked",e),No=e=>bo(u(he," ",u(q,Tt,u(J,jt,e)))),Io=(u(ht,"keyCode",xt),u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"checked",_1:{ctor:"[]"}}},kt)),jo=u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"value",_1:{ctor:"[]"}}},wt),To=Wt,Ao=e=>u(To,"focus",ct(e)),Mo=e=>u(To,"blur",ct(e)),Co=(p.update(Ut,{preventDefault:!0}),e=>u(To,"change",u(dt,e,Io))),Bo=e=>u(To,"input",u(dt,e,jo)),Oo=Oo||{};Oo["=>"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:t}));var Eo=e=>u(w,gr(Qe),u(I,e=>ne(u(st,yr,e)),u(Ar,"ui",e))),Ro=o((e,t,r)=>{return"ObjectSchema"===e.ctor?u(w,r,t(e._0)):r}),So=n((e,t)=>(t=>e?u(k["++"],t," *"):t)(s(Ro,t,e=>e.title,""))),Lo=e=>{var t=e;switch(t.ctor){case"StringValue":return t._0;case"NumericValue":return v(t._0);default:return""}},zo=o((e,t,r)=>{var o=u(we,r,e.errors),a=!p.eq(o,N)&&u(L,r,e.beingEdited);return{ctor:"_Tuple2",_0:a,_1:er(a?u(n((e,t)=>u(k["++"],e,t)),"Error: ",u(he,", ",u(w,{ctor:"[]"},o))):(e=>s(Ro,e,e=>e.description,""))(t))}}),Do=a((e,t,r,o)=>{var a=s(zo,e,t,o),i=a._0,c=a._1,l=u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused)),_=l?e.editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:l},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:i},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(un(j(o))),_1:{ctor:"::",_0:Mo(un(N)),_1:{ctor:"::",_0:Bo(an),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo("number"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:c,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),Po=a((e,t,r,o)=>{var a="PasswordField"===Eo(t).ctor,i=s(zo,e,t,o),c=i._0,l=i._1,_=u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Bo(e=>u(cn,o,ur(e))),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo(a?"password":"text"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),$o=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-checkbox__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-checkbox__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__box-outline"),_1:{ctor:"[]"}},{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__tick-outline"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}})}),qo=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-switch__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-switch__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__track"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__thumb"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}}})}),Jo=o((e,t,r)=>p.eq(e,N)?u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(w,{ctor:"[]"},t),r):r),Vo=e=>{return"Switch"===Eo(e).ctor?fn:dn},Zo=n((e,t)=>{if("ObjectSchema"===t.ctor){var r=t._0.type_;e:do{if("SingleType"!==r.ctor)break e;switch(r._0.ctor){case"NumberType":return pn;case"StringType":return hn;case"BooleanType":return Vo(t);case"ObjectType":return ln;default:break e}}while(0);return _n}return _n}),Uo=a((e,t,r,n)=>{var o=u(Zo,e,t);switch(o.ctor){case"TextField":return l(Po,e,t,r,n);case"NumberField":return l(Do,e,t,r,n);case"Switch":return l(qo,e,t,r,n);case"Checkbox":return l($o,e,t,r,n);case"Object":return l(Fo,e,t,r,n);default:return er(u(k["++"],v(o),u(k["++"],"Not implemented: ",v(t))))}}),Fo=a((e,t,r,n)=>{if("ObjectSchema"===t.ctor){var a=t._0;return u(rr,{ctor:"[]"},u(w,{ctor:"[]"},u(T,u(o((t,r,o)=>{return u(q,t=>{var o=t._0;return l(Uo,e,t._1,u(L,o,u(w,{ctor:"[]"},r)),u(k["++"],n,{ctor:"::",_0:o,_1:{ctor:"[]"}}))},o._0)}),Re,a.required),a.properties)))}return er("")}),Wo=on,Go=o((e,t,r)=>{var o,a=u(w,lr,ne(s(mr,t,r,u(w,lr,e.value)))),i=cr(a),c=s(po,{applyDefaults:!0},i,e.schema);return u(Oo["=>"],u(Ot["!"],p.update(e,"Ok"===(o=c).ctor?{value:ne(u(st,pr,o._0)),errors:Re}:{value:j(a),errors:(e=>s(R,n((e,t)=>s(Fe,e.jsonPointer.path,t=>j("Just"===t.ctor?u(k["++"],t._0,{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}):{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}),t)),Re,e))(o._0)}),{ctor:"[]"}),(e=>({ctor:"UpdateValue",_0:e}))(j(a)))}),Yo={ctor:"None"},Ho=n((e,t)=>{var r,n=e;switch(n.ctor){case"FocusInput":var o=n._0;return u(Oo["=>"],u(Ot["!"],p.update(t,{focused:o,beingEdited:s(Jo,o,t.focused,t.beingEdited)}),{ctor:"[]"}),Yo);case"FocusNumericInput":var a=n._0,i=a;return"Nothing"===i.ctor?s(Go,p.update(t,{beingEdited:s(Jo,a,t.focused,t.beingEdited)}),u(w,{ctor:"[]"},t.focused),"Ok"===(r=_e(t.editedNumber)).ctor?sr(r._0):ur(t.editedNumber)):u(Oo["=>"],u(Ot["!"],p.update(t,{focused:a,editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(i._0),t.value))))}),{ctor:"[]"}),Yo);case"EditValue":return s(Go,t,n._0,n._1);default:var c=n._0,l=_e(c);return"Ok"===l.ctor?s(Go,p.update(t,{editedNumber:c}),u(w,{ctor:"[]"},t.focused),sr(l._0)):u(Oo["=>"],u(Ot["!"],p.update(t,{editedNumber:c}),{ctor:"[]"}),Yo)}}),Ko=At.incomingPort("valueChange",ot),Qo=At.incomingPort("schemaChange",ot),Xo=e=>({ctor:"ChangeSchema",_0:e}),ea=e=>({ctor:"ChangeValue",_0:e}),ta=e=>({ctor:"JsonFormMsg",_0:e}),ra=Qt({init(e){var t=ne(u(st,u(mt,{ctor:"::",_0:"value",_1:{ctor:"[]"}},pr),e)),r=u(oe,Jr,u(se,It,u(st,u(mt,{ctor:"::",_0:"schema",_1:{ctor:"[]"}},Xr),e)));return u(Ot["!"],{form:u(Wo,r,t),editedValue:t,schema:r},{ctor:"[]"})},update:n((e,t)=>{var r=e;switch(r.ctor){case"ChangeSchema":var n=u(oe,Jr,u(st,Xr,r._0));return u(Ot["!"],p.update(t,{schema:n,form:u(Wo,n,t.editedValue)}),{ctor:"[]"});case"ChangeValue":var o=ne(u(st,pr,r._0));return u(Ot["!"],p.update(t,{editedValue:o,form:u(Wo,t.schema,o)}),{ctor:"[]"});default:var a=u(Ho,r._0,t.form),i=a._0._1,c=a._1;return u(Ot["!"],p.update(t,{form:a._0._0,editedValue:"UpdateValue"===c.ctor?c._0:t.editedValue}),{ctor:"::",_0:u($t,ta,i),_1:{ctor:"[]"}})}}),view:e=>u(rr,{ctor:"[]"},{ctor:"::",_0:u(Xt,ta,(e=>l(Uo,e,e.schema,!1,{ctor:"[]"}))(e.form)),_1:{ctor:"::",_0:er(v(e.schema)),_1:{ctor:"::",_0:er(v(e.editedValue)),_1:{ctor:"[]"}}}}),subscriptions:()=>qt({ctor:"::",_0:Ko(ea),_1:{ctor:"::",_0:Qo(Xo),_1:{ctor:"[]"}}})})(ot),na={};na.JsonFormCustomElement=na.JsonFormCustomElement||{},void 0!==ra&&ra(na.JsonFormCustomElement,"JsonFormCustomElement",void 0);var oa=()=>{};oa(na),void 0===(r=(()=>na).apply(t,[]))||(e.exports=r)}).call(this)},"./src/custom-element.js"(e,t,r){"use strict";const n=r("./src/JsonFormCustomElement.elm"),o=r("./stylesheets/standalone.css").toString();customElements.define("json-form",class extends HTMLElement{static get observedAttributes(){return["value","schema"]}constructor(){super();const e=document.createElement("div"),t=document.createElement("style");t.textContent=o;const r=this.attachShadow({mode:"open"});r.appendChild(t),r.appendChild(e);const a=this.getAttribute("value"),i=JSON.parse(this.getAttribute("schema")),c=JSON.parse(a);console.log({schema:i,value:c});const u=n.JsonFormCustomElement.embed(e,{schema:i,value:c});this.app=u}attributeChangedCallback(e,t,r){switch(e){case"value":this.app.ports.valueChange.send(JSON.parse(r));break;case"schema":this.app.ports.schemaChange.send(JSON.parse(r))}}})},"./stylesheets/standalone.css"(e,t,r){var n=r("./node_modules/css-loader/index.js!./stylesheets/standalone.css");e.exports="string"==typeof n?n:n.toString()}}); \ No newline at end of file +(e=>{var t={};function r(n){if(t[n])return t[n].exports;var o=t[n]={i:n,l:!1,exports:{}};return e[n].call(o.exports,o,o.exports,r),o.l=!0,o.exports}r.m=e,r.c=t,r.d=((e,t,n)=>{r.o(e,t)||Object.defineProperty(e,t,{configurable:!1,enumerable:!0,get:n})}),r.n=(e=>{var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t}),r.o=((e,t)=>Object.prototype.hasOwnProperty.call(e,t)),r.p="",r(r.s="./src/custom-element.js")})({"./node_modules/css-loader/index.js!./stylesheets/checkbox.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-checkbox {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-checkbox__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-checkbox__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 24px;\n cursor: pointer;\n}\n\n.jf-checkbox__box-outline {\n width: 16px;\n height: 16px;\n position: absolute;\n top: calc(50% - 8px);\n left: 0;\n border-radius: 2px;\n border: 2px solid #0000008a;\n cursor: pointer;\n z-index: 2;\n}\n\n.jf-checkbox__tick-outline {\n position: absolute;\n top: 0;\n left: 0;\n height: 100%;\n width: 100%;\n mask: url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8ZGVmcz4KICAgIDxjbGlwUGF0aCBpZD0iY2xpcCI+CiAgICAgIDxwYXRoCiAgICAgICAgIGQ9Ik0gMCwwIDAsMSAxLDEgMSwwIDAsMCB6IE0gMC44NTM0Mzc1LDAuMTY3MTg3NSAwLjk1OTY4NzUsMC4yNzMxMjUgMC40MjkzNzUsMC44MDM0Mzc1IDAuMzIzMTI1LDAuOTA5Njg3NSAwLjIxNzE4NzUsMC44MDM0Mzc1IDAuMDQwMzEyNSwwLjYyNjg3NSAwLjE0NjU2MjUsMC41MjA2MjUgMC4zMjMxMjUsMC42OTc1IDAuODUzNDM3NSwwLjE2NzE4NzUgeiIKICAgICAgICAgc3R5bGU9ImZpbGw6I2ZmZmZmZjtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KICAgIDwvY2xpcFBhdGg+CiAgICA8bWFzayBpZD0ibWFzayIgbWFza1VuaXRzPSJvYmplY3RCb3VuZGluZ0JveCIgbWFza0NvbnRlbnRVbml0cz0ib2JqZWN0Qm91bmRpbmdCb3giPgogICAgICA8cGF0aAogICAgICAgICBkPSJNIDAsMCAwLDEgMSwxIDEsMCAwLDAgeiBNIDAuODUzNDM3NSwwLjE2NzE4NzUgMC45NTk2ODc1LDAuMjczMTI1IDAuNDI5Mzc1LDAuODAzNDM3NSAwLjMyMzEyNSwwLjkwOTY4NzUgMC4yMTcxODc1LDAuODAzNDM3NSAwLjA0MDMxMjUsMC42MjY4NzUgMC4xNDY1NjI1LDAuNTIwNjI1IDAuMzIzMTI1LDAuNjk3NSAwLjg1MzQzNzUsMC4xNjcxODc1IHoiCiAgICAgICAgIHN0eWxlPSJmaWxsOiNmZmZmZmY7ZmlsbC1vcGFjaXR5OjE7c3Ryb2tlOm5vbmUiIC8+CiAgICA8L21hc2s+CiAgPC9kZWZzPgogIDxyZWN0CiAgICAgd2lkdGg9IjEiCiAgICAgaGVpZ2h0PSIxIgogICAgIHg9IjAiCiAgICAgeT0iMCIKICAgICBjbGlwLXBhdGg9InVybCgjY2xpcCkiCiAgICAgc3R5bGU9ImZpbGw6IzAwMDAwMDtmaWxsLW9wYWNpdHk6MTtzdHJva2U6bm9uZSIgLz4KPC9zdmc+Cg==);\n background: 0 0;\n transition-duration: .28s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n transition-property: background;\n}\n\n\n.jf-checkbox--on .jf-checkbox__tick-outline {\n background: #009688 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K);\n}\n\n\n.jf-checkbox--on .jf-checkbox__box-outline {\n border: 2px solid #009688;\n}\n\n\n.jf-checkbox__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-checkbox--invalid .jf-checkbox__helper-text {\n color: var(--color-red--500);\n}\n\n",""])},"./node_modules/css-loader/index.js!./stylesheets/globals.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n:host {\n --font-family: helvetica, sans-serif;\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/json-form.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/textfield.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/switch.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/checkbox.css"),""),t.push([e.i,":root {\n --color-active: #2a79ff;\n --color-inactive: #8a8a8a;\n --color-swatch--500: #009688;\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/standalone.css"(e,t,r){(t=e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).i(r("./node_modules/css-loader/index.js!./stylesheets/globals.css"),""),t.i(r("./node_modules/css-loader/index.js!./stylesheets/json-form.css"),""),t.push([e.i,"\n",""])},"./node_modules/css-loader/index.js!./stylesheets/switch.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-switch {\n width: 300px;\n max-width: 100%;\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n margin: 0;\n margin-left: 16px;\n margin-bottom: 16px;\n height: 75px;\n padding: 20px 0;\n font-size: 16px;\n vertical-align: top;\n}\n\n.jf-switch__input {\n margin: 0;\n padding: 0;\n width: 0;\n height: 0;\n position: absolute;\n border: 0;\n appearance: none;\n opacity: 0;\n}\n\n.jf-switch__label {\n top: calc(50% - 8px);\n position: absolute;\n left: 50px;\n cursor: pointer;\n}\n\n.jf-switch__track {\n background-color: lightgrey;\n width: 40px;\n height: 14px;\n position: absolute;\n top: calc(50% - 7px);\n left: 0;\n border-radius: 14px;\n cursor: pointer;\n}\n\n.jf-switch__thumb {\n background-color: #fafafa;\n width: 20px;\n height: 20px;\n position: absolute;\n top: calc(50% - 10px);\n left: 0;\n cursor: pointer;\n border-radius: 50%;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n box-shadow: 0 3px 4px 0 rgba(0,0,0,.14), 0 3px 3px -2px rgba(0,0,0,.2), 0 1px 8px 0 rgba(0,0,0,.12);\n}\n\n.jf-switch--on .jf-switch__thumb {\n left: 20px;\n}\n\n.jf-switch--on .jf-switch__thumb {\n background-color: var(--color-swatch--500);\n}\n\n.jf-switch__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n.jf-switch--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n",""])},"./node_modules/css-loader/index.js!./stylesheets/textfield.css"(e,t,r){(e.exports=r("./node_modules/css-loader/lib/css-base.js")(!1)).push([e.i,"\n.jf-textfield {\n position: relative;\n font-size: 16px;\n display: inline-block;\n box-sizing: border-box;\n width: 300px;\n max-width: 100%;\n margin: 0;\n padding: 20px 0;\n margin-left: 16px;\n margin-bottom: 16px;\n}\n\n.jf-textfield__input {\n border: none;\n border-radius: 0;\n outline: none;\n display: block;\n font-size: 16px;\n font-family: var(--font-family);\n margin: 0;\n padding: 8px 0;\n width: 100%;\n background: 0 0;\n text-align: left;\n color: inherit;\n}\n\n.jf-textfield--focused .jf-textfield__input {\n color: var(--color-active);\n}\n\n.jf-textfield--empty .jf-textfield__label {\n top: 29px;\n font-size: 16px;\n}\n\n.jf-textfield--focused .jf-textfield__label {\n color: var(--color-active);\n visibility: visible;\n font-size: 12px;\n top: 10px;\n}\n\n.jf-textfield__label {\n color: var(--color-inactive);\n font-size: 12px;\n left: 0;\n right: 0;\n pointer-events: none;\n position: absolute;\n display: block;\n bottom: 0;\n top: 10px;\n width: 100%;\n overflow: hidden;\n white-space: nowrap;\n text-align: left;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4, 0, .2, 1);\n}\n\n/*\n.jf-textfield__bottom-border {\n border-bottom: 2px solid var(--color-active);\n height: 0;\n position: absolute;\n top: 46px;\n transition: width .1s ease-in 0s;\n width: 0;\n}\n\n.jf-textfield--focused .jf-textfield__bottom-border {\n width: 100%;\n}\n*/\n\n.jf-textfield__label:after {\n background-color: var(--color-active);\n bottom: 20px;\n content: '';\n height: 2px;\n left: 45%;\n position: absolute;\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n visibility: hidden;\n width: 10px;\n}\n\n.jf-textfield--focused .jf-textfield__label:after {\n left: 0;\n visibility: visible;\n width: 100%;\n}\n\n/*\n.jf-textfield:before {\n content: '';\n background-color: rgba(0,0,0,0.06);\n position: absolute;\n top: 0;\n bottom: 20px;\n width: calc(100% + 32px);\n z-index: -1;\n border-radius: 4px;\n margin-left: -16px;\n}\n*/\n\n.jf-textfield:after {\n content: '';\n position: absolute;\n width: 100%;\n height: 1px;\n bottom: 20px;\n background-color: var(--color-inactive);\n transition-duration: .2s;\n transition-timing-function: cubic-bezier(.4,0,.2,1);\n}\n\n.jf-textfield--focused:after {\n background-color: transparent;\n}\n\n.jf-textfield:hover:after {\n background-color: #222;\n bottom: 20px;\n height: 2px;\n}\n\n.jf-textfield--focused:hover:after {\n background-color: transparent;\n}\n\n\n.jf-textfield__helper-text {\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n position: absolute;\n bottom: 0;\n font-size: 12px;\n color: rgba(0, 0, 0, 0.54);\n}\n\n\n.jf-textfield--invalid .jf-textfield__label:after {\n background-color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__helper-text {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid .jf-textfield__label {\n color: var(--color-red--500);\n}\n\n.jf-textfield--invalid:after {\n background-color: var(--color-red--500) !important;\n}\n",""])},"./node_modules/css-loader/lib/css-base.js"(e){e.exports=function(e){var t=[];return t.toString=function(){return this.map(t=>{var r=function(e,t){var r=e[1]||"",n=e[3];if(!n)return r;if(t&&"function"==typeof btoa){var o="/*# sourceMappingURL=data:application/json;charset=utf-8;base64,"+btoa(unescape(encodeURIComponent(JSON.stringify(n))))+" */",a=n.sources.map(e=>"/*# sourceURL="+n.sourceRoot+e+" */");return[r].concat(a).concat([o]).join("\n")}return[r].join("\n")}(t,e);return t[2]?"@media "+t[2]+"{"+r+"}":r}).join("")},t.i=function(e,r){"string"==typeof e&&(e=[[null,e,""]]);for(var n={},o=0;this.length>o;o++){var a=this[o][0];"number"==typeof a&&(n[a]=!0)}for(o=0;e.length>o;o++){var i=e[o];"number"==typeof i[0]&&n[i[0]]||(r&&!i[2]?i[2]=r:r&&(i[2]="("+i[2]+") and ("+r+")"),t.push(i))}},t}},"./src/JsonFormCustomElement.elm"(e,t){var r;(()=>{"use strict";function n(e){function t(t){return r=>e(t,r)}return t.arity=2,t.func=e,t}function o(e){function t(t){return r=>n=>e(t,r,n)}return t.arity=3,t.func=e,t}function a(e){function t(t){return r=>n=>o=>e(t,r,n,o)}return t.arity=4,t.func=e,t}function i(e){function t(t){return r=>n=>o=>a=>e(t,r,n,o,a)}return t.arity=5,t.func=e,t}function c(e){function t(t){return r=>n=>o=>a=>i=>e(t,r,n,o,a,i)}return t.arity=6,t.func=e,t}function u(e,t,r){return 2===e.arity?e.func(t,r):e(t)(r)}function s(e,t,r,n){return 3===e.arity?e.func(t,r,n):e(t)(r)(n)}function l(e,t,r,n,o){return 4===e.arity?e.func(t,r,n,o):e(t)(r)(n)(o)}function _(e,t,r,n,o,a){return 5===e.arity?e.func(t,r,n,o,a):e(t)(r)(n)(o)(a)}var d=(()=>{var e=32,t=2,r={ctor:"_Array",height:0,table:[]};function a(t,r){var n=t.height;r.length===n&&r.push({ctor:"_Array",height:n+1,table:[],lengths:[]});r[n].table.push(t);var o=v(t);r[n].lengths.length>0&&(o+=r[n].lengths[r[n].lengths.length-1]),r[n].lengths.push(o),r[n].table.length===e&&(a(r[n],r),r[n]={ctor:"_Array",height:n+1,table:[],lengths:[]})}function i(e,t){var r=e.table.length-1;e.table[r]=t,e.lengths[r]=v(t),e.lengths[r]+=r>0?e.lengths[r-1]:0}function c(e,t){if(t.table.length>0){e.table[0]=t,e.lengths[0]=v(t);for(var r=v(e.table[0]),n=1;e.lengths.length>n;n++)r+=v(e.table[n]),e.lengths[n]=r}else{e.table.shift();for(n=1;e.lengths.length>n;n++)e.lengths[n]=e.lengths[n]-e.lengths[0];e.lengths.shift()}}function s(t,r){for(var n=0,o=0;t.table.length>o;o++)n+=t.table[o].table.length;for(o=0;r.table.length>o;o++)n+=r.table[o].table.length;return t.table.length+r.table.length-(Math.floor((n-1)/e)+1)}function l(e,t,r){return e.length>r?e[r]:t[r-e.length]}function _(e,t,r,n){e.length>r?e[r]=n:t[r-e.length]=n}function d(e,t,r,n){_(e.table,t.table,r,n);var o=0===r||r===e.lengths.length?0:l(e.lengths,e.lengths,r-1);_(e.lengths,t.lengths,r,o+v(n))}function f(e,t){0>t&&(t=0);var r={ctor:"_Array",height:e,table:new Array(t)};return e>0&&(r.lengths=new Array(t)),r}function p(t,r,n){for(var o=f(t.height,Math.min(e,t.table.length+r.table.length-n)),a=f(t.height,o.table.length-(t.table.length+r.table.length-n)),i=0;l(t.table,r.table,i).table.length%e==0;)_(o.table,a.table,i,l(t.table,r.table,i)),_(o.lengths,a.lengths,i,l(t.lengths,r.lengths,i)),i++;for(var c=i,u=new f(t.height-1,0),s=0;n>i-c-(u.table.length>0?1:0);){var p=l(t.table,r.table,i),h=Math.min(e-u.table.length,p.table.length);if(u.table=u.table.concat(p.table.slice(s,h)),u.height>0)for(var m=u.lengths.length,g=m;m+h-s>g;g++)u.lengths[g]=v(u.table[g]),u.lengths[g]+=g>0?u.lengths[g-1]:0;s+=h,p.table.length>h||(i++,s=0),u.table.length===e&&(d(o,a,c,u),u=f(t.height-1,0),c++)}for(u.table.length>0&&(d(o,a,c,u),c++);t.table.length+r.table.length>i;)d(o,a,c,l(t.table,r.table,i)),i++,c++;return[o,a]}function h(e){return e.table[e.table.length-1]}function m(e){return e.table[0]}function g(e){var t={ctor:"_Array",height:e.height,table:e.table.slice()};return e.height>0&&(t.lengths=e.lengths.slice()),t}function v(e){return 0===e.height?e.table.length:e.lengths[e.lengths.length-1]}function b(e,t){for(var r=e>>5*t.height;e>=t.lengths[r];)r++;return r}function y(e,t){return 0===t?{ctor:"_Array",height:0,table:[e]}:{ctor:"_Array",height:t,table:[y(e,t-1)],lengths:[1]}}function x(e,t){return t===e.height?e:{ctor:"_Array",height:t,table:[x(e,t-1)],lengths:[v(e)]}}function k(e,t){return{ctor:"_Array",height:e.height+1,table:[e,t],lengths:[v(e),v(e)+v(t)]}}return{empty:r,fromList(t){if("[]"===t.ctor)return r;for(var n=new Array(e),o=[],i=0;"[]"!==t.ctor;)n[i]=t._0,t=t._1,++i===e&&(a({ctor:"_Array",height:0,table:n},o),n=new Array(e),i=0);i>0&&a({ctor:"_Array",height:0,table:n.splice(0,i)},o);for(var c=0;o.length-1>c;c++)o[c].table.length>0&&a(o[c],o);var u=o[o.length-1];return u.height>0&&1===u.table.length?u.table[0]:u},toList(e){return function e(t,r){for(var n=r.table.length-1;n>=0;n--)t=0===r.height?A.Cons(r.table[n],t):e(t,r.table[n]);return t}(A.Nil,e)},initialize:n(function(t,n){return t>0?function t(r,n,o,a){if(0===n){for(var i=new Array((a-o)%(e+1)),c=0;i.length>c;c++)i[c]=r(o+c);return{ctor:"_Array",height:0,table:i}}for(var u=Math.pow(e,n),i=new Array(Math.ceil((a-o)/u)),s=new Array(i.length),c=0;i.length>c;c++)i[c]=t(r,n-1,o+c*u,Math.min(o+(c+1)*u,a)),s[c]=v(i[c])+(c>0?s[c-1]:0);return{ctor:"_Array",height:n,table:i,lengths:s}}(n,Math.floor(Math.log(t)/Math.log(e)),0,t):r}),append:n(function(r,n){if(0===r.table.length)return n;if(0===n.table.length)return r;var o=function e(r,n){if(0===r.height&&0===n.height)return[r,n];if(1!==r.height||1!==n.height)if(r.height===n.height){r=g(r),n=g(n);var o=e(h(r),m(n));i(r,o[1]),c(n,o[0])}else if(r.height>n.height){r=g(r);var o=e(h(r),n);i(r,o[0]),n=x(o[1],o[1].height+1)}else{n=g(n);var o=e(r,m(n)),a=0===o[0].table.length?0:1,u=0===a?1:0;c(n,o[a]),r=x(o[u],o[u].height+1)}if(0===r.table.length||0===n.table.length)return[r,n];var l=s(r,n);return l>t?p(r,n,l):[r,n]}(r,n);if(e>=o[0].table.length+o[1].table.length){if(0===o[0].table.length)return o[1];if(0===o[1].table.length)return o[0];if(o[0].table=o[0].table.concat(o[1].table),o[0].height>0){for(var a=v(o[0]),u=0;o[1].lengths.length>u;u++)o[1].lengths[u]+=a;o[0].lengths=o[0].lengths.concat(o[1].lengths)}return o[0]}if(o[0].height>0){var l=s(r,n);l>t&&(o=p(o[0],o[1],l))}return k(o[0],o[1])}),push:n(function(t,r){var n=function t(r,n){if(0===n.height){if(e>n.table.length){var o={ctor:"_Array",height:0,table:n.table.slice()};return o.table.push(r),o}return null}var a=t(r,h(n));if(null!==a){var o=g(n);return o.table[o.table.length-1]=a,o.lengths[o.lengths.length-1]++,o}if(e>n.table.length){var i=y(r,n.height-1),o=g(n);return o.table.push(i),o.lengths.push(o.lengths[o.lengths.length-1]+v(i)),o}return null}(t,r);return null!==n?n:k(r,y(t,r.height))}),slice:o(function(e,t,r){return 0>e&&(e+=v(r)),0>t&&(t+=v(r)),function e(t,r){if(0===t)return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(t,r.table.length+1),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(o===r.table.length-1)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(o,r.table.length+1),lengths:new Array(r.table.length-o)};n.table[0]=a;for(var i=0,c=0;n.table.length>c;c++)i+=v(n.table[c]),n.lengths[c]=i;return n}(e,function e(t,r){if(t===v(r))return r;if(0===r.height){var n={ctor:"_Array",height:0};return n.table=r.table.slice(0,t),n}var o=b(t,r),a=e(t-(o>0?r.lengths[o-1]:0),r.table[o]);if(0===o)return a;var n={ctor:"_Array",height:r.height,table:r.table.slice(0,o),lengths:r.lengths.slice(0,o)};return a.table.length>0&&(n.table[o]=a,n.lengths[o]=v(a)+(o>0?n.lengths[o-1]:0)),n}(t,r))}),get:n(function(e,t){if(0>e||e>=v(t))throw new Error("Index "+e+" is out of range. Check the length of your array first or use getMaybe or getWithDefault.");return((e,t)=>{for(var r=t.height;r>0;r--){for(var n=e>>5*r;e>=t.lengths[n];)n++;n>0&&(e-=t.lengths[n-1]),t=t.table[n]}return t.table[e]})(e,t)}),set:o(function(e,t,r){return 0>e||v(r)<=e?r:function e(t,r,n){if(0===(n=g(n)).height)n.table[t]=r;else{var o=b(t,n);o>0&&(t-=n.lengths[o-1]),n.table[o]=e(t,r,n.table[o])}return n}(e,t,r)}),map:n(function e(t,r){var n={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(n.lengths=r.lengths);for(var o=0;r.table.length>o;o++)n.table[o]=0===r.height?t(r.table[o]):e(t,r.table[o]);return n}),indexedMap:n(function(e,t){return function e(t,r,n){var o={ctor:"_Array",height:r.height,table:new Array(r.table.length)};r.height>0&&(o.lengths=r.lengths);for(var a=0;r.table.length>a;a++)o.table[a]=0===r.height?u(t,n+a,r.table[a]):e(t,r.table[a],0==a?n:n+r.lengths[a-1]);return o}(e,t,0)}),foldl:o(function e(t,r,n){if(0===n.height)for(var o=0;n.table.length>o;o++)r=u(t,n.table[o],r);else for(o=0;n.table.length>o;o++)r=e(t,r,n.table[o]);return r}),foldr:o(function e(t,r,n){if(0===n.height)for(var o=n.table.length;o--;)r=u(t,n.table[o],r);else for(o=n.table.length;o--;)r=e(t,r,n.table[o]);return r}),length:v,toJSArray(e){var t=new Array(v(e));return function e(t,r,n){for(var o=0;n.table.length>o;o++)if(0===n.height)t[r+o]=n.table[o];else{var a=0===o?0:n.lengths[o-1];e(t,r+a,n.table[o])}}(t,0,e),t},fromJSArray(t){return 0===t.length?r:function t(r,n,o,a){if(0===n)return{ctor:"_Array",height:0,table:r.slice(o,a)};for(var i=Math.pow(e,n),c=new Array(Math.ceil((a-o)/i)),u=new Array(c.length),s=0;c.length>s;s++)c[s]=t(r,n-1,o+s*i,Math.min(o+(s+1)*i,a)),u[s]=v(c[s])+(s>0?u[s-1]:0);return{ctor:"_Array",height:n,table:c,lengths:u}}(t,Math.floor(Math.log(t.length)/Math.log(e)),0,t.length)}}})(),f=(()=>{var e=["LT","EQ","GT"];return{div:n(function(e,t){return e/t|0}),rem:n(function(e,t){return e%t}),mod:n(function e(t,r){if(0===r)throw new Error("Cannot perform mod 0. Division by zero error.");var n=t%r,o=0===t?0:r>0?0>t?n+r:n:-e(-t,-r);return o===r?0:o}),pi:Math.PI,e:Math.E,cos:Math.cos,sin:Math.sin,tan:Math.tan,acos:Math.acos,asin:Math.asin,atan:Math.atan,atan2:n(Math.atan2),degrees(e){return e*Math.PI/180},turns(e){return 2*Math.PI*e},fromPolar(e){var t=e._0,r=e._1;return p.Tuple2(t*Math.cos(r),t*Math.sin(r))},toPolar(e){var t=e._0,r=e._1;return p.Tuple2(Math.sqrt(t*t+r*r),Math.atan2(r,t))},sqrt:Math.sqrt,logBase:n(function(e,t){return Math.log(t)/Math.log(e)}),negate(e){return-e},abs(e){return 0>e?-e:e},min:n(function(e,t){return 0>p.cmp(e,t)?e:t}),max:n(function(e,t){return p.cmp(e,t)>0?e:t}),clamp:o(function(e,t,r){return 0>p.cmp(r,e)?e:p.cmp(r,t)>0?t:r}),compare:n(function(t,r){return{ctor:e[p.cmp(t,r)+1]}}),xor:n(function(e,t){return e!==t}),not(e){return!e},truncate(e){return 0|e},ceiling:Math.ceil,floor:Math.floor,round:Math.round,toFloat:e=>e,isNaN,isInfinite(e){return e===1/0||e===-1/0}}})(),p=(()=>{function e(t,r,n,o){if(n>100)return o.push({x:t,y:r}),!0;if(t===r)return!0;if("object"!=typeof t){if("function"==typeof t)throw new Error('Trying to use `(==)` on functions. There is no way to know if functions are "the same" in the Elm sense. Read more about this at http://package.elm-lang.org/packages/elm-lang/core/latest/Basics#== which describes why it is this way and what the better version will look like.');return!1}if(null===t||null===r)return!1;if(t instanceof Date)return t.getTime()===r.getTime();if(!("ctor"in t)){for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}if("RBNode_elm_builtin"!==t.ctor&&"RBEmpty_elm_builtin"!==t.ctor||(t=ye(t),r=ye(r)),"Set_elm_builtin"===t.ctor&&(t=_elm_lang$core$Set$toList(t),r=_elm_lang$core$Set$toList(r)),"::"===t.ctor){for(var i=t,c=r;"::"===i.ctor&&"::"===c.ctor;){if(!e(i._0,c._0,n+1,o))return!1;i=i._1,c=c._1}return i.ctor===c.ctor}if("_Array"===t.ctor){var u=d.toJSArray(t),s=d.toJSArray(r);if(u.length!==s.length)return!1;for(var l=0;u.length>l;l++)if(!e(u[l],s[l],n+1,o))return!1;return!0}if(!e(t.ctor,r.ctor,n+1,o))return!1;for(var a in t)if(!e(t[a],r[a],n+1,o))return!1;return!0}var t=-1,r=0,o=1;var a=0;var i={ctor:"[]"};function c(e,t){return{ctor:"::",_0:e,_1:t}}function u(e){return e.start.line==e.end.line?"on line "+e.start.line:"between lines "+e.start.line+" and "+e.end.line}function s(e){var t=typeof e;if("function"===t)return"";if("boolean"===t)return e?"True":"False";if("number"===t)return e+"";if(e instanceof String)return"'"+l(e,!0)+"'";if("string"===t)return'"'+l(e,!1)+'"';if(null===e)return"null";if("object"===t&&"ctor"in e){var r=e.ctor.substring(0,5);if("_Tupl"===r){var n=[];for(var o in e)"ctor"!==o&&n.push(s(e[o]));return"("+n.join(",")+")"}if("_Task"===r)return"";if("_Array"===e.ctor)return"Array.fromList "+s(K(e));if(""===e.ctor)return"";if("_Process"===e.ctor)return"";if("::"===e.ctor){n="["+s(e._0);for(e=e._1;"::"===e.ctor;)n+=","+s(e._0),e=e._1;return n+"]"}if("[]"===e.ctor)return"[]";if("Set_elm_builtin"===e.ctor)return"Set.fromList "+s(_elm_lang$core$Set$toList(e));if("RBNode_elm_builtin"===e.ctor||"RBEmpty_elm_builtin"===e.ctor)return"Dict.fromList "+s(ye(e));n="";for(var a in e)if("ctor"!==a){var i=s(e[a]),c=i[0];n+=" "+("{"===c||"("===c||"<"===c||'"'===c||0>i.indexOf(" ")?i:"("+i+")")}return e.ctor+n}if("object"===t){if(e instanceof Date)return"<"+e.toString()+">";if(e.elm_web_socket)return"";n=[];for(var o in e)n.push(o+" = "+s(e[o]));return 0===n.length?"{}":"{ "+n.join(", ")+" }"}return""}function l(e,t){var r=e.replace(/\\/g,"\\\\").replace(/\n/g,"\\n").replace(/\t/g,"\\t").replace(/\r/g,"\\r").replace(/\v/g,"\\v").replace(/\0/g,"\\0");return t?r.replace(/\'/g,"\\'"):r.replace(/\"/g,'\\"')}return{eq(t,r){for(var n,o=[],a=e(t,r,0,o);a&&(n=o.pop());)a=e(n.x,n.y,0,o);return a},cmp:function e(n,a){if("object"!=typeof n)return n===a?r:a>n?t:o;if(n instanceof String){var i=n.valueOf(),c=a.valueOf();return i===c?r:c>i?t:o}if("::"===n.ctor||"[]"===n.ctor){for(;"::"===n.ctor&&"::"===a.ctor;){if((u=e(n._0,a._0))!==r)return u;n=n._1,a=a._1}return n.ctor===a.ctor?r:"[]"===n.ctor?t:o}if("_Tuple"===n.ctor.slice(0,6)){var u,s=n.ctor.slice(6)-0;if(0===s)return r;if(s>=1){if((u=e(n._0,a._0))!==r)return u;if(s>=2){if((u=e(n._1,a._1))!==r)return u;if(s>=3){if((u=e(n._2,a._2))!==r)return u;if(s>=4){if((u=e(n._3,a._3))!==r)return u;if(s>=5){if((u=e(n._4,a._4))!==r)return u;if(s>=6){if((u=e(n._5,a._5))!==r)return u;if(s>=7)throw new Error("Comparison error: cannot compare tuples with more than 6 elements.")}}}}}}return r}throw new Error("Comparison error: comparison is only defined on ints, floats, times, chars, strings, lists of comparable values, and tuples of comparable values.")},Tuple0:{ctor:"_Tuple0"},Tuple2(e,t){return{ctor:"_Tuple2",_0:e,_1:t}},chr(e){return new String(e)},update(e,t){var r={};for(var n in e)r[n]=e[n];for(var n in t)r[n]=t[n];return r},guid(){return a++},append:n(function(e,t){if("string"==typeof e)return e+t;if("[]"===e.ctor)return t;var r=c(e._0,i),n=r;for(e=e._1;"[]"!==e.ctor;)n._1=c(e._0,i),e=e._1,n=n._1;return n._1=t,r}),crash(e,t){return r=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"` "+u(t)+"\nThe message provided by the code author is:\n\n "+r)}},crashCase(e,t,r){return n=>{throw new Error("Ran into a `Debug.crash` in module `"+e+"`\n\nThis was caused by the `case` expression "+u(t)+".\nOne of the branches ended with a crash and the following value got through:\n\n "+s(r)+"\n\nThe message provided by the code author is:\n\n "+n)}},toString:s}})(),h=o((e,t,r)=>u(e,r,t)),m=n(e=>e),g=e=>e;(k=k||{})["<|"]=n((e,t)=>e(t)),(k=k||{})["|>"]=n((e,t)=>t(e)),(k=k||{})[">>"]=o((e,t,r)=>t(e(r))),(k=k||{})["<<"]=o((e,t,r)=>e(t(r))),(k=k||{})["++"]=p.append;var v=p.toString,b=f.toFloat,y=f.round;(k=k||{})["||"]=f.or,(k=k||{})["&&"]=f.and;var x=f.compare;(k=k||{})[">="]=f.ge,(k=k||{})["<="]=f.le,(k=k||{})[">"]=f.gt,(k=k||{})["<"]=f.lt,(k=k||{})["/="]=f.neq,(k=k||{})["=="]=f.eq;(k=k||{})["^"]=f.exp,(k=k||{})["%"]=f.mod;var k;(k=k||{})["//"]=f.div,(k=k||{})["/"]=f.floatDiv,(k=k||{})["*"]=f.mul,(k=k||{})["-"]=f.sub,(k=k||{})["+"]=f.add;var w=n((e,t)=>{return"Just"===t.ctor?t._0:e}),N={ctor:"Nothing"},I=n((e,t)=>{return"Just"===t.ctor?e(t._0):N}),j=e=>({ctor:"Just",_0:e}),T=n((e,t)=>{return"Just"===t.ctor?j(e(t._0)):N}),A=(()=>{var e={ctor:"[]"};function t(e,t){return{ctor:"::",_0:e,_1:t}}function r(r){for(var n=e,o=r.length;o--;)n=t(r[o],n);return n}function d(e){for(var t=[];"[]"!==e.ctor;)t.push(e._0),e=e._1;return t}return{Nil:e,Cons:t,cons:n(t),toArray:d,fromArray:r,foldr:o(function(e,t,r){for(var n=d(r),o=t,a=n.length;a--;)o=u(e,n[a],o);return o}),map2:o(function(e,t,n){for(var o=[];"[]"!==t.ctor&&"[]"!==n.ctor;)o.push(u(e,t._0,n._0)),t=t._1,n=n._1;return r(o)}),map3:a(function(e,t,n,o){for(var a=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor;)a.push(s(e,t._0,n._0,o._0)),t=t._1,n=n._1,o=o._1;return r(a)}),map4:i(function(e,t,n,o,a){for(var i=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor;)i.push(l(e,t._0,n._0,o._0,a._0)),t=t._1,n=n._1,o=o._1,a=a._1;return r(i)}),map5:c(function(e,t,n,o,a,i){for(var c=[];"[]"!==t.ctor&&"[]"!==n.ctor&&"[]"!==o.ctor&&"[]"!==a.ctor&&"[]"!==i.ctor;)c.push(_(e,t._0,n._0,o._0,a._0,i._0)),t=t._1,n=n._1,o=o._1,a=a._1,i=i._1;return r(c)}),sortBy:n(function(e,t){return r(d(t).sort((t,r)=>p.cmp(e(t),e(r))))}),sortWith:n(function(e,t){return r(d(t).sort((t,r)=>{var n=e(t)(r).ctor;return"EQ"===n?0:"LT"===n?-1:1}))})}})(),M=A.sortBy,C=n((e,t)=>{for(;;){if(1>p.cmp(e,0))return t;var r=t;if("[]"===r.ctor)return t;e=e-1,t=r._1}}),B=A.map2,O=n((e,t)=>{for(;;){var r=t;if("[]"===r.ctor)return!1;if(e(r._0))return!0;e=e,t=r._1}}),E=A.foldr,R=o((e,t,r)=>{for(;;){var n=r;if("[]"===n.ctor)return t;var o=e,a=u(e,n._0,t);e=o,t=a,r=n._1}}),S=e=>s(R,n((e,t)=>t+1),0,e),L=n((e,t)=>u(O,t=>p.eq(t,e),t)),z=e=>{return"[]"===e.ctor},D=e=>{return"::"===e.ctor?j(e._0):N},P=P||{};P["::"]=A.cons;var $,q=n((e,t)=>s(E,n((t,r)=>({ctor:"::",_0:e(t),_1:r})),{ctor:"[]"},t)),J=n((e,t)=>{return s(E,n((t,r)=>e(t)?{ctor:"::",_0:t,_1:r}:r),{ctor:"[]"},t)}),Z=o((e,t,r)=>{var n=e(t);return"Just"===n.ctor?{ctor:"::",_0:n._0,_1:r}:r}),U=n((e,t)=>s(E,Z(e),{ctor:"[]"},t)),V=e=>s(R,n((e,t)=>({ctor:"::",_0:e,_1:t})),{ctor:"[]"},e),F=n((e,t)=>{return"[]"===t.ctor?e:s(E,n((e,t)=>({ctor:"::",_0:e,_1:t})),t,e)}),W=e=>s(E,F,{ctor:"[]"},e),G=o((e,t,r)=>{for(;;){if(p.cmp(e,t)>=1)return r;var n={ctor:"::",_0:t,_1:r};e=e,t=t-1,r=n}}),Y=n((e,t)=>s(G,e,t,{ctor:"[]"})),H=n((e,t)=>s(B,e,u(Y,0,S(t)-1),t)),K=d.toList,Q=(()=>{return{crash(e){throw new Error(e)},log:n(function(e,t){var r=e+": "+p.toString(t),n=n||{};return n.stdout?n.stdout.write(r):console.log(r),t})}})(),X=(()=>{function e(e,t){for(var r="";e>0;)1&e&&(r+=t),e>>=1,t+=t;return r}function t(e){return ae("could not convert string '"+e+"' to an Int")}function r(e){return ae("could not convert string '"+e+"' to a Float")}return{isEmpty(e){return 0===e.length},cons:n(function(e,t){return e+t}),uncons(e){var t=e[0];return t?j(p.Tuple2(p.chr(t),e.slice(1))):N},append:n(function(e,t){return e+t}),concat(e){return A.toArray(e).join("")},length(e){return e.length},map:n(function(e,t){for(var r=t.split(""),n=r.length;n--;)r[n]=e(p.chr(r[n]));return r.join("")}),filter:n(function(e,t){return t.split("").map(p.chr).filter(e).join("")}),reverse(e){return e.split("").reverse().join("")},foldl:o(function(e,t,r){for(var n=r.length,o=0;n>o;++o)t=u(e,p.chr(r[o]),t);return t}),foldr:o(function(e,t,r){for(var n=r.length;n--;)t=u(e,p.chr(r[n]),t);return t}),split:n(function(e,t){return A.fromArray(t.split(e))}),join:n(function(e,t){return A.toArray(t).join(e)}),repeat:n(e),slice:o(function(e,t,r){return r.slice(e,t)}),left:n(function(e,t){return 1>e?"":t.slice(0,e)}),right:n(function(e,t){return 1>e?"":t.slice(-e)}),dropLeft:n(function(e,t){return 1>e?t:t.slice(e)}),dropRight:n(function(e,t){return 1>e?t:t.slice(0,-e)}),pad:o(function(t,r,n){var o=(t-n.length)/2;return e(Math.ceil(o),r)+n+e(0|o,r)}),padLeft:o(function(t,r,n){return e(t-n.length,r)+n}),padRight:o(function(t,r,n){return n+e(t-n.length,r)}),trim(e){return e.trim()},trimLeft(e){return e.replace(/^\s+/,"")},trimRight(e){return e.replace(/\s+$/,"")},words(e){return A.fromArray(e.trim().split(/\s+/g))},lines(e){return A.fromArray(e.split(/\r\n|\r|\n/g))},toUpper(e){return e.toUpperCase()},toLower(e){return e.toLowerCase()},any:n(function(e,t){for(var r=t.length;r--;)if(e(p.chr(t[r])))return!0;return!1}),all:n(function(e,t){for(var r=t.length;r--;)if(!e(p.chr(t[r])))return!1;return!0}),contains:n(function(e,t){return t.indexOf(e)>-1}),startsWith:n(function(e,t){return 0===t.indexOf(e)}),endsWith:n(function(e,t){return t.length>=e.length&&t.lastIndexOf(e)===t.length-e.length}),indexes:n(function(e,t){var r=e.length;if(1>r)return A.Nil;for(var n=0,o=[];(n=t.indexOf(e,n))>-1;)o.push(n),n+=r;return A.fromArray(o)}),toInt(e){var r=e.length;if(0===r)return t(e);if("0"===(o=e[0])&&"x"===e[1]){for(var n=2;r>n;++n)if(("0">(o=e[n])||o>"9")&&("A">o||o>"F")&&("a">o||o>"f"))return t(e);return ce(parseInt(e,16))}if(o>"9"||"0">o&&"-"!==o&&"+"!==o)return t(e);for(n=1;r>n;++n){var o;if("0">(o=e[n])||o>"9")return t(e)}return ce(parseInt(e,10))},toFloat(e){if(0===e.length||/[\sxbo]/.test(e))return r(e);var t=+e;return t==t?ce(t):r(e)},toList(e){return A.fromArray(e.split("").map(p.chr))},fromList(e){return A.toArray(e).join("")}}})(),ee=(()=>({fromCode:e=>p.chr(String.fromCharCode(e)),toCode:e=>e.charCodeAt(0),toUpper:e=>p.chr(e.toUpperCase()),toLower:e=>p.chr(e.toLowerCase()),toLocaleUpper:e=>p.chr(e.toLocaleUpperCase()),toLocaleLower:e=>p.chr(e.toLocaleLowerCase())}))(),te=ee.toCode,re=o((e,t,r)=>{var n=te(r);return p.cmp(n,te(e))>-1&&1>p.cmp(n,te(t))}),ne=(u(re,p.chr("A"),p.chr("Z")),u(re,p.chr("a"),p.chr("z")),u(re,p.chr("0"),p.chr("9")),u(re,p.chr("0"),p.chr("7")),e=>{return"Ok"===e.ctor?j(e._0):N}),oe=n((e,t)=>{return"Ok"===t.ctor?t._0:e}),ae=e=>({ctor:"Err",_0:e}),ie=n((e,t)=>{var r=t;return"Ok"===r.ctor?e(r._0):ae(r._0)}),ce=e=>({ctor:"Ok",_0:e}),ue=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(e(r._0)):ae(r._0)}),se=n((e,t)=>{var r=t;return"Ok"===r.ctor?ce(r._0):ae(e(r._0))}),le=n((e,t)=>{return"Just"===t.ctor?ce(t._0):ae(e)}),_e=X.toFloat,de=X.toInt,fe=X.endsWith,pe=X.dropRight,he=X.join,me=X.split,ge=X.foldl,ve=X.concat,be=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return t;var o=e,a=s(e,n._1,n._2,s(be,e,t,n._4));e=o,t=a,r=n._3}}),ye=e=>s(be,o((e,t,r)=>({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:r})),{ctor:"[]"},e),xe=a((e,t,r,n)=>Q.crash(ve({ctor:"::",_0:"Internal red-black tree invariant violated, expected ",_1:{ctor:"::",_0:e,_1:{ctor:"::",_0:" and got ",_1:{ctor:"::",_0:v(t),_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:r,_1:{ctor:"::",_0:"/",_1:{ctor:"::",_0:n,_1:{ctor:"::",_0:"\nPlease report this bug to ",_1:{ctor:"[]"}}}}}}}}}}))),ke=e=>{var t=e;e:do{if("RBNode_elm_builtin"===t.ctor){if("BBlack"===t._0.ctor)return!0;break e}if("LBBlack"===t._0.ctor)return!0;break e}while(0);return!1},we=n((e,t)=>{e:for(;;){var r=t;if("RBEmpty_elm_builtin"===r.ctor)return N;switch(u(x,e,r._1).ctor){case"LT":e=e,t=r._3;continue e;case"EQ":return j(r._2);default:e=e,t=r._4;continue e}}}),Ne=n((e,t)=>{return"Just"===u(we,e,t).ctor}),Ie=o((e,t,r)=>{for(;;){var n=r;if("RBEmpty_elm_builtin"===n.ctor)return{ctor:"_Tuple2",_0:e,_1:t};e=n._1,t=n._2,r=n._4}}),je={ctor:"NBlack"},Te={ctor:"BBlack"},Ae={ctor:"Black"},Me={ctor:"Red"},Ce=e=>{switch(e.ctor){case"BBlack":return Ae;case"Black":return Me;case"Red":return je;default:return Q.crash("Can't make a negative black node less black!")}},Be={ctor:"LBBlack"},Oe={ctor:"LBlack"},Ee=e=>({ctor:"RBEmpty_elm_builtin",_0:e}),Re=Ee(Oe),Se=i((e,t,r,n,o)=>({ctor:"RBNode_elm_builtin",_0:e,_1:t,_2:r,_3:n,_4:o})),Le=e=>{var t=e;return"RBNode_elm_builtin"===t.ctor?_(Se,Ce(t._0),t._1,t._2,t._3,t._4):Ee(Oe)},ze=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_(Se,Ce(e),n,o,_(Se,Ae,t,r,c,u),_(Se,Ae,a,i,s,l)),De=e=>{var t=e;return"RBEmpty_elm_builtin"===t.ctor?Q.crash("can't make a Leaf red"):_(Se,Me,t._1,t._2,t._3,t._4)},Pe=i((e,t,r,n,o)=>{var a=_(Se,e,t,r,n,o);return(e=>{if("RBNode_elm_builtin"===e.ctor){var t=e._0;return p.eq(t,Ae)||p.eq(t,Te)}return!0})(a)?(e=>{var t=e;e:do{t:do{r:do{n:do{o:do{a:do{i:do{if("RBNode_elm_builtin"!==t.ctor)break e;if("RBNode_elm_builtin"===t._3.ctor)if("RBNode_elm_builtin"===t._4.ctor)switch(t._3._0.ctor){case"Red":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e}case"NBlack":switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;case"NBlack":if("BBlack"===t._0.ctor){if("RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;if("RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}break e;default:if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e}default:switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}else switch(t._3._0.ctor){case"Red":if("RBNode_elm_builtin"===t._3._3.ctor&&"Red"===t._3._3._0.ctor)break i;if("RBNode_elm_builtin"===t._3._4.ctor&&"Red"===t._3._4._0.ctor)break a;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._3._3.ctor&&"Black"===t._3._3._0.ctor&&"RBNode_elm_builtin"===t._3._4.ctor&&"Black"===t._3._4._0.ctor)break t;break e;default:break e}else{if("RBNode_elm_builtin"!==t._4.ctor)break e;switch(t._4._0.ctor){case"Red":if("RBNode_elm_builtin"===t._4._3.ctor&&"Red"===t._4._3._0.ctor)break o;if("RBNode_elm_builtin"===t._4._4.ctor&&"Red"===t._4._4._0.ctor)break n;break e;case"NBlack":if("BBlack"===t._0.ctor&&"RBNode_elm_builtin"===t._4._3.ctor&&"Black"===t._4._3._0.ctor&&"RBNode_elm_builtin"===t._4._4.ctor&&"Black"===t._4._4._0.ctor)break r;break e;default:break e}}}while(0);return ze(t._0)(t._3._3._1)(t._3._3._2)(t._3._1)(t._3._2)(t._1)(t._2)(t._3._3._3)(t._3._3._4)(t._3._4)(t._4)}while(0);return ze(t._0)(t._3._1)(t._3._2)(t._3._4._1)(t._3._4._2)(t._1)(t._2)(t._3._3)(t._3._4._3)(t._3._4._4)(t._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._3._1)(t._4._3._2)(t._4._1)(t._4._2)(t._3)(t._4._3._3)(t._4._3._4)(t._4._4)}while(0);return ze(t._0)(t._1)(t._2)(t._4._1)(t._4._2)(t._4._4._1)(t._4._4._2)(t._3)(t._4._3)(t._4._4._3)(t._4._4._4)}while(0);return _(Se,Ae,t._4._3._1,t._4._3._2,_(Se,Ae,t._1,t._2,t._3,t._4._3._3),_(Pe,Ae,t._4._1,t._4._2,t._4._3._4,De(t._4._4)))}while(0);return _(Se,Ae,t._3._4._1,t._3._4._2,_(Pe,Ae,t._3._1,t._3._2,De(t._3._3),t._3._4._3),_(Se,Ae,t._1,t._2,t._3._4._4,t._4))}while(0);return e})(a):a}),$e=i((e,t,r,n,o)=>ke(n)||ke(o)?_(Pe,(e=>{switch(e.ctor){case"Black":return Te;case"Red":return Ae;case"NBlack":return Me;default:return Q.crash("Can't make a double black node more black!")}})(e),t,r,Le(n),Le(o)):_(Se,e,t,r,n,o)),qe=i((e,t,r,n,o)=>{var a=o;return"RBEmpty_elm_builtin"===a.ctor?s(Je,e,n,o):_($e,e,t,r,n,_(qe,a._0,a._1,a._2,a._3,a._4))}),Je=o((e,t,r)=>{var n={ctor:"_Tuple2",_0:t,_1:r};if("RBEmpty_elm_builtin"!==n._0.ctor){if("RBEmpty_elm_builtin"===n._1.ctor){var o=n._1._0,a=n._0._0,i={ctor:"_Tuple3",_0:e,_1:a,_2:o};return"_Tuple3"===i.ctor&&"Black"===i._0.ctor&&"Red"===i._1.ctor&&"LBlack"===i._2.ctor?_(Se,Ae,n._0._1,n._0._2,n._0._3,n._0._4):l(xe,"Black/Red/LBlack",e,v(a),v(o))}var c=n._0._2,u=n._0._4,d=n._0._1,f=_(qe,n._0._0,d,c,n._0._3,u),p=s(Ie,d,c,u);return _($e,e,p._0,p._1,f,r)}if("RBEmpty_elm_builtin"!==n._1.ctor){var h=n._1._0,m=n._0._0,g={ctor:"_Tuple3",_0:e,_1:m,_2:h};return"_Tuple3"===g.ctor&&"Black"===g._0.ctor&&"LBlack"===g._1.ctor&&"Red"===g._2.ctor?_(Se,Ae,n._1._1,n._1._2,n._1._3,n._1._4):l(xe,"Black/LBlack/Red",e,v(m),v(h))}switch(e.ctor){case"Red":return Ee(Oe);case"Black":return Ee(Be);default:return Q.crash("cannot have bblack or nblack nodes at this point")}}),Ze={ctor:"Same"},Ue={ctor:"Remove"},Ve={ctor:"Insert"},Fe=o((e,t,r)=>{var n,o=r=>{var n=r;if("RBEmpty_elm_builtin"===n.ctor){var a=t(N);return"Nothing"===a.ctor?{ctor:"_Tuple2",_0:Ze,_1:Re}:{ctor:"_Tuple2",_0:Ve,_1:_(Se,Me,e,a._0,Re,Re)}}var i=n._2,c=n._4,l=n._3,d=n._1,f=n._0;switch(u(x,e,d).ctor){case"EQ":var p=t(j(i));return"Nothing"===p.ctor?{ctor:"_Tuple2",_0:Ue,_1:s(Je,f,l,c)}:{ctor:"_Tuple2",_0:Ze,_1:_(Se,f,d,p._0,l,c)};case"LT":var h=o(l),m=h._1;switch(h._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ze,_1:_(Se,f,d,i,m,c)};case"Insert":return{ctor:"_Tuple2",_0:Ve,_1:_(Pe,f,d,i,m,c)};default:return{ctor:"_Tuple2",_0:Ue,_1:_($e,f,d,i,m,c)}}default:var g=o(c),v=g._1;switch(g._0.ctor){case"Same":return{ctor:"_Tuple2",_0:Ze,_1:_(Se,f,d,i,l,v)};case"Insert":return{ctor:"_Tuple2",_0:Ve,_1:_(Pe,f,d,i,l,v)};default:return{ctor:"_Tuple2",_0:Ue,_1:_($e,f,d,i,l,v)}}}},a=o(r),i=a._1;switch(a._0.ctor){case"Same":return i;case"Insert":return(e=>{return"RBNode_elm_builtin"===e.ctor&&"Red"===e._0.ctor?_(Se,Ae,e._1,e._2,e._3,e._4):e})(i);default:return"RBEmpty_elm_builtin"===(n=i).ctor?Ee(Oe):_(Se,Ae,n._1,n._2,n._3,n._4)}}),We=o((e,t,r)=>s(Fe,e,m(j(t)),r)),Ge=e=>s(R,n((e,t)=>{return s(We,e._0,e._1,t)}),Re,e),Ye=(()=>{function e(e,t){return{ctor:"",tag:"map-many",func:e,decoders:t}}function t(e){return{tag:"ok",value:e}}function r(e,t){return{tag:"primitive",type:e,value:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function s(e,t){return{tag:"field",field:e,rest:t}}function u(e,t){return{tag:"index",index:e,rest:t}}function l(e,n){var o=function e(n,o){switch(n.tag){case"bool":return"boolean"==typeof o?t(o):r("a Bool",o);case"int":return"number"!=typeof o?r("an Int",o):o>-2147483647&&2147483647>o&&(0|o)===o?t(o):!isFinite(o)||o%1?r("an Int",o):t(o);case"float":return"number"==typeof o?t(o):r("a Float",o);case"string":return"string"==typeof o?t(o):o instanceof String?t(o+""):r("a String",o);case"null":return null===o?t(n.value):r("null",o);case"value":return t(o);case"list":if(!(o instanceof Array))return r("a List",o);for(var a=A.Nil,i=o.length;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);a=A.Cons(c.value,a)}return t(a);case"array":if(!(o instanceof Array))return r("an Array",o);for(var l=o.length,_=new Array(l),i=l;i--;){var c=e(n.decoder,o[i]);if("ok"!==c.tag)return u(i,c);_[i]=c.value}return t(d.fromJSArray(_));case"maybe":var c=e(n.decoder,o);return t("ok"===c.tag?j(c.value):N);case"field":var f=n.field;if("object"!=typeof o||null===o||!(f in o))return r("an object with a field named `"+f+"`",o);var c=e(n.decoder,o[f]);return"ok"===c.tag?c:s(f,c);case"index":var h=n.index;if(!(o instanceof Array))return r("an array",o);if(h>=o.length)return r("a longer array. Need index "+h+" but there are only "+o.length+" entries",o);var c=e(n.decoder,o[h]);return"ok"===c.tag?c:u(h,c);case"key-value":if("object"!=typeof o||null===o||o instanceof Array)return r("an object",o);var m=A.Nil;for(var g in o){var c=e(n.decoder,o[g]);if("ok"!==c.tag)return s(g,c);var v=p.Tuple2(g,c.value);m=A.Cons(v,m)}return t(m);case"map-many":for(var b=n.func,y=n.decoders,i=0;y.length>i;i++){var c=e(y[i],o);if("ok"!==c.tag)return c;b=b(c.value)}return t(b);case"andThen":var c=e(n.decoder,o);return"ok"!==c.tag?c:e(n.callback(c.value),o);case"oneOf":for(var x=[],k=n.decoders;"[]"!==k.ctor;){var c=e(k._0,o);if("ok"===c.tag)return c;x.push(c),k=k._1}return{tag:"oneOf",problems:x};case"fail":return{tag:"fail",msg:n.msg};case"succeed":return t(n.msg)}}(e,n);return"ok"===o.tag?ce(o.value):ae(function e(t){for(var r,n="_";t;)switch(t.tag){case"primitive":return"Expecting "+t.type+("_"===n?"":" at "+n)+" but instead got: "+(void 0===(r=t.value)?"undefined":JSON.stringify(r));case"index":n+="["+t.index+"]",t=t.rest;break;case"field":n+="."+t.field,t=t.rest;break;case"oneOf":for(var o=t.problems,a=0;o.length>a;a++)o[a]=e(o[a]);return"I ran into the following problems"+("_"===n?"":" at "+n)+":\n\n"+o.join("\n");case"fail":return"I ran into a `fail` decoder"+("_"===n?"":" at "+n)+": "+t.msg}}(o))}function _(e,t){if(e===t)return!0;if(e.tag!==t.tag)return!1;switch(e.tag){case"succeed":case"fail":return e.msg===t.msg;case"bool":case"int":case"float":case"string":case"value":return!0;case"null":return e.value===t.value;case"list":case"array":case"maybe":case"key-value":return _(e.decoder,t.decoder);case"field":return e.field===t.field&&_(e.decoder,t.decoder);case"index":return e.index===t.index&&_(e.decoder,t.decoder);case"map-many":return e.func===t.func&&f(e.decoders,t.decoders);case"andThen":return e.callback===t.callback&&_(e.decoder,t.decoder);case"oneOf":return f(e.decoders,t.decoders)}}function f(e,t){var r=e.length;if(r!==t.length)return!1;for(var n=0;r>n;n++)if(!_(e[n],t[n]))return!1;return!0}return{encode:n(function(e,t){return JSON.stringify(t,null,e)}),runOnString:n(function(e,t){var r;try{r=JSON.parse(t)}catch(e){return ae("Given an invalid JSON: "+e.message)}return l(e,r)}),run:n(l),decodeNull(e){return{ctor:"",tag:"null",value:e}},decodePrimitive(e){return{ctor:"",tag:e}},decodeContainer:n(function(e,t){return{ctor:"",tag:e,decoder:t}}),decodeField:n(function(e,t){return{ctor:"",tag:"field",field:e,decoder:t}}),decodeIndex:n(function(e,t){return{ctor:"",tag:"index",index:e,decoder:t}}),map1:n(function(t,r){return e(t,[r])}),map2:o(function(t,r,n){return e(t,[r,n])}),map3:a(function(t,r,n,o){return e(t,[r,n,o])}),map4:i(function(t,r,n,o,a){return e(t,[r,n,o,a])}),map5:c(function(t,r,n,o,a,i){return e(t,[r,n,o,a,i])}),map6:function(e){function t(t){return r=>n=>o=>a=>i=>c=>e(t,r,n,o,a,i,c)}return t.arity=7,t.func=e,t}(function(t,r,n,o,a,i,c){return e(t,[r,n,o,a,i,c])}),map7:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>e(t,r,n,o,a,i,c,u)}return t.arity=8,t.func=e,t}(function(t,r,n,o,a,i,c,u){return e(t,[r,n,o,a,i,c,u])}),map8:function(e){function t(t){return r=>n=>o=>a=>i=>c=>u=>s=>e(t,r,n,o,a,i,c,u,s)}return t.arity=9,t.func=e,t}(function(t,r,n,o,a,i,c,u,s){return e(t,[r,n,o,a,i,c,u,s])}),decodeKeyValuePairs(e){return{ctor:"",tag:"key-value",decoder:e}},andThen:n(function(e,t){return{ctor:"",tag:"andThen",decoder:t,callback:e}}),fail(e){return{ctor:"",tag:"fail",msg:e}},succeed(e){return{ctor:"",tag:"succeed",msg:e}},oneOf(e){return{ctor:"",tag:"oneOf",decoders:e}},identity(e){return e},encodeNull:null,encodeArray:d.toJSArray,encodeList:A.toArray,encodeObject(e){for(var t={};"[]"!==e.ctor;){var r=e._0;t[r._0]=r._1,e=e._1}return t},equality:_}})(),He=Ye.encodeList,Ke=Ye.encodeObject,Qe=Ye.encodeNull,Xe=Ye.identity,et=Ye.identity,tt=Ye.identity,rt=Ye.encode,nt=Ye.decodeNull,ot=Ye.decodePrimitive("value"),at=Ye.andThen,it=Ye.fail,ct=Ye.succeed,ut=e=>u(at,e,ct({ctor:"_Tuple0"})),st=Ye.run,lt=Ye.runOnString,_t=Ye.map2,dt=Ye.map1,ft=Ye.oneOf,pt=e=>u(Ye.decodeContainer,"maybe",e),ht=Ye.decodeField,mt=n((e,t)=>s(E,ht,t,e)),gt=Ye.decodeKeyValuePairs,vt=e=>u(Ye.decodeContainer,"list",e),bt=e=>ft({ctor:"::",_0:nt(N),_1:{ctor:"::",_0:u(dt,j,e),_1:{ctor:"[]"}}}),yt=Ye.decodePrimitive("float"),xt=Ye.decodePrimitive("int"),kt=Ye.decodePrimitive("bool"),wt=Ye.decodePrimitive("string"),Nt=(()=>{var e="STYLE",t="EVENT",r="ATTR",i="ATTR_NS",c="undefined"!=typeof document?document:{};function l(e,t,r){return{type:"thunk",func:e,args:t,thunk:r,node:void 0}}function _(n){for(var o,a={};"[]"!==n.ctor;){var c=n._0,u=c.key;if(u===r||u===i||u===t){var s=a[u]||{};s[c.realKey]=c.value,a[u]=s}else if(u===e){for(var l=a[u]||{},_=c.value;"[]"!==_.ctor;){var d=_._0;l[d._0]=d._1,_=_._1}a[u]=l}else if("namespace"===u)o=c.value;else if("className"===u){var f=a[u];a[u]=void 0===f?c.value:f+" "+c.value}else a[u]=c.value;n=n._1}return{facts:a,namespace:o}}function d(e,r,n){return{key:t,realKey:e,value:{options:r,decoder:n}}}function f(e,t){return(e.options===t.options||e.options.stopPropagation===t.options.stopPropagation&&e.options.preventDefault===t.options.preventDefault)&&Ye.equality(e.decoder,t.decoder)}function h(e,t){switch(e.type){case"thunk":return e.node||(e.node=e.thunk()),h(e.node,t);case"tagger":for(var r=e.node,n=e.tagger;"tagger"===r.type;)"object"!=typeof n?n=[n,r.tagger]:n.push(r.tagger),r=r.node;var o={tagger:n,parent:t};return(u=h(r,o)).elm_event_node_ref=o,u;case"text":return c.createTextNode(e.text);case"node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(var a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i],t));return u;case"keyed-node":m(u=e.namespace?c.createElementNS(e.namespace,e.tag):c.createElement(e.tag),t,e.facts);for(a=e.children,i=0;a.length>i;i++)u.appendChild(h(a[i]._1,t));return u;case"custom":var u;return m(u=e.impl.render(e.model),t,e.facts),u}}function m(n,o,a){for(var c in a){var u=a[c];switch(c){case e:g(n,u);break;case t:v(n,o,u);break;case r:y(n,u);break;case i:x(n,u);break;case"value":n[c]!==u&&(n[c]=u);break;default:n[c]=u}}}function g(e,t){var r=e.style;for(var n in t)r[n]=t[n]}function v(e,t,r){var n=e.elm_handlers||{};for(var o in r){var a=n[o],i=r[o];if(void 0===i)e.removeEventListener(o,a),n[o]=void 0;else if(void 0===a){a=b(t,i);e.addEventListener(o,a),n[o]=a}else a.info=i}e.elm_handlers=n}function b(e,t){function r(t){var n=r.info,o=u(Ye.run,n.decoder,t);if("Ok"===o.ctor){var a=n.options;a.stopPropagation&&t.stopPropagation(),a.preventDefault&&t.preventDefault();for(var i=o._0,c=e;c;){var s=c.tagger;if("function"==typeof s)i=s(i);else for(var l=s.length;l--;)i=s[l](i);c=c.parent}}}return r.info=t,r}function y(e,t){for(var r in t){var n=t[r];void 0===n?e.removeAttribute(r):e.setAttribute(r,n)}}function x(e,t){for(var r in t){var n=t[r],o=n.namespace,a=n.value;void 0===a?e.removeAttributeNS(o,r):e.setAttributeNS(o,r,a)}}function k(e,t){var r=[];return N(e,t,r,0),r}function w(e,t,r){return{index:t,type:e,data:r,domNode:void 0,eventNode:void 0}}function N(e,t,r,n){if(e!==t){var o=t.type;if(e.type===o)switch(o){case"thunk":for(var a=e.args,i=t.args,c=a.length,u=e.func===t.func&&c===i.length;u&&c--;)u=a[c]===i[c];if(u)return void(t.node=e.node);t.node=t.thunk();var s=[];return N(e.node,t.node,s,0),void(s.length>0&&r.push(w("p-thunk",n,s)));case"tagger":for(var l=e.tagger,_=t.tagger,d=!1,f=e.node;"tagger"===f.type;)d=!0,"object"!=typeof l?l=[l,f.tagger]:l.push(f.tagger),f=f.node;for(var p=t.node;"tagger"===p.type;)d=!0,"object"!=typeof _?_=[_,p.tagger]:_.push(p.tagger),p=p.node;return d&&l.length!==_.length?void r.push(w("p-redraw",n,t)):((d?function(e,t){for(var r=0;e.length>r;r++)if(e[r]!==t[r])return!1;return!0}(l,_):l===_)||r.push(w("p-tagger",n,_)),void N(f,p,r,n+1));case"text":return e.text!==t.text?void r.push(w("p-text",n,t.text)):void 0;case"node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o=e.children,a=t.children,i=o.length,c=a.length;i>c?r.push(w("p-remove-last",n,i-c)):c>i&&r.push(w("p-append",n,a.slice(i)));for(var u=n,s=c>i?i:c,l=0;s>l;l++){var _=o[l];N(_,a[l],r,++u),u+=_.descendantsCount||0}}(e,t,r,n));case"keyed-node":return e.tag!==t.tag||e.namespace!==t.namespace?void r.push(w("p-redraw",n,t)):(void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h)),void function(e,t,r,n){var o,a=[],i={},c=[],u=e.children,s=t.children,l=u.length,_=s.length,d=0,f=0,p=n;for(;l>d&&_>f;){var h=u[d],m=s[f],g=h._0,v=m._0,b=h._1,y=m._1;if(g!==v){var x=l>d+1,k=_>f+1;if(x)var I=u[d+1],j=I._0,M=I._1,C=v===j;if(k)var B=s[f+1],O=B._0,E=B._1,R=g===O;if(x&&k&&R&&C)N(b,E,a,++p),T(i,a,g,y,f,c),p+=b.descendantsCount||0,A(i,a,g,M,++p),p+=M.descendantsCount||0,d+=2,f+=2;else if(k&&R)p++,T(i,a,v,y,f,c),N(b,E,a,p),p+=b.descendantsCount||0,d+=1,f+=2;else if(x&&C)A(i,a,g,b,++p),p+=b.descendantsCount||0,N(M,y,a,++p),p+=M.descendantsCount||0,d+=2,f+=1;else{if(!x||!k||j!==O)break;A(i,a,g,b,++p),T(i,a,v,y,f,c),p+=b.descendantsCount||0,N(M,E,a,++p),p+=M.descendantsCount||0,d+=2,f+=2}}else N(b,y,a,++p),p+=b.descendantsCount||0,d++,f++}for(;l>d;){var h=u[d],b=h._1;A(i,a,h._0,b,++p),p+=b.descendantsCount||0,d++}for(;_>f;){var m=s[f];T(i,a,m._0,m._1,void 0,o=o||[]),f++}(a.length>0||c.length>0||void 0!==o)&&r.push(w("p-reorder",n,{patches:a,inserts:c,endInserts:o}))}(e,t,r,n));case"custom":if(e.impl!==t.impl)return void r.push(w("p-redraw",n,t));var h;void 0!==(h=I(e.facts,t.facts))&&r.push(w("p-facts",n,h));var m=t.impl.diff(e,t);return m?void r.push(w("p-custom",n,m)):void 0}else r.push(w("p-redraw",n,t))}}function I(n,o,a){var c;for(var u in n)if(u!==e&&u!==t&&u!==r&&u!==i)if(u in o){var s=n[u],l=o[u];s===l&&"value"!==u||a===t&&f(s,l)||((c=c||{})[u]=l)}else(c=c||{})[u]=void 0===a?"string"==typeof n[u]?"":null:a===e?"":a===t||a===r?void 0:{namespace:n[u].namespace,value:void 0};else{var _=I(n[u],o[u]||{},u);_&&((c=c||{})[u]=_)}for(var d in o)d in n||((c=c||{})[d]=o[d]);return c}var j="_elmW6BL";function T(e,t,r,n,o,a){var i=e[r];if(void 0===i)return a.push({index:o,entry:i={tag:"insert",vnode:n,index:o,data:void 0}}),void(e[r]=i);if("remove"===i.tag){a.push({index:o,entry:i}),i.tag="move";var c=[];return N(i.vnode,n,c,i.index),i.index=o,void(i.data.data={patches:c,entry:i})}T(e,t,r+j,n,o,a)}function A(e,t,r,n,o){var a=e[r];if(void 0===a){var i=w("p-remove",o,void 0);return t.push(i),void(e[r]={tag:"remove",vnode:n,index:o,data:i})}if("insert"!==a.tag)A(e,t,r+j,n,o);else{a.tag="move";var c=[];N(n,a.vnode,c,o);i=w("p-remove",o,{patches:c,entry:a});t.push(i)}}function M(e,t,r,n){!function e(t,r,n,o,a,i,c){var u=n[o];var s=u.index;for(;s===a;){var l=u.type;if("p-thunk"===l)M(t,r.node,u.data,c);else if("p-reorder"===l){u.domNode=t,u.eventNode=c;var _=u.data.patches;_.length>0&&e(t,r,_,0,a,i,c)}else if("p-remove"===l){u.domNode=t,u.eventNode=c;var d=u.data;if(void 0!==d){d.entry.data=t;var _=d.patches;_.length>0&&e(t,r,_,0,a,i,c)}}else u.domNode=t,u.eventNode=c;if(!(u=n[++o])||(s=u.index)>i)return o}switch(r.type){case"tagger":for(var f=r.node;"tagger"===f.type;)f=f.node;return e(t,f,n,o,a+1,i,t.elm_event_node_ref);case"node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m],v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"keyed-node":for(var p=r.children,h=t.childNodes,m=0;p.length>m;m++){var g=p[m]._1,v=++a+(g.descendantsCount||0);if(s>=a&&v>=s&&(o=e(h[m],g,n,o,a,v,c),!(u=n[o])||(s=u.index)>i))return o;a=v}return o;case"text":case"thunk":throw new Error("should never traverse `text` or `thunk` nodes like this")}}(e,t,r,0,0,t.descendantsCount,n)}function C(e,t,r,n){return 0===r.length?e:(M(e,t,r,n),B(e,r))}function B(e,t){for(var r=0;t.length>r;r++){var n=t[r],o=n.domNode,a=O(o,n);o===e&&(e=a)}return e}function O(e,t){switch(t.type){case"p-redraw":return function(e,t,r){var n=e.parentNode,o=h(t,r);void 0===o.elm_event_node_ref&&(o.elm_event_node_ref=e.elm_event_node_ref);n&&o!==e&&n.replaceChild(o,e);return o}(e,t.data,t.eventNode);case"p-facts":return m(e,t.eventNode,t.data),e;case"p-text":return e.replaceData(0,e.length,t.data),e;case"p-thunk":return B(e,t.data);case"p-tagger":return void 0!==e.elm_event_node_ref?e.elm_event_node_ref.tagger=t.data:e.elm_event_node_ref={tagger:t.data,parent:t.eventNode},e;case"p-remove-last":for(var r=t.data;r--;)e.removeChild(e.lastChild);return e;case"p-append":var n=t.data;for(r=0;n.length>r;r++)e.appendChild(h(n[r],t.eventNode));return e;case"p-remove":var o=t.data;if(void 0===o)return e.parentNode.removeChild(e),e;var a=o.entry;return void 0!==a.index&&e.parentNode.removeChild(e),a.data=B(e,o.patches),e;case"p-reorder":return function(e,t){var r=t.data,n=function(e,t){if(void 0===e)return;for(var r=c.createDocumentFragment(),n=0;e.length>n;n++){var o=e[n],a=o.entry;r.appendChild("move"===a.tag?a.data:h(a.vnode,t.eventNode))}return r}(r.endInserts,t);e=B(e,r.patches);for(var o=r.inserts,a=0;o.length>a;a++){var i=o[a],u=i.entry,s="move"===u.tag?u.data:h(u.vnode,t.eventNode);e.insertBefore(s,e.childNodes[i.index])}void 0!==n&&e.appendChild(n);return e}(e,t);case"p-custom":var i=t.data;return i.applyPatch(e,i.data);default:throw new Error("Ran into an unknown patch!")}}var E=S(function(e,t){return(e,r,n)=>{if(void 0===r)return e;var o="The `"+t+"` module does not need flags.\nInitialize it with no arguments and you should be all set!";L(o,n)}}),R=S(function(e,t){return(r,n,o)=>{if(void 0===e){var a="Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+t+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.";L(a,o)}var i=u(Ye.run,e,n);if("Ok"===i.ctor)return r(i._0);var a="Trying to initialize the `"+t+"` module with an unexpected flag.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0;L(a,o)}});function S(e){return n((t,r)=>n=>(o,a,i)=>{var c=e(n,a);void 0===i?function(e,t,r,n){t.embed=function(t,r){for(;t.lastChild;)t.removeChild(t.lastChild);return At.initialize(n(e.init,r,t),e.update,e.subscriptions,z(t,e.view))},t.fullscreen=function(t){return At.initialize(n(e.init,t,document.body),e.update,e.subscriptions,z(document.body,e.view))}}(r,o,0,c):function(e,t,r,n){t.fullscreen=function(t){var o={doc:void 0};return At.initialize(n(e.init,t,document.body),e.update(q(o)),e.subscriptions,J(r,document.body,o,e.view,e.viewIn,e.viewOut))},t.embed=function(t,o){var a={doc:void 0};return At.initialize(n(e.init,o,t),e.update(q(a)),e.subscriptions,J(r,t,a,e.view,e.viewIn,e.viewOut))}}(u(t,i,r),o,a,c)})}function L(e,t){throw t&&(t.innerHTML='

Oops! Something went wrong when starting your Elm program.

'+e+"
"),new Error(e)}function z(e,t){return(r,n)=>{var o={tagger:r,parent:void 0},a=t(n),i=h(a,o);return e.appendChild(i),P(i,t,a,o)}}var D="undefined"!=typeof requestAnimationFrame?requestAnimationFrame:e=>{setTimeout(e,1e3/60)};function P(e,t,r,n){var o,a="NO_REQUEST",i=r;function c(){switch(a){case"NO_REQUEST":throw new Error("Unexpected draw callback.\nPlease report this to .");case"PENDING_REQUEST":D(c),a="EXTRA_REQUEST";var r=t(o),u=k(i,r);return e=C(e,i,u,n),void(i=r);case"EXTRA_REQUEST":return void(a="NO_REQUEST")}}return function(e){"NO_REQUEST"===a&&D(c),a="PENDING_REQUEST",o=e}}function q(e){return Mt.nativeBinding(t=>{var r=e.doc;if(r){var n=r.getElementsByClassName("debugger-sidebar-messages")[0];n&&(n.scrollTop=n.scrollHeight)}t(Mt.succeed(p.Tuple0))})}function J(e,t,r,n,o,a){return(i,u)=>{var s={tagger:i,parent:void 0},l={tagger:i,parent:void 0},_=n(u),d=h(_,s);t.appendChild(d);var f=P(d,n,_,s),p=o(u)._1,m=h(p,l);t.appendChild(m);var g=P(m,function(e,t,r){var n,o=function(e){return t=>{if("keydown"!==t.type||!t.metaKey||82!==t.which){for(var r="scroll"===t.type||"wheel"===t.type,n=t.target;null!==n;){if("elm-overlay-message-details"===n.className&&r)return;if(n===e&&!r)return;n=n.parentNode}t.stopPropagation(),t.preventDefault()}}}(t),a="Normal",i=e.tagger,c=()=>{};return t=>{var u=r(t),s=u._0.ctor;return e.tagger="Normal"===s?i:c,a!==s&&(Z("removeEventListener",o,a),Z("addEventListener",o,s),"Normal"===a&&(n=document.body.style.overflow,document.body.style.overflow="hidden"),"Normal"===s&&(document.body.style.overflow=n),a=s),u._1}}(s,m,o),p,l),v=function(e,t,r,n,o,a){var i,u;return function(e){if(e.isDebuggerOpen){if(!a.doc)return i=t(e),void(u=function(e,t,r,n){var o=screen.width-900,a=screen.height-360,i=window.open("","","width=900,height=360,left="+o+",top="+a);t.doc=c=i.document,c.title="Debugger - "+e,c.body.style.margin="0",c.body.style.padding="0";var u=h(r,n);function s(){t.doc=void 0,i.close()}return c.body.appendChild(u),c.addEventListener("keydown",e=>{e.metaKey&&82===e.which&&window.location.reload(),38===e.which&&(n.tagger({ctor:"Up"}),e.preventDefault()),40===e.which&&(n.tagger({ctor:"Down"}),e.preventDefault())}),window.addEventListener("unload",s),i.addEventListener("unload",()=>{t.doc=void 0,window.removeEventListener("unload",s),n.tagger({ctor:"Close"})}),c=document,u}(o,a,i,r));c=a.doc;var n=t(e),s=k(i,n);u=C(u,i,s,r),i=n,c=document}}}(0,a,l,0,e,r);return function(e){f(e),g(e),v(e)}}}function Z(e,t,r){switch(r){case"Normal":return;case"Pause":return U(e,t,V);case"Message":return U(e,t,F)}}function U(e,t,r){for(var n=0;r.length>n;n++)document.body[e](r[n],t,!0)}var V=["click","dblclick","mousemove","mouseup","mousedown","mouseenter","mouseleave","touchstart","touchend","touchcancel","touchmove","pointerdown","pointerup","pointerover","pointerout","pointerenter","pointerleave","pointermove","pointercancel","dragstart","drag","dragend","dragenter","dragover","dragleave","drop","keyup","keydown","keypress","input","change","focus","blur"],F=V.concat("wheel","scroll");return{node(e){return n((t,r)=>((e,t,r)=>{for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u.descendantsCount||0,i.push(u),r=r._1}return{type:"node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}})(e,t,r))},text(e){return{type:"text",text:e}},custom(e,t,r){return{type:"custom",facts:_(e).facts,model:t,impl:r}},map:n(function(e,t){return{type:"tagger",tagger:e,node:t,descendantsCount:1+(t.descendantsCount||0)}}),on:o(d),style(t){return{key:e,value:t}},property:n(function(e,t){return{key:e,value:t}}),attribute:n(function(e,t){return{key:r,realKey:e,value:t}}),attributeNS:o(function(e,t,r){return{key:i,realKey:t,value:{value:r,namespace:e}}}),mapProperty:n(function(e,r){return r.key!==t?r:d(r.realKey,r.value.options,u(dt,e,r.value.decoder))}),lazy:n(function(e,t){return l(e,[t],()=>e(t))}),lazy2:o(function(e,t,r){return l(e,[t,r],()=>u(e,t,r))}),lazy3:a(function(e,t,r,n){return l(e,[t,r,n],()=>s(e,t,r,n))}),keyedNode:o(function(e,t,r){for(var n=_(t),o=n.namespace,a=n.facts,i=[],c=0;"[]"!==r.ctor;){var u=r._0;c+=u._1.descendantsCount||0,i.push(u),r=r._1}return{type:"keyed-node",tag:e,facts:a,children:i,namespace:o,descendantsCount:c+=i.length}}),program:E,programWithFlags:R,staticProgram(e){var t=p.Tuple2(p.Tuple0,Bt);return u(E,$,{init:t,view:()=>e,update:n(()=>t),subscriptions:()=>Jt})()}}})(),It=Q.log,jt=e=>{return e._1},Tt=e=>{return e._0},At=(()=>{function e(){return()=>{}}function t(e,t,n,o){var c,s={};var l=i(Mt.nativeBinding(t=>{var r=e._0;c=o(_,r);var a=e._1,i=n(r);d(s,a,i),t(Mt.succeed(r))}),function(e,r){return Mt.nativeBinding(o=>{var a=u(t,e,r);c(r=a._0);var i=a._1,l=n(r);d(s,i,l),o(Mt.succeed(r))})});function _(e){Mt.rawSend(l,e)}var f=function(e,t){var n;for(var o in r){var i=r[o];i.isForeign&&((n=n||{})[o]="cmd"===i.tag?g(o):b(o,t)),e[o]=a(i,t)}return n}(s,_);return f?{ports:f}:{}}var r={};function a(e,t){var r={main:t,self:void 0},n=e.tag,o=e.onEffects,a=e.onSelfMsg;var c=i(e.init,function(e,t){if("self"===e.ctor)return s(a,r,e._0,t);var i=e._0;switch(n){case"cmd":return s(o,r,i.cmds,t);case"sub":return s(o,r,i.subs,t);case"fx":return l(o,r,i.cmds,i.subs,t)}});return r.self=c,c}function i(e,t){var r=Mt.andThen;var n=u(r,function e(n){var o=Mt.receive(e=>t(e,n));return u(r,e,o)},e);return Mt.rawSpawn(n)}function c(e){return t=>({type:"leaf",home:e,value:t})}function _(e){return{type:"node",branches:e}}function d(e,t,r){var n={};for(var o in f(!0,t,n,null),f(!1,r,n,null),e){Mt.rawSend(e[o],{ctor:"fx",_0:o in n?n[o]:{cmds:A.Nil,subs:A.Nil}})}}function f(e,t,n,o){switch(t.type){case"leaf":var a=t.home,i=function(e,t,n,o){return u(e?r[t].cmdMap:r[t].subMap,function(e){var t=n;for(;t;)e=t.tagger(e),t=t.rest;return e},o)}(e,a,o,t.value);return void(n[a]=function(e,t,r){if(r=r||{cmds:A.Nil,subs:A.Nil},e)return r.cmds=A.Cons(t,r.cmds),r;return r.subs=A.Cons(t,r.subs),r}(e,i,n[a]));case"node":for(var c=t.branches;"[]"!==c.ctor;)f(e,c._0,n,o),c=c._1;return;case"map":return void f(e,t.tree,n,{tagger:t.tagger,rest:o})}}function h(e){if(e in r)throw new Error("There can only be one port named `"+e+"`, but your program has multiple.")}var m=n(function(e,t){return t});function g(e){var t=[],n=r[e].converter,a=Mt.succeed(null);return r[e].init=a,r[e].onEffects=o(function(e,r){for(;"[]"!==r.ctor;){for(var o=t,i=n(r._0),c=0;o.length>c;c++)o[c](i);r=r._1}return a}),{subscribe(e){t.push(e)},unsubscribe(e){var r=(t=t.slice()).indexOf(e);0>r||t.splice(r,1)}}}var v=n(function(e,t){return r=>e(t(r))});function b(e,t){var n=[],a=A.Nil,i=r[e].converter,c=function(e,t,r){for(var o=_(e,t,r),a=0;n.length>a;a++)d(n[a]);return n=null,s=d,c=_,o},s=function(e){n.push(e)},l=Mt.succeed(null);function _(e,t){return a=t,l}function d(e){for(var r=a;"[]"!==r.ctor;)t(r._0(e)),r=r._1}return r[e].init=l,r[e].onEffects=o(function(e,t,r){return c(e,t,r)}),{send(t){var r=u(st,i,t);if("Err"===r.ctor)throw new Error("Trying to send an unexpected type of value through port `"+e+"`:\n"+r._0);s(r._0)}}}return{sendToApp:n(function(e,t){return Mt.nativeBinding(r=>{e.main(t),r(Mt.succeed(p.Tuple0))})}),sendToSelf:n(function(e,t){return u(Mt.send,e.self,{ctor:"self",_0:t})}),effectManagers:r,outgoingPort(e,t){return h(e),r[e]={tag:"cmd",cmdMap:m,converter:t,isForeign:!0},c(e)},incomingPort(e,t){return h(e),r[e]={tag:"sub",subMap:v,converter:t,isForeign:!0},c(e)},htmlToProgram(){var e=_(A.Nil),t=p.Tuple2(p.Tuple0,e);return Ut({init:t,view:()=>main,update:n(()=>t),subscriptions:()=>e})},program(r){return()=>(n,o)=>{n.worker=(n=>{if(void 0!==n)throw new Error("The `"+o+"` module does not need flags.\nCall "+o+".worker() with no arguments and you should be all set!");return t(r.init,r.update,r.subscriptions,e)})}},programWithFlags(r){return n=>(o,a)=>{o.worker=(o=>{if(void 0===n)throw new Error("Are you trying to sneak a Never value into Elm? Trickster!\nIt looks like "+a+".main is defined with `programWithFlags` but has type `Program Never`.\nUse `program` instead if you do not want flags.");var i=u(Ye.run,n,o);if("Err"===i.ctor)throw new Error(a+".worker(...) was called with an unexpected argument.\nI tried to convert it to an Elm value, but ran into this problem:\n\n"+i._0);return t(r.init(i._0),r.update,r.subscriptions,e)})}},initialize:t,leaf:c,batch:_,map:n(function(e,t){return{type:"map",tagger:e,tree:t}})}})(),Mt=(()=>{var e=1e4;function t(e){return{ctor:"_Task_succeed",value:e}}function r(e){return{ctor:"_Task_nativeBinding",callback:e,cancel:null}}function o(e){var t={ctor:"_Process",id:p.guid(),root:e,stack:null,mailbox:[]};return s(t),t}function a(e,t){e.mailbox.push(t),s(e)}function i(t,r){for(;e>t;){var n=r.root.ctor;if("_Task_succeed"!==n)if("_Task_fail"!==n)if("_Task_andThen"!==n)if("_Task_onError"!==n){if("_Task_nativeBinding"===n){r.root.cancel=r.root.callback(e=>{r.root=e,s(r)});break}if("_Task_receive"!==n)throw new Error(n);var o=r.mailbox;if(0===o.length)break;r.root=r.root.callback(o.shift()),++t}else r.stack={ctor:"_Task_onError",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else r.stack={ctor:"_Task_andThen",callback:r.root.callback,rest:r.stack},r.root=r.root.task,++t;else{for(;r.stack&&"_Task_andThen"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}else{for(;r.stack&&"_Task_onError"===r.stack.ctor;)r.stack=r.stack.rest;if(null===r.stack)break;r.root=r.stack.callback(r.root.value),r.stack=r.stack.rest,++t}}return e>t?t+1:(s(r),t)}var c=!1,u=[];function s(e){u.push(e),c||(setTimeout(l,0),c=!0)}function l(){for(var t,r=0;e>r&&(t=u.shift());)t.root&&(r=i(r,t));t?setTimeout(l,0):c=!1}return{succeed:t,fail(e){return{ctor:"_Task_fail",value:e}},nativeBinding:r,andThen:n(function(e,t){return{ctor:"_Task_andThen",callback:e,task:t}}),onError:n(function(e,t){return{ctor:"_Task_onError",callback:e,task:t}}),receive(e){return{ctor:"_Task_receive",callback:e}},spawn(e){return r(r=>{r(t(o(e)))})},kill(e){return r(r=>{var n=e.root;"_Task_nativeBinding"===n.ctor&&n.cancel&&n.cancel(),e.root=null,r(t(p.Tuple0))})},sleep(e){return r(r=>{var n=setTimeout(()=>{r(t(p.Tuple0))},e);return()=>{clearTimeout(n)}})},send:n(function(e,n){return r(r=>{a(e,n),r(t(p.Tuple0))})}),rawSpawn:o,rawSend:a}})(),Ct=At.batch,Bt=Ct({ctor:"[]"}),Ot=Ot||{};Ot["!"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:Ct(t)}));var Et,Rt,St,Lt,zt,Dt,Pt,$t=At.map,qt=At.batch,Jt=qt({ctor:"[]"}),Zt=e=>u(Nt.programWithFlags,void 0,e),Ut=e=>u(Nt.program,$,e),Vt={stopPropagation:!1,preventDefault:!1},Ft=Nt.on,Wt=n((e,t)=>s(Ft,e,Vt,t)),Gt=Nt.property,Yt=Nt.map,Ht=Nt.text,Kt=Nt.node,Qt=Zt,Xt=Yt,er=Ht,tr=Kt,rr=(tr("body"),tr("section"),tr("nav"),tr("article"),tr("aside"),tr("h1"),tr("h2"),tr("h3"),tr("h4"),tr("h5"),tr("h6"),tr("header"),tr("footer"),tr("address"),tr("main"),tr("p"),tr("hr"),tr("pre"),tr("blockquote"),tr("ol"),tr("ul"),tr("li"),tr("dl"),tr("dt"),tr("dd"),tr("figure"),tr("figcaption"),tr("div")),nr=(tr("a"),tr("em"),tr("strong"),tr("small"),tr("s"),tr("cite"),tr("q"),tr("dfn"),tr("abbr"),tr("time"),tr("code"),tr("var"),tr("samp"),tr("kbd"),tr("sub"),tr("sup"),tr("i"),tr("b"),tr("u"),tr("mark"),tr("ruby"),tr("rt"),tr("rp"),tr("bdi"),tr("bdo"),tr("span")),or=(tr("br"),tr("wbr"),tr("ins"),tr("del"),tr("img"),tr("iframe"),tr("embed"),tr("object"),tr("param"),tr("video"),tr("audio"),tr("source"),tr("track"),tr("canvas"),tr("math"),tr("table"),tr("caption"),tr("colgroup"),tr("col"),tr("tbody"),tr("thead"),tr("tfoot"),tr("tr"),tr("td"),tr("th"),tr("form"),tr("fieldset"),tr("legend"),tr("label")),ar=tr("input"),ir=(tr("button"),tr("select"),tr("datalist"),tr("optgroup"),tr("option"),tr("textarea"),tr("keygen"),tr("output"),tr("progress"),tr("meter"),tr("details"),tr("summary"),tr("menuitem"),tr("menu"),n((e,t)=>{var r=e;if("[]"===r.ctor)return ce(t);var o=r._1,a=r._0,i=t;switch(i.ctor){case"ObjectValue":return u(ie,ir(o),u(le,"Key not found",s(R,n((e,t)=>{var r=e;return p.eq(t,N)?p.eq(r._0,a)?j(r._1):N:t}),N,i._0)));case"ArrayValue":return u(ie,ir(o),u(ie,e=>u(le,"Index is too big",D(u(C,e,i._0))),de(a)));default:return ae("You are trying to access property of something that is not object or array")}})),cr=e=>{var t=e;switch(t.ctor){case"ObjectValue":return Ke(u(q,e=>{return{ctor:"_Tuple2",_0:e._0,_1:cr(e._1)}},t._0));case"ArrayValue":return He(u(q,cr,t._0));case"StringValue":return tt(t._0);case"BoolValue":return Xe(t._0);case"NullValue":return Qe;default:return et(t._0)}},ur=e=>({ctor:"StringValue",_0:e}),sr=e=>({ctor:"NumericValue",_0:e}),lr={ctor:"NullValue"},_r=e=>({ctor:"BoolValue",_0:e}),dr=e=>({ctor:"ArrayValue",_0:e}),fr=e=>({ctor:"ObjectValue",_0:e}),pr=(Et=u(dt,dr,vt(ut(()=>pr))),Rt=u(dt,fr,u(at,e=>ct(V(e)),gt(ut(()=>pr)))),ft({ctor:"::",_0:Rt,_1:{ctor:"::",_0:Et,_1:{ctor:"::",_0:nt(lr),_1:{ctor:"::",_0:u(dt,ur,wt),_1:{ctor:"::",_0:u(dt,sr,yt),_1:{ctor:"::",_0:u(dt,_r,kt),_1:{ctor:"[]"}}}}}}})),hr=o((e,t,r)=>{var o=r;switch(o.ctor){case"ObjectValue":return ce(fr((r=>u(O,t=>p.eq(t._0,e),r)?u(q,r=>{var n=r,o=n._0;return p.eq(o,e)?{ctor:"_Tuple2",_0:e,_1:t}:{ctor:"_Tuple2",_0:o,_1:n._1}},r):u(k["++"],r,{ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))(o._0)));case"ArrayValue":var a=o._0,i=u(oe,S(a),u(lt,xt,e));return p.cmp(S(a),i)>0?ce(dr(u(H,n((e,r)=>p.eq(e,i)?t:r),a))):ce(dr(u(k["++"],a,{ctor:"::",_0:t,_1:{ctor:"[]"}})));default:return p.eq(e,"0")?ce(dr({ctor:"::",_0:t,_1:{ctor:"[]"}})):ce(fr({ctor:"::",_0:{ctor:"_Tuple2",_0:e,_1:t},_1:{ctor:"[]"}}))}}),mr=o((e,t,r)=>{var o,a=V(e);return"[]"===(o=a).ctor?ce(t):s(R,n((e,t)=>{var n=t,o=n._0,a=V(o),i=u(ie,t=>u(ie,u(hr,e,t),u(ir,a,r)),n._1),c=o;return"[]"===c.ctor?{ctor:"_Tuple2",_0:{ctor:"[]"},_1:i}:{ctor:"_Tuple2",_0:c._1,_1:i}}),{ctor:"_Tuple2",_0:o._1,_1:ce(t)},a)._1}),gr=e=>({ctor:"Unknown",_0:e}),vr={ctor:"Switch"},br={ctor:"PasswordField"},yr=ft({ctor:"::",_0:u(at,e=>p.eq(e,"password")?ct(br):p.eq(e,"switch")?ct(vr):it(""),u(ht,"widget",wt)),_1:{ctor:"::",_0:u(dt,gr,ot),_1:{ctor:"[]"}}}),xr=e=>s(R,n((e,t)=>{var r=t,n=r._2,o=r._1,a=r._0;return{ctor:"_Tuple3",_0:a+1,_1:p.cmp(o,-1)>0?o:u(L,e,n)?a:-1,_2:u(C,1,n)}}),{ctor:"_Tuple3",_0:0,_1:-1,_2:u(C,1,e)},e)._1,kr=e=>p.eq(e,(()=>b(y(e)))()),wr=ct,Nr=(at(g),_t(n((e,t)=>t(e)))),Ir=o((e,t,r)=>{return u(at,n=>{var o=u(st,e,n);if("Ok"===o.ctor){var a=u(st,(e=>ft({ctor:"::",_0:e,_1:{ctor:"::",_0:nt(r),_1:{ctor:"[]"}}}))(t),o._0);return"Ok"===a.ctor?ct(a._0):it(a._0)}return ct(r)},ot)}),jr=a((e,t,r,n)=>u(Nr,s(Ir,u(ht,e,ot),t,r),n)),Tr=o((e,t,r)=>u(Nr,u(mt,e,t),r)),Ar=n((e,t)=>{var r=t;return"ObjectSchema"===r.ctor?D(u(U,t=>{var r=t;return p.eq(r._0,e)?j(r._1):N},u(oe,{ctor:"[]"},u(st,gt(ot),r._0.source)))):N}),Mr=u(at,e=>p.cmp(e,0)>-1&&kr(e)?ct(e):it("Expected non-negative int"),xt),Cr=e=>z(e)?it("List is empty"):ct(e),Br=u(at,Cr,u(at,e=>ct(e),vt(ot))),Or=e=>t=>r=>n=>o=>a=>i=>c=>u=>s=>l=>_=>d=>f=>p=>h=>m=>g=>v=>b=>y=>x=>k=>w=>N=>I=>j=>T=>A=>M=>C=>B=>O=>E=>R=>S=>L=>z=>({type_:e,id:t,ref:r,title:n,description:o,$default:a,examples:i,definitions:c,multipleOf:u,maximum:s,exclusiveMaximum:l,minimum:_,exclusiveMinimum:d,maxLength:f,minLength:p,pattern:h,format:m,items:g,additionalItems:v,maxItems:b,minItems:y,uniqueItems:x,contains:k,maxProperties:w,minProperties:N,required:I,properties:j,patternProperties:T,additionalProperties:A,dependencies:M,propertyNames:C,$enum:B,$const:O,allOf:E,anyOf:R,oneOf:S,not:L,source:z}),Er=e=>({ctor:"ObjectSchema",_0:e}),Rr=e=>({ctor:"BooleanSchema",_0:e}),Sr={ctor:"NoItems"},Lr=e=>({ctor:"NumberBoundary",_0:e}),zr=e=>({ctor:"BoolBoundary",_0:e}),Dr=e=>({ctor:"NullableType",_0:e}),Pr=e=>({ctor:"SingleType",_0:e}),$r={ctor:"AnyType"},qr={type_:$r,id:N,ref:N,title:N,description:N,$default:N,examples:N,definitions:N,multipleOf:N,maximum:N,exclusiveMaximum:N,minimum:N,exclusiveMinimum:N,maxLength:N,minLength:N,pattern:N,format:N,items:Sr,additionalItems:N,maxItems:N,minItems:N,uniqueItems:N,contains:N,maxProperties:N,minProperties:N,required:N,properties:N,patternProperties:N,additionalProperties:N,dependencies:{ctor:"[]"},propertyNames:N,$enum:N,$const:N,allOf:N,anyOf:N,oneOf:N,not:N,source:Ke({ctor:"[]"})},Jr=Er(qr),Zr={ctor:"NullType"},Ur={ctor:"ObjectType"},Vr={ctor:"ArrayType"},Fr={ctor:"BooleanType"},Wr={ctor:"StringType"},Gr={ctor:"NumberType"},Yr={ctor:"IntegerType"},Hr=e=>{switch(e){case"integer":return ce(Yr);case"number":return ce(Gr);case"string":return ce(Wr);case"boolean":return ce(Fr);case"array":return ce(Vr);case"object":return ce(Ur);case"null":return ce(Zr);default:return ae(u(k["++"],"Unknown type: ",e))}},Kr=e=>{var t=Hr(e);return"Ok"===t.ctor?ct(t._0):it(t._0)},Qr=e=>{var t,r,o=e;e:do{if("::"===o.ctor){if("::"===o._1.ctor){if("[]"===o._1._1.ctor){if("null"===o._1._0)return u(dt,Dr,Kr(o._0));if("null"===o._0)return u(dt,Dr,Kr(o._1._0));break e}break e}return u(dt,Pr,Kr(o._0))}break e}while(0);return t=u(ie,e=>ce((e=>({ctor:"UnionType",_0:e}))(e)),(e=>u(ue,V,s(R,e=>ie(t=>u(ue,u(h,n((e,t)=>({ctor:"::",_0:e,_1:t})),t),e)),ce({ctor:"[]"}),e)))(u(q,Hr,(e=>u(M,g,e))(o)))),"Ok"===(r=t).ctor?ct(r._0):it(r._0)},Xr=(St=ft({ctor:"::",_0:u(dt,zr,kt),_1:{ctor:"::",_0:u(dt,Lr,yt),_1:{ctor:"[]"}}}),Lt=u(at,e=>ct(Rr(!!e)),kt),zt=u(at,Qr,vt(wt)),Dt=u(at,Kr,wt),Pt=s(Tr,{ctor:"[]"},ot,l(jr,"not",bt(ut(()=>Xr)),N,l(jr,"oneOf",bt(ut(()=>rn)),N,l(jr,"anyOf",bt(ut(()=>rn)),N,l(jr,"allOf",bt(ut(()=>rn)),N,l(jr,"const",u(dt,j,ot),N,l(jr,"enum",bt(Br),N,l(jr,"propertyNames",bt(ut(()=>Xr)),N,l(jr,"dependencies",ut(()=>en),{ctor:"[]"},l(jr,"additionalProperties",bt(ut(()=>Xr)),N,l(jr,"patternProperties",bt(ut(()=>nn)),N,l(jr,"properties",bt(ut(()=>nn)),N,l(jr,"required",bt(vt(wt)),N,l(jr,"minProperties",bt(Mr),N,l(jr,"maxProperties",bt(Mr),N,l(jr,"contains",bt(ut(()=>Xr)),N,l(jr,"uniqueItems",bt(kt),N,l(jr,"minItems",bt(Mr),N,l(jr,"maxItems",bt(Mr),N,l(jr,"additionalItems",bt(ut(()=>Xr)),N,l(jr,"items",ut(()=>tn),Sr,l(jr,"format",bt(wt),N,l(jr,"pattern",bt(wt),N,l(jr,"minLength",bt(Mr),N,l(jr,"maxLength",bt(Mr),N,l(jr,"exclusiveMinimum",bt(St),N,l(jr,"minimum",bt(yt),N,l(jr,"exclusiveMaximum",bt(St),N,l(jr,"maximum",bt(yt),N,l(jr,"multipleOf",bt(yt),N,l(jr,"definitions",bt(ut(()=>nn)),N,l(jr,"examples",bt(vt(ot)),N,l(jr,"default",u(dt,j,ot),N,l(jr,"description",bt(wt),N,l(jr,"title",bt(wt),N,l(jr,"$ref",bt(wt),N,u(Nr,s(_t,n((e,t)=>p.eq(e,N)?t:e),pt(u(ht,"$id",wt)),pt(u(ht,"id",wt))),l(jr,"type",ft({ctor:"::",_0:zt,_1:{ctor:"::",_0:u(dt,Pr,Dt),_1:{ctor:"[]"}}}),$r,wr(Or))))))))))))))))))))))))))))))))))))))),ft({ctor:"::",_0:Lt,_1:{ctor:"::",_0:u(at,e=>ct(Er(e)),Pt),_1:{ctor:"[]"}}})),en=gt(ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayPropNames",_0:e}),vt(wt)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"PropSchema",_0:e}),Xr),_1:{ctor:"[]"}}})),tn=ft({ctor:"::",_0:u(dt,e=>({ctor:"ArrayOfItems",_0:e}),vt(Xr)),_1:{ctor:"::",_0:u(dt,e=>({ctor:"ItemDefinition",_0:e}),Xr),_1:{ctor:"[]"}}}),rn=u(at,Cr,vt(ut(()=>Xr))),nn=u(dt,e=>({ctor:"Schemata",_0:e}),u(at,e=>ct(V(e)),gt(ut(()=>Xr)))),on=n((e,t)=>({schema:e,focused:N,value:t,errors:Re,beingEdited:{ctor:"[]"},editedNumber:""})),an=e=>({ctor:"EditNumber",_0:e}),cn=n((e,t)=>({ctor:"EditValue",_0:e,_1:t})),un=e=>({ctor:"FocusNumericInput",_0:e}),sn=e=>({ctor:"FocusInput",_0:e}),ln={ctor:"Object"},_n={ctor:"JsonEditor"},dn={ctor:"Checkbox"},fn={ctor:"Switch"},pn={ctor:"NumberField"},hn={ctor:"TextField"},mn=(()=>{return{regex(e){return new RegExp(e,"g")},caseInsensitive(e){return new RegExp(e.source,"gi")},escape(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")},contains:n(function(e,t){return null!==t.match(e)}),find:o(function(e,t,r){e="All"===e.ctor?1/0:e._0;for(var n,o=[],a=0,i=r,c=t.lastIndex,u=-1;a++0;){var _=n[s];l[--s]=void 0===_?N:j(_)}o.push({match:n[0],submatches:A.fromArray(l),index:n.index,number:a}),u=t.lastIndex}return t.lastIndex=c,A.fromArray(o)}),replace:a(function(e,t,r,n){e="All"===e.ctor?1/0:e._0;var o=0;return n.replace(t,function(t){if(o++>=e)return t;for(var n=arguments.length-3,a=new Array(n);n>0;){var i=arguments[n];a[--n]=void 0===i?N:j(i)}return r({match:t,submatches:A.fromArray(a),index:arguments[arguments.length-2],number:o})})}),split:o(function(e,t,r){if((e="All"===e.ctor?1/0:e._0)===1/0)return A.fromArray(r.split(t));for(var n,o=r,a=[],i=t.lastIndex,c=t.lastIndex;e--&&(n=t.exec(o));)a.push(o.slice(i,n.index)),i=t.lastIndex;return a.push(o.slice(i)),t.lastIndex=c,A.fromArray(a)})}})(),gn=mn.replace,vn=mn.contains,bn=mn.regex,yn={ctor:"All"},xn=e=>u(oe,Jr,u(lt,Xr,e)),kn=xn('\n {\n "$schema": "http://json-schema.org/draft-06/schema#",\n "$id": "http://json-schema.org/draft-06/schema#",\n "title": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "nonNegativeInteger": {\n "type": "integer",\n "minimum": 0\n },\n "nonNegativeIntegerDefault0": {\n "allOf": [\n { "$ref": "#/definitions/nonNegativeInteger" },\n { "default": 0 }\n ]\n },\n "simpleTypes": {\n "enum": [\n "array",\n "boolean",\n "integer",\n "null",\n "number",\n "object",\n "string"\n ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "uniqueItems": true,\n "default": []\n }\n },\n "type": ["object", "boolean"],\n "properties": {\n "$id": {\n "type": "string",\n "format": "uri-reference",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "$ref": {\n "type": "string",\n "format": "uri-reference"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "exclusiveMinimum": 0\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "number"\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "number"\n },\n "maxLength": { "$ref": "#/definitions/nonNegativeInteger" },\n "minLength": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": { "$ref": "#" },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/nonNegativeInteger" },\n "minItems": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "contains": { "$ref": "#" },\n "maxProperties": { "$ref": "#/definitions/nonNegativeInteger" },\n "minProperties": { "$ref": "#/definitions/nonNegativeIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": { "$ref": "#" },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "propertyNames": { "$ref": "#" },\n "const": {},\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "format": { "type": "string" },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "default": {}\n }\n '),wn=xn('\n {\n "id": "http://json-schema.org/draft-04/schema#",\n "$schema": "http://json-schema.org/draft-04/schema#",\n "description": "Core schema meta-schema",\n "definitions": {\n "schemaArray": {\n "type": "array",\n "minItems": 1,\n "items": { "$ref": "#" }\n },\n "positiveInteger": {\n "type": "integer",\n "minimum": 0\n },\n "positiveIntegerDefault0": {\n "allOf": [ { "$ref": "#/definitions/positiveInteger" }, { "default": 0 } ]\n },\n "simpleTypes": {\n "enum": [ "array", "boolean", "integer", "null", "number", "object", "string" ]\n },\n "stringArray": {\n "type": "array",\n "items": { "type": "string" },\n "minItems": 1,\n "uniqueItems": true\n }\n },\n "type": "object",\n "properties": {\n "id": {\n "type": "string",\n "format": "uri",\n "description": "Identifier of schema"\n },\n "$schema": {\n "type": "string",\n "format": "uri",\n "description": "Link to a schema which validates this object"\n },\n "title": {\n "type": "string"\n },\n "description": {\n "type": "string"\n },\n "default": {},\n "multipleOf": {\n "type": "number",\n "minimum": 0,\n "exclusiveMinimum": true\n },\n "maximum": {\n "type": "number"\n },\n "exclusiveMaximum": {\n "type": "boolean",\n "default": false\n },\n "minimum": {\n "type": "number"\n },\n "exclusiveMinimum": {\n "type": "boolean",\n "default": false\n },\n "maxLength": { "$ref": "#/definitions/positiveInteger" },\n "minLength": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "pattern": {\n "type": "string",\n "format": "regex"\n },\n "additionalItems": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "items": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/schemaArray" }\n ],\n "default": {}\n },\n "maxItems": { "$ref": "#/definitions/positiveInteger" },\n "minItems": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "uniqueItems": {\n "type": "boolean",\n "default": false\n },\n "maxProperties": { "$ref": "#/definitions/positiveInteger" },\n "minProperties": { "$ref": "#/definitions/positiveIntegerDefault0" },\n "required": { "$ref": "#/definitions/stringArray" },\n "additionalProperties": {\n "anyOf": [\n { "type": "boolean" },\n { "$ref": "#" }\n ],\n "default": {}\n },\n "definitions": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "properties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "patternProperties": {\n "type": "object",\n "additionalProperties": { "$ref": "#" },\n "default": {}\n },\n "dependencies": {\n "type": "object",\n "additionalProperties": {\n "anyOf": [\n { "$ref": "#" },\n { "$ref": "#/definitions/stringArray" }\n ]\n }\n },\n "enum": {\n "type": "array",\n "minItems": 1,\n "uniqueItems": true\n },\n "type": {\n "anyOf": [\n { "$ref": "#/definitions/simpleTypes" },\n {\n "type": "array",\n "items": { "$ref": "#/definitions/simpleTypes" },\n "minItems": 1,\n "uniqueItems": true\n }\n ]\n },\n "allOf": { "$ref": "#/definitions/schemaArray" },\n "anyOf": { "$ref": "#/definitions/schemaArray" },\n "oneOf": { "$ref": "#/definitions/schemaArray" },\n "not": { "$ref": "#" }\n },\n "dependencies": {\n "exclusiveMaximum": [ "maximum" ],\n "exclusiveMinimum": [ "minimum" ]\n },\n "default": {}\n }\n '),Nn=e=>{return"ObjectSchema"===e.ctor?j(e._0):N},In=e=>u(fe,"#",e)?u(pe,1,e):e,jn=bn("%25"),Tn=bn("~1"),An=bn("~0"),Mn=e=>l(gn,yn,jn,()=>"%",l(gn,yn,Tn,()=>"/",l(gn,yn,An,()=>"~",e))),Cn=bn("\\/[^\\/]*$"),Bn=bn("\\/\\/|^\\/"),On=n((e,t)=>{var r=vn(Bn),o=vn(Cn),a=n((e,t)=>r(e)&&o(e)?l(gn,yn,Cn,()=>u(k["++"],"/",t),e):t),i=(()=>{var n=u(me,"#",e);if("[]"===n.ctor)return{ctor:"_Tuple2",_0:t,_1:""};if("[]"===n._1.ctor){var o=n._0;return p.eq(o,"")?{ctor:"_Tuple2",_0:t,_1:""}:r(o)?{ctor:"_Tuple2",_0:o,_1:""}:{ctor:"_Tuple2",_0:u(a,t,o),_1:""}}var i=n._1._0,c=n._0;return p.eq(c,"")?{ctor:"_Tuple2",_0:t,_1:i}:r(c)?{ctor:"_Tuple2",_0:c,_1:i}:{ctor:"_Tuple2",_0:u(a,t,c),_1:i}})(),c=i._0,s=i._1,_=o(s);return{ctor:"_Tuple3",_0:_,_1:c,_2:_?u(q,Mn,u(C,1,u(me,"/",s))):p.eq(s,"")?{ctor:"[]"}:{ctor:"::",_0:s,_1:{ctor:"[]"}}}}),En=a((e,t,r,i)=>{var c=a((e,r,a,i)=>{(e=>s(be,o((e,t,r)=>({ctor:"::",_0:e,_1:r})),{ctor:"[]"},e))(t);var _,d,f,h=u(On,i,e),m=h._0,g=h._1,v=h._2,b=(d=(_={ctor:"_Tuple3",_0:m,_1:g,_2:v})._2,f=_._1,_._0?u(n((e,t)=>u(k["++"],e,t)),f,u(he,"/",{ctor:"::",_0:"#",_1:d})):z(d)?f:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],f,"#"),u(he,"/",d)));return p.cmp(r,0)>0?m?u(I,e=>u(I,e=>{if("ObjectSchema"===e.ctor){var t=e._0.ref;return"Just"===t.ctor?l(c,g,r-1,a,t._0):j({ctor:"_Tuple2",_0:g,_1:e})}return j({ctor:"_Tuple2",_0:g,_1:e})},ne(u(st,u(mt,v,Xr),e.source))),u(I,Nn,p.eq(g,"")?j(a):u(we,g,t))):p.eq(b,"")?j({ctor:"_Tuple2",_0:"",_1:a}):u(T,e=>({ctor:"_Tuple2",_0:g,_1:e}),u(we,b,t)):j({ctor:"_Tuple2",_0:g,_1:a})}),_=u(w,e,u(T,In,u(I,e=>e.id,Nn(r))));return l(c,_,10,r,i)}),Rn=s(We,"http://json-schema.org/draft-04/schema",wn,s(We,"http://json-schema.org/draft-06/schema#",kn,s(We,"http://json-schema.org/draft-06/schema",kn,Re))),Sn=((()=>({and:n(function(e,t){return e&t}),or:n(function(e,t){return e|t}),xor:n(function(e,t){return e^t}),complement(e){return~e},shiftLeftBy:n((e,t)=>t<t>>e),shiftRightZfBy:n((e,t)=>t>>>e)}))(),o((e,t,r)=>{var o=r._0,a=r._1;return"Nothing"===a.ctor?p.cmp(t,55296)>-1&&0>p.cmp(t,57344)?{ctor:"_Tuple2",_0:o,_1:j(t)}:{ctor:"_Tuple2",_0:u(e,t,o),_1:N}:{ctor:"_Tuple2",_0:s(h,e,o,u(n((e,t)=>e+t),65536,1023&t|(1023&a._0)<<10)),_1:N}})),Ln=o((e,t,r)=>Tt(s(ge,t=>u(Sn,e,te(t)),{ctor:"_Tuple2",_0:t,_1:N},r))),zn=e=>s(Ln,m(n((e,t)=>e+t)(1)),0,e),Dn=R(n((e,t)=>{var r=e;if("Ok"===r.ctor)return t;return"Ok"===t.ctor?e:ae(u(k["++"],t._0,r._0))})),Pn=rt(0),$n=e=>{var t=u(st,gt(ot),e);return Pn("Ok"===t.ctor?Ke(u(M,e=>{return e._0},t._0)):e)},qn=n((e,t)=>({ns:e,path:t})),Jn=n((e,t)=>({jsonPointer:e,details:t})),Zn={ctor:"AlwaysFail"},Un=e=>({ctor:"UnresolvableReference",_0:e}),Vn={ctor:"Not"},Fn={ctor:"OneOfNoneSucceed"},Wn=e=>({ctor:"InvalidType",_0:e}),Gn={ctor:"Const"},Yn={ctor:"Enum"},Hn={ctor:"AdditionalPropertyDisallowed"},Kn={ctor:"RequiredProperty"},Qn=n((e,t)=>({ctor:"MinProperties",_0:e,_1:t})),Xn=n((e,t)=>({ctor:"MaxProperties",_0:e,_1:t})),eo={ctor:"Contains"},to=n((e,t)=>({ctor:"MinItems",_0:e,_1:t})),ro=n((e,t)=>({ctor:"MaxItems",_0:e,_1:t})),no=n((e,t)=>({ctor:"Pattern",_0:e,_1:t})),oo=n((e,t)=>({ctor:"MinLength",_0:e,_1:t})),ao=n((e,t)=>({ctor:"MaxLength",_0:e,_1:t})),io=n((e,t)=>({ctor:"ExclusiveMinimum",_0:e,_1:t})),co=n((e,t)=>({ctor:"ExclusiveMaximum",_0:e,_1:t})),uo=n((e,t)=>({ctor:"Minimum",_0:e,_1:t})),so=n((e,t)=>({ctor:"Maximum",_0:e,_1:t})),lo=n((e,t)=>({ctor:"MultipleOf",_0:e,_1:t})),_o=i((e,t,r,c,d)=>{var f=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(ue,()=>n,u(r,a._0,i._0)):ce(n)}return ce(n)}),m=i((e,t,r,n,o)=>{var a=e(o);if("Just"===a.ctor){var i=u(st,t,n);return"Ok"===i.ctor?u(r,a._0,i._0):ce(n)}return ce(n)}),g=n((e,t)=>u(J,t=>{var r=t;return u(vn,bn(e),r._0)},t)),b=n((e,t)=>{return D(u(q,e=>{return e._1},u(J,t=>{return p.eq(t._0,e)},t._0)))}),y=a((e,t,r,n)=>{var o=e=>u(se,e=>({ctor:"::",_0:u(Jn,t,Wn(e)),_1:{ctor:"[]"}}),u(ue,()=>n,u(st,e,n)));switch(r.ctor){case"IntegerType":return o(xt);case"NumberType":return o(yt);case"StringType":return o(wt);case"BooleanType":return o(kt);case"NullType":return o(nt(N));case"ArrayType":return o(vt(ot));default:return o(gt(ot))}}),x=a((e,t,r,n)=>{var o=n.type_;switch(o.ctor){case"AnyType":return ce(r);case"SingleType":return l(y,e,t,o._0,r);case"NullableType":return"Err"===l(y,e,t,Zr,r).ctor?l(y,e,t,o._0,r):ce(r);default:return u(O,n=>p.eq(l(y,e,t,n,r),ce(r)),o._0)?ce(r):ae({ctor:"::",_0:u(Jn,t,Wn("None of desired types match")),_1:{ctor:"[]"}})}}),w=n((e,t)=>s(m,e=>e.$const,ot,n((e,r)=>{var n=$n(r),o=$n(e);return p.eq(o,n)?ce(r):ae({ctor:"::",_0:u(Jn,t,Gn),_1:{ctor:"[]"}})}))),T=n((e,t)=>s(m,e=>e.$enum,ot,n((e,r)=>u(O,e=>p.eq(Pn(e),Pn(r)),e)?ce(r):ae({ctor:"::",_0:u(Jn,t,Yn),_1:{ctor:"[]"}})))),A=a((e,t,r,o)=>_(m,e=>e.required,gt(ot),n((e,o)=>{var a=u(q,e=>{return e._0},o),i=u(J,e=>!s(h,L,a,e),e);return z(i)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"Required",_0:e}))(i)),u(q,e=>u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e,_1:{ctor:"[]"}})}),Kn),i)))}),r,o)),M=o((e,t,r)=>l(m,e=>e.minProperties,gt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Qn,e,o)),_1:{ctor:"[]"}})}),r)),B=o((e,t,r)=>l(m,e=>e.maxProperties,gt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(Xn,e,o)),_1:{ctor:"[]"}})}),r)),E=o((e,t,r)=>l(m,e=>e.uniqueItems,vt(ot),n((e,n)=>{if(e){var o=(e=>(t=>p.eq(t,-1)?N:D(u(C,t,e)))(xr(u(q,rt(0),e))))(n);return"Just"===o.ctor?ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"UniqueItems",_0:e}))(o._0)),_1:{ctor:"[]"}}):ce(r)}return ce(r)}),r)),P=o((e,t,r)=>l(m,e=>e.minItems,vt(ot),n((e,n)=>{var o=S(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(to,e,o)),_1:{ctor:"[]"}})}),r)),$=o((e,t,r)=>l(m,e=>e.maxItems,vt(ot),n((e,n)=>{var o=S(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ro,e,o)),_1:{ctor:"[]"}})}),r)),Z=o((e,t,r)=>l(m,e=>e.pattern,wt,n((e,n)=>u(vn,bn(e),n)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(no,e,n)),_1:{ctor:"[]"}})),r)),F=o((e,t,r)=>l(m,e=>e.minLength,wt,n((e,n)=>{var o=zn(n);return p.cmp(o,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(oo,e,o)),_1:{ctor:"[]"}})}),r)),G=o((e,t,r)=>l(m,e=>e.maxLength,wt,n((e,n)=>{var o=zn(n);return 1>p.cmp(o,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(ao,e,o)),_1:{ctor:"[]"}})}),r)),Y=a((e,t,r,o)=>_(m,e=>e.exclusiveMinimum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return p.cmp(n,o)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),H=a((e,t,r,o)=>_(m,e=>e.exclusiveMaximum,yt,n((e,n)=>{if("NumberBoundary"===e.ctor){var o=e._0;return 0>p.cmp(n,o)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,o,n)),_1:{ctor:"[]"}})}return ce(r)}),r,o)),K=a((e,t,r,o)=>_(m,e=>e.minimum,yt,n((e,n)=>{var a=o.exclusiveMinimum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?p.cmp(n,e)>0?ce(r):ae({ctor:"::",_0:u(Jn,t,u(io,e,n)),_1:{ctor:"[]"}}):p.cmp(n,e)>-1?ce(r):ae({ctor:"::",_0:u(Jn,t,u(uo,e,n)),_1:{ctor:"[]"}})}),r,o)),Q=a((e,t,r,o)=>_(m,e=>e.maximum,yt,n((e,n)=>{var a=o.exclusiveMaximum;return"Just"===a.ctor&&"BoolBoundary"===a._0.ctor&&!0===a._0._0?0>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(co,e,n)),_1:{ctor:"[]"}}):1>p.cmp(n,e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(so,e,n)),_1:{ctor:"[]"}})}),r,o)),X=o((e,t,r)=>l(m,e=>e.multipleOf,yt,n((e,n)=>kr(n/e)?ce(r):ae({ctor:"::",_0:u(Jn,t,u(lo,e,n)),_1:{ctor:"[]"}})),r)),ee=i((e,t,r,o,a)=>{return i=s(R,n((r,n)=>{var a=n._1,i=n._0,c=l(r,e,t,a,o);return"Ok"===c.ctor?{ctor:"_Tuple2",_0:i,_1:c._0}:{ctor:"_Tuple2",_0:u(k["++"],i,c._0),_1:a}}),{ctor:"_Tuple2",_0:{ctor:"[]"},_1:r},a),"[]"===(c=i._0).ctor?ce(i._1):ae(c);var i,c}),te=a((e,t,r,n)=>_(ee,e,t,n,r,{ctor:"::",_0:X,_1:{ctor:"::",_0:Q,_1:{ctor:"::",_0:K,_1:{ctor:"::",_0:H,_1:{ctor:"::",_0:Y,_1:{ctor:"::",_0:G,_1:{ctor:"::",_0:F,_1:{ctor:"::",_0:Z,_1:{ctor:"::",_0:fe,_1:{ctor:"::",_0:$,_1:{ctor:"::",_0:P,_1:{ctor:"::",_0:E,_1:{ctor:"::",_0:_e,_1:{ctor:"::",_0:ge,_1:{ctor:"::",_0:B,_1:{ctor:"::",_0:M,_1:{ctor:"::",_0:A,_1:{ctor:"::",_0:me,_1:{ctor:"::",_0:re,_1:{ctor:"::",_0:de,_1:{ctor:"::",_0:be,_1:{ctor:"::",_0:T,_1:{ctor:"::",_0:w,_1:{ctor:"::",_0:x,_1:{ctor:"::",_0:ie,_1:{ctor:"::",_0:le,_1:{ctor:"::",_0:he,_1:{ctor:"::",_0:pe,_1:{ctor:"[]"}}}}}}}}}}}}}}}}}}}}}}}}}}}}})),re=a((e,t,r,a)=>{var i=o((e,t,r)=>{if("Just"===e.ctor){var n=u(q,e=>{return e._0},e._0._0);return u(J,e=>{var r=e;return!u(O,e=>u(t,e,r._0),n)},r)}return r});return _(f,e=>e.additionalProperties,gt(ot),n((o,c)=>(a=>{return"BooleanSchema"===o.ctor?o._0?ce(r):z(a)?ce(r):ae(u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(Jn,t,(e=>({ctor:"AdditionalPropertiesDisallowed",_0:e}))(u(q,e=>{return e._0},a))),u(q,e=>{return u(Jn,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:e._0,_1:{ctor:"[]"}})}),Hn)},a))):u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,o)},a))})(s(i,a.patternProperties,n((e,t)=>u(vn,bn(e),t)),s(i,a.properties,n((e,t)=>p.eq(e,t)),c)))),r,a)}),oe=a((e,r,n,o)=>{var a=o;if("BooleanSchema"===a.ctor)return a._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Zn),_1:{ctor:"[]"}});var i=a._0,s=i.ref;if("Just"===s.ctor){var _=s._0,d=l(En,r.ns,t,c,_);return"Just"===d.ctor?"ObjectSchema"===d._0._1.ctor?l(te,e,p.update(r,{ns:d._0._0}),d._0._1._0,n):d._0._1._0?ce(n):ae({ctor:"::",_0:u(Jn,r,Zn),_1:{ctor:"[]"}}):ae({ctor:"::",_0:u(Jn,r,Un(_)),_1:{ctor:"[]"}})}return l(te,e,r,i,n)}),ie=n((e,t)=>s(m,e=>e.allOf,ot,n((r,o)=>s(R,n((r,n)=>p.eq(n,ce(o))?l(oe,e,t,o,r):n),ce(o),r)))),le=n((e,t)=>s(m,e=>e.anyOf,ot,n((r,n)=>{var o=u(q,s(oe,e,t,n),r);return u(O,e=>{return"Ok"===e.ctor},o)?ce(n):u(Dn,ce(n),o)}))),_e=o((e,t,r)=>l(f,e=>e.contains,vt(ot),n((n,o)=>u(O,r=>{return"Ok"===l(oe,e,t,r,n).ctor},o)?ce(r):ae({ctor:"::",_0:u(Jn,t,eo),_1:{ctor:"[]"}})),r)),de=a((e,t,r,o)=>{if(z(o.dependencies))return ce(r);var a=u(st,gt(ot),r);return"Ok"===a.ctor?(a=>s(R,n((n,o)=>{var i=n;if("Err"===o.ctor)return o;if(u(Ne,i._0,Ge(a))){var c=i._1;return l(oe,e,t,r,"PropSchema"===c.ctor?c._0:Er(p.update(qr,{required:j(c._0)})))}return o}),ce(r),o.dependencies))(a._0):ce(r)}),fe=a((e,t,r,a)=>{var i=o((r,n,o)=>u(ue,()=>o+1,l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:v(o),_1:{ctor:"[]"}})}),r,n))),c=a.items;switch(c.ctor){case"ItemDefinition":var _=u(st,vt(ot),r);return"Ok"===_.ctor?u(ue,()=>r,s(R,n((e,t)=>{return"Ok"===t.ctor?s(i,e,c._0,t._0):t}),ce(0),_._0)):ce(r);case"ArrayOfItems":var d=u(st,vt(ot),r);return"Ok"===d.ctor?u(ue,()=>r,s(R,n((e,t)=>{if("Ok"===t.ctor){var r=t._0,n=D(u(C,r,c._0));if("Just"===n.ctor)return s(i,e,n._0,r);var o=a.additionalItems;return"Just"===o.ctor?s(i,e,o._0,r):ce(r+1)}return t}),ce(0),d._0)):ce(r);default:return ce(r)}}),pe=n((e,t)=>s(f,e=>e.not,ot,n((r,n)=>p.eq(l(oe,e,t,n,r),ce(n))?ae({ctor:"::",_0:u(Jn,t,Vn),_1:{ctor:"[]"}}):ce(n)))),he=n((e,t)=>s(m,e=>e.oneOf,ot,n((r,n)=>{var o=S(u(J,r=>p.eq(l(oe,e,t,n,r),ce(n)),r));switch(o){case 1:return ce(n);case 0:return ae({ctor:"::",_0:u(Jn,t,Fn),_1:{ctor:"[]"}});default:return ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"OneOfManySucceed",_0:e}))(o)),_1:{ctor:"[]"}})}}))),me=o((e,t,r)=>l(m,e=>e.patternProperties,gt(ot),n((o,a)=>{var i=o;return s(R,n((n,o)=>{var i=n;return"Ok"===o.ctor?u(Dn,ce(r),u(q,r=>{var n=r;return l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n._0,_1:{ctor:"[]"}})}),n._1,i._1)},u(g,i._0,a))):o}),ce(r),i._0)}),r)),ge=a((e,t,r,o)=>_(m,e=>e.properties,gt(ot),n((r,n)=>{var a=V(n),i=l(ve,e,t,o.properties,a),c=u(q,e=>{return e._0},i),s=u(k["++"],a,i);return u(Dn,ce(Ke(s)),u(q,n=>{var o=n._1,a=n._0;if(u(L,a,c))return ce(o);var i=u(b,a,r);return"Just"===i.ctor?l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:a,_1:{ctor:"[]"}})}),o,i._0):ce(o)},s))}),r,o)),ve=a((e,t,r,a)=>{var i=n((e,t)=>z(u(J,t=>{return p.eq(t._0,e)},t))),c=o((r,n,o)=>{if(u(i,n,r)){return"ObjectSchema"===o.ctor?u(I,r=>ne(l(oe,p.update(e,{applyDefaults:!1}),p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),r,o)),o._0.$default):N}return N});if(e.applyDefaults){var _=r;return"Just"===_.ctor?V(s(R,n((e,t)=>{var r=e._0,n=s(c,a,r,e._1);return"Just"===n.ctor?{ctor:"::",_0:{ctor:"_Tuple2",_0:r,_1:n._0},_1:t}:t}),{ctor:"[]"},_._0._0)):{ctor:"[]"}}return{ctor:"[]"}}),be=o((e,t,r)=>{var o=n((r,n)=>{var o=l(oe,e,p.update(t,{path:u(k["++"],t.path,{ctor:"::",_0:n,_1:{ctor:"[]"}})}),tt(n),r);return"Ok"===o.ctor?N:j(o._0)});return l(f,e=>e.propertyNames,gt(ot),n((e,n)=>(e=>z(e)?ce(r):ae({ctor:"::",_0:u(Jn,t,(e=>({ctor:"InvalidPropertyName",_0:e}))(W(e))),_1:{ctor:"[]"}}))(u(U,o(e),u(q,e=>{return e._0},n)))),r)});return l(oe,e,u(qn,"",{ctor:"[]"}),r,d)}),fo=n((e,t)=>{var r=a((e,t,r,o)=>{var a=u(J,e=>{var t=e._0;return p.eq(t,"id")||p.eq(t,"$id")},o);return"::"===a.ctor&&"_Tuple2"===a._0.ctor?u(oe,{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}},u(ue,a=>{var i,c,l,_=u(On,a,e),d=_._0,f=_._1,p=_._2,h=u(st,Xr,t);return"Ok"===h.ctor?{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:s(We,(i={ctor:"_Tuple3",_0:d,_1:f,_2:p},c=i._2,l=i._1,i._0?u(n((e,t)=>u(k["++"],e,t)),l,u(he,"/",{ctor:"::",_0:"#",_1:c})):z(c)?l:u(n((e,t)=>u(k["++"],e,t)),u(k["++"],l,"#"),u(he,"/",c))),h._0,r),_1:f}}:{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}},u(st,wt,a._0._1))):{ctor:"_Tuple2",_0:o,_1:{ctor:"_Tuple2",_0:r,_1:e}}}),o=n((e,t)=>{var n;return n=l(r,t._1,e,t._0,u(oe,{ctor:"[]"},u(st,gt(ot),e))),s(R,e=>o(e._1),n._1,n._0)});return"ObjectSchema"===e.ctor?u(o,e._0.source,{ctor:"_Tuple2",_0:t,_1:(e=>{if("Just"===e.ctor){var t=u(On,e._0,"");return t._1}return""})(e._0.id)}):{ctor:"_Tuple2",_0:t,_1:""}}),po=(lt(Xr),st(Xr),o((e,t,r)=>{var n=u(fo,r,Rn);return _(_o,e,n._0,t,r,r)})),ho=n((e,t)=>{return 1===e?u(k["++"],"1 ",t):u(k["++"],v(e),u(k["++"]," ",u(k["++"],t,"s")))}),mo=e=>{var t=e;switch(t.ctor){case"MultipleOf":return u(k["++"],v(t._1),u(k["++"]," is not a multiple of ",v(t._0)));case"Maximum":return u(k["++"],v(t._1),u(k["++"]," is more than maximum ",v(t._0)));case"Minimum":return u(k["++"],v(t._1),u(k["++"]," is less than minimum ",v(t._0)));case"ExclusiveMaximum":return u(k["++"],v(t._1),u(k["++"]," is not less than exclusive maximum ",v(t._0)));case"ExclusiveMinimum":return u(k["++"],v(t._1),u(k["++"]," is not more than exclusive minimum ",v(t._0)));case"MaxLength":return u(k["++"],"Expected string not longer than ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," but actual length is ",u(ho,t._1,"character"))));case"MinLength":return u(k["++"],"Expected string to be at least ",u(k["++"],u(ho,t._0,"character"),u(k["++"]," long but its length is ",u(ho,t._1,"character"))));case"Pattern":return u(k["++"],"String ",u(k["++"],v(t._1),u(k["++"]," does not match pattern ",t._0)));case"MaxItems":return u(k["++"],"List expected to have at most ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"MinItems":return u(k["++"],"List expected to have at least ",u(k["++"],u(ho,t._0,"item"),u(k["++"]," but it has ",u(ho,t._1,"item"))));case"UniqueItems":return u(k["++"],"Expected array of unique items, but a duplicate found: ",u(rt,0,t._0));case"Contains":return"None of array items is valid against the given schema";case"MaxProperties":return"MaxProperties";case"MinProperties":return"MinProperties";case"RequiredProperty":return"This property is required";case"Required":return"";case"AdditionalPropertyDisallowed":return"This is an additional property and it is not allowed";case"AdditionalPropertiesDisallowed":return"";case"InvalidPropertyName":return u(k["++"],"Some property names are not passing validation: ",u(he,", ",u(q,v,t._0)));case"Enum":return"Value does not match enumeration defined in the schema";case"Const":return"Value does not match const defined in the schema";case"InvalidType":return t._0;case"OneOfNoneSucceed":return"Value does not pass the validation with none of the schemata listed in '.oneOf'";case"OneOfManySucceed":return u(k["++"],"Value should pass validation with exactly one schema, but ",u(k["++"],v(t._0)," return a positive result"));case"Not":return"This value expected to fail validation";case"AlwaysFail":return"This is not expected to succeed";default:return u(k["++"],"Reference ",u(k["++"],v(t._0)," can not be resolved"))}},go=Gt,vo=n((e,t)=>u(go,e,tt(t))),bo=e=>u(vo,"className",e),yo=e=>u(vo,"type",e),xo=e=>u(vo,"value",e),ko=n((e,t)=>u(go,e,Xe(t))),wo=e=>u(ko,"checked",e),No=e=>bo(u(he," ",u(q,Tt,u(J,jt,e)))),Io=(u(ht,"keyCode",xt),u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"checked",_1:{ctor:"[]"}}},kt)),jo=u(mt,{ctor:"::",_0:"target",_1:{ctor:"::",_0:"value",_1:{ctor:"[]"}}},wt),To=Wt,Ao=e=>u(To,"focus",ct(e)),Mo=e=>u(To,"blur",ct(e)),Co=(p.update(Vt,{preventDefault:!0}),e=>u(To,"change",u(dt,e,Io))),Bo=e=>u(To,"input",u(dt,e,jo)),Oo=Oo||{};Oo["=>"]=n((e,t)=>({ctor:"_Tuple2",_0:e,_1:t}));var Eo=e=>u(w,gr(Qe),u(I,e=>ne(u(st,yr,e)),u(Ar,"ui",e))),Ro=o((e,t,r)=>{return"ObjectSchema"===e.ctor?u(w,r,t(e._0)):r}),So=n((e,t)=>(t=>e?u(k["++"],t," *"):t)(s(Ro,t,e=>e.title,""))),Lo=e=>{var t=e;switch(t.ctor){case"StringValue":return t._0;case"NumericValue":return v(t._0);default:return""}},zo=o((e,t,r)=>{var o=u(we,r,e.errors),a=!p.eq(o,N)&&u(L,r,e.beingEdited);return{ctor:"_Tuple2",_0:a,_1:er(a?u(n((e,t)=>u(k["++"],e,t)),"Error: ",u(he,", ",u(w,{ctor:"[]"},o))):(e=>s(Ro,e,e=>e.description,""))(t))}}),Do=a((e,t,r,o)=>{var a=s(zo,e,t,o),i=a._0,c=a._1,l=u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused)),_=l?e.editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:l},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:i},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(un(j(o))),_1:{ctor:"::",_0:Mo(un(N)),_1:{ctor:"::",_0:Bo(an),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo("number"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:c,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),Po=a((e,t,r,o)=>{var a="PasswordField"===Eo(t).ctor,i=s(zo,e,t,o),c=i._0,l=i._1,_=u(w,"",u(T,Lo,u(I,ne,u(T,ir(o),e.value))));return u(rr,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--empty",_1:p.eq(_,"")},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-textfield--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:bo("jf-textfield__input"),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Bo(e=>u(cn,o,ur(e))),_1:{ctor:"::",_0:xo(_),_1:{ctor:"::",_0:yo(a?"password":"text"),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(or,{ctor:"::",_0:bo("jf-textfield__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-textfield__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}})}),$o=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-checkbox--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-checkbox__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-checkbox__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__box-outline"),_1:{ctor:"[]"}},{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__tick-outline"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-checkbox__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}})}),qo=a((e,t,r,o)=>{var a,i=s(zo,e,t,o),c=i._0,l=i._1,_="Just"===(a=u(I,e=>ne(u(ir,o,e)),e.value)).ctor&&"BoolValue"===a._0.ctor&&a._0._0;return u(or,{ctor:"::",_0:No({ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch",_1:!0},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--on",_1:_},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--focused",_1:u(w,!1,u(T,n((e,t)=>p.eq(e,t))(o),e.focused))},_1:{ctor:"::",_0:{ctor:"_Tuple2",_0:"jf-switch--invalid",_1:c},_1:{ctor:"[]"}}}}}),_1:{ctor:"[]"}},{ctor:"::",_0:u(ar,{ctor:"::",_0:yo("checkbox"),_1:{ctor:"::",_0:bo("jf-switch__input"),_1:{ctor:"::",_0:wo(_),_1:{ctor:"::",_0:Ao(sn(j(o))),_1:{ctor:"::",_0:Mo(sn(N)),_1:{ctor:"::",_0:Co(e=>u(cn,o,_r(e))),_1:{ctor:"[]"}}}}}}},{ctor:"[]"}),_1:{ctor:"::",_0:u(nr,{ctor:"::",_0:bo("jf-switch__label"),_1:{ctor:"[]"}},{ctor:"::",_0:er(u(So,r,t)),_1:{ctor:"[]"}}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__track"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__thumb"),_1:{ctor:"[]"}},{ctor:"[]"}),_1:{ctor:"::",_0:u(rr,{ctor:"::",_0:bo("jf-switch__helper-text"),_1:{ctor:"[]"}},{ctor:"::",_0:l,_1:{ctor:"[]"}}),_1:{ctor:"[]"}}}}}})}),Jo=o((e,t,r)=>p.eq(e,N)?u(n((e,t)=>({ctor:"::",_0:e,_1:t})),u(w,{ctor:"[]"},t),r):r),Zo=e=>{return"Switch"===Eo(e).ctor?fn:dn},Uo=n((e,t)=>{if("ObjectSchema"===t.ctor){var r=t._0.type_;e:do{if("SingleType"!==r.ctor)break e;switch(r._0.ctor){case"NumberType":return pn;case"StringType":return hn;case"BooleanType":return Zo(t);case"ObjectType":return ln;default:break e}}while(0);return _n}return _n}),Vo=a((e,t,r,n)=>{var o=u(Uo,e,t);switch(o.ctor){case"TextField":return l(Po,e,t,r,n);case"NumberField":return l(Do,e,t,r,n);case"Switch":return l(qo,e,t,r,n);case"Checkbox":return l($o,e,t,r,n);case"Object":return l(Fo,e,t,r,n);default:return er(u(k["++"],v(o),": not implemented"))}}),Fo=a((e,t,r,n)=>{if("ObjectSchema"===t.ctor){var a=t._0;return u(rr,{ctor:"[]"},u(w,{ctor:"[]"},u(T,u(o((t,r,o)=>{return u(q,t=>{var o=t._0;return l(Vo,e,t._1,u(L,o,u(w,{ctor:"[]"},r)),u(k["++"],n,{ctor:"::",_0:o,_1:{ctor:"[]"}}))},o._0)}),Re,a.required),a.properties)))}return er("")}),Wo=on,Go=o((e,t,r)=>{var o,a=u(w,lr,ne(s(mr,t,r,u(w,lr,e.value)))),i=cr(a),c=s(po,{applyDefaults:!0},i,e.schema);return u(Oo["=>"],u(Ot["!"],p.update(e,"Ok"===(o=c).ctor?{value:ne(u(st,pr,o._0)),errors:Re}:{value:j(a),errors:(e=>s(R,n((e,t)=>s(Fe,e.jsonPointer.path,t=>j("Just"===t.ctor?u(k["++"],t._0,{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}):{ctor:"::",_0:mo(e.details),_1:{ctor:"[]"}}),t)),Re,e))(o._0)}),{ctor:"[]"}),(e=>({ctor:"UpdateValue",_0:e}))(j(a)))}),Yo={ctor:"None"},Ho=n((e,t)=>{var r,n=e;switch(n.ctor){case"FocusInput":var o=n._0;return u(Oo["=>"],u(Ot["!"],p.update(t,{focused:o,beingEdited:s(Jo,o,t.focused,t.beingEdited)}),{ctor:"[]"}),Yo);case"FocusNumericInput":var a=n._0,i=a;return"Nothing"===i.ctor?s(Go,p.update(t,{beingEdited:s(Jo,a,t.focused,t.beingEdited)}),u(w,{ctor:"[]"},t.focused),"Ok"===(r=_e(t.editedNumber)).ctor?sr(r._0):ur(t.editedNumber)):u(Oo["=>"],u(Ot["!"],p.update(t,{focused:a,editedNumber:u(w,"",u(T,Lo,u(I,ne,u(T,ir(i._0),t.value))))}),{ctor:"[]"}),Yo);case"EditValue":return s(Go,t,n._0,n._1);default:var c=n._0,l=_e(c);return"Ok"===l.ctor?s(Go,p.update(t,{editedNumber:c}),u(w,{ctor:"[]"},t.focused),sr(l._0)):u(Oo["=>"],u(Ot["!"],p.update(t,{editedNumber:c}),{ctor:"[]"}),Yo)}}),Ko=At.incomingPort("valueChange",ot),Qo=At.incomingPort("schemaChange",ot),Xo=e=>({ctor:"ChangeSchema",_0:e}),ea=e=>({ctor:"ChangeValue",_0:e}),ta=e=>({ctor:"JsonFormMsg",_0:e}),ra=Qt({init(e){var t=ne(u(st,u(mt,{ctor:"::",_0:"value",_1:{ctor:"[]"}},pr),e)),r=u(oe,Jr,u(se,It,u(st,u(mt,{ctor:"::",_0:"schema",_1:{ctor:"[]"}},Xr),e)));return u(Ot["!"],{form:u(Wo,r,t),editedValue:t,schema:r},{ctor:"[]"})},update:n((e,t)=>{var r=e;switch(r.ctor){case"ChangeSchema":var n=u(oe,Jr,u(st,Xr,r._0));return u(Ot["!"],p.update(t,{schema:n,form:u(Wo,n,t.editedValue)}),{ctor:"[]"});case"ChangeValue":var o=ne(u(st,pr,r._0));return u(Ot["!"],p.update(t,{editedValue:o,form:u(Wo,t.schema,o)}),{ctor:"[]"});default:var a=u(Ho,r._0,t.form),i=a._0._1,c=a._1;return u(Ot["!"],p.update(t,{form:a._0._0,editedValue:"UpdateValue"===c.ctor?c._0:t.editedValue}),{ctor:"::",_0:u($t,ta,i),_1:{ctor:"[]"}})}}),view:e=>u(Xt,ta,(e=>l(Vo,e,e.schema,!1,{ctor:"[]"}))(e.form)),subscriptions:()=>qt({ctor:"::",_0:Ko(ea),_1:{ctor:"::",_0:Qo(Xo),_1:{ctor:"[]"}}})})(ot),na={};na.JsonFormCustomElement=na.JsonFormCustomElement||{},void 0!==ra&&ra(na.JsonFormCustomElement,"JsonFormCustomElement",void 0);var oa=()=>{};oa(na),void 0===(r=(()=>na).apply(t,[]))||(e.exports=r)}).call(this)},"./src/custom-element.js"(e,t,r){"use strict";const n=r("./src/JsonFormCustomElement.elm"),o=r("./stylesheets/standalone.css").toString();customElements.define("json-form",class extends HTMLElement{static get observedAttributes(){return["value","schema"]}constructor(){super();const e=document.createElement("div"),t=document.createElement("style");t.textContent=o;const r=this.attachShadow({mode:"open"});r.appendChild(t),r.appendChild(e);const a=this.getAttribute("value"),i=JSON.parse(this.getAttribute("schema")),c=JSON.parse(a),u=n.JsonFormCustomElement.embed(e,{schema:i,value:c});this.app=u}attributeChangedCallback(e,t,r){switch(e){case"value":this.app.ports.valueChange.send(JSON.parse(r));break;case"schema":this.app.ports.schemaChange.send(JSON.parse(r))}}})},"./stylesheets/standalone.css"(e,t,r){var n=r("./node_modules/css-loader/index.js!./stylesheets/standalone.css");e.exports="string"==typeof n?n:n.toString()}}); \ No newline at end of file From f440d68e101c70619a051c8be3cdd9f9d941708a Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 19:23:36 +0100 Subject: [PATCH 07/71] Update readme to include inline demo --- README.md | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/README.md b/README.md index f760888..b827543 100644 --- a/README.md +++ b/README.md @@ -9,6 +9,26 @@ Renders form based on JSON Schema Published in gh-pages: https://1602.github.io/json-form/ + +```html + +``` + + Development progress: - [x] text editing From af17161750d16c9416a91e31a0ab657df2ff2d53 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 3 Jul 2018 19:25:06 +0100 Subject: [PATCH 08/71] Update packages --- elm-package.json | 4 ++-- package.json | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/elm-package.json b/elm-package.json index 62084e5..28da21f 100644 --- a/elm-package.json +++ b/elm-package.json @@ -1,6 +1,6 @@ { - "version": "1.0.0", - "summary": "Form generation showcase", + "version": "1.0.6", + "summary": "Form generator based on JSON Schema", "repository": "https://github.com/1602/json-form.git", "license": "BSD3", "source-directories": [ diff --git a/package.json b/package.json index 2bf7cf3..10e6592 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "json-form-custom-element", "private": false, - "version": "1.0.5", + "version": "1.0.6", "description": "JSON Schema based form generator", "main": "build/custom-element.js", "repository": "git@github.com:1602/json-form.git", From 281a59fb0e80a9ea1caf192a742b0a4be9fa5160 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sat, 7 Jul 2018 14:19:48 +0100 Subject: [PATCH 09/71] Bump version 1.0.7 --- elm-package.json | 2 +- package.json | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/elm-package.json b/elm-package.json index 28da21f..d6e4099 100644 --- a/elm-package.json +++ b/elm-package.json @@ -1,5 +1,5 @@ { - "version": "1.0.6", + "version": "1.0.7", "summary": "Form generator based on JSON Schema", "repository": "https://github.com/1602/json-form.git", "license": "BSD3", diff --git a/package.json b/package.json index 10e6592..4958168 100644 --- a/package.json +++ b/package.json @@ -1,10 +1,10 @@ { "name": "json-form-custom-element", "private": false, - "version": "1.0.6", + "version": "1.0.7", "description": "JSON Schema based form generator", "main": "build/custom-element.js", - "repository": "git@github.com:1602/json-form.git", + "repository": "git://github.com/1602/json-form.git", "author": "Anatoliy ", "license": "GNU GENERAL PUBLIC LICENSE v3", "scripts": { From 2f768240172e94e7ed52cce9ead89841620c8ffe Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sat, 7 Jul 2018 19:00:49 +0100 Subject: [PATCH 10/71] Event to listen for value change --- src/CustomElement.elm | 21 +++++++++++++-------- src/custom-element.js | 13 +++++++++++++ src/index.ejs | 44 +++++++++++++++++++++++++++++++++++-------- 3 files changed, 62 insertions(+), 16 deletions(-) diff --git a/src/CustomElement.elm b/src/CustomElement.elm index 81ba0e2..c340674 100644 --- a/src/CustomElement.elm +++ b/src/CustomElement.elm @@ -79,18 +79,20 @@ update message model = let ( ( m, cmd ), exMsg ) = Json.Form.update msg model.form + + ( editedValue, exCmd ) = + case exMsg of + Json.Form.UpdateValue v -> + ( v, v |> Maybe.withDefault JsonValue.NullValue |> JsonValue.encode |> value ) + + _ -> + ( model.editedValue, Cmd.none ) in { model | form = m - , editedValue = - case exMsg of - Json.Form.UpdateValue v -> - v - - _ -> - model.editedValue + , editedValue = editedValue } - ! [ cmd |> Cmd.map JsonFormMsg ] + ! [ cmd |> Cmd.map JsonFormMsg, exCmd ] view : Model -> Html Msg @@ -103,6 +105,9 @@ view model = port valueChange : (Value -> msg) -> Sub msg +port value : Value -> Cmd msg + + port schemaChange : (Value -> msg) -> Sub msg diff --git a/src/custom-element.js b/src/custom-element.js index a828228..0272170 100644 --- a/src/custom-element.js +++ b/src/custom-element.js @@ -25,9 +25,22 @@ customElements.define('json-form', const value = JSON.parse(json); const app = Elm.JsonFormCustomElement.embed(appRoot, { schema, value }); this.app = app; + this.muteAttributeChange = false; + + app.ports.value.subscribe(v => { + const event = new CustomEvent('change', { detail: { value: v } }); + this.muteAttributeChange = true; + this.setAttribute('value', JSON.stringify(v)); + this.muteAttributeChange = false; + this.dispatchEvent(event); + }); } attributeChangedCallback(name, oldValue, newValue) { + if (this.muteAttributeChange) { + return; + } + switch (name) { case 'value': this.app.ports.valueChange.send(JSON.parse(newValue)); diff --git a/src/index.ejs b/src/index.ejs index 239db98..49fe22c 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -1,11 +1,39 @@ - - - - JSON Form web-component demo - - - - + + + + JSON Form web-component demo + + + + + + + + + + From fbfc10fab15ab15fe41db4dbd407b32ff0da238a Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sat, 7 Jul 2018 19:01:01 +0100 Subject: [PATCH 11/71] 1.1.0 --- package-lock.json | 2 +- package.json | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/package-lock.json b/package-lock.json index 0c2d560..4e1285f 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "json-form-custom-element", - "version": "1.0.0", + "version": "1.1.0", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index 4958168..4c80436 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "name": "json-form-custom-element", "private": false, - "version": "1.0.7", + "version": "1.1.0", "description": "JSON Schema based form generator", "main": "build/custom-element.js", "repository": "git://github.com/1602/json-form.git", From f1f4155fee384942caa592ecac545aaa2187355f Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sat, 7 Jul 2018 19:01:17 +0100 Subject: [PATCH 12/71] Bump 1.1.0 --- elm-package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elm-package.json b/elm-package.json index d6e4099..cd7afef 100644 --- a/elm-package.json +++ b/elm-package.json @@ -1,5 +1,5 @@ { - "version": "1.0.7", + "version": "1.1.0", "summary": "Form generator based on JSON Schema", "repository": "https://github.com/1602/json-form.git", "license": "BSD3", From 1c96b9c5f5229ceb98665b158547d5925c205dcd Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Wed, 11 Jul 2018 09:27:00 +0100 Subject: [PATCH 13/71] Expose isValid on update --- src/CustomElement.elm | 15 +++++++++++++-- src/Demo.elm | 2 +- src/Json/Form.elm | 8 ++++---- src/custom-element.js | 4 ++-- 4 files changed, 20 insertions(+), 9 deletions(-) diff --git a/src/CustomElement.elm b/src/CustomElement.elm index c340674..1d268b6 100644 --- a/src/CustomElement.elm +++ b/src/CustomElement.elm @@ -7,6 +7,7 @@ import Html exposing (Html, div, text, h3) --import Html.Events exposing (onClick) import Json.Decode exposing (Value, decodeValue) +import Json.Encode as Encode import JsonValue exposing (decoder) import Json.Form import Json.Schema.Definitions @@ -82,8 +83,18 @@ update message model = ( editedValue, exCmd ) = case exMsg of - Json.Form.UpdateValue v -> - ( v, v |> Maybe.withDefault JsonValue.NullValue |> JsonValue.encode |> value ) + Json.Form.UpdateValue v isValid -> + ( v + , Encode.object + [ ( "value" + , v + |> Maybe.withDefault JsonValue.NullValue + |> JsonValue.encode + ) + , ( "isValid", Encode.bool isValid ) + ] + |> value + ) _ -> ( model.editedValue, Cmd.none ) diff --git a/src/Demo.elm b/src/Demo.elm index 5dc8715..92efb27 100644 --- a/src/Demo.elm +++ b/src/Demo.elm @@ -52,7 +52,7 @@ update message model = | form = m , editedValue = case exMsg of - Json.Form.UpdateValue v -> + Json.Form.UpdateValue v _ -> v _ -> diff --git a/src/Json/Form.elm b/src/Json/Form.elm index c6fe0b5..7542118 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -25,7 +25,7 @@ import Util exposing (..) type ExternalMsg = None - | UpdateValue (Maybe JsonValue) + | UpdateValue (Maybe JsonValue) Bool type alias Model = @@ -200,7 +200,7 @@ editValue model path val = model.schema |> Json.Schema.validateValue { applyDefaults = True } updatedValue in - (case validationResult of + case validationResult of Ok v -> { model | value = @@ -210,6 +210,7 @@ editValue model path val = , errors = Dict.empty } ! [] + => UpdateValue (Just updatedJsonValue) True Err e -> { model @@ -217,8 +218,7 @@ editValue model path val = , errors = dictFromListErrors e } ! [] - ) - => UpdateValue (Just updatedJsonValue) + => UpdateValue (Just updatedJsonValue) False dictFromListErrors : List Error -> Dict Path (List String) diff --git a/src/custom-element.js b/src/custom-element.js index 0272170..97fdf59 100644 --- a/src/custom-element.js +++ b/src/custom-element.js @@ -27,8 +27,8 @@ customElements.define('json-form', this.app = app; this.muteAttributeChange = false; - app.ports.value.subscribe(v => { - const event = new CustomEvent('change', { detail: { value: v } }); + app.ports.value.subscribe(({ value, isValid }) => { + const event = new CustomEvent('change', { detail: { value, isValid } }); this.muteAttributeChange = true; this.setAttribute('value', JSON.stringify(v)); this.muteAttributeChange = false; From 5e1fb6eb20660e761e58b756729c29d60748522c Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Wed, 11 Jul 2018 14:20:05 +0100 Subject: [PATCH 14/71] Update README.md --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index b827543..1cbb95c 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ # json-form -Renders form based on JSON Schema +This module generates form based on JSON Schema, its keywords are documented in this spec: http://json-schema.org/latest/json-schema-validation.html ![image](https://user-images.githubusercontent.com/184172/38784098-c30536fe-4104-11e8-95bb-58c4f5eca24f.png) From e17ce86320823b29c9a20e7d9180aa552d119f2c Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sat, 1 Sep 2018 22:42:28 +0100 Subject: [PATCH 15/71] Support rules --- elm-package.json | 4 +- src/Demo.elm | 46 ++++----- src/Json/Form.elm | 95 +++++++++---------- src/Json/Form/Definitions.elm | 58 ++++++++++-- src/Json/Form/Helper.elm | 31 +++--- src/Json/Form/Selection.elm | 92 +++++++++--------- src/Json/Form/TextField.elm | 146 +++++++++++++++++++---------- src/Json/Form/UiSpec.elm | 70 ++++++++++++-- src/{Util.elm => JsonFormUtil.elm} | 9 +- src/JsonViewer.elm | 30 +++--- src/Snippets.elm | 77 ++++++++++++++- src/index.ejs | 5 +- src/index.js | 1 + stylesheets/textfield.css | 17 ++++ webpack.config.js | 9 +- 15 files changed, 469 insertions(+), 221 deletions(-) rename src/{Util.elm => JsonFormUtil.elm} (86%) diff --git a/elm-package.json b/elm-package.json index cd7afef..38e4081 100644 --- a/elm-package.json +++ b/elm-package.json @@ -4,12 +4,12 @@ "repository": "https://github.com/1602/json-form.git", "license": "BSD3", "source-directories": [ - "src" + "src", + "../json-value/src" ], "exposed-modules": [ ], "dependencies": { "1602/elm-feather": "2.2.0 <= v < 3.0.0", - "1602/json-value": "1.1.0 <= v < 2.0.0", "1602/json-schema": "4.1.0 <= v < 5.0.0", "elm-lang/core": "5.0.0 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0" diff --git a/src/Demo.elm b/src/Demo.elm index 92efb27..584be01 100644 --- a/src/Demo.elm +++ b/src/Demo.elm @@ -1,14 +1,14 @@ module Demo exposing (init, update, view) -import Html exposing (Html, div, text, h3, h4, pre) +import Html exposing (Html, div, h3, h4, pre, text) import Html.Attributes exposing (class, classList, style) import Html.Events exposing (onClick) -import JsonViewer -import JsonValue exposing (JsonValue) +import Json.Encode import Json.Form -import Snippets exposing (Snippet(..), getSnippet, getSnippetTitle) import Json.Schema.Definitions -import Json.Encode +import Json.Value as JsonValue exposing (JsonValue) +import JsonViewer +import Snippets exposing (Snippet(..), getSnippet, getSnippetTitle) type alias Model = @@ -21,7 +21,7 @@ type alias Model = initialShowcase : Snippet initialShowcase = - FlightBooking + Rules init : ( Model, Cmd Msg ) @@ -48,17 +48,17 @@ update message model = ( ( m, cmd ), exMsg ) = Json.Form.update msg model.form in - { model - | form = m - , editedValue = - case exMsg of - Json.Form.UpdateValue v _ -> - v - - _ -> - model.editedValue - } - ! [ cmd |> Cmd.map JsonFormMsg ] + { model + | form = m + , editedValue = + case exMsg of + Json.Form.UpdateValue v _ -> + v + + _ -> + model.editedValue + } + ! [ cmd |> Cmd.map JsonFormMsg ] ToggleNode path -> { model @@ -128,10 +128,10 @@ content model = |> Maybe.withDefault (text "") ] in - div [ class "app-content" ] - [ h3 [ style [ ( "padding", "8px" ), ( "border-bottom", "1px solid #e8e8e8" ) ] ] [ text <| "Showcase: " ++ (getSnippetTitle model.showcase) ] - , div [ style [] ] - [ generatedForm - , jsonSchema - ] + div [ class "app-content" ] + [ h3 [ style [ ( "padding", "8px" ), ( "border-bottom", "1px solid #e8e8e8" ) ] ] [ text <| "Showcase: " ++ getSnippetTitle model.showcase ] + , div [ style [] ] + [ generatedForm + , jsonSchema ] + ] diff --git a/src/Json/Form.elm b/src/Json/Form.elm index 7542118..c67c65f 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -1,26 +1,25 @@ -module Json.Form - exposing - ( Model - , Msg - , ExternalMsg(..) - , init - , update - , view - ) +module Json.Form exposing + ( ExternalMsg(..) + , Model + , Msg + , init + , update + , view + ) +import Dict exposing (Dict) +import ErrorMessages exposing (stringifyError) import Html exposing (..) +import Json.Decode as Decode exposing (decodeValue) +import Json.Form.Definitions as Definitions exposing (EditingMode(..), Msg(..), Path) +import Json.Form.Selection as Selection +import Json.Form.TextField as TextField import Json.Form.UiSpec as UiSpec -import Json.Form.Definitions as Definitions exposing (Path, EditingMode(..), Msg(..)) -import Json.Schema.Definitions exposing (..) import Json.Schema +import Json.Schema.Definitions exposing (..) import Json.Schema.Validation exposing (Error) -import JsonValue exposing (JsonValue(..)) -import Json.Decode as Decode exposing (decodeValue) -import ErrorMessages exposing (stringifyError) -import Dict exposing (Dict) -import Json.Form.TextField as TextField -import Json.Form.Selection as Selection -import Util exposing (..) +import Json.Value as JsonValue exposing (JsonValue(..)) +import JsonFormUtil as Util exposing (..) type ExternalMsg @@ -94,8 +93,8 @@ editingMode model schema = getBooleanUiWidget : Schema -> EditingMode getBooleanUiWidget schema = - case schema |> getUiSpec of - UiSpec.Switch -> + case schema |> getUiSpec |> .widgetType of + Just UiSpec.Switch -> Switch _ -> @@ -112,15 +111,15 @@ viewObject model schema isRequired path = viewNode model subSchema (required |> Maybe.withDefault [] |> List.member propName) (path ++ [ propName ]) ) in - case schema of - ObjectSchema os -> - os.properties - |> Maybe.map (iterateOverSchemata Dict.empty os.required) - |> Maybe.withDefault [] - |> div [] + case schema of + ObjectSchema os -> + os.properties + |> Maybe.map (iterateOverSchemata Dict.empty os.required) + |> Maybe.withDefault [] + |> div [] - _ -> - text "" + _ -> + text "" update : Msg -> Model -> ( ( Model, Cmd Msg ), ExternalMsg ) @@ -178,6 +177,7 @@ touch path focused beingEdited = if path == Nothing then beingEdited |> (::) (focused |> Maybe.withDefault []) + else beingEdited @@ -189,6 +189,7 @@ editValue model path val = model.value |> Maybe.withDefault JsonValue.NullValue |> JsonValue.setIn path val + |> Result.mapError (Debug.log "editValue") |> Result.toMaybe |> Maybe.withDefault JsonValue.NullValue @@ -200,25 +201,25 @@ editValue model path val = model.schema |> Json.Schema.validateValue { applyDefaults = True } updatedValue in - case validationResult of - Ok v -> - { model - | value = - v - |> decodeValue JsonValue.decoder - |> Result.toMaybe - , errors = Dict.empty - } - ! [] - => UpdateValue (Just updatedJsonValue) True - - Err e -> - { model - | value = Just updatedJsonValue - , errors = dictFromListErrors e - } - ! [] - => UpdateValue (Just updatedJsonValue) False + case validationResult of + Ok v -> + { model + | value = + v + |> decodeValue JsonValue.decoder + |> Result.toMaybe + , errors = Dict.empty + } + ! [] + => UpdateValue (Just updatedJsonValue) True + + Err e -> + { model + | value = Just updatedJsonValue + , errors = dictFromListErrors e + } + ! [] + => UpdateValue (Just updatedJsonValue) False dictFromListErrors : List Error -> Dict Path (List String) diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index 921feb6..d97c6f3 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -1,8 +1,11 @@ -module Json.Form.Definitions exposing (Model, Msg(..), Path, EditingMode(..), init) +module Json.Form.Definitions exposing (EditingMode(..), Model, Msg(..), Path, init) -import Json.Schema.Definitions exposing (..) -import JsonValue exposing (JsonValue) import Dict exposing (Dict) +import ErrorMessages exposing (stringifyError) +import Json.Schema +import Json.Schema.Definitions exposing (..) +import Json.Schema.Validation exposing (Error) +import Json.Value as JsonValue exposing (JsonValue) type alias Model = @@ -16,10 +19,32 @@ type alias Model = init : Schema -> Maybe JsonValue -> Model -init s v = - { schema = s +init schema v = + let + someValue = + v + |> Maybe.withDefault JsonValue.NullValue + |> JsonValue.encode + + ( value, errors ) = + schema + |> Json.Schema.validateValue { applyDefaults = True } someValue + |> (\res -> + case res of + Ok updValue -> + ( updValue + |> JsonValue.decodeValue + |> Just + , Dict.empty + ) + + Err x -> + ( v, dictFromListErrors x ) + ) + in + { schema = schema , focused = Nothing - , value = v + , value = value |> Debug.log "initial value" , errors = Dict.empty , beingEdited = [] , editedNumber = "" @@ -44,3 +69,24 @@ type EditingMode type alias Path = List String + + +dictFromListErrors : List Error -> Dict Path (List String) +dictFromListErrors list = + list + |> List.foldl + (\error dict -> + dict + |> Dict.update error.jsonPointer.path + (\listDetails -> + (case listDetails of + Just l -> + l ++ [ error.details |> stringifyError ] + + Nothing -> + [ error.details |> stringifyError ] + ) + |> Just + ) + ) + Dict.empty diff --git a/src/Json/Form/Helper.elm b/src/Json/Form/Helper.elm index b984152..2f956fc 100644 --- a/src/Json/Form/Helper.elm +++ b/src/Json/Form/Helper.elm @@ -1,10 +1,10 @@ module Json.Form.Helper exposing (view) -import Json.Form.Definitions exposing (..) -import Json.Schema.Definitions exposing (Schema) import Dict exposing (Dict) import Html exposing (Html, text) -import Util exposing (..) +import Json.Form.Definitions exposing (..) +import Json.Schema.Definitions exposing (Schema) +import JsonFormUtil exposing (..) view : Model -> Schema -> Path -> ( Bool, Html msg ) @@ -17,15 +17,16 @@ view model schema path = hasError = errors /= Nothing && List.member path model.beingEdited in - ( hasError - , if hasError then - errors - |> Maybe.withDefault [] - |> String.join ", " - |> (++) "Error: " - |> text - else - schema - |> getDescription - |> text - ) + ( hasError + , if hasError then + errors + |> Maybe.withDefault [] + |> String.join ", " + |> (++) "Error: " + |> text + + else + schema + |> getDescription + |> text + ) diff --git a/src/Json/Form/Selection.elm b/src/Json/Form/Selection.elm index 78af96b..3661aef 100644 --- a/src/Json/Form/Selection.elm +++ b/src/Json/Form/Selection.elm @@ -1,13 +1,13 @@ module Json.Form.Selection exposing (checkbox, switch) -import Json.Form.Definitions exposing (..) -import Json.Schema.Definitions exposing (Schema, getCustomKeywordValue) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onFocus, onBlur, onInput, onCheck) -import JsonValue exposing (JsonValue(BoolValue)) -import Util exposing (..) +import Html.Events exposing (onBlur, onCheck, onFocus, onInput) +import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper +import Json.Schema.Definitions exposing (Schema, getCustomKeywordValue) +import Json.Value as JsonValue exposing (JsonValue(BoolValue)) +import JsonFormUtil exposing (..) switch : Model -> Schema -> Bool -> Path -> Html Msg @@ -24,28 +24,28 @@ switch model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path in - label - [ classList - [ ( "jf-switch", True ) - , ( "jf-switch--on", isChecked ) - , ( "jf-switch--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) - , ( "jf-switch--invalid", hasError ) - ] + label + [ classList + [ ( "jf-switch", True ) + , ( "jf-switch--on", isChecked ) + , ( "jf-switch--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) + , ( "jf-switch--invalid", hasError ) ] - [ input - [ type_ "checkbox" - , class "jf-switch__input" - , checked isChecked - , onFocus <| FocusInput (Just path) - , onBlur <| FocusInput Nothing - , onCheck <| (JsonValue.BoolValue >> EditValue path) - ] - [] - , span [ class "jf-switch__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-switch__track" ] [] - , div [ class "jf-switch__thumb" ] [] - , div [ class "jf-switch__helper-text" ] [ helperText ] + ] + [ input + [ type_ "checkbox" + , class "jf-switch__input" + , checked isChecked + , onFocus <| FocusInput (Just path) + , onBlur <| FocusInput Nothing + , onCheck <| (JsonValue.BoolValue >> EditValue path) ] + [] + , span [ class "jf-switch__label" ] [ schema |> getTitle isRequired |> text ] + , div [ class "jf-switch__track" ] [] + , div [ class "jf-switch__thumb" ] [] + , div [ class "jf-switch__helper-text" ] [ helperText ] + ] checkbox : Model -> Schema -> Bool -> Path -> Html Msg @@ -62,26 +62,26 @@ checkbox model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path in - label - [ classList - [ ( "jf-checkbox", True ) - , ( "jf-checkbox--on", isChecked ) - , ( "jf-checkbox--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) - , ( "jf-checkbox--invalid", hasError ) - ] + label + [ classList + [ ( "jf-checkbox", True ) + , ( "jf-checkbox--on", isChecked ) + , ( "jf-checkbox--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) + , ( "jf-checkbox--invalid", hasError ) + ] + ] + [ input + [ type_ "checkbox" + , class "jf-checkbox__input" + , checked isChecked + , onFocus <| FocusInput (Just path) + , onBlur <| FocusInput Nothing + , onCheck <| (JsonValue.BoolValue >> EditValue path) ] - [ input - [ type_ "checkbox" - , class "jf-checkbox__input" - , checked isChecked - , onFocus <| FocusInput (Just path) - , onBlur <| FocusInput Nothing - , onCheck <| (JsonValue.BoolValue >> EditValue path) - ] - [] - , span [ class "jf-checkbox__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-checkbox__box-outline" ] - [ div [ class "jf-checkbox__tick-outline" ] [] - ] - , div [ class "jf-checkbox__helper-text" ] [ helperText ] + [] + , span [ class "jf-checkbox__label" ] [ schema |> getTitle isRequired |> text ] + , div [ class "jf-checkbox__box-outline" ] + [ div [ class "jf-checkbox__tick-outline" ] [] ] + , div [ class "jf-checkbox__helper-text" ] [ helperText ] + ] diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 50b2a49..8b0071e 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -1,14 +1,17 @@ module Json.Form.TextField exposing (view, viewNumeric) -import Json.Form.Definitions exposing (..) -import Json.Schema.Definitions exposing (Schema, getCustomKeywordValue) -import Json.Form.UiSpec exposing (UiSpec(..)) import Html exposing (..) import Html.Attributes exposing (..) -import Html.Events exposing (onFocus, onBlur, onInput) -import JsonValue exposing (JsonValue) -import Util exposing (..) +import Html.Events exposing (onBlur, onFocus, onInput) +import Json.Decode as Decode +import Json.Encode as Encode +import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper +import Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..)) +import Json.Schema +import Json.Schema.Definitions exposing (Schema(ObjectSchema), getCustomKeywordValue) +import Json.Value as JsonValue exposing (JsonValue) +import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) view : Model -> Schema -> Bool -> Path -> Html Msg @@ -24,37 +27,83 @@ view model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path + uiSpec = + schema |> getUiSpec + isPassword = - case schema |> getUiSpec of - PasswordField -> - True + uiSpec.widgetType == Just PasswordField + + getDefaultValue s = + case s of + ObjectSchema os -> + os.default + |> Maybe.withDefault Encode.null + |> JsonValue.decodeValue + + _ -> + JsonValue.NullValue + + referencedValue subPath s = + model.value + |> Maybe.andThen (JsonValue.getIn subPath >> Result.toMaybe) + |> Maybe.withDefault (s |> getDefaultValue) + |> JsonValue.encode + + validate subPath s = + s + |> Json.Schema.validateValue { applyDefaults = True } (referencedValue subPath s) + |> Result.map (\_ -> True) + |> Result.withDefault False + + disabled = + case uiSpec.rule of + Just (Disable subPath s) -> + validate subPath s + + Just (Enable subPath s) -> + validate subPath s |> not + + _ -> + False + + hidden = + case uiSpec.rule of + Just (Hide subPath s) -> + validate subPath s + + Just (Show subPath s) -> + validate subPath s |> not _ -> False in - div - [ classList - [ ( "jf-textfield", True ) - , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) - , ( "jf-textfield--empty", editedValue == "" ) - , ( "jf-textfield--invalid", hasError ) - ] + div + [ classList + [ ( "jf-textfield", True ) + , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) + , ( "jf-textfield--empty", editedValue == "" ) + , ( "jf-textfield--invalid", hasError ) + , ( "jf-textfield--disabled", disabled ) + , ( "jf-textfield--hidden", hidden ) ] - [ input - [ class "jf-textfield__input" - , onFocus <| FocusInput (Just path) - , onBlur <| FocusInput Nothing - , onInput <| (\str -> EditValue path (JsonValue.StringValue str)) - , value <| editedValue - , if isPassword then - type_ "password" - else - type_ "text" - ] - [] - , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-textfield__helper-text" ] [ helperText ] + ] + [ input + [ class "jf-textfield__input" + , onFocus <| FocusInput (Just path) + , onBlur <| FocusInput Nothing + , onInput <| \str -> EditValue path (JsonValue.StringValue str) + , value <| editedValue + , Html.Attributes.disabled disabled + , if isPassword then + type_ "password" + + else + type_ "text" ] + [] + , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] + , div [ class "jf-textfield__helper-text" ] [ helperText ] + ] viewNumeric : Model -> Schema -> Bool -> Path -> Html Msg @@ -68,6 +117,7 @@ viewNumeric model schema isRequired path = editedValue = if isFocused then model.editedNumber + else model.value |> Maybe.map (JsonValue.getIn path) @@ -78,23 +128,23 @@ viewNumeric model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path in - div - [ classList - [ ( "jf-textfield", True ) - , ( "jf-textfield--focused", isFocused ) - , ( "jf-textfield--empty", editedValue == "" ) - , ( "jf-textfield--invalid", hasError ) - ] + div + [ classList + [ ( "jf-textfield", True ) + , ( "jf-textfield--focused", isFocused ) + , ( "jf-textfield--empty", editedValue == "" ) + , ( "jf-textfield--invalid", hasError ) ] - [ input - [ class "jf-textfield__input" - , onFocus <| FocusNumericInput (Just path) - , onBlur <| FocusNumericInput Nothing - , onInput <| EditNumber - , value <| editedValue - , type_ "number" - ] - [] - , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-textfield__helper-text" ] [ helperText ] + ] + [ input + [ class "jf-textfield__input" + , onFocus <| FocusNumericInput (Just path) + , onBlur <| FocusNumericInput Nothing + , onInput <| EditNumber + , value <| editedValue + , type_ "number" ] + [] + , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] + , div [ class "jf-textfield__helper-text" ] [ helperText ] + ] diff --git a/src/Json/Form/UiSpec.elm b/src/Json/Form/UiSpec.elm index 4b31df9..69dc9ce 100644 --- a/src/Json/Form/UiSpec.elm +++ b/src/Json/Form/UiSpec.elm @@ -1,26 +1,76 @@ -module Json.Form.UiSpec exposing (UiSpec(..), decoder) +module Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..), blank, decoder) -import Json.Decode as Decode exposing (Decoder, Value, succeed, fail) +import Json.Decode as Decode exposing (Decoder, Value, fail, field, maybe, succeed) +import Json.Schema.Definitions exposing (Schema) -type UiSpec +type alias UiSpec = + { widgetType : Maybe WidgetType + , rule : Maybe Rule + } + + +type WidgetType = PasswordField | Switch - | Unknown Value + + +type Rule + = Enable (List String) Schema + | Disable (List String) Schema + | Show (List String) Schema + | Hide (List String) Schema + + +blank : UiSpec +blank = + { widgetType = Nothing + , rule = Nothing + } decoder : Decoder UiSpec decoder = - Decode.oneOf - [ Decode.field "widget" Decode.string + Decode.map2 UiSpec + (field "widget" Decode.string |> Decode.andThen (\widget -> if widget == "password" then - succeed PasswordField + succeed <| PasswordField + else if widget == "switch" then - succeed Switch + succeed <| Switch + else fail "" ) - , Decode.value |> Decode.map Unknown - ] + |> maybe + ) + (field "rule" ruleDecoder |> maybe) + + +ruleDecoder : Decoder Rule +ruleDecoder = + Decode.map3 + (\action ref condition -> action ref condition) + (Decode.field "action" Decode.string + |> Decode.andThen + (\action -> + if action == "enable" then + succeed Enable + + else if action == "disable" then + succeed Disable + + else if action == "show" then + succeed Show + + else if action == "hide" then + succeed Hide + + else + fail <| "Expected one of 'disable', 'enabled', 'show', 'hide', but got unknown action: '" ++ action ++ "'" + ) + ) + (Decode.field "path" (Decode.list Decode.string)) + (Decode.field "condition" Json.Schema.Definitions.decoder) diff --git a/src/Util.elm b/src/JsonFormUtil.elm similarity index 86% rename from src/Util.elm rename to src/JsonFormUtil.elm index 82d9747..6ef4489 100644 --- a/src/Util.elm +++ b/src/JsonFormUtil.elm @@ -1,10 +1,10 @@ -module Util exposing (..) +module JsonFormUtil exposing ((=>), getDescription, getTextProp, getTitle, getUiSpec, jsonValueToString) -import JsonValue exposing (JsonValue) -import Json.Encode as Encode import Json.Decode as Decode +import Json.Encode as Encode import Json.Form.UiSpec exposing (UiSpec, decoder) import Json.Schema.Definitions exposing (Schema(..), SubSchema, getCustomKeywordValue) +import Json.Value as JsonValue exposing (JsonValue) jsonValueToString : JsonValue -> String @@ -26,6 +26,7 @@ getTitle isRequired schema = |> (\title -> if isRequired then title ++ " *" + else title ) @@ -58,7 +59,7 @@ getUiSpec schema = |> Decode.decodeValue decoder |> Result.toMaybe ) - |> Maybe.withDefault (Json.Form.UiSpec.Unknown Encode.null) + |> Maybe.withDefault Json.Form.UiSpec.blank (=>) : a -> b -> ( a, b ) diff --git a/src/JsonViewer.elm b/src/JsonViewer.elm index e2e48af..c993069 100644 --- a/src/JsonViewer.elm +++ b/src/JsonViewer.elm @@ -1,36 +1,36 @@ module JsonViewer exposing (JsonViewer, ExpandedNodes, Path, view, toggle) {-| + @docs JsonViewer, ExpandedNodes, Path, view, toggle + -} import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onClick) -import JsonValue exposing (JsonValue) +import Json.Value as JsonValue exposing (JsonValue) -{-| -Expanded nodes in JSON value, use it to define model +{-| Expanded nodes in JSON value, use it to define model type alias Model = { expandedNodes : JsonViewer.ExpandedNodes , {- ... the rest of applications model -} } + -} type alias ExpandedNodes = List Path -{-| -Path in JSON value +{-| Path in JSON value -} type alias Path = List String -{-| -Configuration for JsonViewer component +{-| Configuration for JsonViewer component -} type alias JsonViewer msg = { expandedNodes : ExpandedNodes @@ -38,8 +38,7 @@ type alias JsonViewer msg = } -{-| -Toggle expandable node. A helper to use in update function: +{-| Toggle expandable node. A helper to use in update function: type Msg = ToggleNode Path @@ -61,18 +60,20 @@ toggle : Path -> ExpandedNodes -> ExpandedNodes toggle path expandedNodes = if List.member path expandedNodes then expandedNodes |> List.filter ((/=) path) + else path :: expandedNodes -{-| -Render JsonViewer +{-| Render JsonViewer jsonValue |> view { expandedNodes = expandedNodes , onToggle = ToggleNode - } [] + } + [] + -} view : JsonViewer msg -> Path -> JsonValue -> Html msg view jvr path jv = @@ -111,6 +112,7 @@ view jvr path jv = ] ) |> div [ class "json-viewer json-viewer--expandable" ] + else props |> List.take 5 @@ -135,6 +137,7 @@ view jvr path jv = ] ) |> div [ class "json-viewer json-viewer--expandable" ] + else span [ class "json-viewer json-viewer--collapsed" @@ -154,7 +157,7 @@ type JsonType inline : JsonType -> Html msg -> Html msg inline jsonType el = span - [ class <| "json-viewer json-viewer--" ++ (jsonTypeToString jsonType) ] + [ class <| "json-viewer json-viewer--" ++ jsonTypeToString jsonType ] [ el ] @@ -178,5 +181,6 @@ boolToString : Bool -> String boolToString bv = if bv then "true" + else "false" diff --git a/src/Snippets.elm b/src/Snippets.elm index 7e6b9a7..1416224 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -1,14 +1,15 @@ -module Snippets exposing (Snippet(..), index, getSnippet, getSnippetTitle) +module Snippets exposing (Snippet(..), getSnippet, getSnippetTitle, index) -import Json.Schema.Definitions exposing (Schema(..), blankSchema, blankSubSchema, Type(..), SingleType(..)) +import Json.Encode as Encode exposing (list, object, string) import Json.Schema.Builder exposing (..) -import Json.Encode as Encode exposing (string) +import Json.Schema.Definitions exposing (Schema(..), SingleType(..), Type(..), blankSchema, blankSubSchema) type Snippet = SimpleField | FlatObject | LoginForm + | Rules | FlightBooking @@ -17,6 +18,7 @@ index = [ SimpleField , FlatObject , LoginForm + , Rules , FlightBooking ] @@ -33,6 +35,9 @@ getSnippetTitle ds = LoginForm -> "Login Form" + Rules -> + "Rules" + FlightBooking -> "Flight Booking" @@ -104,6 +109,72 @@ getSnippet ds = |> toSchema |> Result.withDefault blankSchema + Rules -> + buildSchema + |> withType "object" + |> withProperties + [ ( "enabled" + , buildSchema + |> withType "boolean" + -- |> withDefault (Encode.bool True) + |> withTitle "enable" + |> withDescription "Enable editing" + |> withCustomKeyword "ui" (Encode.object [ ( "widget", string "switch" ) ]) + ) + , ( "form" + , buildSchema + |> withType "object" + |> withProperties + [ ( "disableDemo" + , buildSchema + |> withTitle "Rule: disable" + |> withType "string" + |> withDescription "This field will be enabled when switch turned on" + |> withCustomKeyword "ui" + (object + [ ( "rule" + , object + [ ( "action", string "disable" ) + , ( "path", list [ string "enabled" ] ) + , ( "condition" + , object + [ ( "const", Encode.bool False ) + , ( "default", Encode.bool False ) + ] + ) + ] + ) + ] + ) + ) + , ( "hideDemo" + , buildSchema + |> withTitle "Rule: hide" + |> withType "string" + |> withDescription "This field will be shown when switch turned on" + |> withCustomKeyword "ui" + (object + [ ( "rule" + , object + [ ( "action", string "hide" ) + , ( "path", list [ string "enabled" ] ) + , ( "condition" + , object + [ ( "const", Encode.bool False ) + , ( "default", Encode.bool False ) + ] + ) + ] + ) + ] + ) + ) + ] + ) + ] + |> toSchema + |> Result.withDefault blankSchema + FlightBooking -> buildSchema |> withType "object" diff --git a/src/index.ejs b/src/index.ejs index 49fe22c..ef0dfe4 100644 --- a/src/index.ejs +++ b/src/index.ejs @@ -4,7 +4,7 @@ JSON Form web-component demo - + + diff --git a/src/index.js b/src/index.js index eb13062..6012e86 100644 --- a/src/index.js +++ b/src/index.js @@ -1,5 +1,6 @@ 'use strict'; +console.log('hello from here'); require('../stylesheets/index.css'); const Elm = require('./Main'); diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 0179b27..7bb4f69 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -162,3 +162,20 @@ .jf-textfield--invalid:after { background-color: var(--color-red--500) !important; } + +.jf-textfield--disabled { + color: var(--color-inactive); +} + +.jf-textfield--disabled:hover:after { + background-color: transparent; +} + +.jf-textfield--disabled:after { + background-color: transparent; + border-bottom: 1px dotted var(--color-inactive); +} + +.jf-textfield--hidden { + display: none; +} diff --git a/webpack.config.js b/webpack.config.js index 29a997f..bd89b3e 100644 --- a/webpack.config.js +++ b/webpack.config.js @@ -13,8 +13,8 @@ var filename = TARGET_ENV == "production" ? "[name]-[hash].js" : "index.js"; var common = { entry: { - // 'index': "./src/index", - 'custom-element': './src/custom-element' + 'index': "./src/index", + // 'custom-element': './src/custom-element' }, output: { path: path.join(__dirname, "dist"), @@ -28,6 +28,7 @@ var common = { // inject details of output file at end of body inject: "body" }), + /* new UglifyJsPlugin({ uglifyOptions: { ecma: 6, @@ -41,6 +42,7 @@ var common = { } } }) + */ ], resolve: { modules: [path.join(__dirname, "src"), "node_modules"], @@ -70,7 +72,8 @@ var common = { { test: /\.css$/, exclude: [/elm-stuff/, /node_modules/], - loaders: ["to-string-loader", "css-loader"] + loaders: ["style-loader", "css-loader"] + //loaders: ["to-string-loader", "css-loader"] }, { test: /\.woff(2)?(\?v=[0-9]\.[0-9]\.[0-9])?$/, From 4dfcbba2334cc437895c47583b0c60ecefd09102 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 2 Sep 2018 12:18:33 +0100 Subject: [PATCH 16/71] Support numeric fields --- src/Json/Form/TextField.elm | 61 ++++++++++++++++++++++++------------- src/Snippets.elm | 4 +-- 2 files changed, 41 insertions(+), 24 deletions(-) diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 8b0071e..7eb8fd3 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -3,7 +3,6 @@ module Json.Form.TextField exposing (view, viewNumeric) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onBlur, onFocus, onInput) -import Json.Decode as Decode import Json.Encode as Encode import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper @@ -14,25 +13,9 @@ import Json.Value as JsonValue exposing (JsonValue) import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) -view : Model -> Schema -> Bool -> Path -> Html Msg -view model schema isRequired path = +applyRule : Maybe JsonValue -> Maybe Rule -> ( Bool, Bool ) +applyRule value rule = let - editedValue = - model.value - |> Maybe.map (JsonValue.getIn path) - |> Maybe.andThen Result.toMaybe - |> Maybe.map jsonValueToString - |> Maybe.withDefault "" - - ( hasError, helperText ) = - Helper.view model schema path - - uiSpec = - schema |> getUiSpec - - isPassword = - uiSpec.widgetType == Just PasswordField - getDefaultValue s = case s of ObjectSchema os -> @@ -44,7 +27,7 @@ view model schema isRequired path = JsonValue.NullValue referencedValue subPath s = - model.value + value |> Maybe.andThen (JsonValue.getIn subPath >> Result.toMaybe) |> Maybe.withDefault (s |> getDefaultValue) |> JsonValue.encode @@ -56,7 +39,7 @@ view model schema isRequired path = |> Result.withDefault False disabled = - case uiSpec.rule of + case rule of Just (Disable subPath s) -> validate subPath s @@ -67,7 +50,7 @@ view model schema isRequired path = False hidden = - case uiSpec.rule of + case rule of Just (Hide subPath s) -> validate subPath s @@ -77,6 +60,31 @@ view model schema isRequired path = _ -> False in + ( disabled, hidden ) + + +view : Model -> Schema -> Bool -> Path -> Html Msg +view model schema isRequired path = + let + editedValue = + model.value + |> Maybe.map (JsonValue.getIn path) + |> Maybe.andThen Result.toMaybe + |> Maybe.map jsonValueToString + |> Maybe.withDefault "" + + ( hasError, helperText ) = + Helper.view model schema path + + uiSpec = + schema |> getUiSpec + + isPassword = + uiSpec.widgetType == Just PasswordField + + ( disabled, hidden ) = + applyRule model.value uiSpec.rule + in div [ classList [ ( "jf-textfield", True ) @@ -127,6 +135,12 @@ viewNumeric model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path + + uiSpec = + schema |> getUiSpec + + ( disabled, hidden ) = + applyRule model.value uiSpec.rule in div [ classList @@ -134,6 +148,8 @@ viewNumeric model schema isRequired path = , ( "jf-textfield--focused", isFocused ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) + , ( "jf-textfield--disabled", disabled ) + , ( "jf-textfield--hidden", hidden ) ] ] [ input @@ -143,6 +159,7 @@ viewNumeric model schema isRequired path = , onInput <| EditNumber , value <| editedValue , type_ "number" + , Html.Attributes.disabled disabled ] [] , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/src/Snippets.elm b/src/Snippets.elm index 1416224..495a049 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -128,7 +128,7 @@ getSnippet ds = [ ( "disableDemo" , buildSchema |> withTitle "Rule: disable" - |> withType "string" + |> withType "number" |> withDescription "This field will be enabled when switch turned on" |> withCustomKeyword "ui" (object @@ -150,7 +150,7 @@ getSnippet ds = , ( "hideDemo" , buildSchema |> withTitle "Rule: hide" - |> withType "string" + |> withType "number" |> withDescription "This field will be shown when switch turned on" |> withCustomKeyword "ui" (object From f921e40cf564b65ddcf83e6342549ed2865fd9dd Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 2 Sep 2018 12:56:04 +0100 Subject: [PATCH 17/71] Support rules in switch and checkbox --- src/Json/Form/Selection.elm | 21 ++++++- src/Json/Form/TextField.elm | 54 +----------------- src/Json/Form/UiSpec.elm | 57 ++++++++++++++++++- src/Snippets.elm | 108 ++++++++++++++++++++++++------------ stylesheets/checkbox.css | 19 +++++++ stylesheets/switch.css | 19 +++++++ 6 files changed, 186 insertions(+), 92 deletions(-) diff --git a/src/Json/Form/Selection.elm b/src/Json/Form/Selection.elm index 3661aef..a20475c 100644 --- a/src/Json/Form/Selection.elm +++ b/src/Json/Form/Selection.elm @@ -5,9 +5,10 @@ import Html.Attributes exposing (..) import Html.Events exposing (onBlur, onCheck, onFocus, onInput) import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper +import Json.Form.UiSpec exposing (applyRule) import Json.Schema.Definitions exposing (Schema, getCustomKeywordValue) import Json.Value as JsonValue exposing (JsonValue(BoolValue)) -import JsonFormUtil exposing (..) +import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) switch : Model -> Schema -> Bool -> Path -> Html Msg @@ -23,6 +24,12 @@ switch model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path + + ( disabled, hidden ) = + schema + |> getUiSpec + |> .rule + |> applyRule model.value in label [ classList @@ -30,6 +37,8 @@ switch model schema isRequired path = , ( "jf-switch--on", isChecked ) , ( "jf-switch--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-switch--invalid", hasError ) + , ( "jf-switch--disabled", disabled ) + , ( "jf-switch--hidden", hidden ) ] ] [ input @@ -39,6 +48,7 @@ switch model schema isRequired path = , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) + , Html.Attributes.disabled disabled ] [] , span [ class "jf-switch__label" ] [ schema |> getTitle isRequired |> text ] @@ -61,6 +71,12 @@ checkbox model schema isRequired path = ( hasError, helperText ) = Helper.view model schema path + + ( disabled, hidden ) = + schema + |> getUiSpec + |> .rule + |> applyRule model.value in label [ classList @@ -68,6 +84,8 @@ checkbox model schema isRequired path = , ( "jf-checkbox--on", isChecked ) , ( "jf-checkbox--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-checkbox--invalid", hasError ) + , ( "jf-checkbox--disabled", disabled ) + , ( "jf-checkbox--hidden", hidden ) ] ] [ input @@ -77,6 +95,7 @@ checkbox model schema isRequired path = , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) + , Html.Attributes.disabled disabled ] [] , span [ class "jf-checkbox__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 7eb8fd3..300e476 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -3,66 +3,14 @@ module Json.Form.TextField exposing (view, viewNumeric) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onBlur, onFocus, onInput) -import Json.Encode as Encode import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper -import Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..)) -import Json.Schema +import Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..), applyRule) import Json.Schema.Definitions exposing (Schema(ObjectSchema), getCustomKeywordValue) import Json.Value as JsonValue exposing (JsonValue) import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) -applyRule : Maybe JsonValue -> Maybe Rule -> ( Bool, Bool ) -applyRule value rule = - let - getDefaultValue s = - case s of - ObjectSchema os -> - os.default - |> Maybe.withDefault Encode.null - |> JsonValue.decodeValue - - _ -> - JsonValue.NullValue - - referencedValue subPath s = - value - |> Maybe.andThen (JsonValue.getIn subPath >> Result.toMaybe) - |> Maybe.withDefault (s |> getDefaultValue) - |> JsonValue.encode - - validate subPath s = - s - |> Json.Schema.validateValue { applyDefaults = True } (referencedValue subPath s) - |> Result.map (\_ -> True) - |> Result.withDefault False - - disabled = - case rule of - Just (Disable subPath s) -> - validate subPath s - - Just (Enable subPath s) -> - validate subPath s |> not - - _ -> - False - - hidden = - case rule of - Just (Hide subPath s) -> - validate subPath s - - Just (Show subPath s) -> - validate subPath s |> not - - _ -> - False - in - ( disabled, hidden ) - - view : Model -> Schema -> Bool -> Path -> Html Msg view model schema isRequired path = let diff --git a/src/Json/Form/UiSpec.elm b/src/Json/Form/UiSpec.elm index 69dc9ce..cec895b 100644 --- a/src/Json/Form/UiSpec.elm +++ b/src/Json/Form/UiSpec.elm @@ -1,7 +1,10 @@ -module Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..), blank, decoder) +module Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..), applyRule, blank, decoder) import Json.Decode as Decode exposing (Decoder, Value, fail, field, maybe, succeed) -import Json.Schema.Definitions exposing (Schema) +import Json.Encode as Encode +import Json.Schema exposing (validateValue) +import Json.Schema.Definitions exposing (Schema(ObjectSchema)) +import Json.Value as JsonValue exposing (JsonValue) type alias UiSpec = @@ -74,3 +77,53 @@ ruleDecoder = ) (Decode.field "path" (Decode.list Decode.string)) (Decode.field "condition" Json.Schema.Definitions.decoder) + + +applyRule : Maybe JsonValue -> Maybe Rule -> ( Bool, Bool ) +applyRule value rule = + let + getDefaultValue s = + case s of + ObjectSchema os -> + os.default + |> Maybe.withDefault Encode.null + |> JsonValue.decodeValue + + _ -> + JsonValue.NullValue + + referencedValue subPath s = + value + |> Maybe.andThen (JsonValue.getIn subPath >> Result.toMaybe) + |> Maybe.withDefault (s |> getDefaultValue) + |> JsonValue.encode + + validate subPath s = + s + |> validateValue { applyDefaults = True } (referencedValue subPath s) + |> Result.map (\_ -> True) + |> Result.withDefault False + + disabled = + case rule of + Just (Disable subPath s) -> + validate subPath s + + Just (Enable subPath s) -> + validate subPath s |> not + + _ -> + False + + hidden = + case rule of + Just (Hide subPath s) -> + validate subPath s + + Just (Show subPath s) -> + validate subPath s |> not + + _ -> + False + in + ( disabled, hidden ) diff --git a/src/Snippets.elm b/src/Snippets.elm index 495a049..53df54a 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -110,6 +110,44 @@ getSnippet ds = |> Result.withDefault blankSchema Rules -> + let + withRule name = + withCustomKeyword "ui" + (object + [ ( "rule" + , object + [ ( "action", string name ) + , ( "path", list [ string "enabled" ] ) + , ( "condition" + , object + [ ( "const", Encode.bool False ) + , ( "default", Encode.bool False ) + ] + ) + ] + ) + ] + ) + + withRuleAndWidget name widget = + withCustomKeyword "ui" + (object + [ ( "rule" + , object + [ ( "action", string name ) + , ( "path", list [ string "enabled" ] ) + , ( "condition" + , object + [ ( "const", Encode.bool False ) + , ( "default", Encode.bool False ) + ] + ) + ] + ) + , ( "widget", string widget ) + ] + ) + in buildSchema |> withType "object" |> withProperties @@ -127,47 +165,45 @@ getSnippet ds = |> withProperties [ ( "disableDemo" , buildSchema - |> withTitle "Rule: disable" - |> withType "number" + |> withTitle "Rule: disable text field" + |> withType "string" |> withDescription "This field will be enabled when switch turned on" - |> withCustomKeyword "ui" - (object - [ ( "rule" - , object - [ ( "action", string "disable" ) - , ( "path", list [ string "enabled" ] ) - , ( "condition" - , object - [ ( "const", Encode.bool False ) - , ( "default", Encode.bool False ) - ] - ) - ] - ) - ] - ) + |> withRule "disable" ) , ( "hideDemo" , buildSchema - |> withTitle "Rule: hide" - |> withType "number" + |> withTitle "Rule: hide text field" + |> withType "string" |> withDescription "This field will be shown when switch turned on" - |> withCustomKeyword "ui" - (object - [ ( "rule" - , object - [ ( "action", string "hide" ) - , ( "path", list [ string "enabled" ] ) - , ( "condition" - , object - [ ( "const", Encode.bool False ) - , ( "default", Encode.bool False ) - ] - ) - ] - ) - ] - ) + |> withRule "hide" + ) + , ( "disableNumericDemo" + , buildSchema + |> withTitle "Rule: disable numeric" + |> withType "number" + |> withDescription "This numeric field will be enabled when switch turned on" + |> withRule "disable" + ) + , ( "hideNumericDemo" + , buildSchema + |> withTitle "Rule: hide numeric" + |> withType "number" + |> withDescription "This numeric field will be shown when switch turned on" + |> withRule "hide" + ) + , ( "disableCheckboxDemo" + , buildSchema + |> withTitle "Rule: disable checkbox" + |> withType "boolean" + |> withDescription "This checkbox will be enabled when switch turned on" + |> withRuleAndWidget "disable" "checkbox" + ) + , ( "disableSwitchDemo" + , buildSchema + |> withTitle "Rule: disable switch" + |> withType "boolean" + |> withDescription "This switch will be enabled when switch turned on" + |> withRuleAndWidget "disable" "switch" ) ] ) diff --git a/stylesheets/checkbox.css b/stylesheets/checkbox.css index c33c49a..4d7ac05 100644 --- a/stylesheets/checkbox.css +++ b/stylesheets/checkbox.css @@ -84,3 +84,22 @@ color: var(--color-red--500); } + +.jf-checkbox--disabled .jf-checkbox__label, +.jf-checkbox--disabled .jf-checkbox__helper-text { + color: var(--color-inactive); + cursor: default; +} + +.jf-checkbox--disabled .jf-checkbox__tick-outline { + background-color: var(--color-inactive); +} + +.jf-checkbox--disabled .jf-checkbox__box-outline { + border-color: var(--color-inactive); + cursor: default; +} + +.jf-checkbox--hidden { + display: none; +} diff --git a/stylesheets/switch.css b/stylesheets/switch.css index 0b3532b..43b9967 100644 --- a/stylesheets/switch.css +++ b/stylesheets/switch.css @@ -80,3 +80,22 @@ .jf-switch--invalid .jf-textfield__helper-text { color: var(--color-red--500); } + +.jf-switch--disabled .jf-switch__label, +.jf-switch--disabled .jf-checkbox__helper-text { + color: var(--color-inactive); + cursor: default; +} + +.jf-switch--disabled .jf-switch__thumb { + background-color: var(--color-inactive); + cursor: default; +} + +.jf-switch--disabled .jf-switch__track { + cursor: default; +} + +.jf-switch--hidden { + display: none; +} From f2dc51f3f1ac85fa73b4fcad81ea2e5cb2da33ad Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 2 Sep 2018 13:29:21 +0100 Subject: [PATCH 18/71] Disable and hide nested form (propagate rules) --- src/Json/Form.elm | 52 ++++++++++++++++++++++--------------- src/Json/Form/Selection.elm | 16 ++++++------ src/Json/Form/TextField.elm | 16 ++++++------ src/Snippets.elm | 26 +++++++++++++++++++ 4 files changed, 73 insertions(+), 37 deletions(-) diff --git a/src/Json/Form.elm b/src/Json/Form.elm index c67c65f..a1c7ca8 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -14,12 +14,12 @@ import Json.Decode as Decode exposing (decodeValue) import Json.Form.Definitions as Definitions exposing (EditingMode(..), Msg(..), Path) import Json.Form.Selection as Selection import Json.Form.TextField as TextField -import Json.Form.UiSpec as UiSpec +import Json.Form.UiSpec as UiSpec exposing (applyRule) import Json.Schema import Json.Schema.Definitions exposing (..) import Json.Schema.Validation exposing (Error) import Json.Value as JsonValue exposing (JsonValue(..)) -import JsonFormUtil as Util exposing (..) +import JsonFormUtil as Util exposing ((=>), getUiSpec, jsonValueToString) type ExternalMsg @@ -42,26 +42,26 @@ init = view : Model -> Html Msg view model = - viewNode model model.schema False [] + viewNode model model.schema False False [] -viewNode : Model -> Schema -> Bool -> Path -> Html Msg -viewNode model schema isRequired path = +viewNode : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +viewNode model schema isRequired isDisabled path = case editingMode model schema of TextField -> - TextField.view model schema isRequired path + TextField.view model schema isRequired isDisabled path NumberField -> - TextField.viewNumeric model schema isRequired path + TextField.viewNumeric model schema isRequired isDisabled path Switch -> - Selection.switch model schema isRequired path + Selection.switch model schema isRequired isDisabled path Checkbox -> - Selection.checkbox model schema isRequired path + Selection.checkbox model schema isRequired isDisabled path Object -> - viewObject model schema isRequired path + viewObject model schema isRequired isDisabled path x -> text (toString x ++ ": not implemented") @@ -101,25 +101,35 @@ getBooleanUiWidget schema = Checkbox -viewObject : Model -> Schema -> Bool -> Path -> Html Msg -viewObject model schema isRequired path = +viewObject : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +viewObject model schema isRequired isDisabled path = let iterateOverSchemata propsDict required (Schemata schemata) = schemata |> List.map (\( propName, subSchema ) -> - viewNode model subSchema (required |> Maybe.withDefault [] |> List.member propName) (path ++ [ propName ]) + viewNode model subSchema (required |> Maybe.withDefault [] |> List.member propName) (isDisabled || disabled) (path ++ [ propName ]) ) + + ( disabled, hidden ) = + schema + |> getUiSpec + |> .rule + |> applyRule model.value in - case schema of - ObjectSchema os -> - os.properties - |> Maybe.map (iterateOverSchemata Dict.empty os.required) - |> Maybe.withDefault [] - |> div [] + if hidden then + text "" - _ -> - text "" + else + case schema of + ObjectSchema os -> + os.properties + |> Maybe.map (iterateOverSchemata Dict.empty os.required) + |> Maybe.withDefault [] + |> div [] + + _ -> + text "" update : Msg -> Model -> ( ( Model, Cmd Msg ), ExternalMsg ) diff --git a/src/Json/Form/Selection.elm b/src/Json/Form/Selection.elm index a20475c..592c247 100644 --- a/src/Json/Form/Selection.elm +++ b/src/Json/Form/Selection.elm @@ -11,8 +11,8 @@ import Json.Value as JsonValue exposing (JsonValue(BoolValue)) import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) -switch : Model -> Schema -> Bool -> Path -> Html Msg -switch model schema isRequired path = +switch : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +switch model schema isRequired isDisabled path = let isChecked = case model.value |> Maybe.andThen (JsonValue.getIn path >> Result.toMaybe) of @@ -37,7 +37,7 @@ switch model schema isRequired path = , ( "jf-switch--on", isChecked ) , ( "jf-switch--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-switch--invalid", hasError ) - , ( "jf-switch--disabled", disabled ) + , ( "jf-switch--disabled", isDisabled || disabled ) , ( "jf-switch--hidden", hidden ) ] ] @@ -48,7 +48,7 @@ switch model schema isRequired path = , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) - , Html.Attributes.disabled disabled + , Html.Attributes.disabled (isDisabled || disabled) ] [] , span [ class "jf-switch__label" ] [ schema |> getTitle isRequired |> text ] @@ -58,8 +58,8 @@ switch model schema isRequired path = ] -checkbox : Model -> Schema -> Bool -> Path -> Html Msg -checkbox model schema isRequired path = +checkbox : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +checkbox model schema isRequired isDisabled path = let isChecked = case model.value |> Maybe.andThen (JsonValue.getIn path >> Result.toMaybe) of @@ -84,7 +84,7 @@ checkbox model schema isRequired path = , ( "jf-checkbox--on", isChecked ) , ( "jf-checkbox--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-checkbox--invalid", hasError ) - , ( "jf-checkbox--disabled", disabled ) + , ( "jf-checkbox--disabled", isDisabled || disabled ) , ( "jf-checkbox--hidden", hidden ) ] ] @@ -95,7 +95,7 @@ checkbox model schema isRequired path = , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) - , Html.Attributes.disabled disabled + , Html.Attributes.disabled (isDisabled || disabled) ] [] , span [ class "jf-checkbox__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 300e476..b7ab26d 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -11,8 +11,8 @@ import Json.Value as JsonValue exposing (JsonValue) import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) -view : Model -> Schema -> Bool -> Path -> Html Msg -view model schema isRequired path = +view : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +view model schema isRequired isDisabled path = let editedValue = model.value @@ -39,7 +39,7 @@ view model schema isRequired path = , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", disabled ) + , ( "jf-textfield--disabled", isDisabled || disabled ) , ( "jf-textfield--hidden", hidden ) ] ] @@ -49,7 +49,7 @@ view model schema isRequired path = , onBlur <| FocusInput Nothing , onInput <| \str -> EditValue path (JsonValue.StringValue str) , value <| editedValue - , Html.Attributes.disabled disabled + , Html.Attributes.disabled (isDisabled || disabled) , if isPassword then type_ "password" @@ -62,8 +62,8 @@ view model schema isRequired path = ] -viewNumeric : Model -> Schema -> Bool -> Path -> Html Msg -viewNumeric model schema isRequired path = +viewNumeric : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +viewNumeric model schema isRequired isDisabled path = let isFocused = model.focused @@ -96,7 +96,7 @@ viewNumeric model schema isRequired path = , ( "jf-textfield--focused", isFocused ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", disabled ) + , ( "jf-textfield--disabled", isDisabled || disabled ) , ( "jf-textfield--hidden", hidden ) ] ] @@ -107,7 +107,7 @@ viewNumeric model schema isRequired path = , onInput <| EditNumber , value <| editedValue , type_ "number" - , Html.Attributes.disabled disabled + , Html.Attributes.disabled (isDisabled || disabled) ] [] , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/src/Snippets.elm b/src/Snippets.elm index 53df54a..b6a1330 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -205,6 +205,32 @@ getSnippet ds = |> withDescription "This switch will be enabled when switch turned on" |> withRuleAndWidget "disable" "switch" ) + , ( "nestedForm" + , buildSchema + |> withType "object" + |> withProperties + [ ( "disableDemo" + , buildSchema + |> withTitle "Rule: disable nested form" + |> withType "string" + |> withDescription "This field will be enabled when switch turned on" + ) + ] + |> withRule "disable" + ) + , ( "otherNestedForm" + , buildSchema + |> withType "object" + |> withProperties + [ ( "hideDemo" + , buildSchema + |> withTitle "Rule: hide nested form" + |> withType "string" + |> withDescription "This field will be hidden when switch turned on" + ) + ] + |> withRule "hide" + ) ] ) ] From 59ef09680fe5ae24611b063e35230e6c89e70ec3 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 2 Sep 2018 16:25:40 +0100 Subject: [PATCH 19/71] Support arrays with local rules --- src/Json/Form.elm | 101 +++++++++++++++++++++++++++++++++- src/Json/Form/Definitions.elm | 2 + src/Json/Form/Selection.elm | 4 +- src/Json/Form/TextField.elm | 4 +- src/Json/Form/UiSpec.elm | 41 ++++++++++---- src/Snippets.elm | 44 ++++++++++++++- 6 files changed, 178 insertions(+), 18 deletions(-) diff --git a/src/Json/Form.elm b/src/Json/Form.elm index a1c7ca8..4de0f24 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -10,6 +10,8 @@ module Json.Form exposing import Dict exposing (Dict) import ErrorMessages exposing (stringifyError) import Html exposing (..) +import Html.Attributes exposing (class) +import Html.Events exposing (onClick) import Json.Decode as Decode exposing (decodeValue) import Json.Form.Definitions as Definitions exposing (EditingMode(..), Msg(..), Path) import Json.Form.Selection as Selection @@ -63,6 +65,9 @@ viewNode model schema isRequired isDisabled path = Object -> viewObject model schema isRequired isDisabled path + Array -> + viewArray model schema isRequired isDisabled path + x -> text (toString x ++ ": not implemented") @@ -84,6 +89,9 @@ editingMode model schema = SingleType ObjectType -> Object + SingleType ArrayType -> + Array + _ -> JsonEditor @@ -101,6 +109,75 @@ getBooleanUiWidget schema = Checkbox +viewArray : Model -> Schema -> Bool -> Bool -> Path -> Html Msg +viewArray model schema isRequired isDisabled path = + let + ( disabled, hidden ) = + schema + |> getUiSpec + |> .rule + |> applyRule model.value path + + list = + model.value + |> Maybe.withDefault JsonValue.NullValue + |> JsonValue.getIn path + |> Result.withDefault (JsonValue.ArrayValue []) + |> (\list -> + case list of + ArrayValue items -> + items + |> Debug.log "sss" + + _ -> + [] + ) + in + if hidden then + text "" + + else + case schema of + ObjectSchema os -> + case os.items of + ItemDefinition itemSchema -> + [ list + |> Debug.log "iterating over this" + |> List.indexedMap + (\index item -> + let + propName = + index |> toString + + isRequired = + case itemSchema of + ObjectSchema itemSchemaObject -> + itemSchemaObject.required + |> Maybe.withDefault [] + |> List.member propName + + _ -> + False + in + viewNode model itemSchema isRequired (isDisabled || disabled) (path ++ [ propName ]) + ) + |> div [] + , button [ class "button", onClick <| AddItem path (List.length list) ] [ text "ADD ITEM" ] + ] + |> div [] + + {- + div [] + [ text "TODO: Implement array editing" + ] + -} + _ -> + text "" + + _ -> + text "" + + viewObject : Model -> Schema -> Bool -> Bool -> Path -> Html Msg viewObject model schema isRequired isDisabled path = let @@ -115,7 +192,7 @@ viewObject model schema isRequired isDisabled path = schema |> getUiSpec |> .rule - |> applyRule model.value + |> applyRule model.value path in if hidden then text "" @@ -135,6 +212,28 @@ viewObject model schema isRequired isDisabled path = update : Msg -> Model -> ( ( Model, Cmd Msg ), ExternalMsg ) update msg model = case msg of + AddItem path index -> + let + newPropPath = + path ++ [ index |> toString ] + + updatedModel = + case model.value |> Maybe.andThen (JsonValue.getIn path >> Result.toMaybe) of + Just _ -> + model + + Nothing -> + { model + | value = + model.value + |> Maybe.withDefault NullValue + |> JsonValue.setIn path (ArrayValue []) + |> Result.toMaybe + |> Debug.log "init as empty array" + } + in + editValue updatedModel newPropPath JsonValue.NullValue + FocusInput focused -> { model | focused = focused diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index d97c6f3..4f1ea3d 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -56,6 +56,7 @@ type Msg | FocusNumericInput (Maybe Path) | EditValue Path JsonValue | EditNumber String + | AddItem Path Int type EditingMode @@ -65,6 +66,7 @@ type EditingMode | Checkbox | JsonEditor | Object + | Array type alias Path = diff --git a/src/Json/Form/Selection.elm b/src/Json/Form/Selection.elm index 592c247..4e83780 100644 --- a/src/Json/Form/Selection.elm +++ b/src/Json/Form/Selection.elm @@ -29,7 +29,7 @@ switch model schema isRequired isDisabled path = schema |> getUiSpec |> .rule - |> applyRule model.value + |> applyRule model.value path in label [ classList @@ -76,7 +76,7 @@ checkbox model schema isRequired isDisabled path = schema |> getUiSpec |> .rule - |> applyRule model.value + |> applyRule model.value path in label [ classList diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index b7ab26d..2b69036 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -31,7 +31,7 @@ view model schema isRequired isDisabled path = uiSpec.widgetType == Just PasswordField ( disabled, hidden ) = - applyRule model.value uiSpec.rule + applyRule model.value path uiSpec.rule in div [ classList @@ -88,7 +88,7 @@ viewNumeric model schema isRequired isDisabled path = schema |> getUiSpec ( disabled, hidden ) = - applyRule model.value uiSpec.rule + applyRule model.value path uiSpec.rule in div [ classList diff --git a/src/Json/Form/UiSpec.elm b/src/Json/Form/UiSpec.elm index cec895b..50441cc 100644 --- a/src/Json/Form/UiSpec.elm +++ b/src/Json/Form/UiSpec.elm @@ -19,10 +19,10 @@ type WidgetType type Rule - = Enable (List String) Schema - | Disable (List String) Schema - | Show (List String) Schema - | Hide (List String) Schema + = Enable String Schema + | Disable String Schema + | Show String Schema + | Hide String Schema blank : UiSpec @@ -75,13 +75,32 @@ ruleDecoder = fail <| "Expected one of 'disable', 'enabled', 'show', 'hide', but got unknown action: '" ++ action ++ "'" ) ) - (Decode.field "path" (Decode.list Decode.string)) + (Decode.field "path" Decode.string) (Decode.field "condition" Json.Schema.Definitions.decoder) -applyRule : Maybe JsonValue -> Maybe Rule -> ( Bool, Bool ) -applyRule value rule = +applyRule : Maybe JsonValue -> List String -> Maybe Rule -> ( Bool, Bool ) +applyRule value path rule = let + resolvePath subPath = + subPath + |> String.split "/" + |> List.foldl + (\token currentPath -> + if token == "" then + [] + + else if token == "." then + currentPath + + else if token == ".." then + currentPath |> List.take ((currentPath |> List.length) - 1) + + else + currentPath ++ [ token ] + ) + path + getDefaultValue s = case s of ObjectSchema os -> @@ -107,10 +126,10 @@ applyRule value rule = disabled = case rule of Just (Disable subPath s) -> - validate subPath s + validate (resolvePath subPath) s Just (Enable subPath s) -> - validate subPath s |> not + validate (resolvePath subPath) s |> not _ -> False @@ -118,10 +137,10 @@ applyRule value rule = hidden = case rule of Just (Hide subPath s) -> - validate subPath s + validate (resolvePath subPath) s Just (Show subPath s) -> - validate subPath s |> not + validate (resolvePath subPath) s |> not _ -> False diff --git a/src/Snippets.elm b/src/Snippets.elm index b6a1330..ec43c6c 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -117,7 +117,7 @@ getSnippet ds = [ ( "rule" , object [ ( "action", string name ) - , ( "path", list [ string "enabled" ] ) + , ( "path", string "/enabled" ) , ( "condition" , object [ ( "const", Encode.bool False ) @@ -135,7 +135,7 @@ getSnippet ds = [ ( "rule" , object [ ( "action", string name ) - , ( "path", list [ string "enabled" ] ) + , ( "path", string "/enabled" ) , ( "condition" , object [ ( "const", Encode.bool False ) @@ -231,6 +231,46 @@ getSnippet ds = ] |> withRule "hide" ) + , ( "array" + , buildSchema + |> withType "array" + |> withItem + (buildSchema + |> withType "object" + |> withProperties + [ ( "enabled" + , buildSchema + |> withType "boolean" + -- |> withDefault (Encode.bool True) + |> withTitle "enable" + |> withDescription "Enable editing" + |> withCustomKeyword "ui" (Encode.object [ ( "widget", string "switch" ) ]) + ) + , ( "hideDemo" + , buildSchema + |> withTitle "Rule: disable based on local condition" + |> withType "string" + |> withDescription "Local condition demo" + |> withCustomKeyword "ui" + (object + [ ( "rule" + , object + [ ( "action", string "disable" ) + , ( "path", string "../enabled" ) + , ( "condition" + , object + [ ( "const", Encode.bool False ) + , ( "default", Encode.bool False ) + ] + ) + ] + ) + ] + ) + ) + ] + ) + ) ] ) ] From 1c2dd25bca19d313f11ea918c6f0f3334fc11b2e Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 2 Sep 2018 20:23:16 +0100 Subject: [PATCH 20/71] Update json-value@3.0.1 --- elm-package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/elm-package.json b/elm-package.json index 38e4081..508b8d8 100644 --- a/elm-package.json +++ b/elm-package.json @@ -5,12 +5,12 @@ "license": "BSD3", "source-directories": [ "src", - "../json-value/src" ], "exposed-modules": [ ], "dependencies": { "1602/elm-feather": "2.2.0 <= v < 3.0.0", "1602/json-schema": "4.1.0 <= v < 5.0.0", + "1602/json-value": "3.0.1 <= v < 4.0.0", "elm-lang/core": "5.0.0 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0" }, From efaf95cb393c12460acf90fd7e243117659bd070 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Mon, 3 Sep 2018 20:29:40 +0100 Subject: [PATCH 21/71] Update README.md --- README.md | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 1cbb95c..424c030 100644 --- a/README.md +++ b/README.md @@ -40,13 +40,16 @@ Development progress: - [x] customizable widgets - [x] password field - [x] mark required fields with * +- [x] basic array editing capabilities +- [x] rules to disable or hide form elements based on conditions Next steps will be some of those (not necessarily in this order): +- [ ] multiline editing +- [ ] range widget for numbers - [ ] radiogroup widget for enum - [ ] optional field indication (configurable alternative to required) - [ ] dealing with `undefined` (erase property) -- [ ] multiline editing - [ ] editing as json - [ ] form layout customisation - [ ] editing array of items @@ -67,6 +70,8 @@ yarn dev ## Project structure -All sources live in `./src`, package code that will be published to a registry is in `./src/Json/Form.elm`, legacy code (with lots of feature covered in a slightly odd way lives here: `./src/LegacyFormComponent.elm`) +All sources live in `./src`, package code that will be published to the elm package registry is in `./src/Json/Form.elm`. + +All [json-form-custom-element](https://www.webcomponents.org/element/json-form-custom-element) web-component related sources live in a different repo: https://github.com/1602/json-form-custom-element Contributors welcome, submit an issue to open a discussion. From 451e7ee427f80f3f76686e9a5409c0fac1262df6 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 4 Sep 2018 09:59:31 +0100 Subject: [PATCH 22/71] Update text-view according to fresh spec --- elm-package.json | 4 +- src/CustomElement.elm | 130 ---------------------------------- src/ErrorMessages.elm | 41 ++++++----- src/Json/Form.elm | 6 +- src/Json/Form/Definitions.elm | 2 +- src/JsonFormCustomElement.elm | 13 ---- src/Snippets.elm | 18 ++--- stylesheets/checkbox.css | 2 + stylesheets/switch.css | 2 + stylesheets/textfield.css | 63 +++++++++++++--- 10 files changed, 89 insertions(+), 192 deletions(-) delete mode 100644 src/CustomElement.elm delete mode 100644 src/JsonFormCustomElement.elm diff --git a/elm-package.json b/elm-package.json index 508b8d8..a500469 100644 --- a/elm-package.json +++ b/elm-package.json @@ -4,13 +4,13 @@ "repository": "https://github.com/1602/json-form.git", "license": "BSD3", "source-directories": [ - "src", + "src" ], "exposed-modules": [ ], "dependencies": { "1602/elm-feather": "2.2.0 <= v < 3.0.0", "1602/json-schema": "4.1.0 <= v < 5.0.0", - "1602/json-value": "3.0.1 <= v < 4.0.0", + "1602/json-value": "3.0.2 <= v < 3.0.3", "elm-lang/core": "5.0.0 <= v < 6.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0" }, diff --git a/src/CustomElement.elm b/src/CustomElement.elm deleted file mode 100644 index 1d268b6..0000000 --- a/src/CustomElement.elm +++ /dev/null @@ -1,130 +0,0 @@ -port module CustomElement exposing (init, update, view, subscriptions) - -import Html exposing (Html, div, text, h3) - - ---import Html.Attributes exposing (class, classList) ---import Html.Events exposing (onClick) - -import Json.Decode exposing (Value, decodeValue) -import Json.Encode as Encode -import JsonValue exposing (decoder) -import Json.Form -import Json.Schema.Definitions - - -type alias Model = - { form : Json.Form.Model - , schema : Json.Schema.Definitions.Schema - , editedValue : Maybe JsonValue.JsonValue - } - - -init : Value -> ( Model, Cmd Msg ) -init v = - let - schema = - v - |> decodeValue (Json.Decode.at [ "schema" ] Json.Schema.Definitions.decoder) - |> Result.mapError Debug.log - |> Result.withDefault Json.Schema.Definitions.blankSchema - - value = - v - |> decodeValue (Json.Decode.at [ "value" ] JsonValue.decoder) - |> Result.toMaybe - in - { form = Json.Form.init schema value - , editedValue = value - , schema = schema - } - ! [] - - -type Msg - = JsonFormMsg Json.Form.Msg - | ChangeValue Value - | ChangeSchema Value - - -update : Msg -> Model -> ( Model, Cmd Msg ) -update message model = - case message of - ChangeSchema v -> - let - schema = - v - |> decodeValue Json.Schema.Definitions.decoder - |> Result.withDefault Json.Schema.Definitions.blankSchema - in - { model - | schema = schema - , form = Json.Form.init schema model.editedValue - } - ! [] - - ChangeValue v -> - let - value = - v - |> decodeValue JsonValue.decoder - |> Result.toMaybe - in - { model - | editedValue = value - , form = Json.Form.init model.schema value - } - ! [] - - JsonFormMsg msg -> - let - ( ( m, cmd ), exMsg ) = - Json.Form.update msg model.form - - ( editedValue, exCmd ) = - case exMsg of - Json.Form.UpdateValue v isValid -> - ( v - , Encode.object - [ ( "value" - , v - |> Maybe.withDefault JsonValue.NullValue - |> JsonValue.encode - ) - , ( "isValid", Encode.bool isValid ) - ] - |> value - ) - - _ -> - ( model.editedValue, Cmd.none ) - in - { model - | form = m - , editedValue = editedValue - } - ! [ cmd |> Cmd.map JsonFormMsg, exCmd ] - - -view : Model -> Html Msg -view model = - model.form - |> Json.Form.view - |> Html.map JsonFormMsg - - -port valueChange : (Value -> msg) -> Sub msg - - -port value : Value -> Cmd msg - - -port schemaChange : (Value -> msg) -> Sub msg - - -subscriptions : Model -> Sub Msg -subscriptions _ = - Sub.batch - [ valueChange ChangeValue - , schemaChange ChangeSchema - ] diff --git a/src/ErrorMessages.elm b/src/ErrorMessages.elm index a692bec..bcc71c5 100644 --- a/src/ErrorMessages.elm +++ b/src/ErrorMessages.elm @@ -1,7 +1,7 @@ module ErrorMessages exposing (stringifyError) -import Json.Schema.Validation as Validation exposing (ValidationError(..)) import Json.Encode as Encode +import Json.Schema.Validation as Validation exposing (ValidationError(..)) pluralize : Int -> String -> String @@ -20,49 +20,48 @@ stringifyError e = MultipleOf multiplier actual -> toString actual ++ " is not a multiple of " - ++ (toString multiplier) + ++ toString multiplier Maximum max actual -> - toString actual ++ " is more than maximum " ++ (toString max) + toString actual ++ " is more than maximum " ++ toString max Minimum min actual -> - toString actual ++ " is less than minimum " ++ (toString min) + toString actual ++ " is less than minimum " ++ toString min ExclusiveMaximum max actual -> - toString actual ++ " is not less than exclusive maximum " ++ (toString max) + toString actual ++ " is not less than exclusive maximum " ++ toString max ExclusiveMinimum min actual -> - toString actual ++ " is not more than exclusive minimum " ++ (toString min) + toString actual ++ " is not more than exclusive minimum " ++ toString min MaxLength expected actual -> - "Expected string not longer than " - ++ (pluralize expected "character") + "Not longer than " + ++ pluralize expected "character" ++ " but actual length is " - ++ (pluralize actual "character") + ++ pluralize actual "character" MinLength expected actual -> - "Expected string to be at least " - ++ (pluralize expected "character") - ++ " long but its length is " - ++ (pluralize actual "character") + "Less than " + ++ pluralize expected "character" + ++ " long" Pattern pattern string -> - "String " ++ (toString string) ++ " does not match pattern " ++ pattern + "Does not match pattern " ++ pattern MaxItems expected actual -> "List expected to have at most " - ++ (pluralize expected "item") + ++ pluralize expected "item" ++ " but it has " - ++ (pluralize actual "item") + ++ pluralize actual "item" MinItems expected actual -> "List expected to have at least " - ++ (pluralize expected "item") + ++ pluralize expected "item" ++ " but it has " - ++ (pluralize actual "item") + ++ pluralize actual "item" UniqueItems x -> - "Expected array of unique items, but a duplicate found: " ++ (Encode.encode 0 x) + "Expected array of unique items, but a duplicate found: " ++ Encode.encode 0 x Contains -> "None of array items is valid against the given schema" @@ -106,7 +105,7 @@ stringifyError e = "Value does not pass the validation with none of the schemata listed in '.oneOf'" OneOfManySucceed int -> - "Value should pass validation with exactly one schema, but " ++ (toString int) ++ " return a positive result" + "Value should pass validation with exactly one schema, but " ++ toString int ++ " return a positive result" Not -> "This value expected to fail validation" @@ -115,4 +114,4 @@ stringifyError e = "This is not expected to succeed" UnresolvableReference ref -> - "Reference " ++ (toString ref) ++ " can not be resolved" + "Reference " ++ toString ref ++ " can not be resolved" diff --git a/src/Json/Form.elm b/src/Json/Form.elm index 4de0f24..0fc0030 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -127,7 +127,6 @@ viewArray model schema isRequired isDisabled path = case list of ArrayValue items -> items - |> Debug.log "sss" _ -> [] @@ -142,7 +141,6 @@ viewArray model schema isRequired isDisabled path = case os.items of ItemDefinition itemSchema -> [ list - |> Debug.log "iterating over this" |> List.indexedMap (\index item -> let @@ -229,7 +227,6 @@ update msg model = |> Maybe.withDefault NullValue |> JsonValue.setIn path (ArrayValue []) |> Result.toMaybe - |> Debug.log "init as empty array" } in editValue updatedModel newPropPath JsonValue.NullValue @@ -246,7 +243,7 @@ update msg model = case focused of Nothing -> editValue - { model | beingEdited = touch focused model.focused model.beingEdited } + { model | beingEdited = touch focused model.focused model.beingEdited, focused = focused } (model.focused |> Maybe.withDefault []) (case model.editedNumber |> String.toFloat of Ok num -> @@ -298,7 +295,6 @@ editValue model path val = model.value |> Maybe.withDefault JsonValue.NullValue |> JsonValue.setIn path val - |> Result.mapError (Debug.log "editValue") |> Result.toMaybe |> Maybe.withDefault JsonValue.NullValue diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index 4f1ea3d..5a1941d 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -44,7 +44,7 @@ init schema v = in { schema = schema , focused = Nothing - , value = value |> Debug.log "initial value" + , value = value , errors = Dict.empty , beingEdited = [] , editedNumber = "" diff --git a/src/JsonFormCustomElement.elm b/src/JsonFormCustomElement.elm deleted file mode 100644 index 6a5977a..0000000 --- a/src/JsonFormCustomElement.elm +++ /dev/null @@ -1,13 +0,0 @@ -module JsonFormCustomElement exposing (main) - -import Html -import CustomElement exposing (init, update, view, subscriptions) - - -main = - Html.programWithFlags - { init = init - , update = update - , view = view - , subscriptions = subscriptions - } diff --git a/src/Snippets.elm b/src/Snippets.elm index ec43c6c..0f597f2 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -101,7 +101,7 @@ getSnippet ds = , buildSchema |> withType "boolean" |> withTitle "remember me" - |> withDescription "This will keep you logged in for another 2 weeks" + |> withDescription "Will keep you logged in for another 2 weeks" |> withCustomKeyword "ui" (Encode.object [ ( "widget", string "checkbox" ) ]) ) ] @@ -167,42 +167,42 @@ getSnippet ds = , buildSchema |> withTitle "Rule: disable text field" |> withType "string" - |> withDescription "This field will be enabled when switch turned on" + |> withDescription "Will be enabled when switch turned on" |> withRule "disable" ) , ( "hideDemo" , buildSchema |> withTitle "Rule: hide text field" |> withType "string" - |> withDescription "This field will be shown when switch turned on" + |> withDescription "Will be shown when switch turned on" |> withRule "hide" ) , ( "disableNumericDemo" , buildSchema |> withTitle "Rule: disable numeric" |> withType "number" - |> withDescription "This numeric field will be enabled when switch turned on" + |> withDescription "Will be enabled when switch turned on" |> withRule "disable" ) , ( "hideNumericDemo" , buildSchema |> withTitle "Rule: hide numeric" |> withType "number" - |> withDescription "This numeric field will be shown when switch turned on" + |> withDescription "Will be shown when switch turned on" |> withRule "hide" ) , ( "disableCheckboxDemo" , buildSchema |> withTitle "Rule: disable checkbox" |> withType "boolean" - |> withDescription "This checkbox will be enabled when switch turned on" + |> withDescription "Will be enabled when switch turned on" |> withRuleAndWidget "disable" "checkbox" ) , ( "disableSwitchDemo" , buildSchema |> withTitle "Rule: disable switch" |> withType "boolean" - |> withDescription "This switch will be enabled when switch turned on" + |> withDescription "Will be enabled when switch turned on" |> withRuleAndWidget "disable" "switch" ) , ( "nestedForm" @@ -213,7 +213,7 @@ getSnippet ds = , buildSchema |> withTitle "Rule: disable nested form" |> withType "string" - |> withDescription "This field will be enabled when switch turned on" + |> withDescription "Will be enabled when switch turned on" ) ] |> withRule "disable" @@ -226,7 +226,7 @@ getSnippet ds = , buildSchema |> withTitle "Rule: hide nested form" |> withType "string" - |> withDescription "This field will be hidden when switch turned on" + |> withDescription "Will be hidden when switch turned on" ) ] |> withRule "hide" diff --git a/stylesheets/checkbox.css b/stylesheets/checkbox.css index 4d7ac05..3e8d2e6 100644 --- a/stylesheets/checkbox.css +++ b/stylesheets/checkbox.css @@ -77,6 +77,8 @@ position: absolute; bottom: 0; font-size: 12px; + padding-left: 12px; + padding-right: 12px; color: rgba(0, 0, 0, 0.54); } diff --git a/stylesheets/switch.css b/stylesheets/switch.css index 43b9967..66ef172 100644 --- a/stylesheets/switch.css +++ b/stylesheets/switch.css @@ -74,6 +74,8 @@ position: absolute; bottom: 0; font-size: 12px; + padding-left: 12px; + padding-right: 12px; color: rgba(0, 0, 0, 0.54); } diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 7bb4f69..67bd5b6 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -4,12 +4,30 @@ font-size: 16px; display: inline-block; box-sizing: border-box; - width: 300px; + width: 280px; + /* height: 56px; */ max-width: 100%; margin: 0; - padding: 20px 0; + padding: 0; + padding-top: 20px; + margin-top: 16px; margin-left: 16px; margin-bottom: 16px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + cursor: pointer; + background-color: #e8e8e8; + color: #00000099; +} + +.jf-textfield:hover { + background-color: #dedede; + color: #000000de; +} + +.jf-textfield--focused:hover { + background-color: #e8e8e8; + color: #00000099; } .jf-textfield__input { @@ -20,19 +38,24 @@ font-size: 16px; font-family: var(--font-family); margin: 0; - padding: 8px 0; - width: 100%; + padding-left: 12px; + padding-right: 12px; + padding-top: 6px; + padding-bottom: 12px; + width: calc(100% - 24px); background: 0 0; text-align: left; color: inherit; + caret-color: var(--color-active); } .jf-textfield--focused .jf-textfield__input { - color: var(--color-active); + /* color: var(--color-active); */ + color: inherit; } .jf-textfield--empty .jf-textfield__label { - top: 29px; + top: 24px; font-size: 16px; } @@ -45,6 +68,8 @@ .jf-textfield__label { color: var(--color-inactive); + padding-left: 12px; + padding-right: 12px; font-size: 12px; left: 0; right: 0; @@ -78,7 +103,7 @@ .jf-textfield__label:after { background-color: var(--color-active); - bottom: 20px; + bottom: 0; content: ''; height: 2px; left: 45%; @@ -114,19 +139,23 @@ position: absolute; width: 100%; height: 1px; - bottom: 20px; - background-color: var(--color-inactive); + bottom: 0; + /* background-color: var(--color-inactive); */ + background-color: transparent; transition-duration: .2s; transition-timing-function: cubic-bezier(.4,0,.2,1); } +.jf-textfield:after:hover { + background-color: var(--color-inactive); +} + .jf-textfield--focused:after { background-color: transparent; } .jf-textfield:hover:after { background-color: #222; - bottom: 20px; height: 2px; } @@ -141,8 +170,10 @@ text-overflow: ellipsis; max-width: 100%; position: absolute; - bottom: 0; + bottom: -16px; font-size: 12px; + padding-left: 12px; + padding-right: 12px; color: rgba(0, 0, 0, 0.54); } @@ -163,8 +194,18 @@ background-color: var(--color-red--500) !important; } +.jf-textfield--invalid .jf-textfield__input { + caret-color: var(--color-red--500); +} + .jf-textfield--disabled { color: var(--color-inactive); + background-color: #e0e0e0; + cursor: default; +} + +.jf-textfield--disabled:hover { + background-color: #e0e0e0; } .jf-textfield--disabled:hover:after { From ab2199e2a6bd426280be269af7d61971d4ccc777 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Tue, 4 Sep 2018 15:36:58 +0100 Subject: [PATCH 23/71] Make selection play nicer with textfields --- stylesheets/checkbox.css | 6 +++--- stylesheets/switch.css | 2 +- stylesheets/textfield.css | 5 ++--- 3 files changed, 6 insertions(+), 7 deletions(-) diff --git a/stylesheets/checkbox.css b/stylesheets/checkbox.css index 3e8d2e6..e6e03f9 100644 --- a/stylesheets/checkbox.css +++ b/stylesheets/checkbox.css @@ -1,6 +1,6 @@ .jf-checkbox { - width: 300px; + width: 280px; max-width: 100%; position: relative; font-size: 16px; @@ -29,7 +29,7 @@ .jf-checkbox__label { top: calc(50% - 8px); position: absolute; - left: 24px; + left: 44px; cursor: pointer; } @@ -38,7 +38,7 @@ height: 16px; position: absolute; top: calc(50% - 8px); - left: 0; + left: 12px; border-radius: 2px; border: 2px solid #0000008a; cursor: pointer; diff --git a/stylesheets/switch.css b/stylesheets/switch.css index 66ef172..63134d2 100644 --- a/stylesheets/switch.css +++ b/stylesheets/switch.css @@ -1,6 +1,6 @@ .jf-switch { - width: 300px; + width: 280px; max-width: 100%; position: relative; font-size: 16px; diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 67bd5b6..9a3c5bc 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -5,7 +5,6 @@ display: inline-block; box-sizing: border-box; width: 280px; - /* height: 56px; */ max-width: 100%; margin: 0; padding: 0; @@ -140,8 +139,8 @@ width: 100%; height: 1px; bottom: 0; - /* background-color: var(--color-inactive); */ - background-color: transparent; + background-color: var(--color-inactive); + /* background-color: transparent; */ transition-duration: .2s; transition-timing-function: cubic-bezier(.4,0,.2,1); } From abda2b8d5e34452ae9b2c8fbcfe730ec648a7ce1 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 19:09:41 +0100 Subject: [PATCH 24/71] Expose config --- src/Demo.elm | 5 +++-- src/Json/Form.elm | 14 +++++++++++++- src/Json/Form/Definitions.elm | 7 +++++-- src/Json/Form/TextField.elm | 2 ++ 4 files changed, 23 insertions(+), 5 deletions(-) diff --git a/src/Demo.elm b/src/Demo.elm index 584be01..c031bde 100644 --- a/src/Demo.elm +++ b/src/Demo.elm @@ -5,6 +5,7 @@ import Html.Attributes exposing (class, classList, style) import Html.Events exposing (onClick) import Json.Encode import Json.Form +import Json.Form.Config import Json.Schema.Definitions import Json.Value as JsonValue exposing (JsonValue) import JsonViewer @@ -27,7 +28,7 @@ initialShowcase = init : ( Model, Cmd Msg ) init = { showcase = initialShowcase - , form = Json.Form.init (getSnippet initialShowcase) Nothing + , form = Json.Form.init Json.Form.Config.defaultConfig (getSnippet initialShowcase) Nothing , editedValue = Nothing , expandedNodes = [ [] ] } @@ -69,7 +70,7 @@ update message model = ! [] SetShowcase s -> - { model | showcase = s, form = Json.Form.init (getSnippet s) Nothing, editedValue = Nothing } ! [] + { model | showcase = s, form = Json.Form.init Json.Form.Config.defaultConfig (getSnippet s) Nothing, editedValue = Nothing } ! [] view : Model -> Html Msg diff --git a/src/Json/Form.elm b/src/Json/Form.elm index 0fc0030..8e3502b 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -4,15 +4,18 @@ module Json.Form exposing , Msg , init , update + , updateConfig , view ) import Dict exposing (Dict) +import Dom import ErrorMessages exposing (stringifyError) import Html exposing (..) import Html.Attributes exposing (class) import Html.Events exposing (onClick) import Json.Decode as Decode exposing (decodeValue) +import Json.Form.Config exposing (Config) import Json.Form.Definitions as Definitions exposing (EditingMode(..), Msg(..), Path) import Json.Form.Selection as Selection import Json.Form.TextField as TextField @@ -22,6 +25,7 @@ import Json.Schema.Definitions exposing (..) import Json.Schema.Validation exposing (Error) import Json.Value as JsonValue exposing (JsonValue(..)) import JsonFormUtil as Util exposing ((=>), getUiSpec, jsonValueToString) +import Task type ExternalMsg @@ -37,7 +41,7 @@ type alias Msg = Definitions.Msg -init : Schema -> Maybe JsonValue -> Model +init : Config -> Schema -> Maybe JsonValue -> Model init = Definitions.init @@ -207,9 +211,17 @@ viewObject model schema isRequired isDisabled path = text "" +updateConfig : Config -> Model -> Model +updateConfig config model = + { model | config = config } + + update : Msg -> Model -> ( ( Model, Cmd Msg ), ExternalMsg ) update msg model = case msg of + NoOp -> + model ! [] => None + AddItem path index -> let newPropPath = diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index 5a1941d..efb7816 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -2,6 +2,7 @@ module Json.Form.Definitions exposing (EditingMode(..), Model, Msg(..), Path, in import Dict exposing (Dict) import ErrorMessages exposing (stringifyError) +import Json.Form.Config exposing (Config) import Json.Schema import Json.Schema.Definitions exposing (..) import Json.Schema.Validation exposing (Error) @@ -11,15 +12,17 @@ import Json.Value as JsonValue exposing (JsonValue) type alias Model = { schema : Schema , focused : Maybe Path + , config : Config , value : Maybe JsonValue , errors : Dict Path (List String) , beingEdited : List Path , editedNumber : String + , showPassword : Bool } -init : Schema -> Maybe JsonValue -> Model -init schema v = +init : Config -> Schema -> Maybe JsonValue -> Model +init config schema v = let someValue = v diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 2b69036..586e924 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -3,6 +3,8 @@ module Json.Form.TextField exposing (view, viewNumeric) import Html exposing (..) import Html.Attributes exposing (..) import Html.Events exposing (onBlur, onFocus, onInput) +import Icons exposing (errorIcon, eye, eyeOff) +import Json.Form.Config exposing (TextFieldStyle(Outlined)) import Json.Form.Definitions exposing (..) import Json.Form.Helper as Helper import Json.Form.UiSpec exposing (Rule(..), UiSpec, WidgetType(..), applyRule) From 799f4c5631b4c4c0ab2bc67ff0d3eeaa132d0371 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 19:10:47 +0100 Subject: [PATCH 25/71] Disable rule --- elm-package.json | 6 +++-- src/Json/Form.elm | 8 ++++++ src/Json/Form/Definitions.elm | 6 ++++- src/Json/Form/TextField.elm | 40 ++++++++++++++++++++++++++---- stylesheets/app.css | 8 ++++++ stylesheets/checkbox.css | 46 +++++++++++++++++++++++++++++++++-- stylesheets/globals.css | 6 ++++- 7 files changed, 109 insertions(+), 11 deletions(-) diff --git a/elm-package.json b/elm-package.json index a500469..48cb8dc 100644 --- a/elm-package.json +++ b/elm-package.json @@ -6,13 +6,15 @@ "source-directories": [ "src" ], - "exposed-modules": [ ], + "exposed-modules": [], "dependencies": { "1602/elm-feather": "2.2.0 <= v < 3.0.0", "1602/json-schema": "4.1.0 <= v < 5.0.0", "1602/json-value": "3.0.2 <= v < 3.0.3", "elm-lang/core": "5.0.0 <= v < 6.0.0", - "elm-lang/html": "2.0.0 <= v < 3.0.0" + "elm-lang/dom": "1.1.1 <= v < 2.0.0", + "elm-lang/html": "2.0.0 <= v < 3.0.0", + "elm-lang/svg": "2.0.0 <= v < 3.0.0" }, "elm-version": "0.18.0 <= v < 0.19.0" } diff --git a/src/Json/Form.elm b/src/Json/Form.elm index 8e3502b..fe9f8fd 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -251,6 +251,14 @@ update msg model = ! [] => None + FocusTextInput focused -> + { model + | focused = Just focused + , beingEdited = touch (Just focused) model.focused model.beingEdited + } + ! [ focused |> String.join "_" |> Dom.focus |> Task.attempt (\_ -> NoOp) ] + => None + FocusNumericInput focused -> case focused of Nothing -> diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index efb7816..c2ce380 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -47,15 +47,19 @@ init config schema v = in { schema = schema , focused = Nothing + , config = config , value = value , errors = Dict.empty , beingEdited = [] , editedNumber = "" + , showPassword = False } type Msg - = FocusInput (Maybe Path) + = NoOp + | FocusInput (Maybe Path) + | FocusTextInput Path | FocusNumericInput (Maybe Path) | EditValue Path JsonValue | EditNumber String diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 586e924..65d38e4 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -16,6 +16,9 @@ import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) view : Model -> Schema -> Bool -> Bool -> Path -> Html Msg view model schema isRequired isDisabled path = let + id = + path |> String.join "_" + editedValue = model.value |> Maybe.map (JsonValue.getIn path) @@ -34,16 +37,37 @@ view model schema isRequired isDisabled path = ( disabled, hidden ) = applyRule model.value path uiSpec.rule + + icon = + if isPassword then + if model.showPassword then + eyeOff ToggleShowPassword + + else + eye ToggleShowPassword + + else if hasError then + errorIcon + + else + text "" + + actuallyDisabled = + isDisabled || disabled in div [ classList [ ( "jf-textfield", True ) + , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", isDisabled || disabled ) + , ( "jf-textfield--disabled", actuallyDisabled ) , ( "jf-textfield--hidden", hidden ) ] + + -- , onFocus <| FocusTextInput path + -- , Html.Attributes.tabindex -1 ] [ input [ class "jf-textfield__input" @@ -51,8 +75,10 @@ view model schema isRequired isDisabled path = , onBlur <| FocusInput Nothing , onInput <| \str -> EditValue path (JsonValue.StringValue str) , value <| editedValue - , Html.Attributes.disabled (isDisabled || disabled) - , if isPassword then + , Html.Attributes.id id + , Html.Attributes.autocomplete False + , Html.Attributes.disabled actuallyDisabled + , if isPassword && not model.showPassword then type_ "password" else @@ -91,14 +117,18 @@ viewNumeric model schema isRequired isDisabled path = ( disabled, hidden ) = applyRule model.value path uiSpec.rule + + actuallyDisabled = + isDisabled || disabled in div [ classList [ ( "jf-textfield", True ) + , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) , ( "jf-textfield--focused", isFocused ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", isDisabled || disabled ) + , ( "jf-textfield--disabled", actuallyDisabled ) , ( "jf-textfield--hidden", hidden ) ] ] @@ -109,7 +139,7 @@ viewNumeric model schema isRequired isDisabled path = , onInput <| EditNumber , value <| editedValue , type_ "number" - , Html.Attributes.disabled (isDisabled || disabled) + , Html.Attributes.disabled actuallyDisabled ] [] , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/stylesheets/app.css b/stylesheets/app.css index 4603d03..bfe898d 100644 --- a/stylesheets/app.css +++ b/stylesheets/app.css @@ -1,3 +1,11 @@ +:root { + --color-active: #27b9cc; + --color-inactive: #8a8a8a; + --color-invalid: #d95559; + --color-active--054: #8fd9e3; + box-sizing: border-box; +} + .app-topbar { background-color: var(--color-mono--700); color: var(--color-mono--300); diff --git a/stylesheets/checkbox.css b/stylesheets/checkbox.css index e6e03f9..7b7963c 100644 --- a/stylesheets/checkbox.css +++ b/stylesheets/checkbox.css @@ -60,12 +60,12 @@ .jf-checkbox--on .jf-checkbox__tick-outline { - background: #009688 url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K); + background: var(--color-active) url(data:image/svg+xml;base64,PD94bWwgdmVyc2lvbj0iMS4wIiBlbmNvZGluZz0iVVRGLTgiIHN0YW5kYWxvbmU9Im5vIj8+CjxzdmcKICAgeG1sbnM6ZGM9Imh0dHA6Ly9wdXJsLm9yZy9kYy9lbGVtZW50cy8xLjEvIgogICB4bWxuczpjYz0iaHR0cDovL2NyZWF0aXZlY29tbW9ucy5vcmcvbnMjIgogICB4bWxuczpyZGY9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkvMDIvMjItcmRmLXN5bnRheC1ucyMiCiAgIHhtbG5zOnN2Zz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciCiAgIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIKICAgdmVyc2lvbj0iMS4xIgogICB2aWV3Qm94PSIwIDAgMSAxIgogICBwcmVzZXJ2ZUFzcGVjdFJhdGlvPSJ4TWluWU1pbiBtZWV0Ij4KICA8cGF0aAogICAgIGQ9Ik0gMC4wNDAzODA1OSwwLjYyNjc3NjcgMC4xNDY0NDY2MSwwLjUyMDcxMDY4IDAuNDI5Mjg5MzIsMC44MDM1NTMzOSAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IE0gMC4yMTcxNTcyOSwwLjgwMzU1MzM5IDAuODUzNTUzMzksMC4xNjcxNTcyOSAwLjk1OTYxOTQxLDAuMjczMjIzMyAwLjMyMzIyMzMsMC45MDk2MTk0MSB6IgogICAgIGlkPSJyZWN0Mzc4MCIKICAgICBzdHlsZT0iZmlsbDojZmZmZmZmO2ZpbGwtb3BhY2l0eToxO3N0cm9rZTpub25lIiAvPgo8L3N2Zz4K); } .jf-checkbox--on .jf-checkbox__box-outline { - border: 2px solid #009688; + border: 2px solid var(--color-active); } @@ -102,6 +102,48 @@ cursor: default; } +/* HOVER */ + +.jf-checkbox__box-outline:after { + background-color: lightgrey; + content: ''; + width: 20px; + height: 20px; + position: absolute; + top: calc(50% - 10px); + left: calc(50% - 10px); + opacity: 0; + border-radius: 50%; + transition-duration: .2s; + transition-timing-function: cubic-bezier(.4,0,.2,1); +} + +.jf-checkbox:hover .jf-checkbox__box-outline:after { + width: 40px; + height: 40px; + position: absolute; + top: calc(50% - 20px); + left: calc(50% - 20px); + opacity: 0.2; +} + +.jf-checkbox:active .jf-checkbox__box-outline:after { + opacity: 0.4; +} + +.jf-checkbox--on .jf-checkbox__box-outline:after { + background-color: var(--color-active); +} + +.jf-checkbox--disabled:hover .jf-checkbox__box-outline:after { + opacity: 0; +} + .jf-checkbox--hidden { display: none; } + +.jf-checkbox--disabled { + opacity: 0.54; +} + diff --git a/stylesheets/globals.css b/stylesheets/globals.css index 9fb8362..dfe7416 100644 --- a/stylesheets/globals.css +++ b/stylesheets/globals.css @@ -1,7 +1,11 @@ :host { --font-family: helvetica, sans-serif; - --color-active: #2a79ff; + --color-active: #27b9cc; + --color-active--054: #8fd9e3; --color-inactive: #8a8a8a; + --color-invalid: #c72227; --color-swatch--500: #009688; + box-sizing: border-box; } + From 0300c1bdffe886e5c594a401b6de2c35a90bfca9 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 21:21:39 +0100 Subject: [PATCH 26/71] Update styles for textfields and selection --- src/Icons.elm | 57 ++++++++++++++ src/Json/Form.elm | 3 + src/Json/Form/Config.elm | 39 ++++++++++ src/Json/Form/Definitions.elm | 1 + src/Json/Form/TextField.elm | 7 ++ stylesheets/index.css | 1 + stylesheets/json-form.css | 6 -- stylesheets/switch.css | 52 +++++++++++-- stylesheets/textfield.css | 142 +++++++++++++++++++++++++++++++--- 9 files changed, 285 insertions(+), 23 deletions(-) create mode 100644 src/Icons.elm create mode 100644 src/Json/Form/Config.elm diff --git a/src/Icons.elm b/src/Icons.elm new file mode 100644 index 0000000..95ccd70 --- /dev/null +++ b/src/Icons.elm @@ -0,0 +1,57 @@ +module Icons exposing (errorIcon, eye, eyeOff) + +import Html exposing (Html) +import Svg exposing (..) +import Svg.Attributes exposing (..) +import Svg.Events exposing (onClick) + + +svgFeatherIcon : String -> Maybe msg -> List (Svg msg) -> Html msg +svgFeatherIcon className onClickHandler = + let + attrs = + [ class <| "feather feather-" ++ className + , fill "none" + , height "24" + , stroke "currentColor" + , strokeLinecap "round" + , strokeLinejoin "round" + , strokeWidth "2" + , viewBox "0 0 24 24" + , width "24" + ] + in + case onClickHandler of + Just handler -> + onClick handler :: Svg.Attributes.style "cursor: pointer" :: attrs |> svg + + Nothing -> + svg attrs + + +errorIcon : Html msg +errorIcon = + svgFeatherIcon "alert-circle" + Nothing + [ Svg.circle [ cx "12", cy "12", r "10" ] [] + , Svg.line [ x1 "12", y1 "8", x2 "12", y2 "12" ] [] + , Svg.line [ x1 "12", y1 "16", x2 "12", y2 "16" ] [] + ] + + +eye : msg -> Html msg +eye msg = + svgFeatherIcon "eye" + (Just msg) + [ Svg.path [ d "M1 12s4-8 11-8 11 8 11 8-4 8-11 8-11-8-11-8z" ] [] + , Svg.circle [ cx "12", cy "12", r "3" ] [] + ] + + +eyeOff : msg -> Html msg +eyeOff msg = + svgFeatherIcon "eye-off" + (Just msg) + [ Svg.path [ d "M17.94 17.94A10.07 10.07 0 0 1 12 20c-7 0-11-8-11-8a18.45 18.45 0 0 1 5.06-5.94M9.9 4.24A9.12 9.12 0 0 1 12 4c7 0 11 8 11 8a18.5 18.5 0 0 1-2.16 3.19m-6.72-1.07a3 3 0 1 1-4.24-4.24" ] [] + , Svg.line [ x1 "1", y1 "1", x2 "23", y2 "23" ] [] + ] diff --git a/src/Json/Form.elm b/src/Json/Form.elm index fe9f8fd..c02962b 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -297,6 +297,9 @@ update msg model = _ -> { model | editedNumber = str } ! [] => None + ToggleShowPassword -> + { model | showPassword = not model.showPassword } ! [] => None + touch : Maybe Path -> Maybe Path -> List Path -> List Path touch path focused beingEdited = diff --git a/src/Json/Form/Config.elm b/src/Json/Form/Config.elm new file mode 100644 index 0000000..e9b8c1f --- /dev/null +++ b/src/Json/Form/Config.elm @@ -0,0 +1,39 @@ +module Json.Form.Config exposing (Config, TextFieldStyle(..), decoder, defaultConfig) + +import Json.Decode as Decode exposing (Decoder, fail, field, string, succeed) + + +type alias Config = + { textFieldStyle : TextFieldStyle + } + + +type TextFieldStyle + = Filled + | Outlined + + +defaultConfig : Config +defaultConfig = + { textFieldStyle = Filled + } + + +decoder : Decoder Config +decoder = + Decode.map Config + (field "textFieldStyle" <| + Decode.andThen + (\x -> + if x == "filled" then + succeed Filled + + else if x == "outlined" then + succeed Outlined + + else + fail "Unknown text field style" + ) + <| + string + ) diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index c2ce380..b1dca96 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -64,6 +64,7 @@ type Msg | EditValue Path JsonValue | EditNumber String | AddItem Path Int + | ToggleShowPassword type EditingMode diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 65d38e4..eed47bf 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -76,6 +76,7 @@ view model schema isRequired isDisabled path = , onInput <| \str -> EditValue path (JsonValue.StringValue str) , value <| editedValue , Html.Attributes.id id + , Html.Attributes.name id , Html.Attributes.autocomplete False , Html.Attributes.disabled actuallyDisabled , if isPassword && not model.showPassword then @@ -85,6 +86,7 @@ view model schema isRequired isDisabled path = type_ "text" ] [] + , icon , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] , div [ class "jf-textfield__helper-text" ] [ helperText ] ] @@ -93,6 +95,9 @@ view model schema isRequired isDisabled path = viewNumeric : Model -> Schema -> Bool -> Bool -> Path -> Html Msg viewNumeric model schema isRequired isDisabled path = let + id = + path |> String.join "_" + isFocused = model.focused |> Maybe.map ((==) path) @@ -137,6 +142,8 @@ viewNumeric model schema isRequired isDisabled path = , onFocus <| FocusNumericInput (Just path) , onBlur <| FocusNumericInput Nothing , onInput <| EditNumber + , Html.Attributes.id id + , Html.Attributes.name id , value <| editedValue , type_ "number" , Html.Attributes.disabled actuallyDisabled diff --git a/stylesheets/index.css b/stylesheets/index.css index 5c84cc9..eaae53d 100644 --- a/stylesheets/index.css +++ b/stylesheets/index.css @@ -3,3 +3,4 @@ @import './tab.css'; @import './json-viewer.css'; @import './json-form.css'; +/* @import './test-builder.css' */ diff --git a/stylesheets/json-form.css b/stylesheets/json-form.css index 278f477..cd35541 100644 --- a/stylesheets/json-form.css +++ b/stylesheets/json-form.css @@ -1,9 +1,3 @@ -:root { - --color-active: #2a79ff; - --color-inactive: #8a8a8a; - --color-swatch--500: #009688; -} - @import './textfield.css'; @import './switch.css'; @import './checkbox.css'; diff --git a/stylesheets/switch.css b/stylesheets/switch.css index 63134d2..99687db 100644 --- a/stylesheets/switch.css +++ b/stylesheets/switch.css @@ -35,7 +35,7 @@ .jf-switch__track { background-color: lightgrey; - width: 40px; + width: 36px; height: 14px; position: absolute; top: calc(50% - 7px); @@ -58,12 +58,47 @@ box-shadow: 0 3px 4px 0 rgba(0,0,0,.14), 0 3px 3px -2px rgba(0,0,0,.2), 0 1px 8px 0 rgba(0,0,0,.12); } +.jf-switch .jf-switch__thumb:after { + background-color: lightgrey; + content: ''; + width: 20px; + height: 20px; + position: absolute; + top: calc(50% - 10px); + left: 0px; + opacity: 0; + border-radius: 50%; + transition-duration: .2s; + transition-timing-function: cubic-bezier(.4,0,.2,1); +} + +.jf-switch:hover .jf-switch__thumb:after { + width: 40px; + height: 40px; + position: absolute; + top: calc(50% - 20px); + left: -10px; + opacity: 0.2; +} + +.jf-switch:active .jf-switch__thumb:after { + opacity: 0.4; +} + +.jf-switch--on .jf-switch__thumb:after { + background-color: var(--color-active); +} + .jf-switch--on .jf-switch__thumb { - left: 20px; + left: 18px; } .jf-switch--on .jf-switch__thumb { - background-color: var(--color-swatch--500); + background-color: var(--color-active); +} + +.jf-switch--on .jf-switch__track { + background-color: var(--color-active--054); } .jf-switch__helper-text { @@ -83,14 +118,21 @@ color: var(--color-red--500); } + +.jf-switch--disabled { + opacity: 0.54; +} + +.jf-switch--disabled:hover .jf-switch__thumb:after { + opacity: 0; +} + .jf-switch--disabled .jf-switch__label, .jf-switch--disabled .jf-checkbox__helper-text { - color: var(--color-inactive); cursor: default; } .jf-switch--disabled .jf-switch__thumb { - background-color: var(--color-inactive); cursor: default; } diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 9a3c5bc..116c389 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -1,6 +1,6 @@ - .jf-textfield { position: relative; + height: 56px; font-size: 16px; display: inline-block; box-sizing: border-box; @@ -8,7 +8,6 @@ max-width: 100%; margin: 0; padding: 0; - padding-top: 20px; margin-top: 16px; margin-left: 16px; margin-bottom: 16px; @@ -17,6 +16,13 @@ cursor: pointer; background-color: #e8e8e8; color: #00000099; + outline: none; +} + +.jf-textfield--outlined { + background-color: white; + border-radius: 4px; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.5); } .jf-textfield:hover { @@ -24,14 +30,24 @@ color: #000000de; } +.jf-textfield--focused.jf-textfield--outlined { + box-shadow: inset 0 0 0 2px var(--color-active); +} + .jf-textfield--focused:hover { background-color: #e8e8e8; color: #00000099; } +.jf-textfield--outlined:hover { + background: white; +} + .jf-textfield__input { border: none; border-radius: 0; + border-top-right-radius: 4px; + border-top-left-radius: 4px; outline: none; display: block; font-size: 16px; @@ -39,13 +55,17 @@ margin: 0; padding-left: 12px; padding-right: 12px; - padding-top: 6px; + padding-top: 20px; padding-bottom: 12px; - width: calc(100% - 24px); + width: calc(100% - 26px); background: 0 0; text-align: left; color: inherit; caret-color: var(--color-active); + position: absolute; + top: 1px; + bottom: 1px; + left: 1px; } .jf-textfield--focused .jf-textfield__input { @@ -53,8 +73,8 @@ color: inherit; } -.jf-textfield--empty .jf-textfield__label { - top: 24px; +.jf-textfield--outlined.jf-textfield--empty .jf-textfield__label, .jf-textfield--empty .jf-textfield__label { + top: 21px; font-size: 16px; } @@ -76,13 +96,54 @@ position: absolute; display: block; bottom: 0; - top: 10px; + top: 6px; width: 100%; overflow: hidden; white-space: nowrap; text-align: left; transition-duration: .2s; transition-timing-function: cubic-bezier(.4, 0, .2, 1); + box-sizing: border-box; +} + +.jf-textfield--empty .jf-textfield__label { + font-size: 16px; +} + +.jf-textfield--outlined .jf-textfield__label { + padding-left: 4px; + padding-right: 4px; + font-size: 12px; + left: 12px; + bottom: auto; + right: auto; + width: auto; + background-color: white; +} + +.jf-textfield--focused.jf-textfield--outlined .jf-textfield__label { + top: -6px; + font-size: 12px; +} + +.jf-textfield--focused .jf-textfield__label { + top: 6px; + font-size: 12px; +} + +.jf-textfield--outlined .jf-textfield__label { + top: -6px; +} + +.jf-textfield--outlined .jf-textfield__input { + padding-left: 12px; + padding-right: 12px; + padding-top: 20px; + padding-bottom: 18px; + top: 2px; + bottom: 2px; + left: 2px; + border-radius: 4px; } /* @@ -113,12 +174,21 @@ width: 10px; } +.jf-textfield--focused { + cursor: auto; +} + .jf-textfield--focused .jf-textfield__label:after { left: 0; visibility: visible; width: 100%; } +.jf-textfield--outlined .jf-textfield__label:after { + background-color: transparent; + display: none; +} + /* .jf-textfield:before { content: ''; @@ -145,6 +215,10 @@ transition-timing-function: cubic-bezier(.4,0,.2,1); } +.jf-textfield--outlined.jf-textfield:after { + display: none; +} + .jf-textfield:after:hover { background-color: var(--color-inactive); } @@ -176,27 +250,58 @@ color: rgba(0, 0, 0, 0.54); } +.jf-textfield svg { + position: absolute; + top: 16px; + right: 12px; +} + +.jf-textfield--invalid svg { + color: var(--color-invalid); +} + + +/* +.jf-textfield--outlined .jf-textfield__helper-text { + padding-left: 12px; +} +*/ + +.jf-textfield--outlined .jf-textfield__label:after { + display: none; +} + + +/* INVALID */ + .jf-textfield--invalid .jf-textfield__label:after { - background-color: var(--color-red--500); + background-color: var(--color-invalid); } .jf-textfield--invalid .jf-textfield__helper-text { - color: var(--color-red--500); + color: var(--color-invalid); } .jf-textfield--invalid .jf-textfield__label { - color: var(--color-red--500); + color: var(--color-invalid); } .jf-textfield--invalid:after { - background-color: var(--color-red--500) !important; + background-color: var(--color-invalid) !important; } .jf-textfield--invalid .jf-textfield__input { - caret-color: var(--color-red--500); + caret-color: var(--color-invalid); +} + +.jf-textfield--outlined.jf-textfield--invalid { + box-shadow: inset 0 0 0 2px var(--color-invalid); } +/* DISABLED */ + + .jf-textfield--disabled { color: var(--color-inactive); background-color: #e0e0e0; @@ -216,6 +321,19 @@ border-bottom: 1px dotted var(--color-inactive); } +.jf-textfield--outlined.jf-textfield--disabled:hover { + background: white; +} + .jf-textfield--hidden { display: none; } + +.jf-textfield--outlined.jf-textfield--disabled:after { + display: none; +} + +.jf-textfield--outlined.jf-textfield--disabled { + background-color: white; + box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.3); +} From 0a1e5258fe72c1b0212bc74f4b0c043dac843f1f Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 21:28:39 +0100 Subject: [PATCH 27/71] Add name attributes to form elements --- src/Json/Form/Selection.elm | 24 ++++++++++++++++++++---- src/Json/Form/TextField.elm | 2 +- 2 files changed, 21 insertions(+), 5 deletions(-) diff --git a/src/Json/Form/Selection.elm b/src/Json/Form/Selection.elm index 4e83780..0a8bf11 100644 --- a/src/Json/Form/Selection.elm +++ b/src/Json/Form/Selection.elm @@ -14,6 +14,9 @@ import JsonFormUtil as Util exposing (getTitle, getUiSpec, jsonValueToString) switch : Model -> Schema -> Bool -> Bool -> Path -> Html Msg switch model schema isRequired isDisabled path = let + id = + path |> String.join "_" + isChecked = case model.value |> Maybe.andThen (JsonValue.getIn path >> Result.toMaybe) of Just (BoolValue x) -> @@ -30,6 +33,9 @@ switch model schema isRequired isDisabled path = |> getUiSpec |> .rule |> applyRule model.value path + + actuallyDisabled = + isDisabled || disabled in label [ classList @@ -37,7 +43,7 @@ switch model schema isRequired isDisabled path = , ( "jf-switch--on", isChecked ) , ( "jf-switch--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-switch--invalid", hasError ) - , ( "jf-switch--disabled", isDisabled || disabled ) + , ( "jf-switch--disabled", actuallyDisabled ) , ( "jf-switch--hidden", hidden ) ] ] @@ -48,7 +54,9 @@ switch model schema isRequired isDisabled path = , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) - , Html.Attributes.disabled (isDisabled || disabled) + , Html.Attributes.id id + , Html.Attributes.name id + , Html.Attributes.disabled actuallyDisabled ] [] , span [ class "jf-switch__label" ] [ schema |> getTitle isRequired |> text ] @@ -61,6 +69,9 @@ switch model schema isRequired isDisabled path = checkbox : Model -> Schema -> Bool -> Bool -> Path -> Html Msg checkbox model schema isRequired isDisabled path = let + id = + path |> String.join "_" + isChecked = case model.value |> Maybe.andThen (JsonValue.getIn path >> Result.toMaybe) of Just (BoolValue x) -> @@ -77,6 +88,9 @@ checkbox model schema isRequired isDisabled path = |> getUiSpec |> .rule |> applyRule model.value path + + actuallyDisabled = + isDisabled || disabled in label [ classList @@ -84,7 +98,7 @@ checkbox model schema isRequired isDisabled path = , ( "jf-checkbox--on", isChecked ) , ( "jf-checkbox--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-checkbox--invalid", hasError ) - , ( "jf-checkbox--disabled", isDisabled || disabled ) + , ( "jf-checkbox--disabled", actuallyDisabled ) , ( "jf-checkbox--hidden", hidden ) ] ] @@ -92,10 +106,12 @@ checkbox model schema isRequired isDisabled path = [ type_ "checkbox" , class "jf-checkbox__input" , checked isChecked + , Html.Attributes.id id + , Html.Attributes.name id + , Html.Attributes.disabled actuallyDisabled , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing , onCheck <| (JsonValue.BoolValue >> EditValue path) - , Html.Attributes.disabled (isDisabled || disabled) ] [] , span [ class "jf-checkbox__label" ] [ schema |> getTitle isRequired |> text ] diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index eed47bf..37d7121 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -73,7 +73,7 @@ view model schema isRequired isDisabled path = [ class "jf-textfield__input" , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing - , onInput <| \str -> EditValue path (JsonValue.StringValue str) + , onInput <| \str -> EditValue path <| JsonValue.StringValue str , value <| editedValue , Html.Attributes.id id , Html.Attributes.name id From da0fd9a6b7fc4085096fec3bfa623b7aa4b1a5a7 Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 21:33:26 +0100 Subject: [PATCH 28/71] Less ugly add item button --- src/Json/Form.elm | 4 +++- stylesheets/index.css | 1 - stylesheets/json-form.css | 8 ++++++++ 3 files changed, 11 insertions(+), 2 deletions(-) diff --git a/src/Json/Form.elm b/src/Json/Form.elm index c02962b..ec69a56 100644 --- a/src/Json/Form.elm +++ b/src/Json/Form.elm @@ -164,7 +164,9 @@ viewArray model schema isRequired isDisabled path = viewNode model itemSchema isRequired (isDisabled || disabled) (path ++ [ propName ]) ) |> div [] - , button [ class "button", onClick <| AddItem path (List.length list) ] [ text "ADD ITEM" ] + , div [ class "array-item-add" ] + [ button [ class "button", onClick <| AddItem path (List.length list) ] [ text "ADD ITEM" ] + ] ] |> div [] diff --git a/stylesheets/index.css b/stylesheets/index.css index eaae53d..5c84cc9 100644 --- a/stylesheets/index.css +++ b/stylesheets/index.css @@ -3,4 +3,3 @@ @import './tab.css'; @import './json-viewer.css'; @import './json-form.css'; -/* @import './test-builder.css' */ diff --git a/stylesheets/json-form.css b/stylesheets/json-form.css index cd35541..a7a1b0c 100644 --- a/stylesheets/json-form.css +++ b/stylesheets/json-form.css @@ -1,3 +1,11 @@ @import './textfield.css'; @import './switch.css'; @import './checkbox.css'; + +.array-item-add { + padding: 16px; +} + +.array-item-add .button { + font-size: 16px; +} From b149f2023e1690acbfe7d3540d00df58d765d79a Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 9 Sep 2018 22:06:50 +0100 Subject: [PATCH 29/71] Dense layout --- src/Json/Form/Config.elm | 7 +++-- src/Json/Form/TextField.elm | 8 +++--- stylesheets/textfield.css | 51 ++++++++++++++++++++++++------------- 3 files changed, 43 insertions(+), 23 deletions(-) diff --git a/src/Json/Form/Config.elm b/src/Json/Form/Config.elm index e9b8c1f..3206a62 100644 --- a/src/Json/Form/Config.elm +++ b/src/Json/Form/Config.elm @@ -1,10 +1,11 @@ module Json.Form.Config exposing (Config, TextFieldStyle(..), decoder, defaultConfig) -import Json.Decode as Decode exposing (Decoder, fail, field, string, succeed) +import Json.Decode as Decode exposing (Decoder, bool, fail, field, string, succeed) type alias Config = { textFieldStyle : TextFieldStyle + , dense : Bool } @@ -16,12 +17,13 @@ type TextFieldStyle defaultConfig : Config defaultConfig = { textFieldStyle = Filled + , dense = False } decoder : Decoder Config decoder = - Decode.map Config + Decode.map2 Config (field "textFieldStyle" <| Decode.andThen (\x -> @@ -37,3 +39,4 @@ decoder = <| string ) + (field "dense" bool) diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 37d7121..35c8012 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -38,6 +38,9 @@ view model schema isRequired isDisabled path = ( disabled, hidden ) = applyRule model.value path uiSpec.rule + actuallyDisabled = + isDisabled || disabled + icon = if isPassword then if model.showPassword then @@ -51,14 +54,12 @@ view model schema isRequired isDisabled path = else text "" - - actuallyDisabled = - isDisabled || disabled in div [ classList [ ( "jf-textfield", True ) , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) + , ( "jf-textfield--dense", model.config.dense ) , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) @@ -130,6 +131,7 @@ viewNumeric model schema isRequired isDisabled path = [ classList [ ( "jf-textfield", True ) , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) + , ( "jf-textfield--dense", model.config.dense ) , ( "jf-textfield--focused", isFocused ) , ( "jf-textfield--empty", editedValue == "" ) , ( "jf-textfield--invalid", hasError ) diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 116c389..513380a 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -1,7 +1,22 @@ +.jf-textfield { + --field-height: 56px; + --label-top: 21px; + --large-font-size: 16px; + --side-padding: 12px; + --filled-background: #f5f5f5; +} + +.jf-textfield--dense { + --field-height: 44px; + --label-top: 17px; + --large-font-size: 12px; + --side-padding: 8px; +} + .jf-textfield { position: relative; - height: 56px; - font-size: 16px; + height: var(--field-height); + font-size: var(--large-font-size); display: inline-block; box-sizing: border-box; width: 280px; @@ -14,7 +29,7 @@ border-top-left-radius: 4px; border-top-right-radius: 4px; cursor: pointer; - background-color: #e8e8e8; + background-color: var(--filled-background); color: #00000099; outline: none; } @@ -50,14 +65,14 @@ border-top-left-radius: 4px; outline: none; display: block; - font-size: 16px; + font-size: var(--large-font-size); font-family: var(--font-family); margin: 0; - padding-left: 12px; - padding-right: 12px; + padding-left: var(--side-padding); + padding-right: var(--side-padding); padding-top: 20px; padding-bottom: 12px; - width: calc(100% - 26px); + width: calc(100% - var(--side-padding) * 2 - 2px); background: 0 0; text-align: left; color: inherit; @@ -74,8 +89,8 @@ } .jf-textfield--outlined.jf-textfield--empty .jf-textfield__label, .jf-textfield--empty .jf-textfield__label { - top: 21px; - font-size: 16px; + top: var(--label-top); + font-size: var(--large-font-size); } .jf-textfield--focused .jf-textfield__label { @@ -87,8 +102,8 @@ .jf-textfield__label { color: var(--color-inactive); - padding-left: 12px; - padding-right: 12px; + padding-left: var(--side-padding); + padding-right: var(--side-padding); font-size: 12px; left: 0; right: 0; @@ -107,14 +122,14 @@ } .jf-textfield--empty .jf-textfield__label { - font-size: 16px; + font-size: var(--large-font-size); } .jf-textfield--outlined .jf-textfield__label { padding-left: 4px; padding-right: 4px; font-size: 12px; - left: 12px; + left: var(--side-padding); bottom: auto; right: auto; width: auto; @@ -136,8 +151,8 @@ } .jf-textfield--outlined .jf-textfield__input { - padding-left: 12px; - padding-right: 12px; + padding-left: var(--side-padding); + padding-right: var(--side-padding); padding-top: 20px; padding-bottom: 18px; top: 2px; @@ -245,15 +260,15 @@ position: absolute; bottom: -16px; font-size: 12px; - padding-left: 12px; - padding-right: 12px; + padding-left: var(--side-padding); + padding-right: var(--side-padding); color: rgba(0, 0, 0, 0.54); } .jf-textfield svg { position: absolute; top: 16px; - right: 12px; + right: var(--side-padding); } .jf-textfield--invalid svg { From cf50a929651dbbb13a120566cf048b6a2f751daf Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Sun, 16 Sep 2018 17:54:25 +0100 Subject: [PATCH 30/71] Multiline text input --- elm-package.json | 8 +- package.json | 1 - src/Demo.elm | 10 ++- src/Json/Form/Config.elm | 8 +- src/Json/Form/Definitions.elm | 4 +- src/Json/Form/TextField.elm | 117 ++++++++++++++++++------------ src/Json/Form/UiSpec.elm | 4 + src/Snippets.elm | 16 ++-- stylesheets/checkbox.css | 4 - stylesheets/json-form-element.css | 16 ++++ stylesheets/json-form.css | 1 + stylesheets/switch.css | 3 - stylesheets/textfield.css | 29 +++++--- 13 files changed, 138 insertions(+), 83 deletions(-) create mode 100644 stylesheets/json-form-element.css diff --git a/elm-package.json b/elm-package.json index 48cb8dc..122ea05 100644 --- a/elm-package.json +++ b/elm-package.json @@ -4,17 +4,19 @@ "repository": "https://github.com/1602/json-form.git", "license": "BSD3", "source-directories": [ - "src" + "src", + "../json-schema/src" ], "exposed-modules": [], "dependencies": { "1602/elm-feather": "2.2.0 <= v < 3.0.0", - "1602/json-schema": "4.1.0 <= v < 5.0.0", "1602/json-value": "3.0.2 <= v < 3.0.3", + "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0", "elm-lang/core": "5.0.0 <= v < 6.0.0", "elm-lang/dom": "1.1.1 <= v < 2.0.0", "elm-lang/html": "2.0.0 <= v < 3.0.0", - "elm-lang/svg": "2.0.0 <= v < 3.0.0" + "elm-lang/svg": "2.0.0 <= v < 3.0.0", + "zwilias/elm-utf-tools": "1.0.1 <= v < 2.0.0" }, "elm-version": "0.18.0 <= v < 0.19.0" } diff --git a/package.json b/package.json index 4c80436..a126356 100644 --- a/package.json +++ b/package.json @@ -8,7 +8,6 @@ "author": "Anatoliy ", "license": "GNU GENERAL PUBLIC LICENSE v3", "scripts": { - "start": "npm run dev", "dev": "webpack-dev-server --hot --port 4000 --colors", "build": "webpack", "deploy": "gh-pages -d dist", diff --git a/src/Demo.elm b/src/Demo.elm index c031bde..7e40bcd 100644 --- a/src/Demo.elm +++ b/src/Demo.elm @@ -22,14 +22,18 @@ type alias Model = initialShowcase : Snippet initialShowcase = - Rules + SimpleField init : ( Model, Cmd Msg ) init = + let + form = + Json.Form.init Json.Form.Config.defaultConfig (getSnippet initialShowcase) Nothing + in { showcase = initialShowcase - , form = Json.Form.init Json.Form.Config.defaultConfig (getSnippet initialShowcase) Nothing - , editedValue = Nothing + , form = form + , editedValue = form.value , expandedNodes = [ [] ] } ! [] diff --git a/src/Json/Form/Config.elm b/src/Json/Form/Config.elm index 3206a62..eb2494c 100644 --- a/src/Json/Form/Config.elm +++ b/src/Json/Form/Config.elm @@ -1,6 +1,6 @@ module Json.Form.Config exposing (Config, TextFieldStyle(..), decoder, defaultConfig) -import Json.Decode as Decode exposing (Decoder, bool, fail, field, string, succeed) +import Json.Decode as Decode exposing (Decoder, bool, fail, field, maybe, string, succeed) type alias Config = @@ -16,8 +16,8 @@ type TextFieldStyle defaultConfig : Config defaultConfig = - { textFieldStyle = Filled - , dense = False + { textFieldStyle = Outlined + , dense = True } @@ -39,4 +39,4 @@ decoder = <| string ) - (field "dense" bool) + (field "dense" bool |> maybe |> Decode.map (Maybe.withDefault False)) diff --git a/src/Json/Form/Definitions.elm b/src/Json/Form/Definitions.elm index b1dca96..5fcf3bf 100644 --- a/src/Json/Form/Definitions.elm +++ b/src/Json/Form/Definitions.elm @@ -26,7 +26,7 @@ init config schema v = let someValue = v - |> Maybe.withDefault JsonValue.NullValue + |> Maybe.withDefault (JsonValue.ObjectValue []) |> JsonValue.encode ( value, errors ) = @@ -49,7 +49,7 @@ init config schema v = , focused = Nothing , config = config , value = value - , errors = Dict.empty + , errors = errors , beingEdited = [] , editedNumber = "" , showPassword = False diff --git a/src/Json/Form/TextField.elm b/src/Json/Form/TextField.elm index 35c8012..b74d610 100644 --- a/src/Json/Form/TextField.elm +++ b/src/Json/Form/TextField.elm @@ -35,6 +35,9 @@ view model schema isRequired isDisabled path = isPassword = uiSpec.widgetType == Just PasswordField + isMultiline = + uiSpec.widgetType == Just MultilineTextField + ( disabled, hidden ) = applyRule model.value path uiSpec.rule @@ -54,23 +57,8 @@ view model schema isRequired isDisabled path = else text "" - in - div - [ classList - [ ( "jf-textfield", True ) - , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) - , ( "jf-textfield--dense", model.config.dense ) - , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) - , ( "jf-textfield--empty", editedValue == "" ) - , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", actuallyDisabled ) - , ( "jf-textfield--hidden", hidden ) - ] - -- , onFocus <| FocusTextInput path - -- , Html.Attributes.tabindex -1 - ] - [ input + baseAttributes = [ class "jf-textfield__input" , onFocus <| FocusInput (Just path) , onBlur <| FocusInput Nothing @@ -80,16 +68,47 @@ view model schema isRequired isDisabled path = , Html.Attributes.name id , Html.Attributes.autocomplete False , Html.Attributes.disabled actuallyDisabled - , if isPassword && not model.showPassword then - type_ "password" + ] + + textInput = + if isMultiline then + textarea baseAttributes [] - else - type_ "text" + else + input + (baseAttributes + ++ [ if isPassword && not model.showPassword then + type_ "password" + + else + type_ "text" + ] + ) + [] + in + div + [ classList [ ( "jf-element", True ), ( "jf-element--hidden", hidden ) ] + ] + [ div + [ classList + [ ( "jf-textfield", True ) + , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) + , ( "jf-textfield--dense", model.config.dense ) + , ( "jf-textfield--focused", model.focused |> Maybe.map ((==) path) |> Maybe.withDefault False ) + , ( "jf-textfield--empty", editedValue == "" ) + , ( "jf-textfield--invalid", hasError ) + , ( "jf-textfield--disabled", actuallyDisabled ) + , ( "jf-textfield--multiline", isMultiline ) + ] + + -- , onFocus <| FocusTextInput path + -- , Html.Attributes.tabindex -1 + ] + [ textInput + , icon + , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] ] - [] - , icon - , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-textfield__helper-text" ] [ helperText ] + , div [ class "jf-helper-text" ] [ helperText ] ] @@ -128,29 +147,33 @@ viewNumeric model schema isRequired isDisabled path = isDisabled || disabled in div - [ classList - [ ( "jf-textfield", True ) - , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) - , ( "jf-textfield--dense", model.config.dense ) - , ( "jf-textfield--focused", isFocused ) - , ( "jf-textfield--empty", editedValue == "" ) - , ( "jf-textfield--invalid", hasError ) - , ( "jf-textfield--disabled", actuallyDisabled ) - , ( "jf-textfield--hidden", hidden ) - ] + [ classList [ ( "jf-element", True ), ( "jf-element--hidden", hidden ) ] ] - [ input - [ class "jf-textfield__input" - , onFocus <| FocusNumericInput (Just path) - , onBlur <| FocusNumericInput Nothing - , onInput <| EditNumber - , Html.Attributes.id id - , Html.Attributes.name id - , value <| editedValue - , type_ "number" - , Html.Attributes.disabled actuallyDisabled + [ div + [ classList + [ ( "jf-textfield", True ) + , ( "jf-textfield--outlined", model.config.textFieldStyle == Outlined ) + , ( "jf-textfield--dense", model.config.dense ) + , ( "jf-textfield--focused", isFocused ) + , ( "jf-textfield--empty", editedValue == "" ) + , ( "jf-textfield--invalid", hasError ) + , ( "jf-textfield--disabled", actuallyDisabled ) + , ( "jf-textfield--hidden", hidden ) + ] + ] + [ input + [ class "jf-textfield__input" + , onFocus <| FocusNumericInput (Just path) + , onBlur <| FocusNumericInput Nothing + , onInput <| EditNumber + , Html.Attributes.id id + , Html.Attributes.name id + , value <| editedValue + , type_ "number" + , Html.Attributes.disabled actuallyDisabled + ] + [] + , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] ] - [] - , label [ class "jf-textfield__label" ] [ schema |> getTitle isRequired |> text ] - , div [ class "jf-textfield__helper-text" ] [ helperText ] + , div [ class "jf-helper-text" ] [ helperText ] ] diff --git a/src/Json/Form/UiSpec.elm b/src/Json/Form/UiSpec.elm index 50441cc..97efc72 100644 --- a/src/Json/Form/UiSpec.elm +++ b/src/Json/Form/UiSpec.elm @@ -16,6 +16,7 @@ type alias UiSpec = type WidgetType = PasswordField | Switch + | MultilineTextField type Rule @@ -44,6 +45,9 @@ decoder = else if widget == "switch" then succeed <| Switch + else if widget == "multiline" then + succeed <| MultilineTextField + else fail "" ) diff --git a/src/Snippets.elm b/src/Snippets.elm index 0f597f2..e8fd56d 100644 --- a/src/Snippets.elm +++ b/src/Snippets.elm @@ -46,12 +46,14 @@ getSnippet : Snippet -> Schema getSnippet ds = case ds of SimpleField -> - ObjectSchema - { blankSubSchema - | type_ = SingleType StringType - , title = Just "First name" - , description = Just "First (given) name of a travelling person" - } + buildSchema + |> withType "string" + |> withTitle "Text field" + |> withDescription "Helper text" + |> withCustomKeyword "ui" (Encode.object [ ( "widget", string "multiline" ) ]) + |> toSchema + |> Result.mapError (Debug.log "SimpleField") + |> Result.withDefault blankSchema FlatObject -> buildSchema @@ -154,7 +156,7 @@ getSnippet ds = [ ( "enabled" , buildSchema |> withType "boolean" - -- |> withDefault (Encode.bool True) + |> withDefault (Encode.bool False) |> withTitle "enable" |> withDescription "Enable editing" |> withCustomKeyword "ui" (Encode.object [ ( "widget", string "switch" ) ]) diff --git a/stylesheets/checkbox.css b/stylesheets/checkbox.css index 7b7963c..af65475 100644 --- a/stylesheets/checkbox.css +++ b/stylesheets/checkbox.css @@ -139,10 +139,6 @@ opacity: 0; } -.jf-checkbox--hidden { - display: none; -} - .jf-checkbox--disabled { opacity: 0.54; } diff --git a/stylesheets/json-form-element.css b/stylesheets/json-form-element.css new file mode 100644 index 0000000..b1a33fe --- /dev/null +++ b/stylesheets/json-form-element.css @@ -0,0 +1,16 @@ +.jf-element { + display: flex; + flex-direction: column; + margin-top: 16px; + margin-left: 16px; + margin-bottom: 16px; +} + +.jf-element--hidden { + display: none; +} + +.jf-helper-text { + margin-top: 8px; + margin-left: 12px; +} diff --git a/stylesheets/json-form.css b/stylesheets/json-form.css index a7a1b0c..cc79307 100644 --- a/stylesheets/json-form.css +++ b/stylesheets/json-form.css @@ -1,3 +1,4 @@ +@import './json-form-element.css'; @import './textfield.css'; @import './switch.css'; @import './checkbox.css'; diff --git a/stylesheets/switch.css b/stylesheets/switch.css index 99687db..22af4f4 100644 --- a/stylesheets/switch.css +++ b/stylesheets/switch.css @@ -140,6 +140,3 @@ cursor: default; } -.jf-switch--hidden { - display: none; -} diff --git a/stylesheets/textfield.css b/stylesheets/textfield.css index 513380a..5843355 100644 --- a/stylesheets/textfield.css +++ b/stylesheets/textfield.css @@ -23,9 +23,6 @@ max-width: 100%; margin: 0; padding: 0; - margin-top: 16px; - margin-left: 16px; - margin-bottom: 16px; border-top-left-radius: 4px; border-top-right-radius: 4px; cursor: pointer; @@ -72,7 +69,7 @@ padding-right: var(--side-padding); padding-top: 20px; padding-bottom: 12px; - width: calc(100% - var(--side-padding) * 2 - 2px); + width: calc(100% - var(--side-padding) * 2 - 4px); background: 0 0; text-align: left; color: inherit; @@ -161,6 +158,24 @@ border-radius: 4px; } + +.jf-textfield--multiline { + min-height: var(--field-height); + height: auto; +} + +.jf-textfield--multiline +.jf-textfield__input { + max-width: calc(100% - var(--side-padding) * 2 - 4px); + min-width: calc(100% - var(--side-padding) * 2 - 4px); + position: initial; + margin-top: 2px; + margin-bottom: 4px; + padding-top: 8px; + padding-bottom: 8px; +} + + /* .jf-textfield__bottom-border { border-bottom: 2px solid var(--color-active); @@ -267,7 +282,7 @@ .jf-textfield svg { position: absolute; - top: 16px; + top: calc(50% - 12px); right: var(--side-padding); } @@ -340,10 +355,6 @@ background: white; } -.jf-textfield--hidden { - display: none; -} - .jf-textfield--outlined.jf-textfield--disabled:after { display: none; } From 4490d9dc46f9c35fd7dc90522bad120a50827d1c Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Mon, 24 Sep 2018 22:25:22 +0100 Subject: [PATCH 31/71] Migrate to elm 19 --- elm-package.json | 22 --------------------- elm.json | 31 ++++++++++++++++++++++++++++++ src/index.ejs => public/index.html | 0 3 files changed, 31 insertions(+), 22 deletions(-) delete mode 100644 elm-package.json create mode 100644 elm.json rename src/index.ejs => public/index.html (100%) diff --git a/elm-package.json b/elm-package.json deleted file mode 100644 index 122ea05..0000000 --- a/elm-package.json +++ /dev/null @@ -1,22 +0,0 @@ -{ - "version": "1.1.0", - "summary": "Form generator based on JSON Schema", - "repository": "https://github.com/1602/json-form.git", - "license": "BSD3", - "source-directories": [ - "src", - "../json-schema/src" - ], - "exposed-modules": [], - "dependencies": { - "1602/elm-feather": "2.2.0 <= v < 3.0.0", - "1602/json-value": "3.0.2 <= v < 3.0.3", - "NoRedInk/elm-decode-pipeline": "3.0.0 <= v < 4.0.0", - "elm-lang/core": "5.0.0 <= v < 6.0.0", - "elm-lang/dom": "1.1.1 <= v < 2.0.0", - "elm-lang/html": "2.0.0 <= v < 3.0.0", - "elm-lang/svg": "2.0.0 <= v < 3.0.0", - "zwilias/elm-utf-tools": "1.0.1 <= v < 2.0.0" - }, - "elm-version": "0.18.0 <= v < 0.19.0" -} diff --git a/elm.json b/elm.json new file mode 100644 index 0000000..920c6f3 --- /dev/null +++ b/elm.json @@ -0,0 +1,31 @@ +{ + "type": "application", + "source-directories": [ + "src" + ], + "elm-version": "0.19.0", + "dependencies": { + "direct": { + "NoRedInk/elm-json-decode-pipeline": "1.0.0", + "elm/browser": "1.0.0", + "elm/core": "1.0.0", + "elm/html": "1.0.0", + "elm/json": "1.0.0", + "elm/random": "1.0.0", + "elm/regex": "1.0.0", + "elm/svg": "1.0.1", + "json-tools/json-schema": "1.0.0", + "json-tools/json-value": "1.0.0", + "zwilias/elm-utf-tools": "2.0.1" + }, + "indirect": { + "elm/time": "1.0.0", + "elm/url": "1.0.0", + "elm/virtual-dom": "1.0.2" + } + }, + "test-dependencies": { + "direct": {}, + "indirect": {} + } +} diff --git a/src/index.ejs b/public/index.html similarity index 100% rename from src/index.ejs rename to public/index.html From a6e815845c3eca28938d3d094ba93875f31e6cca Mon Sep 17 00:00:00 2001 From: Anatoliy Date: Mon, 24 Sep 2018 22:25:51 +0100 Subject: [PATCH 32/71] Add syntax highlighting --- public/index.html | 40 +++++++++++++++++++++++++++++++++++++++- 1 file changed, 39 insertions(+), 1 deletion(-) diff --git a/public/index.html b/public/index.html index ef0dfe4..678539f 100644 --- a/public/index.html +++ b/public/index.html @@ -6,21 +6,59 @@ JSON Form web-component demo + +