diff --git a/package-lock.json b/package-lock.json index 33e64fa..63ee953 100644 --- a/package-lock.json +++ b/package-lock.json @@ -228,7 +228,12 @@ "arr-flatten": { "version": "1.1.0", "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha1-NgSLv/TntH4TZkQxbJlmnqWukfE=" + "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==" + }, + "arr-union": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", + "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=" }, "array-equal": { "version": "1.0.0", @@ -325,6 +330,11 @@ "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=" }, + "assign-symbols": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", + "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=" + }, "ast-types-flow": { "version": "0.0.7", "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", @@ -358,6 +368,11 @@ "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=" }, + "atob": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.0.3.tgz", + "integrity": "sha1-GcenYEc3dEaPILLS0DNyrX1Mv10=" + }, "autoprefixer": { "version": "7.1.6", "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-7.1.6.tgz", @@ -1380,6 +1395,27 @@ "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, + "base": { + "version": "0.11.2", + "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", + "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", + "requires": { + "cache-base": "1.0.1", + "class-utils": "0.3.6", + "component-emitter": "1.2.1", + "define-property": "1.0.0", + "isobject": "3.0.1", + "mixin-deep": "1.3.1", + "pascalcase": "0.1.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "base64-js": { "version": "1.2.1", "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.2.1.tgz", @@ -1700,6 +1736,29 @@ "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=" }, + "cache-base": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", + "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", + "requires": { + "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" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "caller-path": { "version": "0.1.0", "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-0.1.0.tgz", @@ -1871,6 +1930,83 @@ "chalk": "1.1.3" } }, + "class-utils": { + "version": "0.3.6", + "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", + "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", + "requires": { + "arr-union": "3.1.0", + "define-property": "0.2.5", + "isobject": "3.0.1", + "static-extend": "0.1.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "classnames": { "version": "2.2.5", "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.5.tgz", @@ -1949,6 +2085,15 @@ "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=" }, + "collection-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", + "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", + "requires": { + "map-visit": "1.0.0", + "object-visit": "1.0.1" + } + }, "color": { "version": "0.11.4", "resolved": "https://registry.npmjs.org/color/-/color-0.11.4.tgz", @@ -2013,6 +2158,11 @@ "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=" }, + "component-emitter": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", + "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=" + }, "compressible": { "version": "2.0.12", "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.12.tgz", @@ -2131,6 +2281,11 @@ "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=" }, + "copy-descriptor": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", + "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=" + }, "core-js": { "version": "1.2.7", "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", @@ -2153,7 +2308,7 @@ "cosmiconfig": { "version": "2.2.2", "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-2.2.2.tgz", - "integrity": "sha1-YXPOvVb6wELB9DkO33r2wHx8uJI=", + "integrity": "sha512-GiNXLwAFPYHy25XmTPpafYvn3CLAkJ8FLsscq78MQd1Kh0OU6Yzhn4eV2MVF4G9WEQZoWEGltatdR+ntGPMl5A==", "requires": { "is-directory": "0.3.1", "js-yaml": "3.7.0", @@ -2258,6 +2413,11 @@ "randomfill": "1.0.3" } }, + "crypto-random-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", + "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=" + }, "css-color-names": { "version": "0.0.4", "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", @@ -2526,6 +2686,11 @@ "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=" }, + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=" + }, "decompress": { "version": "4.2.0", "resolved": "https://registry.npmjs.org/decompress/-/decompress-4.2.0.tgz", @@ -2647,6 +2812,14 @@ "object-keys": "1.0.11" } }, + "define-property": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", + "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "requires": { + "is-descriptor": "1.0.2" + } + }, "defined": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/defined/-/defined-1.0.0.tgz", @@ -3599,6 +3772,14 @@ "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.1.tgz", "integrity": "sha1-p1Xqe8Gt/MWjHOfnYtuq3F5jZEQ=" }, + "extend-shallow": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", + "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "requires": { + "is-extendable": "0.1.1" + } + }, "external-editor": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-2.1.0.tgz", @@ -3862,6 +4043,14 @@ "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=" }, + "fragment-cache": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", + "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "requires": { + "map-cache": "0.2.2" + } + }, "fresh": { "version": "0.5.2", "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", @@ -4588,13 +4777,6 @@ } } }, - "string_decoder": { - "version": "1.0.1", - "bundled": true, - "requires": { - "safe-buffer": "5.0.1" - } - }, "string-width": { "version": "1.0.2", "bundled": true, @@ -4604,6 +4786,13 @@ "strip-ansi": "3.0.1" } }, + "string_decoder": { + "version": "1.0.1", + "bundled": true, + "requires": { + "safe-buffer": "5.0.1" + } + }, "stringstream": { "version": "0.0.5", "bundled": true, @@ -4794,6 +4983,11 @@ "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=" }, + "get-value": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", + "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=" + }, "getpass": { "version": "0.1.7", "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", @@ -4899,6 +5093,14 @@ } } }, + "global-dirs": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", + "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "requires": { + "ini": "1.3.5" + } + }, "global-modules": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/global-modules/-/global-modules-1.0.0.tgz", @@ -5109,6 +5311,60 @@ "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=" }, + "has-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", + "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "requires": { + "get-value": "2.0.6", + "has-values": "1.0.0", + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "has-values": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", + "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "requires": { + "is-number": "3.0.0", + "kind-of": "4.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "kind-of": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", + "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, "hash-base": { "version": "2.0.2", "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-2.0.2.tgz", @@ -5194,7 +5450,7 @@ "hosted-git-info": { "version": "2.5.0", "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.5.0.tgz", - "integrity": "sha1-bWDjSzq7yDEwYsO3mO+NkBoHrzw=" + "integrity": "sha512-pNgbURSuab90KbTqvRPsseaTxOJCZBD0a7t+haSN33piP9cCM4l0CqdzAif2hUqm716UovKB2ROmiabGAKVXyg==" }, "hpack.js": { "version": "2.1.6", @@ -5419,6 +5675,16 @@ "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.7.tgz", "integrity": "sha512-YGG3ejvBNHRqu0559EOxxNFihD0AjpvHlC/pdGKd3X3ofe+CoJkYazwNJYTNebqpPKN+VVQbh4ZFn1DivMNuHA==" }, + "ignore-by-default": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/ignore-by-default/-/ignore-by-default-1.0.1.tgz", + "integrity": "sha1-SMptcvbGo68Aqa1K5odr44ieKwk=" + }, + "import-lazy": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", + "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=" + }, "import-local": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/import-local/-/import-local-0.1.1.tgz", @@ -5562,6 +5828,21 @@ "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=" }, + "is-accessor-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", + "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-arrayish": { "version": "0.2.1", "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", @@ -5601,11 +5882,43 @@ "ci-info": "1.1.2" } }, + "is-data-descriptor": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", + "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "requires": { + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-date-object": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.1.tgz", "integrity": "sha1-mqIOtq7rv/d/vTPnTKAbM1gdOhY=" }, + "is-descriptor": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", + "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "requires": { + "is-accessor-descriptor": "1.0.0", + "is-data-descriptor": "1.0.0", + "kind-of": "6.0.2" + }, + "dependencies": { + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + } + } + }, "is-directory": { "version": "0.3.1", "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", @@ -5665,6 +5978,15 @@ "resolved": "https://registry.npmjs.org/is-hex-prefixed/-/is-hex-prefixed-1.0.0.tgz", "integrity": "sha1-fY035q135dEnFIkTxXPggtd39VQ=" }, + "is-installed-globally": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", + "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "requires": { + "global-dirs": "0.1.1", + "is-path-inside": "1.0.1" + } + }, "is-my-json-valid": { "version": "2.16.1", "resolved": "https://registry.npmjs.org/is-my-json-valid/-/is-my-json-valid-2.16.1.tgz", @@ -5704,6 +6026,24 @@ "resolved": "https://registry.npmjs.org/is-object/-/is-object-1.0.1.tgz", "integrity": "sha1-iVJojF7C/9awPsyF52ngKQMINHA=" }, + "is-odd": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-odd/-/is-odd-1.0.0.tgz", + "integrity": "sha1-O4qTLrAos3dcObsJ6RdnrM22kIg=", + "requires": { + "is-number": "3.0.0" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "is-path-cwd": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", @@ -5730,6 +6070,21 @@ "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=" }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "is-posix-bracket": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/is-posix-bracket/-/is-posix-bracket-0.1.1.tgz", @@ -6571,6 +6926,21 @@ "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" }, + "lodash.endswith": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.endswith/-/lodash.endswith-4.2.1.tgz", + "integrity": "sha1-/tWawXOO0+I27dcGTsRWRIs3vAk=" + }, + "lodash.isfunction": { + "version": "3.0.9", + "resolved": "https://registry.npmjs.org/lodash.isfunction/-/lodash.isfunction-3.0.9.tgz", + "integrity": "sha512-AirXNj15uRIMMPihnkInB4i3NHeb4iBtNg9WRWuK2o31S+ePwwNmDPaTL3o7dTJ+VXNZim7rFs4rxN4YU1oUJw==" + }, + "lodash.isstring": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", + "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=" + }, "lodash.memoize": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", @@ -6581,6 +6951,11 @@ "resolved": "https://registry.npmjs.org/lodash.mergewith/-/lodash.mergewith-4.6.0.tgz", "integrity": "sha1-FQzwoWeR9ZA7iJHqsVRgknS96lU=" }, + "lodash.startswith": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/lodash.startswith/-/lodash.startswith-4.2.1.tgz", + "integrity": "sha1-xZjErc4YiiflMUVzHNxsDnF3YAw=" + }, "lodash.template": { "version": "4.4.0", "resolved": "https://registry.npmjs.org/lodash.template/-/lodash.template-4.4.0.tgz", @@ -6677,6 +7052,11 @@ "tmpl": "1.0.4" } }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, "map-obj": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", @@ -6687,6 +7067,14 @@ "resolved": "https://registry.npmjs.org/map-stream/-/map-stream-0.1.0.tgz", "integrity": "sha1-5WqpTEyAVaFkBKBnS3jyFffI4ZQ=" }, + "map-visit": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", + "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", + "requires": { + "object-visit": "1.0.1" + } + }, "math-expression-evaluator": { "version": "1.2.17", "resolved": "https://registry.npmjs.org/math-expression-evaluator/-/math-expression-evaluator-1.2.17.tgz", @@ -6866,6 +7254,25 @@ "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.8.tgz", "integrity": "sha1-hX/Kv8M5fSYluCKCYuhqp6ARsF0=" }, + "mixin-deep": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz", + "integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==", + "requires": { + "for-in": "1.0.2", + "is-extendable": "1.0.1" + }, + "dependencies": { + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "mkdirp": { "version": "0.5.1", "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.1.tgz", @@ -6964,6 +7371,41 @@ "resolved": "https://registry.npmjs.org/nano-json-stream-parser/-/nano-json-stream-parser-0.1.2.tgz", "integrity": "sha1-DMj20OK2IrR5xA1JnEbWS3Vcb18=" }, + "nanomatch": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.7.tgz", + "integrity": "sha512-/5ldsnyurvEw7wNpxLFgjVvBLMta43niEYOy0CJ4ntcYSbx6bugRUTQeFb4BR/WanEL1o3aQgHuVLHQaB6tOqg==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "fragment-cache": "0.2.1", + "is-odd": "1.0.0", + "kind-of": "5.1.0", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "natural-compare": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/natural-compare/-/natural-compare-1.4.0.tgz", @@ -7257,6 +7699,436 @@ "resolved": "https://registry.npmjs.org/node-status-codes/-/node-status-codes-1.0.0.tgz", "integrity": "sha1-WuVUHQJGRdMqWPzdyc7s6nrjrC8=" }, + "nodemon": { + "version": "1.14.12", + "resolved": "https://registry.npmjs.org/nodemon/-/nodemon-1.14.12.tgz", + "integrity": "sha512-FssRGtEmt+EwpztWwTiYrLo+jSpgoxuJbmtgbRdTo2436x/3Z4PFODUz8yD52BiWqbHVJtasKv5K2ozFwNaqxA==", + "requires": { + "chokidar": "2.0.2", + "debug": "3.1.0", + "ignore-by-default": "1.0.1", + "minimatch": "3.0.4", + "pstree.remy": "1.1.0", + "semver": "5.4.1", + "touch": "3.1.0", + "undefsafe": "2.0.2", + "update-notifier": "2.3.0" + }, + "dependencies": { + "ansi-align": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-2.0.0.tgz", + "integrity": "sha1-w2rsy6VjuJzrVW82kPCx2eNUf38=", + "requires": { + "string-width": "2.1.1" + } + }, + "anymatch": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", + "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "requires": { + "micromatch": "3.1.5", + "normalize-path": "2.1.1" + } + }, + "arr-diff": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", + "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=" + }, + "array-unique": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", + "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=" + }, + "boxen": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-1.3.0.tgz", + "integrity": "sha512-TNPjfTr432qx7yOjQyaXm3dSR0MH9vXp7eT1BFSl/C51g+EFnOR9hTg1IreahGBmDNCehscshe45f+C1TBZbLw==", + "requires": { + "ansi-align": "2.0.0", + "camelcase": "4.1.0", + "chalk": "2.3.1", + "cli-boxes": "1.0.0", + "string-width": "2.1.1", + "term-size": "1.2.0", + "widest-line": "2.0.0" + } + }, + "braces": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.0.tgz", + "integrity": "sha512-P4O8UQRdGiMLWSizsApmXVQDBS6KCt7dSexgLKBmH5Hr1CZq7vsnscFh8oR1sP1ab1Zj0uCHCEzZeV6SfUf3rA==", + "requires": { + "arr-flatten": "1.1.0", + "array-unique": "0.3.2", + "define-property": "1.0.0", + "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.1.1", + "split-string": "3.1.0", + "to-regex": "3.0.1" + } + }, + "camelcase": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", + "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=" + }, + "chalk": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.3.1.tgz", + "integrity": "sha512-QUU4ofkDoMIVO7hcx1iPTISs88wsO8jA92RQIm4JAwZvFGGAV2hSAA1NX7oVj2Ej2Q6NDTcRDjPTFrMCRZoJ6g==", + "requires": { + "ansi-styles": "3.2.0", + "escape-string-regexp": "1.0.5", + "supports-color": "5.2.0" + } + }, + "chokidar": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.0.2.tgz", + "integrity": "sha512-l32Hw3wqB0L2kGVmSbK/a+xXLDrUEsc84pSgMkmwygHvD7ubRsP/vxxHa5BtB6oix1XLLVCHyYMsckRXxThmZw==", + "requires": { + "anymatch": "2.0.0", + "async-each": "1.0.1", + "braces": "2.3.0", + "fsevents": "1.1.2", + "glob-parent": "3.1.0", + "inherits": "2.0.3", + "is-binary-path": "1.0.1", + "is-glob": "4.0.0", + "normalize-path": "2.1.1", + "path-is-absolute": "1.0.1", + "readdirp": "2.1.0", + "upath": "1.0.2" + } + }, + "configstore": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-3.1.1.tgz", + "integrity": "sha512-5oNkD/L++l0O6xGXxb1EWS7SivtjfGQlRyxJsYgE0Z495/L81e2h4/d3r969hoPXuFItzNOKMtsXgYG4c7dYvw==", + "requires": { + "dot-prop": "4.2.0", + "graceful-fs": "4.1.11", + "make-dir": "1.1.0", + "unique-string": "1.0.0", + "write-file-atomic": "2.3.0", + "xdg-basedir": "3.0.0" + } + }, + "debug": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", + "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "requires": { + "ms": "2.0.0" + } + }, + "dot-prop": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", + "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "requires": { + "is-obj": "1.0.1" + } + }, + "expand-brackets": { + "version": "2.1.4", + "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", + "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "requires": { + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "posix-character-classes": "0.1.1", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + }, + "dependencies": { + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "requires": { + "ms": "2.0.0" + } + }, + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + } + } + }, + "extglob": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", + "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", + "requires": { + "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" + } + }, + "fill-range": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", + "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "requires": { + "extend-shallow": "2.0.1", + "is-number": "3.0.0", + "repeat-string": "1.6.1", + "to-regex-range": "2.1.1" + } + }, + "glob-parent": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", + "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "requires": { + "is-glob": "3.1.0", + "path-dirname": "1.0.2" + }, + "dependencies": { + "is-glob": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", + "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "requires": { + "is-extglob": "2.1.1" + } + } + } + }, + "got": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/got/-/got-6.7.1.tgz", + "integrity": "sha1-JAzQV4WpoY5WHcG0S0HHY+8ejbA=", + "requires": { + "create-error-class": "3.0.2", + "duplexer3": "0.1.4", + "get-stream": "3.0.0", + "is-redirect": "1.0.0", + "is-retry-allowed": "1.1.0", + "is-stream": "1.1.0", + "lowercase-keys": "1.0.0", + "safe-buffer": "5.1.1", + "timed-out": "4.0.1", + "unzip-response": "2.0.1", + "url-parse-lax": "1.0.0" + } + }, + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-glob": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", + "integrity": "sha1-lSHHaEXMJhCoUgPd8ICpWML/q8A=", + "requires": { + "is-extglob": "2.1.1" + } + }, + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", + "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" + }, + "latest-version": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-3.1.0.tgz", + "integrity": "sha1-ogU4P+oyKzO1rjsYq+4NwvNW7hU=", + "requires": { + "package-json": "4.0.1" + } + }, + "micromatch": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.5.tgz", + "integrity": "sha512-ykttrLPQrz1PUJcXjwsTUjGoPJ64StIGNE2lGVD1c9CuguJ+L7/navsE8IcDNndOoCMvYV0qc/exfVbMHkUhvA==", + "requires": { + "arr-diff": "4.0.0", + "array-unique": "0.3.2", + "braces": "2.3.0", + "define-property": "1.0.0", + "extend-shallow": "2.0.1", + "extglob": "2.0.4", + "fragment-cache": "0.2.1", + "kind-of": "6.0.2", + "nanomatch": "1.2.7", + "object.pick": "1.3.0", + "regex-not": "1.0.0", + "snapdragon": "0.8.1", + "to-regex": "3.0.1" + } + }, + "package-json": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/package-json/-/package-json-4.0.1.tgz", + "integrity": "sha1-iGmgQBJTZhxMTKPabCEh7VVfXu0=", + "requires": { + "got": "6.7.1", + "registry-auth-token": "3.3.1", + "registry-url": "3.1.0", + "semver": "5.4.1" + } + }, + "supports-color": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.2.0.tgz", + "integrity": "sha512-F39vS48la4YvTZUPVeTqsjsFNrvcMwrV3RLZINsmHo+7djCvuUzSIeXOnZ5hmjef4bajL1dNccN+tg5XAliO5Q==", + "requires": { + "has-flag": "3.0.0" + } + }, + "timed-out": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/timed-out/-/timed-out-4.0.1.tgz", + "integrity": "sha1-8y6srFoXW+ol1/q1Zas+2HQe9W8=" + }, + "unzip-response": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-2.0.1.tgz", + "integrity": "sha1-0vD3N9FrBhXnKmk17QQhRXLVb5c=" + }, + "update-notifier": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-2.3.0.tgz", + "integrity": "sha1-TognpruRUUCrCTVZ1wFOPruDdFE=", + "requires": { + "boxen": "1.3.0", + "chalk": "2.3.1", + "configstore": "3.1.1", + "import-lazy": "2.1.0", + "is-installed-globally": "0.1.0", + "is-npm": "1.0.0", + "latest-version": "3.1.0", + "semver-diff": "2.1.0", + "xdg-basedir": "3.0.0" + } + }, + "widest-line": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.0.tgz", + "integrity": "sha1-AUKk6KJD+IgsAjOqDgKBqnYVInM=", + "requires": { + "string-width": "2.1.1" + } + }, + "write-file-atomic": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.3.0.tgz", + "integrity": "sha512-xuPeK4OdjWqtfi59ylvVL0Yn35SF3zgcAcv7rBPFHVaEapaDr4GdGgm3j7ckTwH9wHL7fGmgfAnb0+THrHb8tA==", + "requires": { + "graceful-fs": "4.1.11", + "imurmurhash": "0.1.4", + "signal-exit": "3.0.2" + } + }, + "xdg-basedir": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", + "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=" + } + } + }, "nopt": { "version": "3.0.6", "resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz", @@ -7268,7 +8140,7 @@ "normalize-package-data": { "version": "2.4.0", "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz", - "integrity": "sha1-EvlaMH1YNSB1oEkHuErIvpisAS8=", + "integrity": "sha512-9jjUFbTPfEy3R/ad/2oNbKtW9Hgovl5O1FvFWKkKblNXoN/Oou6+9+KKohPK13Yc3/TyunyWhJp6gvRNR/PPAw==", "requires": { "hosted-git-info": "2.5.0", "is-builtin-module": "1.0.0", @@ -7387,7 +8259,7 @@ "npmlog": { "version": "4.1.2", "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha1-CKfyqL9zRgR3mp76StXMcXq7lUs=", + "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", "requires": { "are-we-there-yet": "1.1.4", "console-control-strings": "1.1.0", @@ -7444,6 +8316,59 @@ "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=" }, + "object-copy": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", + "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", + "requires": { + "copy-descriptor": "0.1.1", + "define-property": "0.2.5", + "kind-of": "3.2.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + }, + "dependencies": { + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + } + } + }, "object-hash": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/object-hash/-/object-hash-1.2.0.tgz", @@ -7459,6 +8384,21 @@ "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.0.11.tgz", "integrity": "sha1-xUYBd4rVYPEULODgG8yotW0TQm0=" }, + "object-visit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", + "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "object.omit": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/object.omit/-/object.omit-2.0.1.tgz", @@ -7468,6 +8408,21 @@ "is-extendable": "0.1.1" } }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "oboe": { "version": "2.1.3", "resolved": "https://registry.npmjs.org/oboe/-/oboe-2.1.3.tgz", @@ -7713,11 +8668,21 @@ "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.2.tgz", "integrity": "sha1-/CidTtiZMRlGDBViUyYs3I3mW/M=" }, + "pascalcase": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", + "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=" + }, "path-browserify": { "version": "0.0.0", "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.0.tgz", "integrity": "sha1-oLhwcpquIUAFt9UDLsLLuw+0RRo=" }, + "path-dirname": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", + "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=" + }, "path-exists": { "version": "3.0.0", "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", @@ -7846,6 +8811,11 @@ } } }, + "posix-character-classes": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", + "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=" + }, "postcss": { "version": "6.0.14", "resolved": "https://registry.npmjs.org/postcss/-/postcss-6.0.14.tgz", @@ -9094,6 +10064,14 @@ "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=" }, + "pstree.remy": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/pstree.remy/-/pstree.remy-1.1.0.tgz", + "integrity": "sha512-q5I5vLRMVtdWa8n/3UEzZX7Lfghzrg9eG2IKk2ENLSofKRCXVqMvMUHxCKgXNaqH/8ebhBxrqftHWnyTFweJ5Q==", + "requires": { + "ps-tree": "1.1.0" + } + }, "public-encrypt": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.0.tgz", @@ -9156,7 +10134,7 @@ "randomatic": { "version": "1.1.7", "resolved": "https://registry.npmjs.org/randomatic/-/randomatic-1.1.7.tgz", - "integrity": "sha1-x6vpzIuHwLqodrGf3oP9RkeX44w=", + "integrity": "sha512-D5JUjPyJbaJDkuAazpVnSfVkLlpeO3wDlPROTMLGKG1zMFNFRgrciKo1ltz/AzNTkqE0HzDx655QOL51N06how==", "requires": { "is-number": "3.0.0", "kind-of": "4.0.0" @@ -9511,6 +10489,14 @@ "is-equal-shallow": "0.1.3" } }, + "regex-not": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.0.tgz", + "integrity": "sha1-Qvg+OXcWIt+CawKvF2Ul1qXxV/k=", + "requires": { + "extend-shallow": "2.0.1" + } + }, "regexpu-core": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-2.0.0.tgz", @@ -9705,6 +10691,11 @@ "resolved": "https://registry.npmjs.org/resolve-pathname/-/resolve-pathname-2.2.0.tgz", "integrity": "sha512-bAFz9ld18RzJfddgrO2e/0S2O81710++chRMUxHjXOYKF6jTAMrUNZrEZ1PvV0zlhfjidm08iRPdTLPno1FuRg==" }, + "resolve-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", + "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=" + }, "restore-cursor": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz", @@ -9771,7 +10762,7 @@ "safe-buffer": { "version": "5.1.1", "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.1.tgz", - "integrity": "sha1-iTMSr2myEj3vcfV4iQAWce6yyFM=" + "integrity": "sha512-kKvNJn6Mm93gAczWVJg7wH+wGYWNrDHdWvpUmHyEsgCtIwwo3bqPtV4tR5tuPaUhTOo/kvhVwd8XwwOllGYkbg==" }, "sane": { "version": "1.6.0", @@ -9996,11 +10987,30 @@ "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" }, + "set-getter": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/set-getter/-/set-getter-0.1.0.tgz", + "integrity": "sha1-12nBgsnVpR9AkUXy+6guXoboA3Y=", + "requires": { + "to-object-path": "0.3.0" + } + }, "set-immediate-shim": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=" }, + "set-value": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.0.tgz", + "integrity": "sha512-hw0yxk9GT/Hr5yJEYnHNKYXkIA8mVJgd9ditYZCe16ZczcaELYYcfvaXesNACk2O8O0nTiPQcQhGUQj8JLzeeg==", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "split-string": "3.1.0" + } + }, "setimmediate": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", @@ -10095,6 +11105,112 @@ "resolved": "https://registry.npmjs.org/slide/-/slide-1.1.6.tgz", "integrity": "sha1-VusCfWW00tzmyy4tMsTUr8nh1wc=" }, + "snapdragon": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.1.tgz", + "integrity": "sha1-4StUh/re0+PeoKyR6UAL91tAE3A=", + "requires": { + "base": "0.11.2", + "debug": "2.6.9", + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "map-cache": "0.2.2", + "source-map": "0.5.7", + "source-map-resolve": "0.5.1", + "use": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=" + } + } + }, + "snapdragon-node": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", + "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", + "requires": { + "define-property": "1.0.0", + "isobject": "3.0.1", + "snapdragon-util": "3.0.1" + }, + "dependencies": { + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, + "snapdragon-util": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", + "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", + "requires": { + "kind-of": "3.2.2" + } + }, "sntp": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/sntp/-/sntp-2.1.0.tgz", @@ -10158,6 +11274,18 @@ "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==" }, + "source-map-resolve": { + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.1.tgz", + "integrity": "sha512-0KW2wvzfxm8NCTb30z0LMNyPqWCdDGE2viwzUaucqJdkTRXtZiSY3I+2A6nVAjmdOy0I4gU8DwnVVGsk9jvP2A==", + "requires": { + "atob": "2.0.3", + "decode-uri-component": "0.2.0", + "resolve-url": "0.2.1", + "source-map-url": "0.4.0", + "urix": "0.1.0" + } + }, "source-map-support": { "version": "0.4.18", "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", @@ -10173,6 +11301,11 @@ } } }, + "source-map-url": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", + "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=" + }, "spdx-correct": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-1.0.2.tgz", @@ -10226,6 +11359,33 @@ "through": "2.3.8" } }, + "split-string": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", + "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "requires": { + "extend-shallow": "3.0.2" + }, + "dependencies": { + "extend-shallow": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", + "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "requires": { + "assign-symbols": "1.0.0", + "is-extendable": "1.0.1" + } + }, + "is-extendable": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", + "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", + "requires": { + "is-plain-object": "2.0.4" + } + } + } + }, "sprintf-js": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", @@ -10246,6 +11406,76 @@ "tweetnacl": "0.14.5" } }, + "static-extend": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", + "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "requires": { + "define-property": "0.2.5", + "object-copy": "0.1.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, "statuses": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.3.1.tgz", @@ -10293,14 +11523,6 @@ "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" }, - "string_decoder": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", - "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", - "requires": { - "safe-buffer": "5.1.1" - } - }, "string-length": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", @@ -10343,6 +11565,14 @@ "function-bind": "1.1.1" } }, + "string_decoder": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.0.3.tgz", + "integrity": "sha512-4AH6Z5fzNNBcH+6XDMfA/BTt87skxqJlO0lAh3Dker5zThcAxG6mKz+iGu308UKoPPQ8Dcqx/4JhujzltRa+hQ==", + "requires": { + "safe-buffer": "5.1.1" + } + }, "stringstream": { "version": "0.0.5", "resolved": "https://registry.npmjs.org/stringstream/-/stringstream-0.0.5.tgz", @@ -10668,6 +11898,14 @@ } } }, + "term-size": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", + "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", + "requires": { + "execa": "0.7.0" + } + }, "test-exclude": { "version": "4.1.1", "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-4.1.1.tgz", @@ -10757,11 +11995,127 @@ "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-1.0.3.tgz", "integrity": "sha1-uDVx+k2MJbguIxsG46MFXeTKGkc=" }, + "to-object-path": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", + "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "requires": { + "kind-of": "3.2.2" + } + }, + "to-regex": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.1.tgz", + "integrity": "sha1-FTWL7kosg712N3uh3ASdDxiDeq4=", + "requires": { + "define-property": "0.2.5", + "extend-shallow": "2.0.1", + "regex-not": "1.0.0" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + } + } + }, + "to-regex-range": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", + "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", + "requires": { + "is-number": "3.0.0", + "repeat-string": "1.6.1" + }, + "dependencies": { + "is-number": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", + "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "requires": { + "kind-of": "3.2.2" + } + } + } + }, "toposort": { "version": "1.0.6", "resolved": "https://registry.npmjs.org/toposort/-/toposort-1.0.6.tgz", "integrity": "sha1-wxdI5V0hDv/AD9zcfW5o19e7nOw=" }, + "touch": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/touch/-/touch-3.1.0.tgz", + "integrity": "sha512-WBx8Uy5TLtOSRtIq+M03/sKDrXCLHxwDcquSP2c43Le03/9serjQBIztjRz6FkJez9D/hleyAXTBGLwwZUw9lA==", + "requires": { + "nopt": "1.0.10" + }, + "dependencies": { + "nopt": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-1.0.10.tgz", + "integrity": "sha1-bd0hvSoxQXuScn3Vhfim83YI6+4=", + "requires": { + "abbrev": "1.1.1" + } + } + } + }, "tough-cookie": { "version": "2.3.3", "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.3.tgz", @@ -10955,11 +12309,43 @@ } } }, + "undefsafe": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/undefsafe/-/undefsafe-2.0.2.tgz", + "integrity": "sha1-Il9rngM3Zj4Njnz9aG/Cg2zKznY=", + "requires": { + "debug": "2.6.9" + } + }, "underscore": { "version": "1.8.3", "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.8.3.tgz", "integrity": "sha1-Tz+1OxBuYJf8+ctBCfKl6b36UCI=" }, + "union-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.0.tgz", + "integrity": "sha1-XHHDTLW61dzr4+oM0IIHulqhrqQ=", + "requires": { + "arr-union": "3.1.0", + "get-value": "2.0.6", + "is-extendable": "0.1.1", + "set-value": "0.4.3" + }, + "dependencies": { + "set-value": { + "version": "0.4.3", + "resolved": "https://registry.npmjs.org/set-value/-/set-value-0.4.3.tgz", + "integrity": "sha1-fbCPnT0i3H945Trzw79GZuzfzPE=", + "requires": { + "extend-shallow": "2.0.1", + "is-extendable": "0.1.1", + "is-plain-object": "2.0.4", + "to-object-path": "0.3.0" + } + } + } + }, "uniq": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", @@ -10978,6 +12364,14 @@ "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=" }, + "unique-string": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", + "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "requires": { + "crypto-random-string": "1.0.0" + } + }, "universalify": { "version": "0.1.1", "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.1.tgz", @@ -10988,11 +12382,63 @@ "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=" }, + "unset-value": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", + "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "requires": { + "has-value": "0.3.1", + "isobject": "3.0.1" + }, + "dependencies": { + "has-value": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", + "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "requires": { + "get-value": "2.0.6", + "has-values": "0.1.4", + "isobject": "2.1.0" + }, + "dependencies": { + "isobject": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", + "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", + "requires": { + "isarray": "1.0.0" + } + } + } + }, + "has-values": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", + "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + } + } + }, "unzip-response": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/unzip-response/-/unzip-response-1.0.2.tgz", "integrity": "sha1-uYTwh3/AqJwsdzzB73tbIytbBv4=" }, + "upath": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/upath/-/upath-1.0.2.tgz", + "integrity": "sha512-fCmij7T5LnwUme3dbnVSejvOHHlARjB3ikJFwgZfz386pHmf/gueuTLRFU94FZEaeCLlbQrweiUU700gG41tUw==", + "requires": { + "lodash.endswith": "4.2.1", + "lodash.isfunction": "3.0.9", + "lodash.isstring": "4.0.1", + "lodash.startswith": "4.2.1" + } + }, "update-notifier": { "version": "1.0.3", "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-1.0.3.tgz", @@ -11018,6 +12464,11 @@ "resolved": "https://registry.npmjs.org/urijs/-/urijs-1.19.0.tgz", "integrity": "sha512-Qs2odXn0hST5VSPVjpi73CMqtbAoanahaqWBujGU+IyMrMqpWcIhDewxQRhCkmqYxuyvICDcSuLdv2O7ncWBGw==" }, + "urix": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", + "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=" + }, "url": { "version": "0.11.0", "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", @@ -11078,6 +12529,90 @@ "resolved": "https://registry.npmjs.org/url-to-options/-/url-to-options-1.0.1.tgz", "integrity": "sha1-FQWgOiiaSMvXpDTvuu7FBV9WM6k=" }, + "use": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/use/-/use-2.0.2.tgz", + "integrity": "sha1-riig1y+TvyJCKhii43mZMRLeyOg=", + "requires": { + "define-property": "0.2.5", + "isobject": "3.0.1", + "lazy-cache": "2.0.2" + }, + "dependencies": { + "define-property": { + "version": "0.2.5", + "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", + "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "requires": { + "is-descriptor": "0.1.6" + } + }, + "is-accessor-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", + "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-data-descriptor": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", + "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "requires": { + "kind-of": "3.2.2" + }, + "dependencies": { + "kind-of": { + "version": "3.2.2", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", + "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "requires": { + "is-buffer": "1.1.6" + } + } + } + }, + "is-descriptor": { + "version": "0.1.6", + "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", + "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "requires": { + "is-accessor-descriptor": "0.1.6", + "is-data-descriptor": "0.1.4", + "kind-of": "5.1.0" + } + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "kind-of": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", + "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==" + }, + "lazy-cache": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/lazy-cache/-/lazy-cache-2.0.2.tgz", + "integrity": "sha1-uRkKT5EzVGlIQIWfio9whNiCImQ=", + "requires": { + "set-getter": "0.1.0" + } + } + } + }, "utf8": { "version": "2.1.1", "resolved": "https://registry.npmjs.org/utf8/-/utf8-2.1.1.tgz", @@ -11843,7 +13378,7 @@ "dependencies": { "fs-extra": { "version": "0.30.0", - "resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.30.0.tgz", "integrity": "sha1-8jP/zAjU2n1DLapEl3aYnbHfk/A=", "requires": { "graceful-fs": "4.1.11", @@ -11932,7 +13467,7 @@ "which": { "version": "1.3.0", "resolved": "https://registry.npmjs.org/which/-/which-1.3.0.tgz", - "integrity": "sha1-/wS9/AEO5UfXgL7DjhrBwnd9JTo=", + "integrity": "sha512-xcJpopdamTuY5duC/KnTTNBraPK54YwpenP4lzxU8H91GudWpFv38u0CKjclE1Wi2EH2EDz5LRcHcKbCIzqGyg==", "requires": { "isexe": "2.0.0" } @@ -11945,7 +13480,7 @@ "wide-align": { "version": "1.1.2", "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.2.tgz", - "integrity": "sha1-Vx4PGwYEY268DfwhsDObvjE0FxA=", + "integrity": "sha512-ijDLlyQ7s6x1JgCLur53osjm/UXUYD9+0PbYKrBsYisYXzCxN+HC3mYDNy/dWdmf3AwqwU3CXwDCvsNgGK1S0w==", "requires": { "string-width": "1.0.2" }, diff --git a/package.json b/package.json index 3f0add2..d05608d 100644 --- a/package.json +++ b/package.json @@ -39,6 +39,7 @@ "mobx-react-router": "^4.0.1", "moment": "^2.20.1", "node-sass-chokidar": "0.0.3", + "nodemon": "^1.14.12", "npm-run-all": "^4.1.2", "object-assign": "4.1.1", "postcss-flexbugs-fixes": "3.2.0", @@ -65,8 +66,8 @@ "scripts": { "predeploy": "npm run build", "deploy": "gh-pages -d build -o origin", - "build-css": "node-sass-chokidar src/assets/App.scss -o src/assets", - "watch-css": "npm run build-css && node-sass-chokidar src/assets/App.scss -o src/assets/src/assets --watch", + "build-css": "node-sass-chokidar src/assets/App.scss -o src/assets --output-style=compressed", + "watch-css": "nodemon -e scss -x \"npm run build-css\"", "start-js": "node scripts/start.js", "start": "npm-run-all -p watch-css start-js", "build-js": "node scripts/build.js", diff --git a/src/assets/App.css b/src/assets/App.css index 9abca44..a02a43d 100644 --- a/src/assets/App.css +++ b/src/assets/App.css @@ -1,1194 +1 @@ -.footer { - left: 0; - right: 0; } - -.footer-logo, .header-logo { - display: block; - background-image: url(./images/logos.png); } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .footer-logo, .header-logo { - background-image: url("./images/logos@2x.png"); - background-size: 182px 59px; } } - -.new-form, .settings, .ballots-i { - transition: 0.3s box-shadow; - margin-bottom: 80px; - border-radius: 8px; - box-shadow: 0 10px 10px 0 rgba(50, 108, 181, 0.08); - padding: 30px; - background-color: #fff; } - @media screen and (max-width: 768px) { - .new-form, .settings, .ballots-i { - margin-bottom: 20px; - padding: 20px; } } - -input, select, .radio { - transition: 0.3s background-color, 0.3s border-color; - width: 100%; - height: 40px; - outline: none; - border-radius: 3px; - border: 1px solid #e5eef9; - box-sizing: border-box; - padding: 0 10px; - background-color: #fff; - color: #444; - font-family: 'Open Sans', sans-serif; - font-size: 14px; } - -button, .header-settings, .header-new-ballot, .ballots-i--vote, .ballots-footer-finalize { - cursor: pointer; - display: inline-block; - transition: 0.3s opacity; - box-sizing: border-box; - border: 0; - outline: none; - padding: 0 15px; - text-transform: uppercase; - line-height: 36px; - font-size: 13px; - font-weight: bold; - font-family: 'Open Sans', sans-serif; } - button:hover, .header-settings:hover, .header-new-ballot:hover, .ballots-i--vote:hover, .ballots-footer-finalize:hover { - opacity: 0.9; - text-decoration: none; } - .header-settings, .header-new-ballot { - padding: 0 15px 0 33px; - background-repeat: no-repeat; - background-position: left 15px center; } - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 400; - src: local("Open Sans"), local("OpenSans"), url(https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; } - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 600; - src: local("Open Sans SemiBold"), local("OpenSans-SemiBold"), url(https://fonts.gstatic.com/s/opensans/v14/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215; } - -@font-face { - font-family: 'Open Sans'; - font-style: normal; - font-weight: 700; - src: local("Open Sans Bold"), local("OpenSans-Bold"), url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format("woff2"); - unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000; } - -html, -body { - color: #444; - line-height: 1; - font-size: 14px; - font-family: 'Open Sans', sans-serif; - -webkit-font-smoothing: antialiased; } - -html, -body { - margin: 0; - padding: 0; } - -html { - height: 100%; } - -p, h1, h2, h3, h4 { - margin: 0; - padding: 0; - font-family: 'Open Sans', sans-serif; } - -body { - position: relative; - width: 100%; - min-height: 100%; - box-sizing: border-box; - padding-bottom: 70px; - background-color: #f4f9ff; } - @media screen and (max-width: 414px) { - body { - padding-bottom: 90px; } } - -a { - color: #08b3f2; - text-decoration: none; - font-size: 14px; } - a:hover { - text-decoration: underline; } - -p { - color: #444; - font-size: 14px; } - -hr { - display: block; - width: 100%; - height: 1px; - margin: 10px 0 30px; - border: 0; - background-color: #e5eef9; } - -.center { - text-align: center; } - -.left { - float: left; - width: 48%; } - -.right { - float: right; - width: 48%; } - -@media screen and (max-width: 414px) { - .left, - .right { - float: none; - width: 100%; } } - -.hidden { - overflow: hidden; } - -.display-none { - display: none; } - -.container { - width: 960px; - margin: 0 auto; - box-sizing: border-box; } - @media screen and (max-width: 960px) { - .container { - width: 100%; - padding: 0 10px; } } - -.title { - margin-top: 30px; - margin-bottom: 30px; - color: #38454f; - font-size: 30px; - font-weight: normal; } - @media screen and (max-width: 768px) { - .title { - font-size: 28px; } } - @media screen and (max-width: 414px) { - .title { - font-size: 26px; } } - -label { - display: inline-block; - margin-bottom: 15px; - color: #8197a2; - font-size: 14px; - font-family: 'Open Sans', sans-serif; } - -input:focus { - border-color: #08b3f2; } - -input[type='radio'] { - display: none; } - -select { - appearance: none; - padding-right: 30px; - background-repeat: no-repeat; - background-position: right 13px center; - background-image: url(./images/select.png); } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - select { - background-image: url("./images/select@2x.png"); - background-size: 8px 4px; } } - -button { - background-color: rgba(8, 179, 242, 0.1); - color: #08b3f2; } - -.radio { - transition: 0.3s color, 0.3s background-color, 0.3s border-color; - cursor: pointer; - position: relative; - margin-bottom: 0; - line-height: 40px; } - input[type='radio']:checked + .radio { - border-color: #08b3f2; - background-color: rgba(8, 179, 242, 0.1); - color: #08b3f2; } - .radio_icon { - padding-left: 37px; - background-repeat: no-repeat; - background-size: 16px 16px; - background-position: left 11px center; } - .radio_add { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAFVBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvVmJ/ytAAAABnRSTlMASUrk5udXTd49AAAAPElEQVR4Ae3RIQKAAAzDwG5k/f+TwYIoEsROx0V3BaUEGyW+bPBVUDighCPeglGPg6P3xW8D7FHS8/x3AhBhBV+OMM67AAAAAElFTkSuQmCC); } - .radio_remove { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAFVBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvVmJ/ytAAAABnRSTlMASUrk5udXTd49AAAATklEQVR4Ae3SQQqAMAxE0Wmc5P5H1k2gfijFnaBvWf5mStSGa+Ihct14F6QosiZH6D24nzw4j7wLEvsb/qMugn77g28G9Czw6h5b5PoeT61VCXCp8qCYAAAAAElFTkSuQmCC); } - .radio_swap { - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAulBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvVktDOmAAAAPXRSTlMAAQIDBAUGETxARUlKS1BRUlNUVVdaXGFkZmdpamtuc3R2fH+IiYrR19ja3N7h4+bn6+3v8PHy9fj5+vz+d3lc/AAAALhJREFUeNqVk0cOwkAMAE0n1NBLgNAhQCCFTvz/b6GYPQS03hVznZF8sA0fBr5XBgU2Ih41Hn2Nj/qsn5Ifa/yI9RbKcQ0RnJFhK4KTLmi95P5ggKBDxRwY/ihsXRGCptiDCnO3KUKSVBqUtIOwp/LZC62PJ3eLF2gBzwR1xYyKYWJq4Yfld9G8opSoKwIfGVzdVTgiqHhy/+DfaU2+xvoV+TrrF+RN1ufvsW8ASyZAfJLnKDlOFYg3It9LpKV2sncAAAAASUVORK5CYII=); } - .radio:before, .radio:after { - content: ''; - position: absolute; - top: 50%; - border-radius: 50%; } - .radio:before { - transition: 0.3s border-color; - left: -40px; - top: 8px; - width: 24px; - height: 24px; - box-sizing: border-box; - border: 1px solid #e5eef9; } - input[type='radio']:checked + .radio:before { - border-color: #08b3f2; } - .radio:after { - transition: 0.3s transform, 0.3s opacity; - transform: scale(0.5); - opacity: 0; - left: -34px; - top: 14px; - width: 12px; - height: 12px; - background-color: #08b3f2; } - input[type='radio']:checked + .radio:after { - transform: scale(1); - opacity: 1; } - .radio-container { - margin-bottom: 20px; - padding-left: 40px; } - -.form-el { - margin-bottom: 20px; } - -.hint { - margin-top: 15px; - color: #8197a2; - line-height: 18px; - font-size: 12px; } - -.footer { - position: absolute; - bottom: 0; - height: 60px; - background-color: #6d2eae; } - @media screen and (max-width: 414px) { - .footer { - height: auto; - padding: 20px 10px 0; } } - .footer.sokol { - background-color: #6ac9b9; } - .footer .container { - position: relative; } - @media screen and (max-width: 414px) { - .footer .container { - padding-top: 40px; } } - .footer-logo, - .footer .socials { - transform: translateY(-50%); - position: absolute; - z-index: 1; - top: 50%; } - @media screen and (max-width: 414px) { - .footer-logo, - .footer .socials { - transform: translateY(0); - top: 0; } } - .footer-logo { - left: 0; - width: 127px; - height: 24px; - background-position: 0 0; } - .footer-rights { - color: #fff; - line-height: 60px; - text-align: center; - font-size: 12px; } - @media screen and (max-width: 414px) { - .footer-rights { - line-height: 30px; } } - -.header { - margin-bottom: 0px; - padding: 22px 0; - background-color: #6d2eae; } - @media screen and (max-width: 768px) { - .header { - margin-bottom: 0px; } } - @media screen and (max-width: 414px) { - .header { - margin-bottom: 0px; } } - .header .container { - overflow: hidden; } - .header.sokol { - background-image: none; - background-color: #6ac9b9; } - .header-logo { - float: left; - width: 182px; - height: 35px; - background-position: 0 -24px; } - .header-logo-sokol { - display: inline-block; - width: 146px; - height: 35px; - background-image: url("./images/logo_sokol.png"); - background-position: 0 0; - background-repeat: no-repeat; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .header-logo-sokol { - background-image: url("./images/logo_sokol@2x.png"); - background-size: 146px 35px; } } - .header-settings, .header-new-ballot { - float: right; - border-radius: 3px; - color: #fff; - background-size: 12px 12px; } - @media screen and (max-width: 768px) { - .header-settings, .header-new-ballot { - padding: 0 20px; - background-position: center center; - font-size: 0; } } - .header-settings { - margin-right: 15px; - background-color: #7d58bb; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAflBMVEX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+yfIzaAAAAKXRSTlMAAgQFBgwNDhAqKyxJSlJTVFVXZGVojo+Q19ja5Obn6+3u7/D19vf8/fmxL7QAAADLSURBVHgBfdHtVoJAGMTxUUwUZCtKRWzpxWj93/8Nti5LxDlbv68DzHkGTXbW7pRiwWpumcnDk5ctFe37y8MUPH58PsXne3D19oB32NYO+uGdxRvgrgRXB7wvFBjHjLtXVM8SV2tU3IKzyXNzvgWFRkeg3cjbtMAx3ktgYh+B38AyyBXcEZO/gk5Vl/rUS/VTfhrKT0CjUemA1qzXpgVcqf8PTEwS+xav6RHj7EWD15S/Ztf+a/ajLv2zomylKdAq05yFTilVF+8NvgGLASpP2eRPbAAAAABJRU5ErkJggg==); } - .header-new-ballot { - background-color: #08b3f2; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAFVBMVEX///////////////////////////9nSIHRAAAABnRSTlMASUrk5udXTd49AAAAOUlEQVR42tXQsQEAIAgDQcAn+4+snRZxAK79KokrIcNBwgYdc0Migwxk8Qsd1TJWDf/KQWobqt+9G4coA99W7as5AAAAAElFTkSuQmCC); } - -.info { - display: flex; - align-items: center; - padding-left: 44px; - min-height: 32px; - background-image: url(./images/info.png); - background-repeat: no-repeat; - background-position: left center; - color: #8197a2; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .info { - background-image: url("./images/info@2x.png"); - background-size: 32px 32px; } } - .ballots .info { - margin-bottom: 20px; } - -@keyframes fadeOut { - 0% { - opacity: .2; } - 20% { - opacity: 1; - transform: scale(1); } - 100% { - opacity: .2; - transform: scale(0.3); } } - -.loading { - display: flex; - justify-content: space-between; - position: absolute; - left: 50%; - top: 50%; - width: 206px; - margin: -30px 0 0 -111.5px; - padding-top: 50px; } - .loading:before { - content: ''; - position: absolute; - left: 0; - top: 0; - width: 206px; - height: 35px; - background-image: url("./images/loading.png"); - background-position: 0 0; } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .loading:before { - background-image: url("./images/loading@2x.png"); - background-size: 100% 100%; } } - .loading-container { - position: fixed; - z-index: 1000000; - left: 0; - right: 0; - top: 0; - bottom: 0; - background-color: rgba(35, 29, 115, 0.8); } - .loading-i { - animation-duration: 2s; - animation-fill-mode: forwards; - animation-iteration-count: infinite; - animation-name: fadeOut; - animation-timing-function: linear; - opacity: .2; - width: 9px; - height: 9px; - border-radius: 50%; - background-color: #fff; } - .loading-i:nth-child(2) { - animation-delay: .1s; } - .loading-i:nth-child(3) { - animation-delay: .2s; } - .loading-i:nth-child(4) { - animation-delay: .3s; } - .loading-i:nth-child(5) { - animation-delay: .4s; } - .loading-i:nth-child(6) { - animation-delay: .5s; } - -.nav { - font-size: 0; } - .nav-i { - transition: 0.3s color; - position: relative; - display: inline-block; - vertical-align: middle; - margin-right: 40px; - color: #8197a2; - text-transform: uppercase; - text-decoration: none; - line-height: normal; - font-size: 14px; - font-weight: bold; } - .nav-i:hover, .nav-i_active { - color: #444; } - .nav-i_active:before { - content: ''; - position: absolute; - left: 0; - right: 0; - bottom: -30px; - height: 3px; - background-color: #08b3f2; } - -.new-form { - overflow: hidden; } - .new-form-footer { - display: flex; - align-items: center; - justify-content: space-between; } - @media screen and (max-width: 414px) { - .new-form-footer { - flex-direction: column; } } - -.new .add-ballot { - white-space: nowrap; } - @media screen and (max-width: 414px) { - .new .add-ballot { - margin-top: 20px; } } - -.search { - border-bottom: 1px solid #eee; - background-color: #fff; - line-height: 80px; - text-align: left; } - .search .back { - transition: 0.3s opacity; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAMAAACgaw2xAAAAjVBMVEUAtfX///8AtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUmVRXZAAAALnRSTlMAAAQKDxAXISIpKzc+P1laYm1vdneQlJWjpKyvs7W2ycrP0NLY3uDh4u3u+f3+FQ2PgAAAAJlJREFUGNOV0ckSgjAQRdEWghMiKiLihBOiIPf/P88FSEEiC98yp6o79VrkG3uZPRYigzrN+zAEChMme6CMDfASoNgoHfwUeAWWdMFa50A6F+mCExXAeSYajA/AO1SigXsFKJPd8dTKdip3fubWD+6lZ5SMquWOvlxEVd/1DBAryIHUN6CuJDcqaUqMVE/txH8cSsRePbPWaT+TOR0SIiH2HAAAAABJRU5ErkJggg==); - background-repeat: no-repeat; - background-position: left center; - background-size: 12px 10px; - padding-left: 20px; - color: #08b3f2; - text-decoration: none; - font-size: 14px; - font-weight: bold; } - .search .back:hover { - opacity: 0.8; } - .search .container { - position: relative; } - .search-input { - display: block; - transition: 0.3s width, 0.3s border-color; - cursor: pointer; - position: absolute; - z-index: 1; - right: 0; - top: 50%; - width: 80px; - height: 40px; - margin: -20px 0 0; - outline: none; - border-radius: 5px; - border: 1px solid transparent; - box-sizing: border-box; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAA6lBMVEWAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6PrSx+9AAAATXRSTlMAAgMGCAkKDA0UFRYXISIjJDM0NTo7PD0/QEFERUlQWVpoaWp0dXaZm5ydnqSlpra4ub/AwcTFxsjKzM3Oz9bX2N3e6ers7fX5+vz9/pKojzsAAAGRSURBVHgBjZRtX4IwFMUXmKaBYmhWauSzEmkl+ZAaaJGo8P2/TnejEGHrt/PqcM9f2cbdRVHJDWPhuK6zMBoyYkrQJp4fyptoAp2rWn5MVpWCpXo+Rb1UnMvNg/eZ3bIkilK5YwarmOdinI2rB105lhT9gGv2CZme4dpGPf21usHVWTpS6uPKaxbFlDVxvR/ZL35+EVFC4jNOwr2ffeC1XCCKMnjt1t95avCwVxFV6h5C7ffhDbyOGBpAOAmsDCfmKSxQwWme2Cb8ZoyYGkPcJM4A12WDXYgN4lbgrtlgBeIlcQ44iQ1KEH8T54IT2aAIscsP8r+abzMr4p7AdXiOh/vA8/9/wgP5hGFTDDiaImizKzpXjLaZYOHuzFAbl0TCyVUY0a7CCCe1Y+GRkIn/zBBOT1xXqxhbXzBj6rQBUDiWCjAAiLY3UfLy3Seo2S7hkVJqmxijkef0IVXfJkhUs+OYDfu9o5CCNvUi2PSBnN9tkgTJreHS2e2c5bBFRjOVpCskK7zkGnGSn4hHlfXX/Q90qIZ+dL9jIAAAAABJRU5ErkJggg==); - background-size: 20px 20px; - background-repeat: no-repeat; - background-position: right 10px center; - color: #333; - font-size: 14px; } - .search-input:focus { - cursor: text; - width: 300px; - border-color: #eee; - padding: 0 40px 0 10px; } - -.settings { - max-width: 600px; - margin: 0 auto; } - .settings-title { - margin-bottom: 20px; - color: #38454f; - text-align: center; - font-size: 24px; } - -.socials { - font-size: 0; } - .footer .socials { - right: 0; } - .socials-i { - transition: 0.3s background-color; - position: relative; - display: inline-block; - vertical-align: top; - width: 30px; - height: 30px; - border-radius: 50%; - background-color: rgba(255, 255, 255, 0.2); } - .socials-i:not(:first-child) { - margin-left: 10px; } - .socials-i:hover { - background-color: rgba(255, 255, 255, 0.4); } - .socials-i:before { - transform: translate(-50%, -50%); - content: ''; - position: absolute; - left: 50%; - top: 50%; - background-image: url(./images/socials.png); } - @media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx) { - .socials-i:before { - background-image: url("./images/socials@2x.png"); - background-size: 16px 69px; } } - .socials-i_github:before { - width: 16px; - height: 16px; - background-position: 0 0; } - .socials-i_oracles:before { - width: 16px; - height: 14px; - background-position: 0 -16px; } - .socials-i_reddit:before { - width: 15px; - height: 13px; - background-position: 0 -30px; } - .socials-i_telegram:before { - width: 16px; - height: 14px; - background-position: 0 -43px; } - .socials-i_twitter:before { - width: 15px; - height: 12px; - background-position: 0 -57px; } - -.vote-scale { - clear: left; - overflow: hidden; - height: 6px; - margin-top: 30px; - border-radius: 3px; - background-color: rgba(229, 238, 249, 0.5); } - .vote-scale--fill { - height: 100%; - border-radius: 3px; } - .vote-scale--fill_yes { - background-color: #08b3f2; } - .vote-scale--fill_no { - background-color: #6d2eae; } - .vote-scale--container { - width: 100%; - max-width: 343px; } - @media screen and (max-width: 768px) { - .vote-scale--container { - float: right; - max-width: 100%; } } - .vote-scale--value { - float: left; - font-size: 12px; } - .vote-scale--votes, .vote-scale--percentage { - float: right; - font-size: 12px; } - .vote-scale--votes { - margin-left: 10px; - color: #8197a2; } - .vote-scale--percentage { - color: #08b3f2; } - -.ballots-i--vote, .ballots-footer-finalize { - border-radius: 2px; - padding: 0 13px; - font-size: 13px; - font-weight: bold; } - -.ballots .title { - margin-bottom: 50px; } - @media screen and (max-width: 768px) { - .ballots .title { - margin-bottom: 20px; } } - @media screen and (max-width: 414px) { - .ballots .title { - margin-bottom: 15px; } } - -.ballots-i:hover { - box-shadow: 0 11px 11px 0 rgba(50, 108, 181, 0.15); } - -.ballots-i-scale { - display: flex; - justify-content: space-between; - margin-top: 30px; - border-top: 1px solid #e5eef9; - padding: 30px 0; } - @media screen and (max-width: 768px) { - .ballots-i-scale { - display: block; - margin-top: 20px; - padding: 20px 0; } } - @media screen and (max-width: 414px) { - .ballots-i-scale { - margin-top: 15px; - padding: 15px 0; } } - .ballots-i-scale-column { - display: flex; - justify-content: space-between; - width: 48%; } - @media screen and (max-width: 768px) { - .ballots-i-scale-column { - overflow: hidden; - width: 100%; } } - @media screen and (max-width: 768px) { - .ballots-i-scale-column:last-child { - flex-direction: row-reverse; - margin-top: 30px; } } - -.ballots-i--name { - color: #333; - font-weight: bold; } - -.ballots-i--created { - padding-left: 20px; - background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAw1BMVEWAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6M9jT1MAAAAQHRSTlMAAQIDBQYHDA0bHB8gISQmJyg+P0BGR0lKU1RZYmNrbHV2iYqLo6Spqqusra7Cw8TFysvM29zk5ufo6/Lz+Pn8DzgVHgAAATNJREFUeNplk+1agkAQhQfRykQTrJTEUjSCvtTQECPk/q+qPQ7LsnR+7DOzL898LiRlOP46zfN0vXQM0tXydkWlndeqs/620LTtK3Z7LBo6OpLd5fDzl6nVubSnIXv3zIY/8N4HVGrwBj8bwjaR77SgmhYn5DWF5eE7ZoribkZkoIeI78ZJMmYrQkcGjZD9mq+SokjY6qKqEfniDIiFYMR6FqZPn+J8+A9dYX5QKs5eBaFz3p4wUkLwizrkvB2UcoZXJUwYHiqIsDclnBzAvicyrFYQpBW0lK0oqVbkEHR1fzEEHl/YhCHG1yKaoYi5zubl4Mn8wsqe6uwRK4tNmHaG717VsiP4mV1uih9G4FrttuUG7GGGTLOioUwyRI51Ftv6o94rtNcfNbCz2uB32KycCv0BfU5XCrQEyKwAAAAASUVORK5CYII=); - background-size: 14px 14px; - background-repeat: no-repeat; - background-position: left center; - color: #8197a2; - font-size: 12px; } - -.ballots-i--see-all-proposal { - display: inline-block; - margin-top: 5px; } - -.ballots-i--time { - color: #333; - font-size: 24px; - font-weight: bold; } - @media screen and (max-width: 768px) { - .ballots-i--time { - display: inline-block; - vertical-align: middle; - margin-right: 10px; } } - -.ballots-i--to-close { - color: #333; - text-transform: uppercase; } - @media screen and (max-width: 768px) { - .ballots-i--to-close { - display: inline-block; - vertical-align: middle; } } - -.ballots-i--vote_yes { - margin-right: 15px; - background-color: rgba(8, 179, 242, 0.1); } - -.ballots-i--vote_no { - margin-left: 15px; - background-color: rgba(109, 46, 174, 0.1); - color: #6d2eae; } - @media screen and (max-width: 768px) { - .ballots-i--vote_no { - float: left; - margin-left: 0; - margin-right: 15px; } } - -textarea { - border: 1px solid #e5eef9; - -webkit-box-shadow: none; - -moz-box-shadow: none; - box-shadow: none; - overflow: auto; - outline: none; - border-radius: 3px; - width: 100%; } - textarea:focus { - border-color: #08b3f2; } - -.ballots-about { - font-size: 0; } - @media screen and (max-width: 768px) { - .ballots-about { - display: table; - width: 100%; } } - .ballots-about p { - line-height: 28px; } - .ballots-about-i { - position: relative; - display: inline-block; - vertical-align: top; - box-sizing: border-box; } - .ballots-about-i:not(.ballots-about-i_time) { - padding-right: 10px; } - @media screen and (max-width: 768px) { - .ballots-about-i:not(.ballots-about-i_time) { - padding-right: 0; } } - @media screen and (max-width: 768px) { - .ballots-about-i { - display: table-row; - width: 100% !important; } } - .ballots-about-i_name { - width: 20%; } - .ballots-about-i_action { - width: 10%; } - .ballots-about-i_type { - width: 10%; } - .ballots-about-i_proposal { - width: 30%; } - .ballots-about-i_mining-key { - width: 25%; - word-break: break-all; } - .ballots-about-i_proposed-min-threshold { - width: 70%; - word-break: break-all; } - .ballots-about-i_contract-type { - width: 40%; - word-break: break-all; } - .ballots-about-i_proposed-address { - width: 30%; - word-break: break-all; } - .ballots-about-i_time { - width: 10%; - text-align: right; } - @media screen and (max-width: 768px) { - .ballots-about-i_time { - text-align: left; } } - .ballots-about-i_time .ballots-about-i--title { - text-align: right; } - @media screen and (max-width: 768px) { - .ballots-about-i_time .ballots-about-i--title { - text-align: left; } } - .ballots-about-i--title { - position: absolute; - z-index: 1; - left: 0; - right: 0; - top: -60px; - opacity: 0.6; - color: #38454f; - text-transform: uppercase; - font-size: 13px; } - @media screen and (max-width: 768px) { - .ballots-about-i--title { - position: relative; - left: auto; - right: auto; - top: auto; - white-space: nowrap; } } - @media screen and (max-width: 768px) { - .ballots-about-td { - display: table-cell; - vertical-align: top; } } - @media screen and (max-width: 768px) { - .ballots-about-td:first-child { - padding-right: 20px; } } - @media screen and (max-width: 768px) { - .ballots-about-i:not(:last-child) .ballots-about-td { - padding-bottom: 10px; } } - -.ballots-footer { - display: flex; - align-items: center; - justify-content: space-between; } - .ballots-footer-left { - display: inline-flex; - align-items: center; } - @media screen and (max-width: 768px) { - .ballots-footer { - padding-top: 20px; } } - @media screen and (max-width: 414px) { - .ballots-footer { - flex-direction: column-reverse; - padding-top: 15px; } } - .ballots-footer p { - line-height: 18px; - color: #8197a2; } - .ballots-footer-finalize { - margin-right: 20px; - background-color: rgba(8, 179, 242, 0.1); - white-space: nowrap; } - .ballots-footer-finalize-finalized { - background-color: rgba(109, 46, 174, 0.1); - color: #6d2eae; - cursor: default; } - @media screen and (max-width: 414px) { - .ballots-footer-finalize { - width: 100%; - margin-right: 0; - margin-top: 15px; - text-align: center; } } - -/** - * React Select - * ============ - * Created by Jed Watson and Joss Mackison for KeystoneJS, http://www.keystonejs.com/ - * https://twitter.com/jedwatson https://twitter.com/jossmackison https://twitter.com/keystonejs - * MIT License: https://github.com/JedWatson/react-select -*/ -@keyframes Select-animation-spin { - to { - transform: rotate(1turn); } } - -@-webkit-keyframes Select-animation-spin { - to { - -webkit-transform: rotate(1turn); } } - -.Select { - position: relative; } - .Select input::-webkit-contacts-auto-fill-button, - .Select input::-webkit-credentials-auto-fill-button { - display: none !important; } - .Select input::-ms-clear { - display: none !important; } - .Select input::-ms-reveal { - display: none !important; } - .Select, - .Select div, - .Select input, - .Select span { - -webkit-box-sizing: border-box; - -moz-box-sizing: border-box; - box-sizing: border-box; } - .Select.is-disabled .Select-arrow-zone { - cursor: default; - pointer-events: none; } - .Select.is-disabled > .Select-control { - background-color: #f9f9f9; } - .Select.is-disabled > .Select-control:hover { - box-shadow: none; } - .Select.is-searchable.is-open > .Select-control { - cursor: text; } - .Select.is-searchable.is-focused:not(.is-open) > .Select-control { - cursor: text; } - .Select.is-open > .Select-control { - border-bottom-right-radius: 0; - border-bottom-left-radius: 0; - background: #fff; - border-color: #bcd3ef #e5eef9 #fafcfe; } - .Select.is-open > .Select-control .Select-arrow { - top: -2px; - border-color: transparent transparent #999; - border-width: 0 5px 5px; } - .Select.is-focused > .Select-control { - background: #fff; } - .Select.is-focused:not(.is-open) > .Select-control { - border-color: #08c #0099e6 #0099e6; - box-shadow: inset 0 1px 2px rgba(0, 0, 0, 0.1), 0 0 5px -1px fade(#08c, 50%); } - .Select.has-value.is-clearable.Select--single > .Select-control .Select-value { - padding-right: 44px; } - .Select.has-value.Select--single > .Select-control .Select-value .Select-value-label, - .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value .Select-value-label { - color: #333; } - .Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label, - .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label { - cursor: pointer; - text-decoration: none; } - .Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:hover, .Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus, - .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:hover, - .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus { - color: #08c; - outline: none; - text-decoration: underline; } - .Select.has-value.Select--single > .Select-control .Select-value a.Select-value-label:focus, - .Select.has-value.is-pseudo-focused.Select--single > .Select-control .Select-value a.Select-value-label:focus { - background: #fff; } - .Select.has-value.is-pseudo-focused .Select-input { - opacity: 0; } - .Select.is-open .Select-arrow, - .Select .Select-arrow-zone:hover > .Select-arrow { - border-top-color: #666; } - .Select.Select--rtl { - direction: rtl; - text-align: right; } - -.Select-control { - background-color: #fff; - border-color: #fafcfe #e5eef9 #bcd3ef; - border-radius: 3px; - border: 1px solid #e5eef9; - color: #333; - cursor: default; - display: table; - border-spacing: 0; - border-collapse: separate; - height: 40px; - outline: none; - overflow: hidden; - position: relative; - width: 100%; } - .Select-control:hover { - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); } - .Select-control .Select-input:focus { - outline: none; - background: #fff; } - -.Select-placeholder, -.Select--single > .Select-control .Select-value { - bottom: 0; - color: #aaa; - left: 0; - line-height: 38px; - padding-left: 10px; - padding-right: 10px; - position: absolute; - right: 0; - top: 0; - max-width: 100%; - overflow: hidden; - text-overflow: ellipsis; - white-space: nowrap; } - -.Select-input { - height: 38px; - padding-left: 10px; - padding-right: 10px; - vertical-align: middle; } - .Select-input > input { - background: none transparent; - border: 0 none; - box-shadow: none; - cursor: default; - display: inline-block; - font-family: inherit; - font-size: inherit; - margin: 0; - outline: none; - line-height: 17px; - /* For IE 8 compatibility */ - padding: 10px 0 14px; - /* For IE 8 compatibility */ - -webkit-appearance: none; } - .is-focused .Select-input > input { - cursor: text; } - -.Select-control:not(.is-searchable) > .Select-input { - outline: none; } - -.Select-loading-zone { - cursor: pointer; - display: table-cell; - position: relative; - text-align: center; - vertical-align: middle; - width: 16px; } - -.Select-loading { - -webkit-animation: Select-animation-spin 400ms infinite linear; - -o-animation: Select-animation-spin 400ms infinite linear; - animation: Select-animation-spin 400ms infinite linear; - width: 16px; - height: 16px; - box-sizing: border-box; - border-radius: 50%; - border: 2px solid #e5eef9; - border-right-color: #333; - display: inline-block; - position: relative; - vertical-align: middle; } - -.Select-clear-zone { - -webkit-animation: Select-animation-fadeIn 200ms; - -o-animation: Select-animation-fadeIn 200ms; - animation: Select-animation-fadeIn 200ms; - color: #999; - cursor: pointer; - display: table-cell; - position: relative; - text-align: center; - vertical-align: middle; - width: 19px; } - .Select-clear-zone:hover { - color: #D0021B; } - -.Select-clear { - display: inline-block; - font-size: 20px; - line-height: 1; } - -.Select--multi .Select-clear-zone { - width: 19px; } - -.Select--multi .Select-multi-value-wrapper { - display: inline-block; } - -.Select .Select-aria-only { - position: absolute; - display: inline-block; - height: 1px; - width: 1px; - margin: -1px; - clip: rect(0, 0, 0, 0); - overflow: hidden; - float: left; } - -.Select-arrow-zone { - cursor: pointer; - display: table-cell; - position: relative; - text-align: center; - vertical-align: middle; - width: 25px; - padding-right: 5px; } - .Select--rtl .Select-arrow-zone { - padding-right: 0; - padding-left: 5px; } - -.Select-arrow { - border-color: #999 transparent transparent; - border-style: solid; - border-width: 5px 5px 2.5px; - display: inline-block; - height: 0; - width: 0; - position: relative; } - -@-webkit-keyframes Select-animation-fadeIn { - from { - opacity: 0; } - to { - opacity: 1; } } - -@keyframes Select-animation-fadeIn { - from { - opacity: 0; } - to { - opacity: 1; } } - -.Select-menu-outer { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; - background-color: #fff; - border: 1px solid #e5eef9; - border-top-color: #f2f7fc; - box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06); - box-sizing: border-box; - margin-top: -1px; - max-height: 200px; - position: absolute; - top: 100%; - width: 100%; - z-index: 1000; - -webkit-overflow-scrolling: touch; } - -.Select-menu { - max-height: 198px; - overflow-y: auto; } - -.Select-option { - box-sizing: border-box; - background-color: #fff; - color: #666666; - cursor: pointer; - display: block; - padding: 8px 10px; } - .Select-option:last-child { - border-bottom-right-radius: 3px; - border-bottom-left-radius: 3px; } - .Select-option.is-selected { - background-color: #f5faff; - color: #333; } - .Select-option.is-focused { - background-color: #f2f9fc; - color: #333; } - .Select-option.is-disabled { - color: #cccccc; - cursor: default; } - -.Select-noresults { - box-sizing: border-box; - color: #999999; - cursor: default; - display: block; - padding: 8px 10px; } - -.Select--multi .Select-input { - vertical-align: middle; - margin-left: 10px; - padding: 0; } - -.Select--multi.Select--rtl .Select-input { - margin-left: 0; - margin-right: 10px; } - -.Select--multi.has-value .Select-input { - margin-left: 5px; } - -.Select--multi .Select-value { - background-color: #f2f9fc; - border-radius: 3px; - border: 1px solid #e5eef9; - color: #08c; - display: inline-block; - font-size: 0.9em; - margin-left: 5px; - margin-top: 5px; - vertical-align: top; } - -.Select--multi .Select-value-icon, -.Select--multi .Select-value-label { - display: inline-block; - vertical-align: middle; } - -.Select--multi .Select-value-label { - border-bottom-right-radius: 3px; - border-top-right-radius: 3px; - cursor: default; - padding: 2px 5px; } - -.Select--multi a.Select-value-label { - color: #08c; - cursor: pointer; - text-decoration: none; } - .Select--multi a.Select-value-label:hover { - text-decoration: underline; } - -.Select--multi .Select-value-icon { - cursor: pointer; - border-bottom-left-radius: 3px; - border-top-left-radius: 3px; - border-right: 1px solid #e5eef9; - padding: 1px 5px 3px; } - .Select--multi .Select-value-icon:hover, .Select--multi .Select-value-icon:focus { - background-color: #ddeff7; - color: #0077b3; } - .Select--multi .Select-value-icon:active { - background-color: #e5eef9; } - -.Select--multi.Select--rtl .Select-value { - margin-left: 0; - margin-right: 5px; } - -.Select--multi.Select--rtl .Select-value-icon { - border-right: none; - border-left: 1px solid #e5eef9; } - -.Select--multi.is-disabled .Select-value { - background-color: #fcfcfc; - border: 1px solid #e3e3e3; - color: #333; } - -.Select--multi.is-disabled .Select-value-icon { - cursor: not-allowed; - border-right: 1px solid #e3e3e3; } - .Select--multi.is-disabled .Select-value-icon:hover, .Select--multi.is-disabled .Select-value-icon:focus, .Select--multi.is-disabled .Select-value-icon:active { - background-color: #fcfcfc; } - -@keyframes Select-animation-spin { - to { - transform: rotate(1turn); } } - -@-webkit-keyframes Select-animation-spin { - to { - -webkit-transform: rotate(1turn); } } +.footer{left:0;right:0}.footer-logo,.header-logo{display:block;background-image:url(./images/logos.png)}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.footer-logo,.header-logo{background-image:url("./images/logos@2x.png");background-size:182px 59px}}.new-form,.settings,.ballots-i{transition:0.3s box-shadow;margin-bottom:80px;border-radius:8px;box-shadow:0 10px 10px 0 rgba(50,108,181,0.08);padding:30px;background-color:#fff}@media screen and (max-width: 768px){.new-form,.settings,.ballots-i{margin-bottom:20px;padding:20px}}input,textarea,select,.radio{transition:0.3s background-color, 0.3s border-color;width:100%;height:40px;outline:none;border-radius:3px;border:1px solid #e5eef9;box-sizing:border-box;padding:0 10px;background-color:#fff;color:#444;font-family:'Open Sans', sans-serif;font-size:14px}button,.header-settings,.header-new-ballot,.ballots-i--vote,.ballots-footer-finalize{cursor:pointer;display:inline-block;transition:0.3s opacity;box-sizing:border-box;border:0;outline:none;padding:0 15px;text-transform:uppercase;line-height:36px;font-size:13px;font-weight:bold;font-family:'Open Sans', sans-serif}button:hover,.header-settings:hover,.header-new-ballot:hover,.ballots-i--vote:hover,.ballots-footer-finalize:hover{opacity:0.9;text-decoration:none}.header-settings,.header-new-ballot{padding:0 15px 0 33px;background-repeat:no-repeat;background-position:left 15px center}@font-face{font-family:'Open Sans';font-style:normal;font-weight:400;src:local("Open Sans"),local("OpenSans"),url(https://fonts.gstatic.com/s/opensans/v13/cJZKeOuBrn4kERxqtaUH3ZBw1xU1rKptJj_0jans920.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000}@font-face{font-family:'Open Sans';font-style:normal;font-weight:600;src:local("Open Sans SemiBold"),local("OpenSans-SemiBold"),url(https://fonts.gstatic.com/s/opensans/v14/MTP_ySUJH_bn48VBG8sNShampu5_7CjHW5spxoeN3Vs.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215}@font-face{font-family:'Open Sans';font-style:normal;font-weight:700;src:local("Open Sans Bold"),local("OpenSans-Bold"),url(https://fonts.gstatic.com/s/opensans/v13/k3k702ZOKiLJc3WVjuplzBampu5_7CjHW5spxoeN3Vs.woff2) format("woff2");unicode-range:U+0000-00FF, U+0131, U+0152-0153, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2212, U+2215, U+E0FF, U+EFFD, U+F000}html,body{color:#444;line-height:1;font-size:14px;font-family:'Open Sans', sans-serif;-webkit-font-smoothing:antialiased}html,body{margin:0;padding:0}html{height:100%}p,h1,h2,h3,h4{margin:0;padding:0;font-family:'Open Sans', sans-serif}body{position:relative;width:100%;min-height:100%;box-sizing:border-box;padding-bottom:70px;background-color:#f4f9ff}@media screen and (max-width: 414px){body{padding-bottom:90px}}a{color:#08b3f2;text-decoration:none;font-size:14px}a:hover{text-decoration:underline}p{color:#444;font-size:14px}hr{display:block;width:100%;height:1px;margin:10px 0 30px;border:0;background-color:#e5eef9}.center{text-align:center}.left{float:left;width:48%}.right{float:right;width:48%}@media screen and (max-width: 414px){.left,.right{float:none;width:100%}}.hidden{overflow:hidden}.display-none{display:none}.container{width:960px;margin:0 auto;box-sizing:border-box}@media screen and (max-width: 960px){.container{width:100%;padding:0 10px}}.title{margin-top:30px;margin-bottom:30px;color:#38454f;font-size:30px;font-weight:normal}@media screen and (max-width: 768px){.title{font-size:28px}}@media screen and (max-width: 414px){.title{font-size:26px}}label{display:inline-block;margin-bottom:15px;color:#8197a2;font-size:14px;font-family:'Open Sans', sans-serif}input:focus,textarea:focus{border-color:#08b3f2}input[type='radio'],textarea[type='radio']{display:none}textarea{width:100%;padding-top:10px;padding-bottom:10px;height:70px;resize:none}select{appearance:none;padding-right:30px;background-repeat:no-repeat;background-position:right 13px center;background-image:url(./images/select.png)}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){select{background-image:url("./images/select@2x.png");background-size:8px 4px}}button{background-color:rgba(8,179,242,0.1);color:#08b3f2}.radio{transition:0.3s color, 0.3s background-color, 0.3s border-color;cursor:pointer;position:relative;margin-bottom:0;line-height:40px}input[type='radio']:checked+.radio{border-color:#08b3f2;background-color:rgba(8,179,242,0.1);color:#08b3f2}.radio_icon{padding-left:37px;background-repeat:no-repeat;background-size:16px 16px;background-position:left 11px center}.radio_add{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAFVBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvVmJ/ytAAAABnRSTlMASUrk5udXTd49AAAAPElEQVR4Ae3RIQKAAAzDwG5k/f+TwYIoEsROx0V3BaUEGyW+bPBVUDighCPeglGPg6P3xW8D7FHS8/x3AhBhBV+OMM67AAAAAElFTkSuQmCC)}.radio_remove{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAFVBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvVmJ/ytAAAABnRSTlMASUrk5udXTd49AAAATklEQVR4Ae3SQQqAMAxE0Wmc5P5H1k2gfijFnaBvWf5mStSGa+Ihct14F6QosiZH6D24nzw4j7wLEvsb/qMugn77g28G9Czw6h5b5PoeT61VCXCp8qCYAAAAAElFTkSuQmCC)}.radio_swap{background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAMAAABEpIrGAAAAulBMVEUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvUAsvVktDOmAAAAPXRSTlMAAQIDBAUGETxARUlKS1BRUlNUVVdaXGFkZmdpamtuc3R2fH+IiYrR19ja3N7h4+bn6+3v8PHy9fj5+vz+d3lc/AAAALhJREFUeNqVk0cOwkAMAE0n1NBLgNAhQCCFTvz/b6GYPQS03hVznZF8sA0fBr5XBgU2Ih41Hn2Nj/qsn5Ifa/yI9RbKcQ0RnJFhK4KTLmi95P5ggKBDxRwY/ihsXRGCptiDCnO3KUKSVBqUtIOwp/LZC62PJ3eLF2gBzwR1xYyKYWJq4Yfld9G8opSoKwIfGVzdVTgiqHhy/+DfaU2+xvoV+TrrF+RN1ufvsW8ASyZAfJLnKDlOFYg3It9LpKV2sncAAAAASUVORK5CYII=)}.radio:before,.radio:after{content:'';position:absolute;top:50%;border-radius:50%}.radio:before{transition:0.3s border-color;left:-40px;top:8px;width:24px;height:24px;box-sizing:border-box;border:1px solid #e5eef9}input[type='radio']:checked+.radio:before{border-color:#08b3f2}.radio:after{transition:0.3s transform, 0.3s opacity;transform:scale(0.5);opacity:0;left:-34px;top:14px;width:12px;height:12px;background-color:#08b3f2}input[type='radio']:checked+.radio:after{transform:scale(1);opacity:1}.radio-container{margin-bottom:20px;padding-left:40px}.form-el{margin-bottom:20px}.hint{margin-top:15px;color:#8197a2;line-height:18px;font-size:12px}.footer{position:absolute;bottom:0;height:60px;background-color:#6d2eae}@media screen and (max-width: 414px){.footer{height:auto;padding:20px 10px 0}}.footer.sokol{background-color:#6ac9b9}.footer .container{position:relative}@media screen and (max-width: 414px){.footer .container{padding-top:40px}}.footer-logo,.footer .socials{transform:translateY(-50%);position:absolute;z-index:1;top:50%}@media screen and (max-width: 414px){.footer-logo,.footer .socials{transform:translateY(0);top:0}}.footer-logo{left:0;width:127px;height:24px;background-position:0 0}.footer-rights{color:#fff;line-height:60px;text-align:center;font-size:12px}@media screen and (max-width: 414px){.footer-rights{line-height:30px}}.header{margin-bottom:0px;padding:22px 0;background-color:#6d2eae}@media screen and (max-width: 768px){.header{margin-bottom:0px}}@media screen and (max-width: 414px){.header{margin-bottom:0px}}.header .container{overflow:hidden}.header.sokol{background-image:none;background-color:#6ac9b9}.header-logo{float:left;width:182px;height:35px;background-position:0 -24px}.header-logo-sokol{display:inline-block;width:146px;height:35px;background-image:url("./images/logo_sokol.png");background-position:0 0;background-repeat:no-repeat}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.header-logo-sokol{background-image:url("./images/logo_sokol@2x.png");background-size:146px 35px}}.header-settings,.header-new-ballot{float:right;border-radius:3px;color:#fff;background-size:12px 12px}@media screen and (max-width: 768px){.header-settings,.header-new-ballot{padding:0 20px;background-position:center center;font-size:0}}.header-settings{margin-right:15px;background-color:#7d58bb;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAflBMVEX///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////+yfIzaAAAAKXRSTlMAAgQFBgwNDhAqKyxJSlJTVFVXZGVojo+Q19ja5Obn6+3u7/D19vf8/fmxL7QAAADLSURBVHgBfdHtVoJAGMTxUUwUZCtKRWzpxWj93/8Nti5LxDlbv68DzHkGTXbW7pRiwWpumcnDk5ctFe37y8MUPH58PsXne3D19oB32NYO+uGdxRvgrgRXB7wvFBjHjLtXVM8SV2tU3IKzyXNzvgWFRkeg3cjbtMAx3ktgYh+B38AyyBXcEZO/gk5Vl/rUS/VTfhrKT0CjUemA1qzXpgVcqf8PTEwS+xav6RHj7EWD15S/Ztf+a/ajLv2zomylKdAq05yFTilVF+8NvgGLASpP2eRPbAAAAABJRU5ErkJggg==)}.header-new-ballot{background-color:#08b3f2;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAAFVBMVEX///////////////////////////9nSIHRAAAABnRSTlMASUrk5udXTd49AAAAOUlEQVR42tXQsQEAIAgDQcAn+4+snRZxAK79KokrIcNBwgYdc0Migwxk8Qsd1TJWDf/KQWobqt+9G4coA99W7as5AAAAAElFTkSuQmCC)}.info{color:#8197a2}.ballots .info{display:flex;align-items:center;padding-left:44px;min-height:32px;background-image:url(./images/info.png);background-repeat:no-repeat;background-position:left center}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.ballots .info{background-image:url("./images/info@2x.png");background-size:32px 32px}}.new-form .info{padding:30px}.info-title{position:relative;margin-bottom:30px;padding-left:44px}.info-title:before{content:'';position:absolute;left:0;top:50%;transform:translateY(-50%);width:32px;height:32px}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.info-title:before{background-image:url("./images/info@2x.png");background-size:32px 32px}}.info-i{position:relative;margin-bottom:10px;padding-left:12px;line-height:18px;font-size:12px}.info-i:before{content:'';position:absolute;left:0;top:7px;width:4px;height:4px;border-radius:50%;background-color:#08b3f2}@keyframes fadeOut{0%{opacity:.2}20%{opacity:1;transform:scale(1)}100%{opacity:.2;transform:scale(0.3)}}.loading{display:flex;justify-content:space-between;position:absolute;left:50%;top:50%;width:206px;margin:-30px 0 0 -111.5px;padding-top:50px}.loading:before{content:'';position:absolute;left:0;top:0;width:206px;height:35px;background-image:url("./images/loading.png");background-position:0 0}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.loading:before{background-image:url("./images/loading@2x.png");background-size:100% 100%}}.loading-container{position:fixed;z-index:1000000;left:0;right:0;top:0;bottom:0;background-color:rgba(35,29,115,0.8)}.loading-i{animation-duration:2s;animation-fill-mode:forwards;animation-iteration-count:infinite;animation-name:fadeOut;animation-timing-function:linear;opacity:.2;width:9px;height:9px;border-radius:50%;background-color:#fff}.loading-i:nth-child(2){animation-delay:.1s}.loading-i:nth-child(3){animation-delay:.2s}.loading-i:nth-child(4){animation-delay:.3s}.loading-i:nth-child(5){animation-delay:.4s}.loading-i:nth-child(6){animation-delay:.5s}.nav{font-size:0}.nav-i{transition:0.3s color;position:relative;display:inline-block;vertical-align:middle;margin-right:40px;color:#8197a2;text-transform:uppercase;text-decoration:none;line-height:normal;font-size:14px;font-weight:bold}.nav-i:hover,.nav-i_active{color:#444}.nav-i_active:before{content:'';position:absolute;left:0;right:0;bottom:-30px;height:3px;background-color:#08b3f2}.new-form{display:flex;overflow:hidden;padding:0}@media screen and (max-width: 768px){.new-form{display:block}}.new-form-side{padding-top:30px;padding-bottom:30px;box-sizing:border-box}@media screen and (max-width: 768px){.new-form-side{width:100% !important}}.new-form-side_left{width:30%}@media screen and (max-width: 768px){.new-form-side_left{padding-bottom:0}}.new-form-side_right{width:70%;border-left:1px solid #e5eef9;padding-left:30px;padding-right:30px}@media screen and (max-width: 768px){.new-form-side_right{border:0;padding-top:0}}.new .add-ballot{white-space:nowrap}@media screen and (max-width: 414px){.new .add-ballot{margin-top:20px}}.search{border-bottom:1px solid #eee;background-color:#fff;line-height:80px;text-align:left}.search .back{transition:0.3s opacity;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAUCAMAAACgaw2xAAAAjVBMVEUAtfX///8AtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUAtfUmVRXZAAAALnRSTlMAAAQKDxAXISIpKzc+P1laYm1vdneQlJWjpKyvs7W2ycrP0NLY3uDh4u3u+f3+FQ2PgAAAAJlJREFUGNOV0ckSgjAQRdEWghMiKiLihBOiIPf/P88FSEEiC98yp6o79VrkG3uZPRYigzrN+zAEChMme6CMDfASoNgoHfwUeAWWdMFa50A6F+mCExXAeSYajA/AO1SigXsFKJPd8dTKdip3fubWD+6lZ5SMquWOvlxEVd/1DBAryIHUN6CuJDcqaUqMVE/txH8cSsRePbPWaT+TOR0SIiH2HAAAAABJRU5ErkJggg==);background-repeat:no-repeat;background-position:left center;background-size:12px 10px;padding-left:20px;color:#08b3f2;text-decoration:none;font-size:14px;font-weight:bold}.search .back:hover{opacity:0.8}.search .container{position:relative}.search-input{display:block;transition:0.3s width, 0.3s border-color;cursor:pointer;position:absolute;z-index:1;right:0;top:50%;width:80px;height:40px;margin:-20px 0 0;outline:none;border-radius:5px;border:1px solid transparent;box-sizing:border-box;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAMAAAC7IEhfAAAA6lBMVEWAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6PrSx+9AAAATXRSTlMAAgMGCAkKDA0UFRYXISIjJDM0NTo7PD0/QEFERUlQWVpoaWp0dXaZm5ydnqSlpra4ub/AwcTFxsjKzM3Oz9bX2N3e6ers7fX5+vz9/pKojzsAAAGRSURBVHgBjZRtX4IwFMUXmKaBYmhWauSzEmkl+ZAaaJGo8P2/TnejEGHrt/PqcM9f2cbdRVHJDWPhuK6zMBoyYkrQJp4fyptoAp2rWn5MVpWCpXo+Rb1UnMvNg/eZ3bIkilK5YwarmOdinI2rB105lhT9gGv2CZme4dpGPf21usHVWTpS6uPKaxbFlDVxvR/ZL35+EVFC4jNOwr2ffeC1XCCKMnjt1t95avCwVxFV6h5C7ffhDbyOGBpAOAmsDCfmKSxQwWme2Cb8ZoyYGkPcJM4A12WDXYgN4lbgrtlgBeIlcQ44iQ1KEH8T54IT2aAIscsP8r+abzMr4p7AdXiOh/vA8/9/wgP5hGFTDDiaImizKzpXjLaZYOHuzFAbl0TCyVUY0a7CCCe1Y+GRkIn/zBBOT1xXqxhbXzBj6rQBUDiWCjAAiLY3UfLy3Seo2S7hkVJqmxijkef0IVXfJkhUs+OYDfu9o5CCNvUi2PSBnN9tkgTJreHS2e2c5bBFRjOVpCskK7zkGnGSn4hHlfXX/Q90qIZ+dL9jIAAAAABJRU5ErkJggg==);background-size:20px 20px;background-repeat:no-repeat;background-position:right 10px center;color:#333;font-size:14px}.search-input:focus{cursor:text;width:300px;border-color:#eee;padding:0 40px 0 10px}.settings{max-width:600px;margin:0 auto}.settings-title{margin-bottom:20px;color:#38454f;text-align:center;font-size:24px}.socials{font-size:0}.footer .socials{right:0}.socials-i{transition:0.3s background-color;position:relative;display:inline-block;vertical-align:top;width:30px;height:30px;border-radius:50%;background-color:rgba(255,255,255,0.2)}.socials-i:not(:first-child){margin-left:10px}.socials-i:hover{background-color:rgba(255,255,255,0.4)}.socials-i:before{transform:translate(-50%, -50%);content:'';position:absolute;left:50%;top:50%;background-image:url(./images/socials.png)}@media (min--moz-device-pixel-ratio: 1.3), (-o-min-device-pixel-ratio: 2.6 / 2), (-webkit-min-device-pixel-ratio: 1.3), (min-device-pixel-ratio: 1.3), (min-resolution: 1.3dppx){.socials-i:before{background-image:url("./images/socials@2x.png");background-size:16px 69px}}.socials-i_github:before{width:16px;height:16px;background-position:0 0}.socials-i_oracles:before{width:16px;height:14px;background-position:0 -16px}.socials-i_reddit:before{width:15px;height:13px;background-position:0 -30px}.socials-i_telegram:before{width:16px;height:14px;background-position:0 -43px}.socials-i_twitter:before{width:15px;height:12px;background-position:0 -57px}.vote-scale{clear:left;overflow:hidden;height:6px;margin-top:30px;border-radius:3px;background-color:rgba(229,238,249,0.5)}.vote-scale--fill{height:100%;border-radius:3px}.vote-scale--fill_yes{background-color:#08b3f2}.vote-scale--fill_no{background-color:#6d2eae}.vote-scale--container{width:100%;max-width:343px}@media screen and (max-width: 768px){.vote-scale--container{float:right;max-width:100%}}.vote-scale--value{float:left;font-size:12px}.vote-scale--votes,.vote-scale--percentage{float:right;font-size:12px}.vote-scale--votes{margin-left:10px;color:#8197a2}.vote-scale--percentage{color:#08b3f2}.ballot-types{border-bottom:1px solid #e5eef9;padding:0 30px 10px}.ballot-types-i{cursor:pointer;position:relative;margin-bottom:20px}.ballot-types-i:before{content:'';position:absolute;left:-30px;top:50%;opacity:0;height:30px;width:3px;transform:translateY(-50%);background-color:#08b3f2}.ballot-types-i_active{color:#08b3f2}.ballot-types-i_active:before{opacity:1}.ballots-i--vote,.ballots-footer-finalize{border-radius:2px;padding:0 13px;font-size:13px;font-weight:bold}.ballots .title{margin-bottom:50px}@media screen and (max-width: 768px){.ballots .title{margin-bottom:20px}}@media screen and (max-width: 414px){.ballots .title{margin-bottom:15px}}.ballots-i:hover{box-shadow:0 11px 11px 0 rgba(50,108,181,0.15)}.ballots-i-scale{display:flex;justify-content:space-between;margin-top:30px;border-top:1px solid #e5eef9;padding:30px 0}@media screen and (max-width: 768px){.ballots-i-scale{display:block;margin-top:20px;padding:20px 0}}@media screen and (max-width: 414px){.ballots-i-scale{margin-top:15px;padding:15px 0}}.ballots-i-scale-column{display:flex;justify-content:space-between;width:48%}@media screen and (max-width: 768px){.ballots-i-scale-column{overflow:hidden;width:100%}}@media screen and (max-width: 768px){.ballots-i-scale-column:last-child{flex-direction:row-reverse;margin-top:30px}}.ballots-i--name{color:#333;font-weight:bold}.ballots-i--created{padding-left:20px;background-image:url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABwAAAAcCAMAAABF0y+mAAAAw1BMVEWAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6OAl6M9jT1MAAAAQHRSTlMAAQIDBQYHDA0bHB8gISQmJyg+P0BGR0lKU1RZYmNrbHV2iYqLo6Spqqusra7Cw8TFysvM29zk5ufo6/Lz+Pn8DzgVHgAAATNJREFUeNplk+1agkAQhQfRykQTrJTEUjSCvtTQECPk/q+qPQ7LsnR+7DOzL898LiRlOP46zfN0vXQM0tXydkWlndeqs/620LTtK3Z7LBo6OpLd5fDzl6nVubSnIXv3zIY/8N4HVGrwBj8bwjaR77SgmhYn5DWF5eE7ZoribkZkoIeI78ZJMmYrQkcGjZD9mq+SokjY6qKqEfniDIiFYMR6FqZPn+J8+A9dYX5QKs5eBaFz3p4wUkLwizrkvB2UcoZXJUwYHiqIsDclnBzAvicyrFYQpBW0lK0oqVbkEHR1fzEEHl/YhCHG1yKaoYi5zubl4Mn8wsqe6uwRK4tNmHaG717VsiP4mV1uih9G4FrttuUG7GGGTLOioUwyRI51Ftv6o94rtNcfNbCz2uB32KycCv0BfU5XCrQEyKwAAAAASUVORK5CYII=);background-size:14px 14px;background-repeat:no-repeat;background-position:left center;color:#8197a2;font-size:12px}.ballots-i--see-all-proposal{display:inline-block;margin-top:5px}.ballots-i--time{color:#333;font-size:24px;font-weight:bold}@media screen and (max-width: 768px){.ballots-i--time{display:inline-block;vertical-align:middle;margin-right:10px}}.ballots-i--to-close{color:#333;text-transform:uppercase}@media screen and (max-width: 768px){.ballots-i--to-close{display:inline-block;vertical-align:middle}}.ballots-i--vote_yes{margin-right:15px;background-color:rgba(8,179,242,0.1)}.ballots-i--vote_no{margin-left:15px;background-color:rgba(109,46,174,0.1);color:#6d2eae}@media screen and (max-width: 768px){.ballots-i--vote_no{float:left;margin-left:0;margin-right:15px}}textarea{border:1px solid #e5eef9;-webkit-box-shadow:none;-moz-box-shadow:none;box-shadow:none;overflow:auto;outline:none;border-radius:3px;width:100%}textarea:focus{border-color:#08b3f2}.ballots-about{font-size:0}@media screen and (max-width: 768px){.ballots-about{display:table;width:100%}}.ballots-about p{line-height:28px}.ballots-about-i{position:relative;display:inline-block;vertical-align:top;box-sizing:border-box}.ballots-about-i:not(.ballots-about-i_time){padding-right:10px}@media screen and (max-width: 768px){.ballots-about-i:not(.ballots-about-i_time){padding-right:0}}@media screen and (max-width: 768px){.ballots-about-i{display:table-row;width:100% !important}}.ballots-about-i_name{width:20%}.ballots-about-i_action{width:10%}.ballots-about-i_type{width:10%}.ballots-about-i_proposal{width:30%}.ballots-about-i_mining-key{width:25%;word-break:break-all}.ballots-about-i_proposed-min-threshold{width:70%;word-break:break-all}.ballots-about-i_contract-type{width:40%;word-break:break-all}.ballots-about-i_proposed-address{width:30%;word-break:break-all}.ballots-about-i_time{width:10%;text-align:right}@media screen and (max-width: 768px){.ballots-about-i_time{text-align:left}}.ballots-about-i_time .ballots-about-i--title{text-align:right}@media screen and (max-width: 768px){.ballots-about-i_time .ballots-about-i--title{text-align:left}}.ballots-about-i--title{position:absolute;z-index:1;left:0;right:0;top:-60px;opacity:0.6;color:#38454f;text-transform:uppercase;font-size:13px}@media screen and (max-width: 768px){.ballots-about-i--title{position:relative;left:auto;right:auto;top:auto;white-space:nowrap}}@media screen and (max-width: 768px){.ballots-about-td{display:table-cell;vertical-align:top}}@media screen and (max-width: 768px){.ballots-about-td:first-child{padding-right:20px}}@media screen and (max-width: 768px){.ballots-about-i:not(:last-child) .ballots-about-td{padding-bottom:10px}}.ballots-footer{display:flex;align-items:center;justify-content:space-between}.ballots-footer-left{display:inline-flex;align-items:center}@media screen and (max-width: 768px){.ballots-footer{padding-top:20px}}@media screen and (max-width: 414px){.ballots-footer{flex-direction:column-reverse;padding-top:15px}}.ballots-footer p{line-height:18px;color:#8197a2}.ballots-footer-finalize{margin-right:20px;background-color:rgba(8,179,242,0.1);white-space:nowrap}.ballots-footer-finalize-finalized{background-color:rgba(109,46,174,0.1);color:#6d2eae;cursor:default}@media screen and (max-width: 414px){.ballots-footer-finalize{width:100%;margin-right:0;margin-top:15px;text-align:center}}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}}.Select{position:relative}.Select input::-webkit-contacts-auto-fill-button,.Select input::-webkit-credentials-auto-fill-button{display:none !important}.Select input::-ms-clear{display:none !important}.Select input::-ms-reveal{display:none !important}.Select,.Select div,.Select input,.Select span{-webkit-box-sizing:border-box;-moz-box-sizing:border-box;box-sizing:border-box}.Select.is-disabled .Select-arrow-zone{cursor:default;pointer-events:none}.Select.is-disabled>.Select-control{background-color:#f9f9f9}.Select.is-disabled>.Select-control:hover{box-shadow:none}.Select.is-searchable.is-open>.Select-control{cursor:text}.Select.is-searchable.is-focused:not(.is-open)>.Select-control{cursor:text}.Select.is-open>.Select-control{border-bottom-right-radius:0;border-bottom-left-radius:0;background:#fff;border-color:#bcd3ef #e5eef9 #fafcfe}.Select.is-open>.Select-control .Select-arrow{top:-2px;border-color:transparent transparent #999;border-width:0 5px 5px}.Select.is-focused>.Select-control{background:#fff}.Select.is-focused:not(.is-open)>.Select-control{border-color:#08c #0099e6 #0099e6;box-shadow:inset 0 1px 2px rgba(0,0,0,0.1),0 0 5px -1px fade(#08c, 50%)}.Select.has-value.is-clearable.Select--single>.Select-control .Select-value{padding-right:44px}.Select.has-value.Select--single>.Select-control .Select-value .Select-value-label,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value .Select-value-label{color:#333}.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label{cursor:pointer;text-decoration:none}.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:hover,.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:hover,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus{color:#08c;outline:none;text-decoration:underline}.Select.has-value.Select--single>.Select-control .Select-value a.Select-value-label:focus,.Select.has-value.is-pseudo-focused.Select--single>.Select-control .Select-value a.Select-value-label:focus{background:#fff}.Select.has-value.is-pseudo-focused .Select-input{opacity:0}.Select.is-open .Select-arrow,.Select .Select-arrow-zone:hover>.Select-arrow{border-top-color:#666}.Select.Select--rtl{direction:rtl;text-align:right}.Select-control{background-color:#fff;border-color:#fafcfe #e5eef9 #bcd3ef;border-radius:3px;border:1px solid #e5eef9;color:#333;cursor:default;display:table;border-spacing:0;border-collapse:separate;height:40px;outline:none;overflow:hidden;position:relative;width:100%}.Select-control:hover{box-shadow:0 1px 0 rgba(0,0,0,0.06)}.Select-control .Select-input:focus{outline:none;background:#fff}.Select-placeholder,.Select--single>.Select-control .Select-value{bottom:0;color:#aaa;left:0;line-height:38px;padding-left:10px;padding-right:10px;position:absolute;right:0;top:0;max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.Select-input{height:38px;padding-left:10px;padding-right:10px;vertical-align:middle}.Select-input>input{background:none transparent;border:0 none;box-shadow:none;cursor:default;display:inline-block;font-family:inherit;font-size:inherit;margin:0;outline:none;line-height:17px;padding:10px 0 14px;-webkit-appearance:none}.is-focused .Select-input>input{cursor:text}.Select-control:not(.is-searchable)>.Select-input{outline:none}.Select-loading-zone{cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:16px}.Select-loading{-webkit-animation:Select-animation-spin 400ms infinite linear;-o-animation:Select-animation-spin 400ms infinite linear;animation:Select-animation-spin 400ms infinite linear;width:16px;height:16px;box-sizing:border-box;border-radius:50%;border:2px solid #e5eef9;border-right-color:#333;display:inline-block;position:relative;vertical-align:middle}.Select-clear-zone{-webkit-animation:Select-animation-fadeIn 200ms;-o-animation:Select-animation-fadeIn 200ms;animation:Select-animation-fadeIn 200ms;color:#999;cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:19px}.Select-clear-zone:hover{color:#D0021B}.Select-clear{display:inline-block;font-size:20px;line-height:1}.Select--multi .Select-clear-zone{width:19px}.Select--multi .Select-multi-value-wrapper{display:inline-block}.Select .Select-aria-only{position:absolute;display:inline-block;height:1px;width:1px;margin:-1px;clip:rect(0, 0, 0, 0);overflow:hidden;float:left}.Select-arrow-zone{cursor:pointer;display:table-cell;position:relative;text-align:center;vertical-align:middle;width:25px;padding-right:5px}.Select--rtl .Select-arrow-zone{padding-right:0;padding-left:5px}.Select-arrow{border-color:#999 transparent transparent;border-style:solid;border-width:5px 5px 2.5px;display:inline-block;height:0;width:0;position:relative}@-webkit-keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}@keyframes Select-animation-fadeIn{from{opacity:0}to{opacity:1}}.Select-menu-outer{border-bottom-right-radius:3px;border-bottom-left-radius:3px;background-color:#fff;border:1px solid #e5eef9;border-top-color:#f2f7fc;box-shadow:0 1px 0 rgba(0,0,0,0.06);box-sizing:border-box;margin-top:-1px;max-height:200px;position:absolute;top:100%;width:100%;z-index:1000;-webkit-overflow-scrolling:touch}.Select-menu{max-height:198px;overflow-y:auto}.Select-option{box-sizing:border-box;background-color:#fff;color:#666;cursor:pointer;display:block;padding:8px 10px}.Select-option:last-child{border-bottom-right-radius:3px;border-bottom-left-radius:3px}.Select-option.is-selected{background-color:#f5faff;color:#333}.Select-option.is-focused{background-color:#f2f9fc;color:#333}.Select-option.is-disabled{color:#ccc;cursor:default}.Select-noresults{box-sizing:border-box;color:#999;cursor:default;display:block;padding:8px 10px}.Select--multi .Select-input{vertical-align:middle;margin-left:10px;padding:0}.Select--multi.Select--rtl .Select-input{margin-left:0;margin-right:10px}.Select--multi.has-value .Select-input{margin-left:5px}.Select--multi .Select-value{background-color:#f2f9fc;border-radius:3px;border:1px solid #e5eef9;color:#08c;display:inline-block;font-size:.9em;margin-left:5px;margin-top:5px;vertical-align:top}.Select--multi .Select-value-icon,.Select--multi .Select-value-label{display:inline-block;vertical-align:middle}.Select--multi .Select-value-label{border-bottom-right-radius:3px;border-top-right-radius:3px;cursor:default;padding:2px 5px}.Select--multi a.Select-value-label{color:#08c;cursor:pointer;text-decoration:none}.Select--multi a.Select-value-label:hover{text-decoration:underline}.Select--multi .Select-value-icon{cursor:pointer;border-bottom-left-radius:3px;border-top-left-radius:3px;border-right:1px solid #e5eef9;padding:1px 5px 3px}.Select--multi .Select-value-icon:hover,.Select--multi .Select-value-icon:focus{background-color:#ddeff7;color:#0077b3}.Select--multi .Select-value-icon:active{background-color:#e5eef9}.Select--multi.Select--rtl .Select-value{margin-left:0;margin-right:5px}.Select--multi.Select--rtl .Select-value-icon{border-right:none;border-left:1px solid #e5eef9}.Select--multi.is-disabled .Select-value{background-color:#fcfcfc;border:1px solid #e3e3e3;color:#333}.Select--multi.is-disabled .Select-value-icon{cursor:not-allowed;border-right:1px solid #e3e3e3}.Select--multi.is-disabled .Select-value-icon:hover,.Select--multi.is-disabled .Select-value-icon:focus,.Select--multi.is-disabled .Select-value-icon:active{background-color:#fcfcfc}@keyframes Select-animation-spin{to{transform:rotate(1turn)}}@-webkit-keyframes Select-animation-spin{to{-webkit-transform:rotate(1turn)}} diff --git a/src/assets/App.scss b/src/assets/App.scss index 190239e..8074a17 100644 --- a/src/assets/App.scss +++ b/src/assets/App.scss @@ -14,6 +14,7 @@ @import 'stylesheets/settings'; @import 'stylesheets/socials'; @import 'stylesheets/vote-scale'; +@import 'stylesheets/ballot-types'; @import 'stylesheets/ballots/placeholders'; @import 'stylesheets/ballots/base'; @import 'stylesheets/ballots/about'; @@ -23,4 +24,4 @@ @import 'stylesheets/select/menu'; @import 'stylesheets/select/mixins'; @import 'stylesheets/select/multi'; -@import 'stylesheets/select/spinner'; \ No newline at end of file +@import 'stylesheets/select/spinner'; diff --git a/src/assets/stylesheets/ballot-types.scss b/src/assets/stylesheets/ballot-types.scss new file mode 100644 index 0000000..bdae400 --- /dev/null +++ b/src/assets/stylesheets/ballot-types.scss @@ -0,0 +1,30 @@ +.ballot-types { + border-bottom: 1px solid #e5eef9; + padding: 0 30px 10px; + + &-i { + cursor: pointer; + position: relative; + margin-bottom: 20px; + + &:before { + content: ''; + position: absolute; + left: -30px; + top: 50%; + opacity: 0; + height: 30px; + width: 3px; + transform: translateY(-50%); + background-color: #08b3f2; + } + + &_active { + color: #08b3f2; + + &:before { + opacity: 1; + } + } + } +} diff --git a/src/assets/stylesheets/controls.scss b/src/assets/stylesheets/controls.scss index c1eb5aa..a53dbbf 100644 --- a/src/assets/stylesheets/controls.scss +++ b/src/assets/stylesheets/controls.scss @@ -6,7 +6,8 @@ label { font-family: 'Open Sans', sans-serif; } -input { +input, +textarea { @extend %form-el; &:focus { @@ -18,6 +19,14 @@ input { } } +textarea { + width: 100%; + padding-top: 10px; + padding-bottom: 10px; + height: 70px; + resize: none; +} + select { @include image-2x('./images/select@2x.png', 8px, 4px); @extend %form-el; diff --git a/src/assets/stylesheets/info.scss b/src/assets/stylesheets/info.scss index 84e2ed4..b5aaab5 100644 --- a/src/assets/stylesheets/info.scss +++ b/src/assets/stylesheets/info.scss @@ -1,15 +1,54 @@ .info { - @include image-2x('./images/info@2x.png', 32px, 32px); - display: flex; - align-items: center; - padding-left: 44px; - min-height: 32px; - background-image: url(./images/info.png); - background-repeat: no-repeat; - background-position: left center; color: #8197a2; .ballots & { - margin-bottom: 20px; + @include image-2x('./images/info@2x.png', 32px, 32px); + display: flex; + align-items: center; + padding-left: 44px; + min-height: 32px; + background-image: url(./images/info.png); + background-repeat: no-repeat; + background-position: left center; + } + + .new-form & { + padding: 30px; + } + + &-title { + position: relative; + margin-bottom: 30px; + padding-left: 44px; + + &:before { + @include image-2x('./images/info@2x.png', 32px, 32px); + content: ''; + position: absolute; + left: 0; + top: 50%; + transform: translateY(-50%); + width: 32px; + height: 32px; + } + } + + &-i { + position: relative; + margin-bottom: 10px; + padding-left: 12px; + line-height: 18px; + font-size: 12px; + + &:before { + content: ''; + position: absolute; + left: 0; + top: 7px; + width: 4px; + height: 4px; + border-radius: 50%; + background-color: #08b3f2; + } } } diff --git a/src/assets/stylesheets/new.scss b/src/assets/stylesheets/new.scss index 59e11b8..35120ba 100644 --- a/src/assets/stylesheets/new.scss +++ b/src/assets/stylesheets/new.scss @@ -1,15 +1,41 @@ .new { &-form { @extend %white-block; + display: flex; overflow: hidden; + padding: 0; - &-footer { - display: flex; - align-items: center; - justify-content: space-between; + @media screen and (max-width: $tablet-width) { + display: block; + } - @media screen and (max-width: $mobile-width) { - flex-direction: column; + &-side { + padding-top: 30px; + padding-bottom: 30px; + box-sizing: border-box; + + @media screen and (max-width: $tablet-width) { + width: 100% !important; + } + + &_left { + width: 30%; + + @media screen and (max-width: $tablet-width) { + padding-bottom: 0; + } + } + + &_right { + width: 70%; + border-left: 1px solid #e5eef9; + padding-left: 30px; + padding-right: 30px; + + @media screen and (max-width: $tablet-width) { + border: 0; + padding-top: 0; + } } } } diff --git a/src/components/BallotCard.jsx b/src/components/BallotCard.jsx index 9778c45..b331798 100644 --- a/src/components/BallotCard.jsx +++ b/src/components/BallotCard.jsx @@ -29,6 +29,7 @@ export class BallotCard extends React.Component { displayValue: zeroTimeTo, title: "To close" }; + @observable creatorMiningKey; @observable creator; @observable progress; @observable totalVoters; @@ -45,8 +46,15 @@ export class BallotCard extends React.Component { return cls; } + @computed get finalizeDescription () { + const _finalizeDescription = this.isFinalized ? '' : constants.CARD_FINALIZE_DESCRIPTION; + return _finalizeDescription; + } + @computed get votesForNumber() { let votes = (this.totalVoters + this.progress) / 2; + if (isNaN(votes)) + votes = 0; return votes; } @@ -56,11 +64,15 @@ export class BallotCard extends React.Component { } let votesPercents = Math.round(this.votesForNumber / this.totalVoters * 100); + if (isNaN(votesPercents)) + votesPercents = 0; return votesPercents; } @computed get votesAgainstNumber() { let votes = (this.totalVoters - this.progress) / 2; + if (isNaN(votes)) + votes = 0; return votes; } @@ -70,20 +82,32 @@ export class BallotCard extends React.Component { } let votesPercents = Math.round(this.votesAgainstNumber / this.totalVoters * 100); + if (isNaN(votesPercents)) + votesPercents = 0; return votesPercents; } @action("Get start time of keys ballot") getStartTime = async () => { const { contractsStore, id, votingType } = this.props; - let startTime = await this.getContract(contractsStore, votingType).getStartTime(id); + let startTime; + try { + startTime = await this.getContract(contractsStore, votingType).getStartTime(id); + } catch(e) { + console.log(e.message); + } this.startTime = moment.utc(startTime * 1000).format(USDateTimeFormat); } @action("Get end time of keys ballot") getEndTime = async () => { const { contractsStore, id, votingType } = this.props; - let endTime = await this.getContract(contractsStore, votingType).getEndTime(id); + let endTime; + try { + endTime = await this.getContract(contractsStore, votingType).getEndTime(id); + } catch(e) { + console.log(e.message); + } this.endTime = moment.utc(endTime * 1000).format(USDateTimeFormat); } @@ -96,12 +120,13 @@ export class BallotCard extends React.Component { let msFinish = finish.diff(_now); if (msStart > 0) { - this.timeToStart.val = msStart; + this.timeToStart.val = msStart + 5000; this.timeToStart.displayValue = this.formatMs(msStart, ":mm:ss"); return this.timeTo = this.timeToStart; } if (msFinish > 0) { + this.timeToStart.val = 0; this.timeToFinish.val = msFinish; this.timeToFinish.displayValue = this.formatMs(msFinish, ":mm:ss"); return this.timeTo = this.timeToFinish; @@ -131,55 +156,106 @@ export class BallotCard extends React.Component { @action("Get creator") getCreator = async () => { const { contractsStore, id, votingType } = this.props; - let votingState = await this.getContract(contractsStore, votingType).votingState(id); - this.getValidatorFullname(votingState.creator); + let votingState; + try { + votingState = await this.getContract(contractsStore, votingType).votingState(id); + } catch(e) { + console.log(e.message); + } + if (votingState) { + this.getValidatorFullname(votingState.creator); + } } @action("Get progress") getProgress = async () => { const { contractsStore, id, votingType } = this.props; - let progress = await this.getContract(contractsStore, votingType).getProgress(id); - this.progress = Number(progress); + let progress; + try { + progress = await this.getContract(contractsStore, votingType).getProgress(id); + } catch(e) { + console.log(e.message); + } + if (progress) { + this.progress = Number(progress); + } } @action("Get total voters") getTotalVoters = async () => { const { contractsStore, id, votingType } = this.props; - let totalVoters = await this.getContract(contractsStore, votingType).getTotalVoters(id); - this.totalVoters = Number(totalVoters); + let totalVoters; + try { + totalVoters = await this.getContract(contractsStore, votingType).getTotalVoters(id); + } catch(e) { + console.log(e.message); + } + if (totalVoters) { + this.totalVoters = Number(totalVoters); + } } @action("Get isFinalized") getIsFinalized = async() => { const { contractsStore, id, votingType } = this.props; - this.isFinalized = await this.getContract(contractsStore, votingType).getIsFinalized(id); + let isFinalized; + try { + isFinalized = await this.getContract(contractsStore, votingType).getIsFinalized(id); + } catch(e) { + console.log(e.message); + } + this.isFinalized = isFinalized; } @action("Get validator full name") getValidatorFullname = async (_miningKey) => { const { contractsStore } = this.props; - let validator = await contractsStore.validatorMetadata.validators(_miningKey); - let firstName = toAscii(validator.firstName); - let lastName = toAscii(validator.lastName); - let fullName = `${firstName} ${lastName}`; + let validator; + try { + validator = await contractsStore.validatorMetadata.validators(_miningKey); + } catch(e) { + console.log(e.message); + } + let firstName, lastName, fullName + if (validator) { + firstName = toAscii(validator.firstName); + lastName = toAscii(validator.lastName); + fullName = `${firstName} ${lastName}`; + } + this.creatorMiningKey = _miningKey; this.creator = fullName ? fullName : _miningKey; } - isValidaVote = async () => { + isValidVote = async () => { const { contractsStore, id, votingType } = this.props; - let isValidVote = await this.getContract(contractsStore, votingType).isValidVote(id, contractsStore.votingKey); - return isValidVote; + let _isValidVote; + try { + _isValidVote = await this.getContract(contractsStore, votingType).isValidVote(id, contractsStore.votingKey); + } catch(e) { + console.log(e.message); + } + return _isValidVote; } isActive = async () => { const { contractsStore, id, votingType } = this.props; - let isActive = await this.getContract(contractsStore, votingType).isActive(id); - return isActive; + let _isActive; + try { + _isActive = await this.getContract(contractsStore, votingType).isActive(id); + } catch(e) { + console.log(e.message); + } + return _isActive; } getMemo = async () => { const { contractsStore, id, votingType } = this.props; - let memo = await this.getContract(contractsStore, votingType).getMemo(id); + let memo; + try { + memo = await this.getContract(contractsStore, votingType).getMemo(id); + } catch(e) { + console.log(e.message); + } this.memo = memo; return memo; } @@ -196,7 +272,7 @@ export class BallotCard extends React.Component { return; } commonStore.showLoading(); - let isValidVote = await this.isValidaVote(); + let isValidVote = await this.isValidVote(); if (!isValidVote) { commonStore.hideLoading(); swal("Warning!", messages.INVALID_VOTE_MSG, "warning"); @@ -309,8 +385,20 @@ export class BallotCard extends React.Component { let { commonStore } = this.props; if (commonStore.searchTerm) { if (commonStore.searchTerm.length > 0) { - const isCreatorPattern = String(this.creator).toLowerCase().includes(commonStore.searchTerm); - return isCreatorPattern; + const _isCreatorPattern = String(this.creator).toLowerCase().includes(commonStore.searchTerm); + const _isCreatorMiningKeyPattern = String(this.creatorMiningKey).toLowerCase().includes(commonStore.searchTerm); + return _isCreatorPattern || _isCreatorMiningKeyPattern; + } + } + return true; + } + + isMemoPattern = () => { + let { commonStore } = this.props; + if (commonStore.searchTerm) { + if (commonStore.searchTerm.length > 0) { + const _isMemoPattern = String(this.memo).toLowerCase().includes(commonStore.searchTerm); + return _isMemoPattern; } } return true; @@ -332,7 +420,7 @@ export class BallotCard extends React.Component { render () { let { contractsStore, votingType, children, isSearchPattern } = this.props; console.log(votingType); - let ballotClass = (this.showCard() && (this.isCreatorPattern() || isSearchPattern)) ? "ballots-i" : "ballots-i display-none"; + let ballotClass = (this.showCard() && (this.isCreatorPattern() || this.isMemoPattern() || isSearchPattern)) ? "ballots-i" : "ballots-i display-none"; const threshold = this.getThreshold(contractsStore, votingType); return (
@@ -349,7 +437,7 @@ export class BallotCard extends React.Component { {children}
-

Time

+

Ballot Time

{this.timeTo.displayValue}

@@ -391,11 +479,11 @@ export class BallotCard extends React.Component {
-

{constants.CARD_FINALIZE_DESCRIPTION}

+

{this.finalizeDescription}

{this.typeName(votingType)} Ballot ID: {this.props.id}
); } -} +} \ No newline at end of file diff --git a/src/components/BallotKeysCard.jsx b/src/components/BallotKeysCard.jsx index c81ac11..f9cd588 100644 --- a/src/components/BallotKeysCard.jsx +++ b/src/components/BallotKeysCard.jsx @@ -54,7 +54,12 @@ export class BallotKeysCard extends React.Component { @action("Get ballot type of keys ballot") getBallotType = async () => { const { contractsStore, id } = this.props; - let ballotType = await contractsStore.votingToChangeKeys.getBallotType(id); + let ballotType; + try { + ballotType = await contractsStore.votingToChangeKeys.getBallotType(id); + } catch(e) { + console.log(e.message); + } this.ballotType = ballotType; this.getBallotTypeDisplayName(ballotType); } @@ -62,7 +67,12 @@ export class BallotKeysCard extends React.Component { @action("Get affected key type of keys ballot") getAffectedKeyType = async () => { const { contractsStore, id } = this.props; - let affectedKeyType = await contractsStore.votingToChangeKeys.getAffectedKeyType(id); + let affectedKeyType; + try { + affectedKeyType = await contractsStore.votingToChangeKeys.getAffectedKeyType(id); + } catch(e) { + console.log(e.message); + } this.affectedKeyType = affectedKeyType; this.getAffectedKeyTypeDisplayName(affectedKeyType); } @@ -71,15 +81,33 @@ export class BallotKeysCard extends React.Component { @action("Get affected key of keys ballot") getAffectedKey = async () => { const { contractsStore, id } = this.props; - let affectedKey = await contractsStore.votingToChangeKeys.getAffectedKey(id); + let affectedKey; + try { + affectedKey = await contractsStore.votingToChangeKeys.getAffectedKey(id); + } catch (e) { + console.log(e.message); + } this.affectedKey = affectedKey; } @action("Get mining key of keys ballot") getMiningKey = async () => { const { contractsStore, id } = this.props; - let miningKey = await contractsStore.votingToChangeKeys.getMiningKey(id); - const metadata = await contractsStore.getValidatorMetadata(miningKey) - this.miningKey = `${metadata.lastName} ${miningKey}`; + let miningKey, metadata; + try { + miningKey = await contractsStore.votingToChangeKeys.getMiningKey(id); + } catch(e) { + console.log(e.message); + } + try { + metadata = await contractsStore.getValidatorMetadata(miningKey); + } catch(e) { + console.log(e.message); + } + if (metadata) { + this.miningKey = `${metadata.lastName} ${miningKey}`; + } else { + this.miningKey = `${miningKey}`; + } } constructor(props) { @@ -93,10 +121,11 @@ export class BallotKeysCard extends React.Component { isSearchPattern = () => { let { commonStore } = this.props; if (commonStore.searchTerm) { + const isMiningKeyPattern = String(this.miningKey).toLowerCase().includes(commonStore.searchTerm); const isAffectedKeyPattern = String(this.affectedKey).toLowerCase().includes(commonStore.searchTerm); const isAffectedKeyTypeDisplayNamePattern = String(this.affectedKeyTypeDisplayName).toLowerCase().includes(commonStore.searchTerm); const isBallotTypeDisplayNamePattern = String(this.ballotTypeDisplayName).toLowerCase().includes(commonStore.searchTerm); - return (isAffectedKeyPattern || isAffectedKeyTypeDisplayNamePattern || isBallotTypeDisplayNamePattern); + return (isMiningKeyPattern || isAffectedKeyPattern || isAffectedKeyTypeDisplayNamePattern || isBallotTypeDisplayNamePattern); } return true; } diff --git a/src/components/BallotKeysMetadata.jsx b/src/components/BallotKeysMetadata.jsx index 438aed0..3bdf117 100644 --- a/src/components/BallotKeysMetadata.jsx +++ b/src/components/BallotKeysMetadata.jsx @@ -26,10 +26,10 @@ export class BallotKeysMetadata extends React.Component {
- +
- - Ballot End + ballotStore.changeBallotMetadata(e, "endTime")} diff --git a/src/components/BallotMinThresholdCard.jsx b/src/components/BallotMinThresholdCard.jsx index 0bf9487..83c0c04 100644 --- a/src/components/BallotMinThresholdCard.jsx +++ b/src/components/BallotMinThresholdCard.jsx @@ -11,7 +11,12 @@ export class BallotMinThresholdCard extends React.Component { @action("Get proposed value of min threshold ballot") getProposedValue = async () => { const { contractsStore, id } = this.props; - let proposedValue = await contractsStore.votingToChangeMinThreshold.getProposedValue(id); + let proposedValue; + try { + proposedValue = await contractsStore.votingToChangeMinThreshold.getProposedValue(id); + } catch(e) { + console.log(e.message); + } this.proposedValue = proposedValue; } diff --git a/src/components/BallotMinThresholdMetadata.jsx b/src/components/BallotMinThresholdMetadata.jsx index 79acc77..6559419 100644 --- a/src/components/BallotMinThresholdMetadata.jsx +++ b/src/components/BallotMinThresholdMetadata.jsx @@ -23,8 +23,8 @@ export class BallotMinThresholdMetadata extends React.Component {
- - Ballot End + ballotStore.changeBallotMetadata(e, "endTime")} /> diff --git a/src/components/BallotProxyCard.jsx b/src/components/BallotProxyCard.jsx index 3b63678..d68f300 100644 --- a/src/components/BallotProxyCard.jsx +++ b/src/components/BallotProxyCard.jsx @@ -12,14 +12,24 @@ export class BallotProxyCard extends React.Component { @action("Get proposed address of proxy ballot") getProposedAddress = async () => { const { contractsStore, id } = this.props; - let proposedAddress = await contractsStore.votingToChangeProxy.getProposedValue(id); + let proposedAddress; + try { + proposedAddress = await contractsStore.votingToChangeProxy.getProposedValue(id); + } catch(e) { + console.log(e.message); + } this.proposedAddress = proposedAddress; } @action("Get contract type of proxy ballot") getContractType = async () => { const { contractsStore, id } = this.props; - let contractType = await contractsStore.votingToChangeProxy.getContractType(id); + let contractType; + try { + contractType = await contractsStore.votingToChangeProxy.getContractType(id); + } catch(e) { + console.log(e.message); + } this.contractType = contractType; } diff --git a/src/components/BallotProxyMetadata.jsx b/src/components/BallotProxyMetadata.jsx index b733272..9ab67e2 100644 --- a/src/components/BallotProxyMetadata.jsx +++ b/src/components/BallotProxyMetadata.jsx @@ -45,8 +45,8 @@ export class BallotProxyMetadata extends React.Component {
- - Ballot End + ballotStore.changeBallotMetadata(e, "endTime")} /> diff --git a/src/components/NewBallot.jsx b/src/components/NewBallot.jsx index 29e6f8a..59c2473 100644 --- a/src/components/NewBallot.jsx +++ b/src/components/NewBallot.jsx @@ -48,6 +48,11 @@ export class NewBallot extends React.Component { if (ballotStore.isBallotForKey) { for (let ballotKeysProp in ballotStore.ballotKeys) { + if (!ballotStore.ballotKeys[ballotKeysProp]) { + swal("Warning!", `Ballot ${ballotKeysProp} is empty`, "warning"); + commonStore.hideLoading(); + return false; + } if (ballotStore.ballotKeys[ballotKeysProp].length === 0) { swal("Warning!", `Ballot ${ballotKeysProp} is empty`, "warning"); commonStore.hideLoading(); @@ -99,6 +104,12 @@ export class NewBallot extends React.Component { } } + if (!ballotStore.isBallotForKey && !ballotStore.isBallotForMinThreshold && !ballotStore.isBallotForProxy) { + swal("Warning!", messages.BALLOT_TYPE_IS_EMPTY_MSG, "warning"); + commonStore.hideLoading(); + return false; + } + return true; } @@ -107,8 +118,8 @@ export class NewBallot extends React.Component { const inputToMethod = { startTime: curDateInSeconds, endTime: ballotStore.endTimeUnix, - affectedKey: ballotStore.ballotKeys.affectedKey, - affectedKeyType: ballotStore.ballotKeys.keyType, + affectedKey: ballotStore.ballotKeys.affectedKey, + affectedKeyType: ballotStore.ballotKeys.keyType, miningKey: ballotStore.ballotKeys.miningKey.value, ballotType: ballotStore.ballotKeys.keysBallotType, sender: contractsStore.votingKey, @@ -123,7 +134,7 @@ export class NewBallot extends React.Component { const inputToMethod = { startTime: curDateInSeconds, endTime: ballotStore.endTimeUnix, - proposedValue: ballotStore.ballotMinThreshold.proposedValue, + proposedValue: ballotStore.ballotMinThreshold.proposedValue, sender: contractsStore.votingKey, memo: ballotStore.memo }; @@ -136,7 +147,7 @@ export class NewBallot extends React.Component { const inputToMethod = { startTime: curDateInSeconds, endTime: ballotStore.endTimeUnix, - proposedValue: ballotStore.ballotProxy.proposedAddress, + proposedValue: ballotStore.ballotProxy.proposedAddress, contractType: ballotStore.ballotProxy.contractType, sender: contractsStore.votingKey, memo: ballotStore.memo @@ -159,8 +170,8 @@ export class NewBallot extends React.Component { if (isFormValid) { if (ballotStore.ballotType === ballotStore.BallotType.keys) { const inputToAreBallotParamsValid = { - affectedKey: ballotStore.ballotKeys.affectedKey, - affectedKeyType: ballotStore.ballotKeys.keyType, + affectedKey: ballotStore.ballotKeys.affectedKey, + affectedKeyType: ballotStore.ballotKeys.keyType, miningKey: ballotStore.ballotKeys.miningKey.value, ballotType: ballotStore.ballotKeys.keysBallotType }; @@ -173,19 +184,19 @@ export class NewBallot extends React.Component { let methodToCreateBallot; switch (ballotStore.ballotType) { - case ballotStore.BallotType.keys: + case ballotStore.BallotType.keys: methodToCreateBallot = this.createBallotForKeys; break; - case ballotStore.BallotType.minThreshold: + case ballotStore.BallotType.minThreshold: methodToCreateBallot = this.createBallotForMinThreshold; break; - case ballotStore.BallotType.proxy: + case ballotStore.BallotType.proxy: methodToCreateBallot = this.createBallotForProxy; break; default: break; } - let curDateInSeconds = moment.utc().add(5, 'minute').unix(); + let curDateInSeconds = moment.utc().add(5, 'minutes').unix(); methodToCreateBallot(curDateInSeconds) .on("receipt", (tx) => { commonStore.hideLoading(); @@ -205,6 +216,15 @@ export class NewBallot extends React.Component { } } + menuItemActive = (ballotType) => { + const { ballotStore } = this.props; + if (ballotType == ballotStore.ballotType) { + return 'ballot-types-i ballot-types-i_active'; + } else { + return 'ballot-types-i'; + } + } + render() { const { contractsStore, ballotStore } = this.props; let validator = ballotStore.isNewValidatorPersonalData ? : ""; @@ -212,15 +232,15 @@ export class NewBallot extends React.Component { let metadata let minThreshold = 0; switch (ballotStore.ballotType) { - case ballotStore.BallotType.keys: + case ballotStore.BallotType.keys: metadata = ; minThreshold = contractsStore.keysBallotThreshold; break; - case ballotStore.BallotType.minThreshold: + case ballotStore.BallotType.minThreshold: metadata = ; minThreshold = contractsStore.minThresholdBallotThreshold; break; - case ballotStore.BallotType.proxy: + case ballotStore.BallotType.proxy: metadata = ; minThreshold = contractsStore.proxyBallotThreshold; break; @@ -231,67 +251,99 @@ export class NewBallot extends React.Component {

New Ballot

-
-
-
- ballotStore.changeBallotType(e, ballotStore.BallotType.keys)} - /> - -

- Ballot to add, remove or swap any type of key for existing or new validators. -

+
+
+
ballotStore.changeBallotType(e, ballotStore.BallotType.keys)} + > + Validator Management Ballot +
+
ballotStore.changeBallotType(e, ballotStore.BallotType.minThreshold)} + > + Consenus Thershold Ballot +
+
ballotStore.changeBallotType(e, ballotStore.BallotType.proxy)} + > + Modify Proxy Contract Ballot
-
-
- ballotStore.changeBallotType(e, ballotStore.BallotType.minThreshold)} - /> - -

- Ballot to change the minimum threshold for consensus to vote for keys. -

-
-
-
-
- ballotStore.changeBallotType(e, ballotStore.BallotType.proxy)} - /> - -

- Ballot to change one of the proxy contracts. -

-
-
-
-
- {validator} - {keysTypes} - {metadata} -
- -
- -
-
-
- Minimum {minThreshold} from {contractsStore.validatorsLength} validators required to pass the proposal
- You can create {contractsStore.validatorLimits.keys} ballot for keys
- You can create {contractsStore.validatorLimits.minThreshold} ballot for consensus
- You can create {contractsStore.validatorLimits.proxy} ballot for proxy
+

Information of the ballot

+
+ Minimum {minThreshold} from {contractsStore.validatorsLength} validators required to pass the proposal
+
+
+ You can create {contractsStore.validatorLimits.keys} ballot for keys
+
+
+ You can create {contractsStore.validatorLimits.minThreshold} ballot for consensus
+
+
+ You can create {contractsStore.validatorLimits.proxy} ballot for proxy
+
+
+
+
+ +
+ +
+
+
+
+
+
+ ballotStore.changeBallotType(e, ballotStore.BallotType.keys)} + /> + +

+ Ballot to add, remove or swap any type of key for existing or new validators. +

+
+
+
+
+ ballotStore.changeBallotType(e, ballotStore.BallotType.minThreshold)} + /> + +

+ Ballot to change the minimum threshold for consensus to vote for keys. +

+
+
+
+
+ ballotStore.changeBallotType(e, ballotStore.BallotType.proxy)} + /> + +

+ Ballot to change one of the proxy contracts. +

+
+
+
+
+ {validator} + {keysTypes} + {metadata}
diff --git a/src/contracts/BallotsStorage.contract.js b/src/contracts/BallotsStorage.contract.js index 71d0fe4..a806ce2 100644 --- a/src/contracts/BallotsStorage.contract.js +++ b/src/contracts/BallotsStorage.contract.js @@ -1,5 +1,5 @@ import Web3 from 'web3'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; export default class BallotsStorage { diff --git a/src/contracts/PoaConsensus.contract.js b/src/contracts/PoaConsensus.contract.js index 6df2718..b22b524 100644 --- a/src/contracts/PoaConsensus.contract.js +++ b/src/contracts/PoaConsensus.contract.js @@ -1,5 +1,5 @@ import Web3 from 'web3'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; export default class POAConsensus { diff --git a/src/contracts/ValidatorMetadata.contract.js b/src/contracts/ValidatorMetadata.contract.js index 2f8ee7d..bbb28c7 100644 --- a/src/contracts/ValidatorMetadata.contract.js +++ b/src/contracts/ValidatorMetadata.contract.js @@ -1,6 +1,6 @@ import Web3 from 'web3'; import moment from 'moment'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; var toAscii = function(hex) { diff --git a/src/contracts/VotingToChangeKeys.contract.js b/src/contracts/VotingToChangeKeys.contract.js index 0e4867b..5f342fe 100644 --- a/src/contracts/VotingToChangeKeys.contract.js +++ b/src/contracts/VotingToChangeKeys.contract.js @@ -1,5 +1,5 @@ import Web3 from 'web3'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; export default class VotingToChangeKeys { diff --git a/src/contracts/VotingToChangeMinThreshold.contract.js b/src/contracts/VotingToChangeMinThreshold.contract.js index 5f8ddb3..46560ab 100644 --- a/src/contracts/VotingToChangeMinThreshold.contract.js +++ b/src/contracts/VotingToChangeMinThreshold.contract.js @@ -1,5 +1,5 @@ import Web3 from 'web3'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; export default class VotingToChangeMinThreshold { diff --git a/src/contracts/VotingToChangeProxy.contract.js b/src/contracts/VotingToChangeProxy.contract.js index 139bfec..93fb5b2 100644 --- a/src/contracts/VotingToChangeProxy.contract.js +++ b/src/contracts/VotingToChangeProxy.contract.js @@ -1,5 +1,5 @@ import Web3 from 'web3'; -import networkAddresses from './addresses'; +import { networkAddresses } from './addresses'; import helpers from "./helpers"; export default class VotingToChangeProxy { diff --git a/src/contracts/addresses.js b/src/contracts/addresses.js index e2b4f49..9ad32bc 100644 --- a/src/contracts/addresses.js +++ b/src/contracts/addresses.js @@ -1,6 +1,4 @@ -import { messages } from "../messages"; import { addressesURL, wrongRepoAlert } from "./helpers"; -import swal from 'sweetalert2'; // const local = { // VOTING_TO_CHANGE_KEYS_ADDRESS: '0xecdbe3937cf6ff27f70480855cfe03254f915b48', // VOTING_TO_CHANGE_MIN_THRESHOLD_ADDRESS: '0x5ae30d4c8892292e0d8164f87a2e12dff9dc99e1', @@ -13,31 +11,31 @@ import swal from 'sweetalert2'; let SOKOL_ADDRESSES = {}; let CORE_ADDRESSES = {}; -function getContractsAddresses(branch) { +async function getContractsAddresses(branch) { let addr = addressesURL(branch); - fetch(addr).then(function(response) { - return response.json(); - }).then(function(contracts) { - switch (branch) { - case 'core': - CORE_ADDRESSES = contracts; - break; - case 'sokol': - SOKOL_ADDRESSES = contracts; - break; - default: - CORE_ADDRESSES = contracts; - break; - } - }).catch(function(err) { - wrongRepoAlert(addr); - }); + let response; + try { + response = await fetch(addr); + } catch(e) { + return wrongRepoAlert(addr); + } + + let contracts = await response.json(); + + switch (branch) { + case 'core': + CORE_ADDRESSES = contracts; + break; + case 'sokol': + SOKOL_ADDRESSES = contracts; + break; + default: + CORE_ADDRESSES = contracts; + break; + } } -getContractsAddresses('core'); -getContractsAddresses('sokol'); - -module.exports = (netId) => { +function getAddresses(netId) { switch (netId) { case '77': return SOKOL_ADDRESSES @@ -48,4 +46,7 @@ module.exports = (netId) => { } } - +module.exports = { + getContractsAddresses: getContractsAddresses, + networkAddresses: getAddresses +} \ No newline at end of file diff --git a/src/index.js b/src/index.js index 753ddff..3eef148 100644 --- a/src/index.js +++ b/src/index.js @@ -10,6 +10,7 @@ import validatorStore from './stores/ValidatorStore'; import ballotStore from './stores/BallotStore'; import ballotsStore from './stores/BallotsStore'; import contractsStore from './stores/ContractsStore'; +import { getContractsAddresses } from './contracts/addresses'; import swal from 'sweetalert2'; import getWeb3 from './getWeb3'; import "babel-polyfill"; @@ -32,6 +33,9 @@ class AppMainRouter extends Component { commonStore.showLoading(); getWeb3().then(async (web3Config) => { + await getContractsAddresses('sokol'); + await getContractsAddresses('core'); + await contractsStore.setWeb3Instance(web3Config); await contractsStore.setPoaConsensus(web3Config); await contractsStore.setBallotsStorage(web3Config); @@ -39,13 +43,15 @@ class AppMainRouter extends Component { await contractsStore.setVotingToChangeMinThreshold(web3Config); await contractsStore.setVotingToChangeProxy(web3Config); await contractsStore.setValidatorMetadata(web3Config); + + await contractsStore.getAllKeysBallots(); + await contractsStore.getAllMinThresholdBallots(); + await contractsStore.getAllProxyBallots(); + contractsStore.getValidatorsLength(); contractsStore.getKeysBallotThreshold(); contractsStore.getMinThresholdBallotThreshold(); contractsStore.getProxyBallotThreshold(); - contractsStore.getAllKeysBallots(); - contractsStore.getAllMinThresholdBallots(); - contractsStore.getAllProxyBallots(); contractsStore.setVotingKey(web3Config); await contractsStore.setMiningKey(web3Config); contractsStore.getValidatorActiveBallots(); @@ -78,4 +84,4 @@ class AppMainRouter extends Component { } ReactDOM.render(, document.getElementById('root')); -registerServiceWorker(); +registerServiceWorker(); \ No newline at end of file diff --git a/src/messages.js b/src/messages.js index 1f4f29d..08513c6 100644 --- a/src/messages.js +++ b/src/messages.js @@ -12,6 +12,7 @@ messages.AFFECTED_KEY_IS_NOT_ADDRESS_MSG = "Ballot affectedKey isn't address"; messages.MINING_KEY_IS_NOT_ADDRESS_MSG = "Ballot miningKey isn't address"; messages.PROPOSED_ADDRESS_IS_NOT_ADDRESS_MSG = "Ballot proposedAddress isn't address"; messages.END_TIME_SHOULD_BE_GREATER_THAN_NOW_MSG = "Ballot end time should be greater than now"; +messages.BALLOT_TYPE_IS_EMPTY_MSG = "Ballot type is empty"; messages.NO_METAMASK_MSG = `You haven't chosen any account in MetaMask. Please, choose your voting key in MetaMask and reload the page. Check POA Network wiki for more info.`;