diff --git a/.all-contributorsrc b/.all-contributorsrc
index f984b049..4fae6153 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -148,6 +148,42 @@
"contributions": [
"doc"
]
+ },
+ {
+ "login": "Eeems",
+ "name": "Nathaniel van Diepen",
+ "avatar_url": "https://avatars1.githubusercontent.com/u/1176979?v=4",
+ "profile": "http://eeems.website",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "KRTirtho",
+ "name": "KR Tirtho",
+ "avatar_url": "https://avatars.githubusercontent.com/u/61944859?v=4",
+ "profile": "http://N/A",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "theLMGN",
+ "name": "theLMGN",
+ "avatar_url": "https://avatars.githubusercontent.com/u/12257112?v=4",
+ "profile": "http://thelmgn.com",
+ "contributions": [
+ "code"
+ ]
+ },
+ {
+ "login": "KaMeHb-UA",
+ "name": "KaMeHb-UA",
+ "avatar_url": "https://avatars.githubusercontent.com/u/20382677?v=4",
+ "profile": "https://github.com/KaMeHb-UA",
+ "contributions": [
+ "code"
+ ]
}
],
"contributorsPerLine": 7,
diff --git a/README.md b/README.md
index 71caf615..e2ffd8ad 100644
--- a/README.md
+++ b/README.md
@@ -1,5 +1,8 @@
# React NodeGui
+⚠️ React NodeGui is no longer maintained. Please fork it to continue development ⚠️
+
+
[](https://spectrum.chat/nodegui)
[](#contributors)
@@ -127,32 +130,42 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
-
+
+
This project follows the [all-contributors](https://github.com/all-contributors/all-contributors) specification. Contributions of any kind welcome!
diff --git a/package-lock.json b/package-lock.json
deleted file mode 100644
index 8dad4fd4..00000000
--- a/package-lock.json
+++ /dev/null
@@ -1,1942 +0,0 @@
-{
- "name": "@nodegui/react-nodegui",
- "version": "0.9.0",
- "lockfileVersion": 1,
- "requires": true,
- "dependencies": {
- "7zip-bin": {
- "version": "5.0.3",
- "resolved": "https://registry.npmjs.org/7zip-bin/-/7zip-bin-5.0.3.tgz",
- "integrity": "sha512-GLyWIFBbGvpKPGo55JyRZAo4lVbnBiD52cKlw/0Vt+wnmKvWJkpZvsjVoaIolyBXDeAQKSicRtqFNPem9w0WYA=="
- },
- "7zip-min": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/7zip-min/-/7zip-min-1.1.3.tgz",
- "integrity": "sha512-8mwALMW1kGBoSCsv9vjkEOTZ+KuYjnNMGW9Y/a75KLFxfTlDmge6wBMBktmYsBuAQLdVBmfx5IvmGEsjkn2ZKQ==",
- "requires": {
- "7zip-bin": "^5.0.3"
- }
- },
- "@nodegui/artifact-installer": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/@nodegui/artifact-installer/-/artifact-installer-1.1.0.tgz",
- "integrity": "sha512-x/rIewhjnLhf2b3lAy5ZIPSTS39LRpwMTKeEg6sn4RwvWwyNmreGzpvGi6Gkbl6FUpftn70nfOBOpaeO3hO8PQ==",
- "requires": {
- "7zip-min": "^1.1.1",
- "env-paths": "^2.2.0",
- "make-dir": "^3.0.0",
- "node-fetch": "^2.6.0",
- "progress": "^2.0.3"
- }
- },
- "@nodegui/nodegui": {
- "version": "0.25.0",
- "resolved": "https://registry.npmjs.org/@nodegui/nodegui/-/nodegui-0.25.0.tgz",
- "integrity": "sha512-6cuKMiw/yCAoKsEA0+Gxd3rOwvowuQBfBbBU/vyMXayVFA1Yv4m1KJ7UtZBzeh4zR58W1tKCbcRW60GtnwuxrQ==",
- "requires": {
- "@nodegui/artifact-installer": "^1.1.0",
- "@nodegui/qode": "^2.1.0",
- "cmake-js": "^6.1.0",
- "cross-env": "^7.0.0",
- "cuid": "^2.1.6",
- "manage-path": "^2.0.0",
- "memoize-one": "^5.1.1",
- "node-addon-api": "^3.0.0",
- "postcss-nodegui-autoprefixer": "0.0.7",
- "prebuild-install": "^5.3.5"
- }
- },
- "@nodegui/qode": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/@nodegui/qode/-/qode-2.1.0.tgz",
- "integrity": "sha512-R31K60Vba4yO2Fy3qXXJkt7XMZnitDhuAVaibSGSbcBJbHhJh0+pDQjzZve1+uY7tCHFIY0oRq3tb70o/BrPZQ==",
- "requires": {
- "env-paths": "^2.2.0",
- "make-dir": "^3.0.2",
- "node-fetch": "^2.6.0",
- "progress": "^2.0.3",
- "tar": "^6.0.1"
- }
- },
- "@types/node": {
- "version": "14.11.1",
- "resolved": "https://registry.npmjs.org/@types/node/-/node-14.11.1.tgz",
- "integrity": "sha512-oTQgnd0hblfLsJ6BvJzzSL+Inogp3lq9fGgqRkMB/ziKMgEUaFl801OncOzUmalfzt14N0oPHMK47ipl+wbTIw==",
- "dev": true
- },
- "@types/prop-types": {
- "version": "15.7.1",
- "resolved": "https://registry.npmjs.org/@types/prop-types/-/prop-types-15.7.1.tgz",
- "integrity": "sha512-CFzn9idOEpHrgdw8JsoTkaDDyRWk1jrzIV8djzcgpq0y9tG4B4lFT+Nxh52DVpDXV+n4+NPNv7M1Dj5uMp6XFg=="
- },
- "@types/react": {
- "version": "16.9.1",
- "resolved": "https://registry.npmjs.org/@types/react/-/react-16.9.1.tgz",
- "integrity": "sha512-jGM2x8F7m7/r+81N/BOaUKVwbC5Cdw6ExlWEUpr77XPwVeNvAppnPEnMMLMfxRDYL8FPEX8MHjwtD2NQMJ0yyQ==",
- "requires": {
- "@types/prop-types": "*",
- "csstype": "^2.2.0"
- }
- },
- "@types/react-reconciler": {
- "version": "0.18.0",
- "resolved": "https://registry.npmjs.org/@types/react-reconciler/-/react-reconciler-0.18.0.tgz",
- "integrity": "sha512-hLVaxzL7cGgk/2C/sc8yyyvi+aeeimv7SKOFgyuPFYqNb2rnnQApHabcxo5Xp+GloUAfMe3tyQm2nkrmbLXq4w==",
- "requires": {
- "@types/react": "*"
- }
- },
- "ajv": {
- "version": "6.12.5",
- "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.5.tgz",
- "integrity": "sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag==",
- "requires": {
- "fast-deep-equal": "^3.1.1",
- "fast-json-stable-stringify": "^2.0.0",
- "json-schema-traverse": "^0.4.1",
- "uri-js": "^4.2.2"
- }
- },
- "ansi": {
- "version": "0.3.1",
- "resolved": "https://registry.npmjs.org/ansi/-/ansi-0.3.1.tgz",
- "integrity": "sha1-DELU+xcWDVqa8eSEus4cZpIsGyE="
- },
- "ansi-regex": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
- "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
- },
- "ansi-styles": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz",
- "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==",
- "requires": {
- "color-convert": "^1.9.0"
- }
- },
- "aproba": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz",
- "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
- },
- "are-we-there-yet": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.0.6.tgz",
- "integrity": "sha1-otKMkxAqpsyWJFomy5VN4G7FPww=",
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.0 || ^1.1.13"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "asn1": {
- "version": "0.2.4",
- "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz",
- "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==",
- "requires": {
- "safer-buffer": "~2.1.0"
- }
- },
- "assert-plus": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz",
- "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
- },
- "asynckit": {
- "version": "0.4.0",
- "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz",
- "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k="
- },
- "at-least-node": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz",
- "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==",
- "dev": true
- },
- "aws-sign2": {
- "version": "0.7.0",
- "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz",
- "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
- },
- "aws4": {
- "version": "1.10.1",
- "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.10.1.tgz",
- "integrity": "sha512-zg7Hz2k5lI8kb7U32998pRRFin7zJlkfezGJjUc2heaD4Pw2wObakCDVzkKztTm/Ln7eiVvYsjqak0Ed4LkMDA=="
- },
- "balanced-match": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz",
- "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c="
- },
- "base64-js": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.3.1.tgz",
- "integrity": "sha512-mLQ4i2QO1ytvGWFWmcngKO//JXAQueZvwEKtjgQFM4jIK0kU+ytMfplL8j+n5mspOfjHwoAg+9yhb7BwAHm36g=="
- },
- "bcrypt-pbkdf": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz",
- "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=",
- "requires": {
- "tweetnacl": "^0.14.3"
- }
- },
- "big-integer": {
- "version": "1.6.48",
- "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz",
- "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w=="
- },
- "binary": {
- "version": "0.3.0",
- "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz",
- "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=",
- "requires": {
- "buffers": "~0.1.1",
- "chainsaw": "~0.1.0"
- }
- },
- "bl": {
- "version": "4.0.3",
- "resolved": "https://registry.npmjs.org/bl/-/bl-4.0.3.tgz",
- "integrity": "sha512-fs4G6/Hu4/EE+F75J8DuN/0IpQqNjAdC7aEQv7Qt8MHGUH7Ckv2MwTEEeN9QehD0pfIDkMI1bkHYkKy7xHyKIg==",
- "requires": {
- "buffer": "^5.5.0",
- "inherits": "^2.0.4",
- "readable-stream": "^3.4.0"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
- }
- },
- "bluebird": {
- "version": "3.4.7",
- "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz",
- "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM="
- },
- "brace-expansion": {
- "version": "1.1.11",
- "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz",
- "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==",
- "requires": {
- "balanced-match": "^1.0.0",
- "concat-map": "0.0.1"
- }
- },
- "buffer": {
- "version": "5.6.0",
- "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.6.0.tgz",
- "integrity": "sha512-/gDYp/UtU0eA1ys8bOs9J6a+E/KWIY+DZ+Q2WESNUA0jFRsJOc0SNUO6xJ5SGA1xueg3NL65W6s+NY5l9cunuw==",
- "requires": {
- "base64-js": "^1.0.2",
- "ieee754": "^1.1.4"
- }
- },
- "buffer-indexof-polyfill": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz",
- "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A=="
- },
- "buffer-shims": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/buffer-shims/-/buffer-shims-1.0.0.tgz",
- "integrity": "sha1-mXjOMXOIxkmth5MCjDR37wRKi1E="
- },
- "buffers": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz",
- "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s="
- },
- "camelcase": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
- "integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
- },
- "caseless": {
- "version": "0.12.0",
- "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz",
- "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
- },
- "centra": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/centra/-/centra-2.4.2.tgz",
- "integrity": "sha512-f1RaP0V1HqVNEXfLfjNBthB2yy3KnSGnPCnOPCFLUk9e/Z4rNJ8nBaJNnghflnp88mi1IT8mfmW+HlMS1/H+bg=="
- },
- "chainsaw": {
- "version": "0.1.0",
- "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz",
- "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=",
- "requires": {
- "traverse": ">=0.3.0 <0.4"
- }
- },
- "chalk": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz",
- "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==",
- "requires": {
- "ansi-styles": "^3.2.1",
- "escape-string-regexp": "^1.0.5",
- "supports-color": "^5.3.0"
- },
- "dependencies": {
- "supports-color": {
- "version": "5.5.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz",
- "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- }
- }
- },
- "chownr": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz",
- "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ=="
- },
- "cliui": {
- "version": "3.2.0",
- "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
- "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wrap-ansi": "^2.0.0"
- }
- },
- "cmake-js": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/cmake-js/-/cmake-js-6.1.0.tgz",
- "integrity": "sha512-utmukLQftpgrCpGRCaHnkv4K27HZNNFqmBl4vnvccy0xp4c1erxjFU/Lq4wn5ngAhFZmpwBPQfoKWKThjSBiwg==",
- "requires": {
- "debug": "^4",
- "fs-extra": "^5.0.0",
- "is-iojs": "^1.0.1",
- "lodash": "^4",
- "memory-stream": "0",
- "npmlog": "^1.2.0",
- "rc": "^1.2.7",
- "request": "^2.54.0",
- "semver": "^5.0.3",
- "splitargs": "0",
- "tar": "^4",
- "unzipper": "^0.8.13",
- "url-join": "0",
- "which": "^1.0.9",
- "yargs": "^3.6.0"
- },
- "dependencies": {
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
- },
- "fs-minipass": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz",
- "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==",
- "requires": {
- "minipass": "^2.6.0"
- }
- },
- "minipass": {
- "version": "2.9.0",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz",
- "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==",
- "requires": {
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.0"
- }
- },
- "minizlib": {
- "version": "1.3.3",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz",
- "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==",
- "requires": {
- "minipass": "^2.9.0"
- }
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- },
- "tar": {
- "version": "4.4.13",
- "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz",
- "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==",
- "requires": {
- "chownr": "^1.1.1",
- "fs-minipass": "^1.2.5",
- "minipass": "^2.8.6",
- "minizlib": "^1.2.1",
- "mkdirp": "^0.5.0",
- "safe-buffer": "^5.1.2",
- "yallist": "^3.0.3"
- }
- },
- "yallist": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz",
- "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g=="
- }
- }
- },
- "code-point-at": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz",
- "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
- },
- "color-convert": {
- "version": "1.9.3",
- "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz",
- "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==",
- "requires": {
- "color-name": "1.1.3"
- }
- },
- "color-name": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz",
- "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
- },
- "combined-stream": {
- "version": "1.0.8",
- "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz",
- "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==",
- "requires": {
- "delayed-stream": "~1.0.0"
- }
- },
- "concat-map": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz",
- "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s="
- },
- "console-control-strings": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz",
- "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
- },
- "core-util-is": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz",
- "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac="
- },
- "cross-env": {
- "version": "7.0.2",
- "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-7.0.2.tgz",
- "integrity": "sha512-KZP/bMEOJEDCkDQAyRhu3RL2ZO/SUVrxQVI0G3YEQ+OLbRA3c6zgixe8Mq8a/z7+HKlNEjo8oiLUs8iRijY2Rw==",
- "requires": {
- "cross-spawn": "^7.0.1"
- }
- },
- "cross-spawn": {
- "version": "7.0.3",
- "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz",
- "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==",
- "requires": {
- "path-key": "^3.1.0",
- "shebang-command": "^2.0.0",
- "which": "^2.0.1"
- },
- "dependencies": {
- "which": {
- "version": "2.0.2",
- "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz",
- "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==",
- "requires": {
- "isexe": "^2.0.0"
- }
- }
- }
- },
- "csstype": {
- "version": "2.6.6",
- "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.6.tgz",
- "integrity": "sha512-RpFbQGUE74iyPgvr46U9t1xoQBM8T4BL8SxrN66Le2xYAPSaDJJKeztV3awugusb3g3G9iL8StmkBBXhcbbXhg=="
- },
- "cuid": {
- "version": "2.1.8",
- "resolved": "https://registry.npmjs.org/cuid/-/cuid-2.1.8.tgz",
- "integrity": "sha512-xiEMER6E7TlTPnDxrM4eRiC6TRgjNX9xzEZ5U/Se2YJKr7Mq4pJn/2XEHjl3STcSh96GmkHPcBXLES8M29wyyg=="
- },
- "dashdash": {
- "version": "1.14.1",
- "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz",
- "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "debug": {
- "version": "4.2.0",
- "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz",
- "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==",
- "requires": {
- "ms": "2.1.2"
- }
- },
- "decamelize": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz",
- "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
- },
- "decompress-response": {
- "version": "4.2.1",
- "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-4.2.1.tgz",
- "integrity": "sha512-jOSne2qbyE+/r8G1VU+G/82LBs2Fs4LAsTiLSHOCOMZQl2OKZ6i8i4IyHemTe+/yIXOtTcRQMzPcgyhoFlqPkw==",
- "requires": {
- "mimic-response": "^2.0.0"
- }
- },
- "deep-extend": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz",
- "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA=="
- },
- "delayed-stream": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz",
- "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
- },
- "delegates": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz",
- "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
- },
- "detect-libc": {
- "version": "1.0.3",
- "resolved": "https://registry.npmjs.org/detect-libc/-/detect-libc-1.0.3.tgz",
- "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups="
- },
- "duplexer2": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz",
- "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=",
- "requires": {
- "readable-stream": "^2.0.2"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "ecc-jsbn": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz",
- "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=",
- "requires": {
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.1.0"
- }
- },
- "end-of-stream": {
- "version": "1.4.4",
- "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz",
- "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==",
- "requires": {
- "once": "^1.4.0"
- }
- },
- "env-paths": {
- "version": "2.2.0",
- "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz",
- "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA=="
- },
- "escape-string-regexp": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz",
- "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
- },
- "expand-template": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/expand-template/-/expand-template-2.0.3.tgz",
- "integrity": "sha512-XYfuKMvj4O35f/pOXLObndIRvyQ+/+6AhODh+OKWj9S9498pHHn/IMszH+gt0fBCRWMNfk1ZSp5x3AifmnI2vg=="
- },
- "extend": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz",
- "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g=="
- },
- "extsprintf": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz",
- "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
- },
- "fast-deep-equal": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz",
- "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
- },
- "fast-json-stable-stringify": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.1.0.tgz",
- "integrity": "sha512-lhd/wF+Lk98HZoTCtlVraHtfh5XYijIjalXck7saUtuanSDyLMxnHhSXEDJqHxD7msR8D0uCmqlkwjCV8xvwHw=="
- },
- "forever-agent": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz",
- "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
- },
- "form-data": {
- "version": "2.3.3",
- "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz",
- "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==",
- "requires": {
- "asynckit": "^0.4.0",
- "combined-stream": "^1.0.6",
- "mime-types": "^2.1.12"
- }
- },
- "fs-constants": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz",
- "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow=="
- },
- "fs-extra": {
- "version": "5.0.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-5.0.0.tgz",
- "integrity": "sha512-66Pm4RYbjzdyeuqudYqhFiNBbCIuI9kgRqLPSHIlXHidW8NIQtVdkM1yeZ4lXwuhbTETv3EUGMNHAAw6hiundQ==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- },
- "fs-minipass": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz",
- "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==",
- "requires": {
- "minipass": "^3.0.0"
- }
- },
- "fs.realpath": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz",
- "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8="
- },
- "fstream": {
- "version": "1.0.12",
- "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
- "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
- "requires": {
- "graceful-fs": "^4.1.2",
- "inherits": "~2.0.0",
- "mkdirp": ">=0.5 0",
- "rimraf": "2"
- },
- "dependencies": {
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- }
- }
- },
- "gauge": {
- "version": "1.2.7",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-1.2.7.tgz",
- "integrity": "sha1-6c7FSD09TuDvRLYKfZnkk14TbZM=",
- "requires": {
- "ansi": "^0.3.0",
- "has-unicode": "^2.0.0",
- "lodash.pad": "^4.1.0",
- "lodash.padend": "^4.1.0",
- "lodash.padstart": "^4.1.0"
- }
- },
- "getpass": {
- "version": "0.1.7",
- "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz",
- "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=",
- "requires": {
- "assert-plus": "^1.0.0"
- }
- },
- "github-from-package": {
- "version": "0.0.0",
- "resolved": "https://registry.npmjs.org/github-from-package/-/github-from-package-0.0.0.tgz",
- "integrity": "sha1-l/tdlr/eiXMxPyDoKI75oWf6ZM4="
- },
- "glob": {
- "version": "7.1.6",
- "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz",
- "integrity": "sha512-LwaxwyZ72Lk7vZINtNNrywX0ZuLyStrdDtabefZKAY5ZGJhVtgdznluResxNmPitE0SAO+O26sWTHeKSI2wMBA==",
- "requires": {
- "fs.realpath": "^1.0.0",
- "inflight": "^1.0.4",
- "inherits": "2",
- "minimatch": "^3.0.4",
- "once": "^1.3.0",
- "path-is-absolute": "^1.0.0"
- }
- },
- "graceful-fs": {
- "version": "4.2.4",
- "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz",
- "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
- },
- "handlebars": {
- "version": "4.7.6",
- "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
- "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
- "dev": true,
- "requires": {
- "minimist": "^1.2.5",
- "neo-async": "^2.6.0",
- "source-map": "^0.6.1",
- "uglify-js": "^3.1.4",
- "wordwrap": "^1.0.0"
- }
- },
- "har-schema": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz",
- "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
- },
- "har-validator": {
- "version": "5.1.5",
- "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz",
- "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==",
- "requires": {
- "ajv": "^6.12.3",
- "har-schema": "^2.0.0"
- }
- },
- "has-flag": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz",
- "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0="
- },
- "has-unicode": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz",
- "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
- },
- "highlight.js": {
- "version": "10.2.0",
- "resolved": "https://registry.npmjs.org/highlight.js/-/highlight.js-10.2.0.tgz",
- "integrity": "sha512-OryzPiqqNCfO/wtFo619W+nPYALM6u7iCQkum4bqRmmlcTikOkmlL06i009QelynBPAlNByTQU6cBB2cOBQtCw==",
- "dev": true
- },
- "http-signature": {
- "version": "1.2.0",
- "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz",
- "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=",
- "requires": {
- "assert-plus": "^1.0.0",
- "jsprim": "^1.2.2",
- "sshpk": "^1.7.0"
- }
- },
- "ieee754": {
- "version": "1.1.13",
- "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.1.13.tgz",
- "integrity": "sha512-4vf7I2LYV/HaWerSo3XmlMkp5eZ83i+/CDluXi/IGTs/O1sejBNhTtnxzmRZfvOUqj7lZjqHkeTvpgSFDlWZTg=="
- },
- "inflight": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz",
- "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=",
- "requires": {
- "once": "^1.3.0",
- "wrappy": "1"
- }
- },
- "inherits": {
- "version": "2.0.4",
- "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz",
- "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ=="
- },
- "ini": {
- "version": "1.3.5",
- "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz",
- "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw=="
- },
- "interpret": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.4.0.tgz",
- "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==",
- "dev": true
- },
- "invert-kv": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
- "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
- },
- "is-fullwidth-code-point": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
- "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
- "requires": {
- "number-is-nan": "^1.0.0"
- }
- },
- "is-iojs": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/is-iojs/-/is-iojs-1.1.0.tgz",
- "integrity": "sha1-TBEDO11dlNbqs3dd7cm+fQCDJfE="
- },
- "is-typedarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz",
- "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
- },
- "isarray": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz",
- "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8="
- },
- "isexe": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz",
- "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
- },
- "isstream": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz",
- "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo="
- },
- "js-tokens": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz",
- "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ=="
- },
- "jsbn": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz",
- "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
- },
- "json-schema": {
- "version": "0.2.3",
- "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz",
- "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
- },
- "json-schema-traverse": {
- "version": "0.4.1",
- "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz",
- "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
- },
- "json-stringify-safe": {
- "version": "5.0.1",
- "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz",
- "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
- },
- "jsonfile": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz",
- "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=",
- "requires": {
- "graceful-fs": "^4.1.6"
- }
- },
- "jsprim": {
- "version": "1.4.1",
- "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz",
- "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=",
- "requires": {
- "assert-plus": "1.0.0",
- "extsprintf": "1.3.0",
- "json-schema": "0.2.3",
- "verror": "1.10.0"
- }
- },
- "lcid": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
- "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
- "requires": {
- "invert-kv": "^1.0.0"
- }
- },
- "listenercount": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz",
- "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc="
- },
- "lodash": {
- "version": "4.17.20",
- "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz",
- "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA=="
- },
- "lodash.pad": {
- "version": "4.5.1",
- "resolved": "https://registry.npmjs.org/lodash.pad/-/lodash.pad-4.5.1.tgz",
- "integrity": "sha1-QzCUmoM6fI2iLMIPaibE1Z3runA="
- },
- "lodash.padend": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padend/-/lodash.padend-4.6.1.tgz",
- "integrity": "sha1-U8y6BH0G4VjTEfRdpiX05J5vFm4="
- },
- "lodash.padstart": {
- "version": "4.6.1",
- "resolved": "https://registry.npmjs.org/lodash.padstart/-/lodash.padstart-4.6.1.tgz",
- "integrity": "sha1-0uPuv/DZ05rVD1y9G1KnvOa7YRs="
- },
- "loose-envify": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz",
- "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==",
- "requires": {
- "js-tokens": "^3.0.0 || ^4.0.0"
- }
- },
- "lunr": {
- "version": "2.3.9",
- "resolved": "https://registry.npmjs.org/lunr/-/lunr-2.3.9.tgz",
- "integrity": "sha512-zTU3DaZaF3Rt9rhN3uBMGQD3dD2/vFQqnvZCDv4dl5iOzq2IZQqTxu90r4E5J+nP70J3ilqVCrbho2eWaeW8Ow==",
- "dev": true
- },
- "make-dir": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz",
- "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==",
- "requires": {
- "semver": "^6.0.0"
- }
- },
- "manage-path": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/manage-path/-/manage-path-2.0.0.tgz",
- "integrity": "sha1-9M+EV7km7u4qg7FzUBQUvHbrlZc="
- },
- "marked": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/marked/-/marked-1.0.0.tgz",
- "integrity": "sha512-Wo+L1pWTVibfrSr+TTtMuiMfNzmZWiOPeO7rZsQUY5bgsxpHesBEcIWJloWVTFnrMXnf/TL30eTFSGJddmQAng==",
- "dev": true
- },
- "memoize-one": {
- "version": "5.1.1",
- "resolved": "https://registry.npmjs.org/memoize-one/-/memoize-one-5.1.1.tgz",
- "integrity": "sha512-HKeeBpWvqiVJD57ZUAsJNm71eHTykffzcLZVYWiVfQeI1rJtuEaS7hQiEpWfVVk18donPwJEcFKIkCmPJNOhHA=="
- },
- "memory-stream": {
- "version": "0.0.3",
- "resolved": "https://registry.npmjs.org/memory-stream/-/memory-stream-0.0.3.tgz",
- "integrity": "sha1-6+jdHDuLw4wOeUHp3dWuvmtN6D8=",
- "requires": {
- "readable-stream": "~1.0.26-2"
- }
- },
- "mime-db": {
- "version": "1.44.0",
- "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz",
- "integrity": "sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
- },
- "mime-types": {
- "version": "2.1.27",
- "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz",
- "integrity": "sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w==",
- "requires": {
- "mime-db": "1.44.0"
- }
- },
- "mimic-response": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-2.1.0.tgz",
- "integrity": "sha512-wXqjST+SLt7R009ySCglWBCFpjUygmCIfD790/kVbiGmUgfYGuB14PiTd5DwVxSV4NcYHjzMkoj5LjQZwTQLEA=="
- },
- "minimatch": {
- "version": "3.0.4",
- "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz",
- "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==",
- "requires": {
- "brace-expansion": "^1.1.7"
- }
- },
- "minimist": {
- "version": "1.2.5",
- "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
- "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw=="
- },
- "minipass": {
- "version": "3.1.3",
- "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz",
- "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==",
- "requires": {
- "yallist": "^4.0.0"
- }
- },
- "minizlib": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz",
- "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==",
- "requires": {
- "minipass": "^3.0.0",
- "yallist": "^4.0.0"
- }
- },
- "mkdirp": {
- "version": "1.0.4",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz",
- "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw=="
- },
- "mkdirp-classic": {
- "version": "0.5.3",
- "resolved": "https://registry.npmjs.org/mkdirp-classic/-/mkdirp-classic-0.5.3.tgz",
- "integrity": "sha512-gKLcREMhtuZRwRAfqP3RFW+TK4JqApVBtOIftVgjuABpAtpxhPGaDcfvbhNvD0B8iD1oUr/txX35NjcaY6Ns/A=="
- },
- "ms": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz",
- "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w=="
- },
- "napi-build-utils": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/napi-build-utils/-/napi-build-utils-1.0.2.tgz",
- "integrity": "sha512-ONmRUqK7zj7DWX0D9ADe03wbwOBZxNAfF20PlGfCWQcD3+/MakShIHrMqx9YwPTfxDdF1zLeL+RGZiR9kGMLdg=="
- },
- "neo-async": {
- "version": "2.6.2",
- "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz",
- "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==",
- "dev": true
- },
- "node-abi": {
- "version": "2.19.1",
- "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz",
- "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==",
- "requires": {
- "semver": "^5.4.1"
- },
- "dependencies": {
- "semver": {
- "version": "5.7.1",
- "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz",
- "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ=="
- }
- }
- },
- "node-addon-api": {
- "version": "3.0.2",
- "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz",
- "integrity": "sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg=="
- },
- "node-fetch": {
- "version": "2.6.1",
- "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz",
- "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw=="
- },
- "noop-logger": {
- "version": "0.1.1",
- "resolved": "https://registry.npmjs.org/noop-logger/-/noop-logger-0.1.1.tgz",
- "integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI="
- },
- "npmlog": {
- "version": "1.2.1",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-1.2.1.tgz",
- "integrity": "sha1-KOe+YZYJtT960d0wChDWTXFiaLY=",
- "requires": {
- "ansi": "~0.3.0",
- "are-we-there-yet": "~1.0.0",
- "gauge": "~1.2.0"
- }
- },
- "number-is-nan": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz",
- "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
- },
- "oauth-sign": {
- "version": "0.9.0",
- "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
- "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
- },
- "object-assign": {
- "version": "4.1.1",
- "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz",
- "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM="
- },
- "once": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz",
- "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=",
- "requires": {
- "wrappy": "1"
- }
- },
- "os-locale": {
- "version": "1.4.0",
- "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
- "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
- "requires": {
- "lcid": "^1.0.0"
- }
- },
- "path-is-absolute": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz",
- "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18="
- },
- "path-key": {
- "version": "3.1.1",
- "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz",
- "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q=="
- },
- "path-parse": {
- "version": "1.0.6",
- "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz",
- "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==",
- "dev": true
- },
- "performance-now": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz",
- "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
- },
- "phin": {
- "version": "3.5.0",
- "resolved": "https://registry.npmjs.org/phin/-/phin-3.5.0.tgz",
- "integrity": "sha512-BEJYqD07B5uBFPAzNpLuLh0LzHr4MDLe0Vc6gBYi+PSIL57VbiE/UvkCc86x24pKQn2X2Keg7HTJEDr8BrBCCg==",
- "requires": {
- "centra": "^2.4.2"
- }
- },
- "postcss": {
- "version": "7.0.34",
- "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.34.tgz",
- "integrity": "sha512-H/7V2VeNScX9KE83GDrDZNiGT1m2H+UTnlinIzhjlLX9hfMUn1mHNnGeX81a1c8JSBdBvqk7c2ZOG6ZPn5itGw==",
- "requires": {
- "chalk": "^2.4.2",
- "source-map": "^0.6.1",
- "supports-color": "^6.1.0"
- }
- },
- "postcss-nodegui-autoprefixer": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/postcss-nodegui-autoprefixer/-/postcss-nodegui-autoprefixer-0.0.7.tgz",
- "integrity": "sha512-cPNAIz9siY+ssc3ecdPaeflfdc2HRS6tgQGu59YKLiiaZT3iMw578l1LTFfmEnJtv1RvNEQUNn/YjHyySXla2Q==",
- "requires": {
- "postcss": "^7.0.17"
- }
- },
- "prebuild-install": {
- "version": "5.3.5",
- "resolved": "https://registry.npmjs.org/prebuild-install/-/prebuild-install-5.3.5.tgz",
- "integrity": "sha512-YmMO7dph9CYKi5IR/BzjOJlRzpxGGVo1EsLSUZ0mt/Mq0HWZIHOKHHcHdT69yG54C9m6i45GpItwRHpk0Py7Uw==",
- "requires": {
- "detect-libc": "^1.0.3",
- "expand-template": "^2.0.3",
- "github-from-package": "0.0.0",
- "minimist": "^1.2.3",
- "mkdirp": "^0.5.1",
- "napi-build-utils": "^1.0.1",
- "node-abi": "^2.7.0",
- "noop-logger": "^0.1.1",
- "npmlog": "^4.0.1",
- "pump": "^3.0.0",
- "rc": "^1.2.7",
- "simple-get": "^3.0.3",
- "tar-fs": "^2.0.0",
- "tunnel-agent": "^0.6.0",
- "which-pm-runs": "^1.0.0"
- },
- "dependencies": {
- "are-we-there-yet": {
- "version": "1.1.5",
- "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz",
- "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==",
- "requires": {
- "delegates": "^1.0.0",
- "readable-stream": "^2.0.6"
- }
- },
- "gauge": {
- "version": "2.7.4",
- "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz",
- "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=",
- "requires": {
- "aproba": "^1.0.3",
- "console-control-strings": "^1.0.0",
- "has-unicode": "^2.0.0",
- "object-assign": "^4.1.0",
- "signal-exit": "^3.0.0",
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1",
- "wide-align": "^1.1.0"
- }
- },
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "mkdirp": {
- "version": "0.5.5",
- "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz",
- "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==",
- "requires": {
- "minimist": "^1.2.5"
- }
- },
- "npmlog": {
- "version": "4.1.2",
- "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz",
- "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==",
- "requires": {
- "are-we-there-yet": "~1.1.2",
- "console-control-strings": "~1.1.0",
- "gauge": "~2.7.3",
- "set-blocking": "~2.0.0"
- }
- },
- "readable-stream": {
- "version": "2.3.7",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz",
- "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.3",
- "isarray": "~1.0.0",
- "process-nextick-args": "~2.0.0",
- "safe-buffer": "~5.1.1",
- "string_decoder": "~1.1.1",
- "util-deprecate": "~1.0.1"
- }
- },
- "string_decoder": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
- "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
- "requires": {
- "safe-buffer": "~5.1.0"
- }
- }
- }
- },
- "prettier": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/prettier/-/prettier-2.1.2.tgz",
- "integrity": "sha512-16c7K+x4qVlJg9rEbXl7HEGmQyZlG4R9AgP+oHKRMsMsuk8s+ATStlf1NpDqyBI1HpVyfjLOeMhH2LvuNvV5Vg==",
- "dev": true
- },
- "process-nextick-args": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz",
- "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag=="
- },
- "progress": {
- "version": "2.0.3",
- "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz",
- "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA=="
- },
- "prop-types": {
- "version": "15.7.2",
- "resolved": "https://registry.npmjs.org/prop-types/-/prop-types-15.7.2.tgz",
- "integrity": "sha512-8QQikdH7//R2vurIJSutZ1smHYTcLpRWEOlHnzcWHmBYrOGUysKwSsrC89BCiFj3CbrfJ/nXFdJepOVrY1GCHQ==",
- "requires": {
- "loose-envify": "^1.4.0",
- "object-assign": "^4.1.1",
- "react-is": "^16.8.1"
- }
- },
- "psl": {
- "version": "1.8.0",
- "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz",
- "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
- },
- "pump": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz",
- "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==",
- "requires": {
- "end-of-stream": "^1.1.0",
- "once": "^1.3.1"
- }
- },
- "punycode": {
- "version": "2.1.1",
- "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz",
- "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
- },
- "qs": {
- "version": "6.5.2",
- "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
- "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
- },
- "rc": {
- "version": "1.2.8",
- "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz",
- "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==",
- "requires": {
- "deep-extend": "^0.6.0",
- "ini": "~1.3.0",
- "minimist": "^1.2.0",
- "strip-json-comments": "~2.0.1"
- }
- },
- "react": {
- "version": "16.13.1",
- "resolved": "https://registry.npmjs.org/react/-/react-16.13.1.tgz",
- "integrity": "sha512-YMZQQq32xHLX0bz5Mnibv1/LHb3Sqzngu7xstSM+vrkE5Kzr9xE0yMByK5kMoTK30YVJE61WfbxIFFvfeDKT1w==",
- "dev": true,
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2"
- }
- },
- "react-deep-force-update": {
- "version": "2.1.3",
- "resolved": "https://registry.npmjs.org/react-deep-force-update/-/react-deep-force-update-2.1.3.tgz",
- "integrity": "sha512-lqD4eHKVuB65RyO/hGbEST53E2/GPbcIPcFYyeW/p4vNngtH4G7jnKGlU6u1OqrFo0uNfIvwuBOg98IbLHlNEA=="
- },
- "react-is": {
- "version": "16.9.0",
- "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.9.0.tgz",
- "integrity": "sha512-tJBzzzIgnnRfEm046qRcURvwQnZVXmuCbscxUO5RWrGTXpon2d4c8mI0D8WE6ydVIm29JiLB6+RslkIvym9Rjw=="
- },
- "react-proxy": {
- "version": "2.0.8",
- "resolved": "https://registry.npmjs.org/react-proxy/-/react-proxy-2.0.8.tgz",
- "integrity": "sha1-dq54yb5OVNQJz+x7t9UT7H8bKEw=",
- "requires": {
- "lodash": "^4.6.1"
- }
- },
- "react-reconciler": {
- "version": "0.25.1",
- "resolved": "https://registry.npmjs.org/react-reconciler/-/react-reconciler-0.25.1.tgz",
- "integrity": "sha512-R5UwsIvRcSs3w8n9k3tBoTtUHdVhu9u84EG7E5M0Jk9F5i6DA1pQzPfUZd6opYWGy56MJOtV3VADzy6DRwYDjw==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1",
- "prop-types": "^15.6.2",
- "scheduler": "^0.19.1"
- }
- },
- "readable-stream": {
- "version": "1.0.34",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-1.0.34.tgz",
- "integrity": "sha1-Elgg40vIQtLyqq+v5MKRbuMsFXw=",
- "requires": {
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "0.0.1",
- "string_decoder": "~0.10.x"
- }
- },
- "rechoir": {
- "version": "0.6.2",
- "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz",
- "integrity": "sha1-hSBLVNuoLVdC4oyWdW70OvUOM4Q=",
- "dev": true,
- "requires": {
- "resolve": "^1.1.6"
- }
- },
- "request": {
- "version": "2.88.2",
- "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz",
- "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==",
- "requires": {
- "aws-sign2": "~0.7.0",
- "aws4": "^1.8.0",
- "caseless": "~0.12.0",
- "combined-stream": "~1.0.6",
- "extend": "~3.0.2",
- "forever-agent": "~0.6.1",
- "form-data": "~2.3.2",
- "har-validator": "~5.1.3",
- "http-signature": "~1.2.0",
- "is-typedarray": "~1.0.0",
- "isstream": "~0.1.2",
- "json-stringify-safe": "~5.0.1",
- "mime-types": "~2.1.19",
- "oauth-sign": "~0.9.0",
- "performance-now": "^2.1.0",
- "qs": "~6.5.2",
- "safe-buffer": "^5.1.2",
- "tough-cookie": "~2.5.0",
- "tunnel-agent": "^0.6.0",
- "uuid": "^3.3.2"
- }
- },
- "resolve": {
- "version": "1.17.0",
- "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz",
- "integrity": "sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w==",
- "dev": true,
- "requires": {
- "path-parse": "^1.0.6"
- }
- },
- "rimraf": {
- "version": "2.7.1",
- "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz",
- "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==",
- "requires": {
- "glob": "^7.1.3"
- }
- },
- "safe-buffer": {
- "version": "5.1.2",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz",
- "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g=="
- },
- "safer-buffer": {
- "version": "2.1.2",
- "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz",
- "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg=="
- },
- "scheduler": {
- "version": "0.19.1",
- "resolved": "https://registry.npmjs.org/scheduler/-/scheduler-0.19.1.tgz",
- "integrity": "sha512-n/zwRWRYSUj0/3g/otKDRPMh6qv2SYMWNq85IEa8iZyAv8od9zDYpGSnpBEjNgcMNq6Scbu5KfIPxNF72R/2EA==",
- "requires": {
- "loose-envify": "^1.1.0",
- "object-assign": "^4.1.1"
- }
- },
- "semver": {
- "version": "6.3.0",
- "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
- "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw=="
- },
- "set-blocking": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz",
- "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
- },
- "setimmediate": {
- "version": "1.0.5",
- "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz",
- "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU="
- },
- "shebang-command": {
- "version": "2.0.0",
- "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz",
- "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==",
- "requires": {
- "shebang-regex": "^3.0.0"
- }
- },
- "shebang-regex": {
- "version": "3.0.0",
- "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz",
- "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A=="
- },
- "shelljs": {
- "version": "0.8.4",
- "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz",
- "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==",
- "dev": true,
- "requires": {
- "glob": "^7.0.0",
- "interpret": "^1.0.0",
- "rechoir": "^0.6.2"
- }
- },
- "signal-exit": {
- "version": "3.0.3",
- "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz",
- "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
- },
- "simple-concat": {
- "version": "1.0.1",
- "resolved": "https://registry.npmjs.org/simple-concat/-/simple-concat-1.0.1.tgz",
- "integrity": "sha512-cSFtAPtRhljv69IK0hTVZQ+OfE9nePi/rtJmw5UjHeVyVroEqJXP1sFztKUy1qU+xvz3u/sfYJLa947b7nAN2Q=="
- },
- "simple-get": {
- "version": "3.1.0",
- "resolved": "https://registry.npmjs.org/simple-get/-/simple-get-3.1.0.tgz",
- "integrity": "sha512-bCR6cP+aTdScaQCnQKbPKtJOKDp/hj9EDLJo3Nw4y1QksqaovlW/bnptB6/c1e+qmNIDHRK+oXFDdEqBT8WzUA==",
- "requires": {
- "decompress-response": "^4.2.0",
- "once": "^1.3.1",
- "simple-concat": "^1.0.0"
- }
- },
- "source-map": {
- "version": "0.6.1",
- "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
- "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g=="
- },
- "splitargs": {
- "version": "0.0.7",
- "resolved": "https://registry.npmjs.org/splitargs/-/splitargs-0.0.7.tgz",
- "integrity": "sha1-/p965lc3GzOxDLgNoUPPgknPazs="
- },
- "sshpk": {
- "version": "1.16.1",
- "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz",
- "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==",
- "requires": {
- "asn1": "~0.2.3",
- "assert-plus": "^1.0.0",
- "bcrypt-pbkdf": "^1.0.0",
- "dashdash": "^1.12.0",
- "ecc-jsbn": "~0.1.1",
- "getpass": "^0.1.1",
- "jsbn": "~0.1.0",
- "safer-buffer": "^2.0.2",
- "tweetnacl": "~0.14.0"
- }
- },
- "string-width": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
- "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
- "requires": {
- "code-point-at": "^1.0.0",
- "is-fullwidth-code-point": "^1.0.0",
- "strip-ansi": "^3.0.0"
- }
- },
- "string_decoder": {
- "version": "0.10.31",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
- "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ="
- },
- "strip-ansi": {
- "version": "3.0.1",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
- "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
- "requires": {
- "ansi-regex": "^2.0.0"
- }
- },
- "strip-json-comments": {
- "version": "2.0.1",
- "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz",
- "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo="
- },
- "supports-color": {
- "version": "6.1.0",
- "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz",
- "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==",
- "requires": {
- "has-flag": "^3.0.0"
- }
- },
- "tar": {
- "version": "6.0.5",
- "resolved": "https://registry.npmjs.org/tar/-/tar-6.0.5.tgz",
- "integrity": "sha512-0b4HOimQHj9nXNEAA7zWwMM91Zhhba3pspja6sQbgTpynOJf+bkjBnfybNYzbpLbnwXnbyB4LOREvlyXLkCHSg==",
- "requires": {
- "chownr": "^2.0.0",
- "fs-minipass": "^2.0.0",
- "minipass": "^3.0.0",
- "minizlib": "^2.1.1",
- "mkdirp": "^1.0.3",
- "yallist": "^4.0.0"
- }
- },
- "tar-fs": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.1.0.tgz",
- "integrity": "sha512-9uW5iDvrIMCVpvasdFHW0wJPez0K4JnMZtsuIeDI7HyMGJNxmDZDOCQROr7lXyS+iL/QMpj07qcjGYTSdRFXUg==",
- "requires": {
- "chownr": "^1.1.1",
- "mkdirp-classic": "^0.5.2",
- "pump": "^3.0.0",
- "tar-stream": "^2.0.0"
- },
- "dependencies": {
- "chownr": {
- "version": "1.1.4",
- "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz",
- "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg=="
- }
- }
- },
- "tar-stream": {
- "version": "2.1.4",
- "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.1.4.tgz",
- "integrity": "sha512-o3pS2zlG4gxr67GmFYBLlq+dM8gyRGUOvsrHclSkvtVtQbjV0s/+ZE8OpICbaj8clrX3tjeHngYGP7rweaBnuw==",
- "requires": {
- "bl": "^4.0.3",
- "end-of-stream": "^1.4.1",
- "fs-constants": "^1.0.0",
- "inherits": "^2.0.3",
- "readable-stream": "^3.1.1"
- },
- "dependencies": {
- "readable-stream": {
- "version": "3.6.0",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz",
- "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==",
- "requires": {
- "inherits": "^2.0.3",
- "string_decoder": "^1.1.1",
- "util-deprecate": "^1.0.1"
- }
- },
- "safe-buffer": {
- "version": "5.2.1",
- "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz",
- "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ=="
- },
- "string_decoder": {
- "version": "1.3.0",
- "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.3.0.tgz",
- "integrity": "sha512-hkRX8U1WjJFd8LsDJ2yQ/wWWxaopEsABU1XfkM8A+j0+85JAGppt16cr1Whg6KIbb4okU6Mql6BOj+uup/wKeA==",
- "requires": {
- "safe-buffer": "~5.2.0"
- }
- }
- }
- },
- "tough-cookie": {
- "version": "2.5.0",
- "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz",
- "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==",
- "requires": {
- "psl": "^1.1.28",
- "punycode": "^2.1.1"
- }
- },
- "traverse": {
- "version": "0.3.9",
- "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz",
- "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk="
- },
- "tunnel-agent": {
- "version": "0.6.0",
- "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz",
- "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=",
- "requires": {
- "safe-buffer": "^5.0.1"
- }
- },
- "tweetnacl": {
- "version": "0.14.5",
- "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz",
- "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
- },
- "typedoc": {
- "version": "0.17.8",
- "resolved": "https://registry.npmjs.org/typedoc/-/typedoc-0.17.8.tgz",
- "integrity": "sha512-/OyrHCJ8jtzu+QZ+771YaxQ9s4g5Z3XsQE3Ma7q+BL392xxBn4UMvvCdVnqKC2T/dz03/VXSLVKOP3lHmDdc/w==",
- "dev": true,
- "requires": {
- "fs-extra": "^8.1.0",
- "handlebars": "^4.7.6",
- "highlight.js": "^10.0.0",
- "lodash": "^4.17.15",
- "lunr": "^2.3.8",
- "marked": "1.0.0",
- "minimatch": "^3.0.0",
- "progress": "^2.0.3",
- "shelljs": "^0.8.4",
- "typedoc-default-themes": "^0.10.2"
- },
- "dependencies": {
- "fs-extra": {
- "version": "8.1.0",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz",
- "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.2.0",
- "jsonfile": "^4.0.0",
- "universalify": "^0.1.0"
- }
- }
- }
- },
- "typedoc-default-themes": {
- "version": "0.10.2",
- "resolved": "https://registry.npmjs.org/typedoc-default-themes/-/typedoc-default-themes-0.10.2.tgz",
- "integrity": "sha512-zo09yRj+xwLFE3hyhJeVHWRSPuKEIAsFK5r2u47KL/HBKqpwdUSanoaz5L34IKiSATFrjG5ywmIu98hPVMfxZg==",
- "dev": true,
- "requires": {
- "lunr": "^2.3.8"
- }
- },
- "typedoc-plugin-markdown": {
- "version": "2.4.2",
- "resolved": "https://registry.npmjs.org/typedoc-plugin-markdown/-/typedoc-plugin-markdown-2.4.2.tgz",
- "integrity": "sha512-BBH+9/Uq5XbsqfzCDl8Jq4iaLXRMXRuAHZRFarAZX7df8+F3vUjDx/WHWoWqbZ/XUFzduLC2Iuy2qwsJX8SQ7A==",
- "dev": true,
- "requires": {
- "fs-extra": "^9.0.1",
- "handlebars": "^4.7.6"
- },
- "dependencies": {
- "fs-extra": {
- "version": "9.0.1",
- "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz",
- "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==",
- "dev": true,
- "requires": {
- "at-least-node": "^1.0.0",
- "graceful-fs": "^4.2.0",
- "jsonfile": "^6.0.1",
- "universalify": "^1.0.0"
- }
- },
- "jsonfile": {
- "version": "6.0.1",
- "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz",
- "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==",
- "dev": true,
- "requires": {
- "graceful-fs": "^4.1.6",
- "universalify": "^1.0.0"
- }
- },
- "universalify": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz",
- "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==",
- "dev": true
- }
- }
- },
- "typescript": {
- "version": "3.9.7",
- "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.9.7.tgz",
- "integrity": "sha512-BLbiRkiBzAwsjut4x/dsibSTB6yWpwT5qWmC2OfuCg3GgVQCSgMs4vEctYPhsaGtd0AeuuHMkjZ2h2WG8MSzRw==",
- "dev": true
- },
- "uglify-js": {
- "version": "3.10.4",
- "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.10.4.tgz",
- "integrity": "sha512-kBFT3U4Dcj4/pJ52vfjCSfyLyvG9VYYuGYPmrPvAxRw/i7xHiT4VvCev+uiEMcEEiu6UNB6KgWmGtSUYIWScbw==",
- "dev": true,
- "optional": true
- },
- "universalify": {
- "version": "0.1.2",
- "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz",
- "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg=="
- },
- "unzipper": {
- "version": "0.8.14",
- "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.8.14.tgz",
- "integrity": "sha512-8rFtE7EP5ssOwGpN2dt1Q4njl0N1hUXJ7sSPz0leU2hRdq6+pra57z4YPBlVqm40vcgv6ooKZEAx48fMTv9x4w==",
- "requires": {
- "big-integer": "^1.6.17",
- "binary": "~0.3.0",
- "bluebird": "~3.4.1",
- "buffer-indexof-polyfill": "~1.0.0",
- "duplexer2": "~0.1.4",
- "fstream": "~1.0.10",
- "listenercount": "~1.0.1",
- "readable-stream": "~2.1.5",
- "setimmediate": "~1.0.4"
- },
- "dependencies": {
- "isarray": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz",
- "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE="
- },
- "process-nextick-args": {
- "version": "1.0.7",
- "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz",
- "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M="
- },
- "readable-stream": {
- "version": "2.1.5",
- "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.1.5.tgz",
- "integrity": "sha1-ZvqLcg4UOLNkaB8q0aY8YYRIydA=",
- "requires": {
- "buffer-shims": "^1.0.0",
- "core-util-is": "~1.0.0",
- "inherits": "~2.0.1",
- "isarray": "~1.0.0",
- "process-nextick-args": "~1.0.6",
- "string_decoder": "~0.10.x",
- "util-deprecate": "~1.0.1"
- }
- }
- }
- },
- "uri-js": {
- "version": "4.4.0",
- "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.0.tgz",
- "integrity": "sha512-B0yRTzYdUCCn9n+F4+Gh4yIDtMQcaJsmYBDsTSG8g/OejKBodLQ2IHfN3bM7jUsRXndopT7OIXWdYqc1fjmV6g==",
- "requires": {
- "punycode": "^2.1.0"
- }
- },
- "url-join": {
- "version": "0.0.1",
- "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz",
- "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g="
- },
- "util-deprecate": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz",
- "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8="
- },
- "uuid": {
- "version": "3.4.0",
- "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz",
- "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
- },
- "verror": {
- "version": "1.10.0",
- "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz",
- "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=",
- "requires": {
- "assert-plus": "^1.0.0",
- "core-util-is": "1.0.2",
- "extsprintf": "^1.2.0"
- }
- },
- "which": {
- "version": "1.3.1",
- "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz",
- "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==",
- "requires": {
- "isexe": "^2.0.0"
- }
- },
- "which-pm-runs": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/which-pm-runs/-/which-pm-runs-1.0.0.tgz",
- "integrity": "sha1-Zws6+8VS4LVd9rd4DKdGFfI60cs="
- },
- "wide-align": {
- "version": "1.1.3",
- "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz",
- "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==",
- "requires": {
- "string-width": "^1.0.2 || 2"
- }
- },
- "window-size": {
- "version": "0.1.4",
- "resolved": "https://registry.npmjs.org/window-size/-/window-size-0.1.4.tgz",
- "integrity": "sha1-+OGqHuWlPsW/FR/6CXQqatdpeHY="
- },
- "wordwrap": {
- "version": "1.0.0",
- "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
- "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
- "dev": true
- },
- "wrap-ansi": {
- "version": "2.1.0",
- "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
- "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=",
- "requires": {
- "string-width": "^1.0.1",
- "strip-ansi": "^3.0.1"
- }
- },
- "wrappy": {
- "version": "1.0.2",
- "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz",
- "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8="
- },
- "y18n": {
- "version": "3.2.1",
- "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz",
- "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE="
- },
- "yallist": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz",
- "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A=="
- },
- "yargs": {
- "version": "3.32.0",
- "resolved": "https://registry.npmjs.org/yargs/-/yargs-3.32.0.tgz",
- "integrity": "sha1-AwiOnr+edWtpdRYR0qXvWRSCyZU=",
- "requires": {
- "camelcase": "^2.0.1",
- "cliui": "^3.0.3",
- "decamelize": "^1.1.1",
- "os-locale": "^1.4.0",
- "string-width": "^1.0.1",
- "window-size": "^0.1.4",
- "y18n": "^3.2.0"
- }
- }
- }
-}
diff --git a/package.json b/package.json
index 99e253a8..b7abff71 100644
--- a/package.json
+++ b/package.json
@@ -1,6 +1,6 @@
{
"name": "@nodegui/react-nodegui",
- "version": "0.9.0",
+ "version": "0.14.0",
"description": "React Native for building cross platform desktop applications",
"main": "dist/index.js",
"typings": "dist/index.d.ts",
@@ -20,22 +20,23 @@
"docs": "typedoc && node ./website/docs/scripts/fixdocs.js"
},
"dependencies": {
- "@nodegui/nodegui": "^0.25.0",
+ "@nodegui/nodegui": "^0.57.1",
"@types/react-reconciler": "^0.18.0",
- "phin": "^3.4.1",
+ "phin": "3.5.1",
"react-deep-force-update": "^2.1.3",
"react-proxy": "^2.0.8",
"react-reconciler": "^0.25.1"
},
"peerDependencies": {
- "react": "^16.9.0"
+ "react": "^16.14.0"
},
"devDependencies": {
- "@types/node": "^14.11.1",
- "prettier": "^2.1.2",
- "react": "^16.13.1",
+ "@types/node": "^16.11.0",
+ "@types/react": "^16.14.0",
+ "prettier": "^2.3.2",
+ "react": "^16.14.0",
"typedoc": "^0.17.8",
"typedoc-plugin-markdown": "^2.4.2",
- "typescript": "^3.9.7"
+ "typescript": "^4.4.4"
}
}
diff --git a/src/components/AbstractComponents/RNAbstractButton.ts b/src/components/AbstractComponents/RNAbstractButton.ts
index fc993b30..09092f4b 100644
--- a/src/components/AbstractComponents/RNAbstractButton.ts
+++ b/src/components/AbstractComponents/RNAbstractButton.ts
@@ -4,7 +4,7 @@ import { QAbstractButton } from "@nodegui/nodegui";
/**
* The Button component provides ability to add and manipulate native button widgets. It is based on
- * [NodeGui's QPushButton](https://docs.nodegui.org/docs/api/QPushButton).
+ * [NodeGui's QPushButton](https://docs.nodegui.org/docs/api/generated/classes/QPushButton).
* ## Example
* ```javascript
* import React from "react";
@@ -30,15 +30,15 @@ export interface AbstractButtonProps
*/
children?: string;
/**
- * Sets the given text to the button. [QPushButton: setText](https://docs.nodegui.org/docs/api/QPushButton#buttonsettexttext)
+ * Sets the given text to the button. [QPushButton: setText](https://docs.nodegui.org/docs/api/generated/classes/QPushButton#buttonsettexttext)
*/
text?: string;
/**
- * Sets an icon in the button. [QPushButton: setIcon](https://docs.nodegui.org/docs/api/QPushButton#buttonseticonicon)
+ * Sets an icon in the button. [QPushButton: setIcon](https://docs.nodegui.org/docs/api/generated/classes/QPushButton#buttonseticonicon)
*/
icon?: QIcon;
/**
- * Sets an icon size in the button. [QPushButton: setIconSize](https://docs.nodegui.org/docs/api/QPushButton#buttonseticonsize)
+ * Sets an icon size in the button. [QPushButton: setIconSize](https://docs.nodegui.org/docs/api/generated/classes/QPushButton#buttonseticonsize)
*/
iconSize?: QSize;
}
diff --git a/src/components/Action/RNAction.ts b/src/components/Action/RNAction.ts
index ba44cd5c..485ca481 100644
--- a/src/components/Action/RNAction.ts
+++ b/src/components/Action/RNAction.ts
@@ -38,7 +38,7 @@ export interface ActionProps extends RNProps {
icon?: QIcon;
/**
- * Sets the object name (id) of the widget in Qt. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world. [QWidget: setObjectName](https://docs.nodegui.org/docs/api/NodeWidget#widgetsetobjectnameobjectname)
+ * Sets the object name (id) of the widget in Qt. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world. [QWidget: setObjectName](https://docs.nodegui.org/docs/api/generated/classes/QWidget#widgetsetobjectnameobjectname)
*/
id?: string;
diff --git a/src/components/AnimatedImage/RNAnimatedImage.ts b/src/components/AnimatedImage/RNAnimatedImage.ts
index 0665b956..1b7f7062 100644
--- a/src/components/AnimatedImage/RNAnimatedImage.ts
+++ b/src/components/AnimatedImage/RNAnimatedImage.ts
@@ -1,4 +1,4 @@
-import { QLabel, NodeWidget, QMovie, QSize } from "@nodegui/nodegui";
+import { QLabel, QWidget, QMovie, QSize } from "@nodegui/nodegui";
import { TextProps, setTextProps } from "../Text/RNText";
import { RNWidget } from "../config";
import { throwUnsupported, isValidUrl } from "../../utils/helpers";
@@ -20,7 +20,7 @@ const setAnimatedImageProps = (
return;
}
getLoadedQMovie(imageUrlOrPath)
- .then(movie => {
+ .then((movie) => {
widget.setMovie(movie);
widget.movie()?.start();
})
@@ -31,7 +31,7 @@ const setAnimatedImageProps = (
movie.loadFromData(imageBuffer);
widget.setMovie(movie);
widget.movie()?.start();
- }
+ },
};
Object.assign(setter, newProps);
setTextProps(widget, newProps, oldProps);
@@ -44,16 +44,16 @@ export class RNAnimatedImage extends QLabel implements RNWidget {
setProps(newProps: AnimatedImageProps, oldProps: AnimatedImageProps): void {
setAnimatedImageProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "animatedimage";
diff --git a/src/components/BoxView/RNBoxView.ts b/src/components/BoxView/RNBoxView.ts
index 5696a447..15035f3f 100644
--- a/src/components/BoxView/RNBoxView.ts
+++ b/src/components/BoxView/RNBoxView.ts
@@ -2,11 +2,13 @@ import {
QWidget,
QBoxLayoutSignals,
QBoxLayout,
- NodeWidget,
Direction,
+ QLayout,
+ QObjectSignals,
} from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNComponent } from "../config";
+import { QDialog } from "@nodegui/nodegui/dist/lib/QtWidgets/QDialog";
export interface BoxViewProps extends ViewProps {
direction?: Direction;
@@ -19,7 +21,7 @@ const setBoxViewProps = (
) => {
const setter: BoxViewProps = {
set direction(direction: Direction) {
- widget.layout?.setDirection(direction);
+ widget.layout()?.setDirection(direction);
},
};
Object.assign(setter, newProps);
@@ -31,27 +33,37 @@ const setBoxViewProps = (
*/
export class RNBoxView extends QWidget implements RNComponent {
native: any;
- layout?: QBoxLayout;
initialProps?: BoxViewProps;
- children: Array> = [];
+ _children: Array> = [];
+
+ layout(): QBoxLayout | null {
+ return super.layout() as any;
+ }
+
+ setLayout(layout: QBoxLayout): void {
+ super.setLayout(layout);
+ }
setProps(newProps: BoxViewProps, oldProps: BoxViewProps): void {
- if (this.layout) {
+ if (this.layout()) {
setBoxViewProps(this, newProps, oldProps);
} else {
this.initialProps = newProps;
}
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
this.appendChild(child);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
+ if (child instanceof QDialog) {
+ return;
+ }
const updateChild = () => {
- this.layout?.addWidget(child);
- this.children.push(child);
+ this.layout()?.addWidget(child);
+ this._children.push(child);
};
- if (this.layout) {
+ if (this.layout()) {
updateChild();
return;
@@ -59,7 +71,6 @@ export class RNBoxView extends QWidget implements RNComponent {
const layout = new QBoxLayout(Direction.LeftToRight);
this.setLayout(layout);
- this.layout = layout;
// Newly created layout, so set initial props
if (this.initialProps) {
@@ -68,8 +79,11 @@ export class RNBoxView extends QWidget implements RNComponent {
updateChild();
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
- const prevIndex = this.children.indexOf(beforeChild);
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ if (child instanceof QDialog) {
+ return;
+ }
+ const prevIndex = this._children.indexOf(beforeChild);
if (prevIndex === -1) {
throw new Error(
@@ -77,14 +91,14 @@ export class RNBoxView extends QWidget implements RNComponent {
);
}
- this.children.splice(prevIndex, 0, child);
- this.layout?.insertWidget(prevIndex, child);
+ this._children.splice(prevIndex, 0, child);
+ this.layout()?.insertWidget(prevIndex, child);
}
- removeChild(child: NodeWidget): void {
- const prevIndex = this.children.indexOf(child);
+ removeChild(child: QWidget): void {
+ const prevIndex = this._children.indexOf(child);
if (prevIndex !== -1) {
- this.children.splice(prevIndex, 1);
+ this._children.splice(prevIndex, 1);
}
child.close();
diff --git a/src/components/Button/RNButton.ts b/src/components/Button/RNButton.ts
index f5c9f62a..f2bac8fe 100644
--- a/src/components/Button/RNButton.ts
+++ b/src/components/Button/RNButton.ts
@@ -1,4 +1,4 @@
-import { QPushButton, NodeWidget, QPushButtonSignals } from "@nodegui/nodegui";
+import { QPushButton, QWidget, QPushButtonSignals } from "@nodegui/nodegui";
import {
AbstractButtonProps,
setAbstractButtonProps
@@ -8,7 +8,7 @@ import { throwUnsupported } from "../../utils/helpers";
/**
* The Button component provides ability to add and manipulate native button widgets. It is based on
- * [NodeGui's QPushButton](https://docs.nodegui.org/docs/api/QPushButton).
+ * [NodeGui's QPushButton](https://docs.nodegui.org/docs/api/generated/classes/QPushButton).
* ## Example
* ```javascript
* import React from "react";
@@ -29,7 +29,7 @@ import { throwUnsupported } from "../../utils/helpers";
*/
export interface ButtonProps extends AbstractButtonProps {
/**
- * Sets whether the button border is raised. [QPushButton: setFlat](https://docs.nodegui.org/docs/api/QPushButton#buttonsetflatisflat)
+ * Sets whether the button border is raised. [QPushButton: setFlat](https://docs.nodegui.org/docs/api/generated/classes/QPushButton#buttonsetflatisflat)
*/
flat?: boolean;
}
@@ -52,16 +52,16 @@ const setButtonProps = (
* @ignore
*/
export class RNButton extends QPushButton implements RNWidget {
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
setProps(newProps: ButtonProps, oldProps: ButtonProps) {
diff --git a/src/components/Calendar/RNCalendar.ts b/src/components/Calendar/RNCalendar.ts
new file mode 100644
index 00000000..ecf4b8fc
--- /dev/null
+++ b/src/components/Calendar/RNCalendar.ts
@@ -0,0 +1,114 @@
+import {
+ Component,
+ DayOfWeek,
+ QCalendarWidget,
+ QCalendarWidgetSignals,
+ QFont,
+} from "@nodegui/nodegui";
+import {
+ HorizontalHeaderFormat,
+ SelectionMode,
+ VerticalHeaderFormat,
+} from "@nodegui/nodegui/dist/lib/QtWidgets/QCalendarWidget";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNComponent } from "../config";
+import { setViewProps, ViewProps } from "../View/RNView";
+
+export interface CalendarProps extends ViewProps {
+ /**
+ * Sets the time an inactive date edit is shown before its contents are accepted. [QCalendarWidget: setDateEditAcceptDelay](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setdateeditacceptdelay)
+ */
+ dateEditAcceptDelay?: number;
+ /**
+ * Sets whether the date edit popup is enabled. [QCalendarWidget: setDateEditEnabled](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setdateeditenabled)
+ */
+ dateEditEnabled?: boolean;
+ /**
+ * Sets a value identifying the day displayed in the first column. [QCalendarWidget: setFirstDayOfWeek](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setfirstdayofweek)
+ */
+ firstDayOfWeek?: DayOfWeek;
+ /**
+ * Sets a font for the action. [QCalendarWidget: setFont](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setfont)
+ */
+ font?: QFont;
+ /**
+ * Sets whether the table grid is displayed. [QCalendarWidget: setGridVisible](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setgridvisible)
+ */
+ gridVisible?: boolean;
+ /**
+ * Sets the format of the horizontal header. [QCalendarWidget: setHorizontalHeaderFormat](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#sethorizontalheaderformat)
+ */
+ horizontalHeaderFormat?: HorizontalHeaderFormat;
+ /**
+ * Sets whether the navigation bar is shown or not. [QCalendarWidget: setNavigationBarVisible](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setnavigationbarvisible)
+ */
+ navigationBarVisible?: boolean;
+ /**
+ * Sets the type of selection the user can make in the calendar. [QCalendarWidget: setSelectionMode](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setselectionmode)
+ */
+ selectionMode?: SelectionMode;
+ /**
+ * Sets the format of the vertical header. [QCalendarWidget: setVerticalHeaderFormat](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget#setverticalheaderformat)
+ */
+ verticalHeaderFormat?: VerticalHeaderFormat;
+}
+
+const setCalendarProps = (
+ widget: RNCalendar,
+ newProps: CalendarProps,
+ oldProps: CalendarProps
+) => {
+ const setter: CalendarProps = {
+ set dateEditAcceptDelay(delay: number) {
+ widget.setDateEditAcceptDelay(delay);
+ },
+ set dateEditEnabled(enable: boolean) {
+ widget.setDateEditEnabled(enable);
+ },
+ set firstDayOfWeek(dayOfWeek: DayOfWeek) {
+ widget.setFirstDayOfWeek(dayOfWeek);
+ },
+ set font(font: QFont) {
+ widget.setFont(font);
+ },
+ set gridVisible(show: boolean) {
+ widget.setGridVisible(show);
+ },
+ set horizontalHeaderFormat(format: HorizontalHeaderFormat) {
+ widget.setHorizontalHeaderFormat(format);
+ },
+ set navigationBarVisible(visible: boolean) {
+ widget.setNavigationBarVisible(visible);
+ },
+ set selectionMode(mode: SelectionMode) {
+ widget.setSelectionMode(mode);
+ },
+ set verticalHeaderFormat(format: VerticalHeaderFormat) {
+ widget.setVerticalHeaderFormat(format);
+ },
+ };
+ Object.assign(setter, newProps);
+ setViewProps(widget, newProps, oldProps);
+};
+
+/**
+ * @ignore
+ */
+export class RNCalendar extends QCalendarWidget implements RNComponent {
+ setProps(newProps: CalendarProps, oldProps: CalendarProps): void {
+ setCalendarProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: Component): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: Component): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: Component, beforeChild: Component): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: Component): void {
+ throwUnsupported(this);
+ }
+ static tagName = "calendar";
+}
diff --git a/src/components/Calendar/index.ts b/src/components/Calendar/index.ts
new file mode 100644
index 00000000..68970266
--- /dev/null
+++ b/src/components/Calendar/index.ts
@@ -0,0 +1,91 @@
+import { ComponentConfig, registerComponent, RNComponent } from "../config";
+import { AppContainer } from "../../reconciler";
+import { Fiber } from "react-reconciler";
+import { CalendarProps, RNCalendar } from "./RNCalendar";
+
+class CalendarConfig extends ComponentConfig {
+ tagName = RNCalendar.tagName;
+ shouldSetTextContent(nextProps: CalendarProps): boolean {
+ return false;
+ }
+ createInstance(
+ newProps: CalendarProps,
+ rootInstance?: AppContainer,
+ context?: any,
+ workInProgress?: Fiber
+ ): RNCalendar {
+ const widget = new RNCalendar();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(
+ instance: RNCalendar,
+ newProps: CalendarProps,
+ internalInstanceHandle: any
+ ): void {
+ if (newProps.visible !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(
+ instance: RNCalendar,
+ updatePayload: any,
+ oldProps: CalendarProps,
+ newProps: CalendarProps,
+ finishedWork: Fiber
+ ): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+
+/**
+ * The Calendar component provides ability to add calendar widgets. It is based on
+ * [NodeGui's QCalendarWidget](https://docs.nodegui.org/docs/api/generated/classes/qcalendarwidget/).
+ * @example
+ * ```typescriptreact
+ * import {
+ * DateFormat,
+ * DayOfWeek,
+ * NativeElement,
+ * QCalendarWidgetSignals,
+ * QDate,
+ * } from "@nodegui/nodegui";
+ * import {
+ * Calendar,
+ * Renderer,
+ * useEventHandler,
+ * Window,
+ * } from "@nodegui/react-nodegui";
+ * import React from "react";
+ * const App = () => {
+ * const calendarClickHandler = useEventHandler(
+ * {
+ * activated: (nativeDate) => {
+ * const date = new QDate(nativeDate as unknown as NativeElement);
+ * console.log(`activated: ${date.toString(DateFormat.SystemLocaleDate)}`);
+ * },
+ * clicked: (nativeDate) => {
+ * const date = new QDate(nativeDate as unknown as NativeElement);
+ * console.log(`clicked: ${date.toString(DateFormat.SystemLocaleDate)}`);
+ * },
+ * currentPageChanged: (year, month) => {
+ * console.log(`currentPageChanged: year, month: ${year}, ${month}`);
+ * },
+ * selectionChanged: () => {
+ * console.log("selectionChanged");
+ * },
+ * },
+ * []
+ * );
+ *
+ * return (
+ *
+ *
+ *
+ * );
+ * }
+ * Renderer.render();
+ * ```
+ */
+export const Calendar = registerComponent(new CalendarConfig());
diff --git a/src/components/CheckBox/RNCheckBox.ts b/src/components/CheckBox/RNCheckBox.ts
index e8441210..43b98773 100644
--- a/src/components/CheckBox/RNCheckBox.ts
+++ b/src/components/CheckBox/RNCheckBox.ts
@@ -1,4 +1,4 @@
-import { QCheckBox, NodeWidget, QCheckBoxSignals } from "@nodegui/nodegui";
+import { QCheckBox, QWidget, QCheckBoxSignals } from "@nodegui/nodegui";
import { RNWidget } from "../config";
import { throwUnsupported } from "../../utils/helpers";
import {
@@ -8,7 +8,7 @@ import {
/**
* The CheckBox component provides ability to add and manipulate native button widgets. It is based on
- * [NodeGui's QCheckBox](https://docs.nodegui.org/docs/api/QCheckBox).
+ * [NodeGui's QCheckBox](https://docs.nodegui.org/docs/api/generated/classes/QCheckBox).
* ## Example
* ```javascript
* import React from "react";
@@ -29,7 +29,7 @@ import {
*/
export interface CheckBoxProps extends AbstractButtonProps {
/**
- * This property holds whether the button is checked. [QCheckBox: setChecked](https://docs.nodegui.org/docs/api/QCheckBox/#checkboxsetcheckedcheck)
+ * This property holds whether the button is checked. [QCheckBox: setChecked](https://docs.nodegui.org/docs/api/generated/classes/QCheckBox/#checkboxsetcheckedcheck)
*/
checked?: boolean;
}
@@ -55,16 +55,16 @@ export class RNCheckBox extends QCheckBox implements RNWidget {
setProps(newProps: CheckBoxProps, oldProps: CheckBoxProps): void {
setCheckBoxProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "checkbox";
diff --git a/src/components/ColorDialog/RNColorDialog.ts b/src/components/ColorDialog/RNColorDialog.ts
new file mode 100644
index 00000000..5686fcef
--- /dev/null
+++ b/src/components/ColorDialog/RNColorDialog.ts
@@ -0,0 +1,47 @@
+import { QWidget, QColor, QColorDialog, QColorDialogSignals } from "@nodegui/nodegui";
+import { ColorDialogOption } from "@nodegui/nodegui/dist/lib/QtWidgets/QColorDialog";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+import { DialogOption } from "../FileDialog/RNFileDialog";
+
+export interface ColorDialogProps extends DialogProps {
+ currentColor?: QColor;
+ option?: DialogOption;
+ options?: ColorDialogOption;
+}
+
+function setColorDialogProps(widget: RNColorDialog, newProps: ColorDialogProps, oldProps: ColorDialogProps) {
+ const setter: ColorDialogProps = {
+ set currentColor(currentColor: QColor) {
+ widget.setCurrentColor(currentColor);
+ },
+ set option({ option, on }: DialogOption) {
+ widget.setOption(option, on);
+ },
+ set options(options: ColorDialogOption) {
+ widget.setOptions(options);
+ },
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNColorDialog extends QColorDialog implements RNWidget {
+ setProps(newProps: ColorDialogProps, oldProps: ColorDialogProps): void {
+ setColorDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "color-dialog";
+}
diff --git a/src/components/ColorDialog/index.ts b/src/components/ColorDialog/index.ts
new file mode 100644
index 00000000..d009a257
--- /dev/null
+++ b/src/components/ColorDialog/index.ts
@@ -0,0 +1,47 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNColorDialog, ColorDialogProps } from "./RNColorDialog";
+
+class ColorDialogConfig extends ComponentConfig {
+ tagName: string = RNColorDialog.tagName;
+ shouldSetTextContent(nextProps: ColorDialogProps): boolean {
+ return false;
+ }
+ createInstance(newProps: ColorDialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNColorDialog {
+ const widget = new RNColorDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNColorDialog, newProps: ColorDialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNColorDialog, updatePayload: any, oldProps: ColorDialogProps, newProps: ColorDialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up ColorDialog inheriting the functionality of nodegui's `QColorDialog`
+ * @example
+ * ```javascript
+ * function ColorDialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * const events = useEventHandler({
+ * colorSelected(color){
+ * //....do whatever
+ * }
+ * }, [....deps])
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const ColorDialog = registerComponent(new ColorDialogConfig());
diff --git a/src/components/ComboBox/RNComboBox.ts b/src/components/ComboBox/RNComboBox.ts
index ebb21ab5..da2deea5 100644
--- a/src/components/ComboBox/RNComboBox.ts
+++ b/src/components/ComboBox/RNComboBox.ts
@@ -1,6 +1,6 @@
import {
QComboBox,
- NodeWidget,
+ QWidget,
QSize,
QVariant,
SizeAdjustPolicy,
@@ -52,7 +52,7 @@ const setComboBoxProps = (
widget.setProperty("count", count);
},
set iconSize(iconSize: QSize) {
- widget.setProperty("iconSize", iconSize.native);
+ widget.setProperty("iconSize", iconSize.native!);
},
set frame(frame: boolean) {
widget.setProperty("frame", frame);
@@ -61,7 +61,7 @@ const setComboBoxProps = (
widget.setProperty("currentIndex", currentIndex);
},
set currentData(value: QVariant) {
- widget.setProperty("currentData", value.native);
+ widget.setProperty("currentData", value.native!);
},
set currentText(text: string) {
widget.setProperty("currentText", text);
@@ -102,16 +102,16 @@ export class RNComboBox extends QComboBox implements RNWidget {
setProps(newProps: ComboBoxProps, oldProps: ComboBoxProps): void {
setComboBoxProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "combobox";
diff --git a/src/components/Dial/RNDial.ts b/src/components/Dial/RNDial.ts
index b2cb70e4..959f74e0 100644
--- a/src/components/Dial/RNDial.ts
+++ b/src/components/Dial/RNDial.ts
@@ -1,4 +1,4 @@
-import { QDial, NodeWidget, QDialSignals } from "@nodegui/nodegui";
+import { QDial, QWidget, QDialSignals } from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNWidget } from "../config";
import { throwUnsupported } from "../../utils/helpers";
@@ -53,16 +53,16 @@ export class RNDial extends QDial implements RNWidget {
setProps(newProps: DialProps, oldProps: DialProps): void {
setDialProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "dial";
diff --git a/src/components/Dialog/RNDialog.ts b/src/components/Dialog/RNDialog.ts
new file mode 100644
index 00000000..eb875fcb
--- /dev/null
+++ b/src/components/Dialog/RNDialog.ts
@@ -0,0 +1,75 @@
+import { FlexLayout, FocusReason, QWidget, QDialog, QDialogSignals, QFont } from "@nodegui/nodegui";
+import { RNWidget } from "../config";
+import { setViewProps, ViewProps } from "../View/RNView";
+
+export interface DialogProps extends ViewProps {
+ open?: boolean;
+ font?: QFont;
+ focus?: FocusReason;
+ modal?: boolean;
+ result?: number;
+ reject?: boolean;
+ enableSizeGrip?: boolean;
+}
+
+export function setDialogProps(widget: RNDialog, newProps: DialogProps, oldProps: DialogProps) {
+ const setter: DialogProps = {
+ set open(open: boolean) {
+ open ? widget.open() : widget.close();
+ },
+ set font(font: QFont) {
+ widget.setFont(font);
+ },
+ set focus(focus: FocusReason) {
+ widget.setFocus(focus);
+ },
+ set modal(modal: boolean) {
+ widget.setModal(modal);
+ },
+ set reject(reject: boolean) {
+ reject && widget.reject();
+ },
+ set result(result: number) {
+ widget.setResult(result);
+ },
+ set enableSizeGrip(sizeGrip: boolean) {
+ widget.setSizeGripEnabled(sizeGrip);
+ },
+ };
+ Object.assign(setter, newProps);
+ setViewProps(widget, newProps, oldProps);
+}
+
+export class RNDialog extends QDialog implements RNWidget {
+ setProps(newProps: DialogProps, oldProps: DialogProps): void {
+ setDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ this.appendChild(child);
+ }
+ appendChild(child: QWidget): void {
+ if (!child || child instanceof QDialog) {
+ return;
+ }
+ if (!this.layout()) {
+ const flexLayout = new FlexLayout();
+ flexLayout.setFlexNode(this.getFlexNode());
+ this.setLayout(flexLayout);
+ }
+ this.layout()!.addWidget(child);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ if (child! instanceof QDialog) {
+ this.appendChild(child);
+ }
+ }
+ removeChild(child: QWidget): void {
+ if (!this.layout()) {
+ console.warn("parent has no layout to remove child from");
+ return;
+ }
+ this.layout()!.removeWidget(child);
+ child.close();
+ }
+ static tagName = "dialog";
+}
diff --git a/src/components/Dialog/index.ts b/src/components/Dialog/index.ts
new file mode 100644
index 00000000..365febaf
--- /dev/null
+++ b/src/components/Dialog/index.ts
@@ -0,0 +1,53 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { DialogProps, RNDialog } from "./RNDialog";
+
+class DialogConfig extends ComponentConfig {
+ tagName: string=RNDialog.tagName;
+ shouldSetTextContent(nextProps: DialogProps): boolean {
+ return false;
+ }
+ finalizeInitialChildren(
+ instance: RNDialog,
+ newProps: DialogProps,
+ rootContainerInstance: AppContainer,
+ context: any
+ ): boolean {
+ return true;
+ }
+ createInstance(newProps: DialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNDialog {
+ const widget = new RNDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNDialog, newProps: DialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNDialog, updatePayload: any, oldProps: DialogProps, newProps: DialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up Dialog inheriting the functionality of nodegui's `QDialog`
+ * @param minSize set minimum height, width to prevent errors
+ * @example
+ * ```javascript
+ * function DialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const Dialog = registerComponent(new DialogConfig());
\ No newline at end of file
diff --git a/src/components/ErrorPrompt/RNErrorPrompt.ts b/src/components/ErrorPrompt/RNErrorPrompt.ts
new file mode 100644
index 00000000..595bb3d0
--- /dev/null
+++ b/src/components/ErrorPrompt/RNErrorPrompt.ts
@@ -0,0 +1,38 @@
+import { QWidget, QErrorMessage, QErrorMessageSignals } from "@nodegui/nodegui";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+
+export interface ErrorPromptProps extends DialogProps {
+ message: string;
+}
+
+function setErrorPromptProps(widget: RNErrorPrompt, newProps: ErrorPromptProps, oldProps: ErrorPromptProps) {
+ const setter: ErrorPromptProps = {
+ set message(message: string) {
+ widget.showMessage(message);
+ widget.close();
+ },
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNErrorPrompt extends QErrorMessage implements RNWidget {
+ setProps(newProps: ErrorPromptProps, oldProps: ErrorPromptProps): void {
+ setErrorPromptProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "error-prompt";
+}
diff --git a/src/components/ErrorPrompt/index.ts b/src/components/ErrorPrompt/index.ts
new file mode 100644
index 00000000..14d987a2
--- /dev/null
+++ b/src/components/ErrorPrompt/index.ts
@@ -0,0 +1,43 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNErrorPrompt, ErrorPromptProps } from "./RNErrorPrompt";
+
+class ErrorPromptConfig extends ComponentConfig {
+ tagName: string = RNErrorPrompt.tagName;
+ shouldSetTextContent(nextProps: ErrorPromptProps): boolean {
+ return false;
+ }
+ createInstance(newProps: ErrorPromptProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNErrorPrompt {
+ const widget = new RNErrorPrompt();
+ widget.setProps(newProps, { message: "" });
+ return widget;
+ }
+ commitMount(instance: RNErrorPrompt, newProps: ErrorPromptProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNErrorPrompt, updatePayload: any, oldProps: ErrorPromptProps, newProps: ErrorPromptProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * ErrorPrompt inherits the functionality of nodegui's `QErrorMessage`
+ * @property `message` the message that needs to be displayed
+ * @example
+ * ```javascriptreact
+ * function ErrorApplet(){
+ * const [open, setOpen] = useState(false);
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const ErrorPrompt = registerComponent(new ErrorPromptConfig());
diff --git a/src/components/FileDialog/RNFileDialog.ts b/src/components/FileDialog/RNFileDialog.ts
new file mode 100644
index 00000000..2bfae6b2
--- /dev/null
+++ b/src/components/FileDialog/RNFileDialog.ts
@@ -0,0 +1,63 @@
+import { QWidget, QFileDialog, DialogLabel, QFileDialogSignals, Option } from "@nodegui/nodegui";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+
+export interface FileDialogLabelText{
+ label: DialogLabel,
+ text: string
+}
+
+export interface DialogOption {
+ option: T;
+ on: boolean;
+}
+
+export interface FileDialogProps extends DialogProps{
+ defaultSuffix?: string;
+ supportedSchemes?: string[];
+ labelText?: FileDialogLabelText;
+ option?: DialogOption,
+ options?: Option
+}
+
+function setFileDialogProps(widget: RNFileDialog, newProps: FileDialogProps, oldProps: FileDialogProps) {
+ const setter: FileDialogProps = {
+ set defaultSuffix(defaultSuffix: string) {
+ widget.setDefaultSuffix(defaultSuffix);
+ },
+ set supportedSchemes(supportedSchemes: string[]) {
+ widget.setSupportedSchemes(supportedSchemes);
+ },
+ set labelText(labelText: FileDialogLabelText) {
+ widget.setLabelText(labelText.label, labelText.text);
+ },
+ set option({option, on}: DialogOption) {
+ widget.setOption(option, on)
+ },
+ set options(options: Option) {
+ widget.setOptions(options);
+ }
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNFileDialog extends QFileDialog implements RNWidget {
+ setProps(newProps: FileDialogProps, oldProps: FileDialogProps): void {
+ setFileDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "file-dialog";
+}
diff --git a/src/components/FileDialog/index.ts b/src/components/FileDialog/index.ts
new file mode 100644
index 00000000..146c4f4e
--- /dev/null
+++ b/src/components/FileDialog/index.ts
@@ -0,0 +1,47 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNFileDialog, FileDialogProps } from "./RNFileDialog";
+
+class FileDialogConfig extends ComponentConfig {
+ tagName: string=RNFileDialog.tagName;
+ shouldSetTextContent(nextProps: FileDialogProps): boolean {
+ return false;
+ }
+ createInstance(newProps: FileDialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNFileDialog {
+ const widget = new RNFileDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNFileDialog, newProps: FileDialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNFileDialog, updatePayload: any, oldProps: FileDialogProps, newProps: FileDialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up FileDialog inheriting the functionality of nodegui's `QFileDialog`
+ * @example
+ * ```javascript
+ * function DialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * const events = useEventHandler({
+ * fileSelected(file){
+ * //....do whatever
+ * }
+ * }, [....deps])
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const FileDialog = registerComponent(new FileDialogConfig());
\ No newline at end of file
diff --git a/src/components/FontDialog/RNFontDialog.ts b/src/components/FontDialog/RNFontDialog.ts
new file mode 100644
index 00000000..3bf7f432
--- /dev/null
+++ b/src/components/FontDialog/RNFontDialog.ts
@@ -0,0 +1,46 @@
+import { FontDialogOption, QWidget, QFont, QFontDialog, QFontDialogSignals } from "@nodegui/nodegui";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+import { DialogOption } from "../FileDialog/RNFileDialog";
+
+export interface FontDialogProps extends DialogProps {
+ currentFont?: QFont;
+ option?: DialogOption;
+ options?: FontDialogOption;
+}
+
+function setFontDialogProps(widget: RNFontDialog, newProps: FontDialogProps, oldProps: FontDialogProps) {
+ const setter: FontDialogProps = {
+ set currentFont(currentFont: QFont) {
+ widget.setCurrentFont(currentFont);
+ },
+ set option({ option, on }: DialogOption) {
+ widget.setOption(option, on);
+ },
+ set options(options: FontDialogOption) {
+ widget.setOptions(options);
+ },
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNFontDialog extends QFontDialog implements RNWidget {
+ setProps(newProps: FontDialogProps, oldProps: FontDialogProps): void {
+ setFontDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "font-dialog";
+}
diff --git a/src/components/FontDialog/index.ts b/src/components/FontDialog/index.ts
new file mode 100644
index 00000000..cd06167f
--- /dev/null
+++ b/src/components/FontDialog/index.ts
@@ -0,0 +1,47 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNFontDialog, FontDialogProps } from "./RNFontDialog";
+
+class FontDialogConfig extends ComponentConfig {
+ tagName: string = RNFontDialog.tagName;
+ shouldSetTextContent(nextProps: FontDialogProps): boolean {
+ return false;
+ }
+ createInstance(newProps: FontDialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNFontDialog {
+ const widget = new RNFontDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNFontDialog, newProps: FontDialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNFontDialog, updatePayload: any, oldProps: FontDialogProps, newProps: FontDialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up FontDialog inheriting the functionality of nodegui's `QFontDialog`
+ * @example
+ * ```javascript
+ * function FontDialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * const events = useEventHandler({
+ * fontSelected(font){
+ * //....do whatever
+ * }
+ * }, [....deps])
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const FontDialog = registerComponent(new FontDialogConfig());
diff --git a/src/components/GridView/GridColumn/RNGridColumn.ts b/src/components/GridView/GridColumn/RNGridColumn.ts
index 234df6a7..0f5318fb 100644
--- a/src/components/GridView/GridColumn/RNGridColumn.ts
+++ b/src/components/GridView/GridColumn/RNGridColumn.ts
@@ -1,5 +1,5 @@
import { FunctionComponentElement } from "react";
-import { Component, NodeWidget } from "@nodegui/nodegui";
+import { Component, QWidget } from "@nodegui/nodegui";
import { RNComponent } from "../../config";
import { RNGridRow } from "../GridRow/RNGridRow";
@@ -18,8 +18,8 @@ const setGridColumnProps = (
) => {
if (widget.actualWidget) {
// TODO: Optimize this
- parentRow.parentGrid?.layout?.removeWidget(widget.actualWidget);
- parentRow.parentGrid?.layout?.addWidget(
+ parentRow.parentGrid?.layout()?.removeWidget(widget.actualWidget);
+ parentRow.parentGrid?.layout()?.addWidget(
widget.actualWidget,
parentRow.rowIndex ?? 0,
widget.columnIndex ?? 0,
@@ -38,7 +38,7 @@ const setGridColumnProps = (
export class RNGridColumn extends Component implements RNComponent {
native: any;
- actualWidget?: NodeWidget;
+ actualWidget?: QWidget;
parentRow?: RNGridRow;
latestProps?: GridColumnProps;
prevProps?: GridColumnProps;
@@ -61,7 +61,7 @@ export class RNGridColumn extends Component implements RNComponent {
return;
}
- this.parentRow?.parentGrid?.layout?.removeWidget(this.actualWidget);
+ this.parentRow?.parentGrid?.layout()?.removeWidget(this.actualWidget);
this.actualWidget.close();
this.actualWidget = undefined;
}
@@ -76,19 +76,19 @@ export class RNGridColumn extends Component implements RNComponent {
this.latestProps = newProps;
this.prevProps = oldProps;
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
if (this.actualWidget) {
throw new Error("Grid column can have only one child");
}
this.actualWidget = child;
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
this.appendInitialChild(child);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
this.appendInitialChild(child);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
this.remove();
}
static tagName: string = "gridcolumn";
diff --git a/src/components/GridView/GridColumn/index.ts b/src/components/GridView/GridColumn/index.ts
index 132e9250..74b1a613 100644
--- a/src/components/GridView/GridColumn/index.ts
+++ b/src/components/GridView/GridColumn/index.ts
@@ -14,7 +14,7 @@ class GridColumnConfig extends ComponentConfig {
context: any,
workInProgress: Fiber
): RNGridColumn {
- const widget = new RNGridColumn();
+ const widget = new RNGridColumn(null!);
widget.setProps(newProps, newProps);
return widget;
}
diff --git a/src/components/GridView/GridRow/index.ts b/src/components/GridView/GridRow/index.ts
index bcd12a05..94b69dec 100644
--- a/src/components/GridView/GridRow/index.ts
+++ b/src/components/GridView/GridRow/index.ts
@@ -14,7 +14,7 @@ class GridRowConfig extends ComponentConfig {
context: any,
workInProgress: Fiber
): RNGridRow {
- const widget = new RNGridRow();
+ const widget = new RNGridRow(null!);
widget.setProps(newProps, newProps);
return widget;
}
diff --git a/src/components/GridView/RNGridView.ts b/src/components/GridView/RNGridView.ts
index fb2f38da..edb707ee 100644
--- a/src/components/GridView/RNGridView.ts
+++ b/src/components/GridView/RNGridView.ts
@@ -1,5 +1,5 @@
import { FunctionComponentElement } from "react";
-import { QGridLayoutSignals, QGridLayout, QWidget } from "@nodegui/nodegui";
+import { QGridLayoutSignals, QGridLayout, QWidget, QLayout, QObjectSignals } from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNComponent } from "../config";
import { RNGridRow, GridRowProps } from "./GridRow/RNGridRow";
@@ -42,18 +42,18 @@ const setGridViewProps = (
) => {
const setter: Omit = {
set horizontalSpacing(spacing: number) {
- widget.layout?.setHorizontalSpacing(spacing);
+ widget.layout()?.setHorizontalSpacing(spacing);
},
set verticalSpacing(spacing: number) {
- widget.layout?.setVerticalSpacing(spacing);
+ widget.layout()?.setVerticalSpacing(spacing);
},
set columnProps(props: GridViewColumnProps) {
for (const indexString of Object.keys(props)) {
const index = parseInt(indexString, 10);
const { stretch, minWidth } = props[index];
- widget.layout?.setColumnStretch(index, stretch ?? 0);
- widget.layout?.setColumnMinimumWidth(index, minWidth ?? 0);
+ widget.layout()?.setColumnStretch(index, stretch ?? 0);
+ widget.layout()?.setColumnMinimumWidth(index, minWidth ?? 0);
}
},
set rowProps(props: GridViewRowProps) {
@@ -61,8 +61,8 @@ const setGridViewProps = (
const index = parseInt(indexString, 10);
const { stretch, minHeight } = props[index];
- widget.layout?.setRowStretch(index, stretch ?? 0);
- widget.layout?.setRowMinimumHeight(index, minHeight ?? 0);
+ widget.layout()?.setRowStretch(index, stretch ?? 0);
+ widget.layout()?.setRowMinimumHeight(index, minHeight ?? 0);
}
},
};
@@ -75,10 +75,17 @@ const setGridViewProps = (
*/
export class RNGridView extends QWidget implements RNComponent {
native: any;
- layout?: QGridLayout;
initialProps?: GridViewProps;
childRows: Array> = [];
+ layout(): QGridLayout | null {
+ return super.layout() as any;
+ }
+
+ setLayout(layout: QGridLayout): void {
+ super.setLayout(layout);
+ }
+
updateChildren(startIndex = 0): void {
updateDisplacedChildren(
startIndex,
@@ -92,7 +99,7 @@ export class RNGridView extends QWidget implements RNComponent {
/* RNComponent */
setProps(newProps: GridViewProps, oldProps: GridViewProps): void {
- if (this.layout) {
+ if (this.layout()) {
setGridViewProps(this, newProps, oldProps);
} else {
this.initialProps = newProps;
@@ -121,7 +128,7 @@ export class RNGridView extends QWidget implements RNComponent {
});
};
- if (this.layout) {
+ if (this.layout()) {
updateChild();
return;
@@ -129,7 +136,6 @@ export class RNGridView extends QWidget implements RNComponent {
const layout = new QGridLayout();
this.setLayout(layout);
- this.layout = layout;
// Newly created layout, so set initial props
if (this.initialProps) {
diff --git a/src/components/Image/RNImage.ts b/src/components/Image/RNImage.ts
index af000d94..1c66b6b9 100644
--- a/src/components/Image/RNImage.ts
+++ b/src/components/Image/RNImage.ts
@@ -2,7 +2,7 @@ import {
QLabel,
QPixmap,
AspectRatioMode,
- NodeWidget,
+ QWidget,
QSize,
TransformationMode,
} from "@nodegui/nodegui";
@@ -77,16 +77,16 @@ export class RNImage extends QLabel implements RNWidget {
setProps(newProps: ImageProps, oldProps: ImageProps): void {
setImageProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "image";
diff --git a/src/components/InputDialog/RNInputDialog.ts b/src/components/InputDialog/RNInputDialog.ts
new file mode 100644
index 00000000..113eda90
--- /dev/null
+++ b/src/components/InputDialog/RNInputDialog.ts
@@ -0,0 +1,101 @@
+import { EchoMode, InputDialogOptions, InputMode, QWidget, QInputDialog, QInputDialogSignals } from "@nodegui/nodegui";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+
+export interface InputDialogProps extends DialogProps{
+ cancelButtonText?: string,
+ comboBoxEditable?: boolean,
+ doubleDecimals?: number,
+ doubleMax?: number,
+ doubleMin?: number,
+ doubleStep?: number,
+ doubleValue?: number,
+ inputMode?: InputMode,
+ intMax?: number,
+ intMin?: number,
+ intStep?: number,
+ intValue?: number,
+ labelText?: string,
+ okButtonText?: string,
+ options?: InputDialogOptions,
+ textEchoMode?: EchoMode,
+ textValue?: string
+}
+
+function setInputDialogProps(widget: RNInputDialog, newProps: InputDialogProps, oldProps: InputDialogProps) {
+ const setter: InputDialogProps = {
+ set cancelButtonText(cancelButtonText: string){
+ widget.setCancelButtonText(cancelButtonText)
+ },
+ set comboBoxEditable(comboBoxEditable: boolean) {
+ widget.setComboBoxEditable(comboBoxEditable);
+ },
+ set doubleDecimals(doubleDecimals: number){
+ widget.setDoubleDecimals(doubleDecimals)
+ },
+ set doubleMax(doubleMax: number){
+ widget.setDoubleMaximum(doubleMax)
+ },
+ set doubleMin(doubleMin: number){
+ widget.setDoubleMinimum(doubleMin)
+ },
+ set doubleStep(doubleStep: number){
+ widget.setDoubleStep(doubleStep)
+ },
+ set doubleValue(doubleValue: number){
+ widget.setDoubleValue(doubleValue)
+ },
+ set inputMode(inputMode: InputMode){
+ widget.setInputMode(inputMode)
+ },
+ set intMax(intMax: number){
+ widget.setIntMaximum(intMax)
+ },
+ set intMin(intMi: number){
+ widget.setIntMinimum(intMi)
+ },
+ set intStep(intStep: number){
+ widget.setIntStep(intStep)
+ },
+ set intValue(intValue: number){
+ widget.setIntValue(intValue)
+ },
+ set labelText(labelText: string){
+ widget.setLabelText(labelText)
+ },
+ set okButtonText(okButtonText: string){
+ widget.setOkButtonText(okButtonText)
+ },
+ set options(options: InputDialogOptions){
+ widget.setOptions(options)
+ },
+ set textEchoMode(textEchoMode: EchoMode){
+ widget.setTextEchoMode(textEchoMode)
+ },
+ set textValue(textValue: string){
+ widget.setTextValue(textValue)
+ },
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNInputDialog extends QInputDialog implements RNWidget {
+ setProps(newProps: InputDialogProps, oldProps: InputDialogProps): void {
+ setInputDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "input-dialog";
+}
diff --git a/src/components/InputDialog/index.ts b/src/components/InputDialog/index.ts
new file mode 100644
index 00000000..6c7d2adf
--- /dev/null
+++ b/src/components/InputDialog/index.ts
@@ -0,0 +1,47 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNInputDialog, InputDialogProps } from "./RNInputDialog";
+
+class InputDialogConfig extends ComponentConfig {
+ tagName: string = RNInputDialog.tagName;
+ shouldSetTextContent(nextProps: InputDialogProps): boolean {
+ return false;
+ }
+ createInstance(newProps: InputDialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNInputDialog {
+ const widget = new RNInputDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNInputDialog, newProps: InputDialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNInputDialog, updatePayload: any, oldProps: InputDialogProps, newProps: InputDialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up InputDialog inheriting the functionality of nodegui's `QInputDialog`
+ * @example
+ * ```javascript
+ * function DialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * const events = useEventHandler({
+ * textValueChanged(value){
+ * //....do whatever
+ * }
+ * }, [....deps])
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const InputDialog = registerComponent(new InputDialogConfig());
diff --git a/src/components/LineEdit/RNLineEdit.ts b/src/components/LineEdit/RNLineEdit.ts
index 5f165a6e..2a6eca10 100644
--- a/src/components/LineEdit/RNLineEdit.ts
+++ b/src/components/LineEdit/RNLineEdit.ts
@@ -1,7 +1,7 @@
import {
QLineEdit,
EchoMode,
- NodeWidget,
+ QWidget,
QLineEditSignals
} from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
@@ -66,16 +66,16 @@ export class RNLineEdit extends QLineEdit implements RNWidget {
setProps(newProps: LineEditProps, oldProps: LineEditProps): void {
setLineEditProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "linedit";
diff --git a/src/components/List/RNList.ts b/src/components/List/RNList.ts
new file mode 100644
index 00000000..f5a5a11a
--- /dev/null
+++ b/src/components/List/RNList.ts
@@ -0,0 +1,58 @@
+import { FlexLayout, QListWidget, QListWidgetSignals } from "@nodegui/nodegui";
+import { ViewProps, setViewProps } from "../View/RNView";
+import { RNComponent } from "../config";
+import { RNListItem } from "../ListItem/RNListItem";
+
+
+export interface ListProps extends ViewProps {
+}
+
+type CustomListProps = ListProps;
+
+
+/**
+ * @ignore
+ */
+export const setListProps = (widget: RNList, newProps: CustomListProps, oldProps: CustomListProps) => {
+
+ const setter: CustomListProps = {
+ };
+ Object.assign(setter, newProps);
+ setViewProps(widget, newProps, oldProps);
+};
+
+/**
+ * @ignore
+ */
+export class RNList extends QListWidget implements RNComponent {
+ setProps(newProps: CustomListProps, oldProps: CustomListProps): void {
+ setListProps(this, newProps, oldProps);
+ }
+ removeChild(child: RNListItem): void {
+ const row = this.row(child);
+ this.takeItem(row);
+ }
+ appendInitialChild(child: RNListItem): void {
+ this.appendChild(child);
+ }
+ appendChild(child: RNListItem): void {
+ if (!this.layout()) {
+ this.setLayout(new FlexLayout());
+ }
+
+ if (!(child instanceof RNListItem)) {
+ throw new Error("Children of list should be of type ListItem");
+ }
+
+ this.addItem(child);
+ if (child.actualListItemWidget) {
+ child.setSizeHint(child.actualListItemWidget.size());
+ this.setItemWidget(child, child.actualListItemWidget);
+ }
+ }
+ insertBefore(child: RNListItem, beforeChild: RNListItem): void {
+ const row = this.row(beforeChild);
+ this.insertItem(row, child);
+ }
+ static tagName = "list";
+}
diff --git a/src/components/List/index.ts b/src/components/List/index.ts
new file mode 100644
index 00000000..6f1c3e58
--- /dev/null
+++ b/src/components/List/index.ts
@@ -0,0 +1,43 @@
+import { registerComponent, ComponentConfig } from "../config";
+import { Fiber } from "react-reconciler";
+import { RNList, ListProps } from "./RNList";
+import { AppContainer } from "../../reconciler";
+
+class ListConfig extends ComponentConfig {
+ tagName = RNList.tagName;
+ shouldSetTextContent(nextProps: ListProps): boolean {
+ return false;
+ }
+ createInstance(newProps: ListProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNList {
+ const widget = new RNList();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNList, newProps: ListProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNList, updatePayload: any, oldProps: ListProps, newProps: ListProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * React implementation of nodegui's [QListWidget](https://docs.nodegui.org/docs/api/generated/classes/qlistwidget/)
+ * @example
+ * ```javascriptreact
+ * return (
+ *
+
+
+
+ Hello World
+
+
+
+ * )
+ * ```
+ */
+
+export const List = registerComponent(new ListConfig());
diff --git a/src/components/ListItem/RNListItem.ts b/src/components/ListItem/RNListItem.ts
new file mode 100644
index 00000000..b8444c47
--- /dev/null
+++ b/src/components/ListItem/RNListItem.ts
@@ -0,0 +1,59 @@
+import { QWidget, QListWidgetItem, QIcon } from "@nodegui/nodegui";
+import { RNComponent } from "../config";
+
+export interface ListItemProps {
+ title?: string;
+ icon?: QIcon;
+}
+
+/**
+ * @ignore
+ */
+export const setListItemProps = (
+ widget: RNListItem,
+ newProps: ListItemProps,
+ oldProps: ListItemProps
+) => {
+ const setter: ListItemProps = {
+ set title(text: string) {
+ widget.setText(text);
+ },
+ set icon(qicon: QIcon) {
+ widget.setIcon(qicon);
+ }
+ };
+ Object.assign(setter, newProps);
+};
+
+/**
+ * @ignore
+ */
+export class RNListItem extends QListWidgetItem implements RNComponent {
+ native: any;
+ actualListItemWidget?: QWidget;
+
+ setProps(newProps: ListItemProps, oldProps: ListItemProps): void {
+ setListItemProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ if (this.actualListItemWidget) {
+ throw new Error("ListItem can have only one child");
+ }
+ this.actualListItemWidget = child;
+ }
+ appendChild(child: QWidget): void {
+ this.appendInitialChild(child);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ this.appendInitialChild(child);
+ }
+ removeChild(child: QWidget): void {
+ if (child) {
+ child.close();
+ }
+ if (this.actualListItemWidget) {
+ delete this.actualListItemWidget;
+ }
+ }
+ static tagName: string = "listitem";
+}
diff --git a/src/components/ListItem/index.ts b/src/components/ListItem/index.ts
new file mode 100644
index 00000000..7bee20ba
--- /dev/null
+++ b/src/components/ListItem/index.ts
@@ -0,0 +1,40 @@
+import { Fiber } from "react-reconciler";
+import { registerComponent, ComponentConfig } from "../config";
+import { RNListItem, ListItemProps } from "./RNListItem";
+import { AppContainer } from "../../reconciler";
+
+class ListItemConfig extends ComponentConfig {
+ tagName = RNListItem.tagName;
+ shouldSetTextContent(nextProps: ListItemProps): boolean {
+ return false;
+ }
+ createInstance(
+ newProps: ListItemProps,
+ rootInstance: AppContainer,
+ context: any,
+ workInProgress: Fiber
+ ): RNListItem {
+ const item = new RNListItem();
+ item.setProps(newProps, {});
+ return item;
+ }
+ finalizeInitialChildren(
+ instance: RNListItem,
+ newProps: ListItemProps,
+ rootContainerInstance: AppContainer,
+ context: any
+ ): boolean {
+ return false;
+ }
+ commitUpdate(
+ instance: RNListItem,
+ updatePayload: any,
+ oldProps: ListItemProps,
+ newProps: ListItemProps,
+ finishedWork: Fiber
+ ): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+
+export const ListItem = registerComponent(new ListItemConfig());
diff --git a/src/components/Menu/RNMenu.ts b/src/components/Menu/RNMenu.ts
index 68656942..704bedd7 100644
--- a/src/components/Menu/RNMenu.ts
+++ b/src/components/Menu/RNMenu.ts
@@ -1,4 +1,4 @@
-import { QMenu, QMenuSignals, Component, NodeWidget } from "@nodegui/nodegui";
+import { QMenu, QMenuSignals, Component, QWidget } from "@nodegui/nodegui";
import { RNWidget } from "../config";
import { throwUnsupported } from "../../utils/helpers";
import { RNAction } from "../Action/RNAction";
diff --git a/src/components/MenuBar/RNMenuBar.ts b/src/components/MenuBar/RNMenuBar.ts
index ca5acae3..1118a163 100644
--- a/src/components/MenuBar/RNMenuBar.ts
+++ b/src/components/MenuBar/RNMenuBar.ts
@@ -1,4 +1,4 @@
-import { NodeWidget, QMenu, QMenuBar, QMenuBarSignals } from "@nodegui/nodegui";
+import { QWidget, QMenu, QMenuBar, QMenuBarSignals } from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNWidget } from "../config";
import { throwUnsupported } from "../../utils/helpers";
@@ -35,13 +35,13 @@ export class RNMenuBar extends QMenuBar implements RNWidget {
appendChild(child: QMenu): void {
this.appendInitialChild(child);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
console.warn(
"Updating menubar is not yet supported. Please help by raising a PR"
);
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
console.warn(
"Updating menubar is not yet supported. Please help by raising a PR"
);
diff --git a/src/components/PlainTextEdit/RNPlainTextEdit.ts b/src/components/PlainTextEdit/RNPlainTextEdit.ts
index 72d26db2..1bb4af09 100644
--- a/src/components/PlainTextEdit/RNPlainTextEdit.ts
+++ b/src/components/PlainTextEdit/RNPlainTextEdit.ts
@@ -1,6 +1,6 @@
import {
QPlainTextEdit,
- NodeWidget,
+ QWidget,
QPlainTextEditSignals
} from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
@@ -66,16 +66,16 @@ export class RNPlainTextEdit extends QPlainTextEdit implements RNWidget {
setProps(newProps: PlainTextEditProps, oldProps: PlainTextEditProps): void {
setPlainTextEditProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "plaintextedit";
diff --git a/src/components/ProgressBar/RNProgressBar.ts b/src/components/ProgressBar/RNProgressBar.ts
index 91e0c378..0096d5f7 100644
--- a/src/components/ProgressBar/RNProgressBar.ts
+++ b/src/components/ProgressBar/RNProgressBar.ts
@@ -1,7 +1,7 @@
import {
QProgressBar,
Orientation,
- NodeWidget,
+ QWidget,
QProgressBarSignals
} from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
@@ -62,16 +62,16 @@ export class RNProgressBar extends QProgressBar implements RNWidget {
setProps(newProps: ProgressBarProps, oldProps: ProgressBarProps): void {
setProgressBarProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "progressbar";
diff --git a/src/components/ProgressDialog/RNProgressDialog.ts b/src/components/ProgressDialog/RNProgressDialog.ts
new file mode 100644
index 00000000..448eaedb
--- /dev/null
+++ b/src/components/ProgressDialog/RNProgressDialog.ts
@@ -0,0 +1,88 @@
+import { QWidget, QProgressDialog, QProgressDialogSignals } from "@nodegui/nodegui";
+import { throwUnsupported } from "../../utils/helpers";
+import { RNWidget } from "../config";
+import { DialogProps, setDialogProps } from "../Dialog/RNDialog";
+
+interface ProgressBarRange {
+ max: number;
+ min: number;
+}
+
+export interface ProgressDialogProps extends DialogProps {
+ autoClose?: boolean;
+ autoReset?: boolean;
+ cancelButtonText?: string;
+ labelText?: string;
+ maxValue?: number;
+ minValue?: number;
+ /**
+ * This property holds the time(`in milliseconds`) that must pass before the dialog appears.
+ *
+ * https://doc.qt.io/qt-5/qprogressdialog.html#minimumDuration-prop
+ * @default 4
+ */
+ minDuration?: number;
+ range?: ProgressBarRange;
+ value?: number;
+ /**
+ * Set this to `false` to allow the progress dialog opening
+ * automatically when window first mounts
+ */
+ shouldReset?: boolean;
+}
+
+function setProgressDialogProps(widget: RNProgressDialog, newProps: ProgressDialogProps, oldProps: ProgressDialogProps) {
+ const setter: ProgressDialogProps = {
+ set shouldReset(shouldReset: boolean) {
+ shouldReset && widget.reset();
+ },
+ set autoClose(autoClose: boolean) {
+ widget.setAutoClose(autoClose);
+ },
+ set autoReset(autoReset: boolean) {
+ widget.setAutoReset(autoReset);
+ },
+ set cancelButtonText(cancelButtonText: string) {
+ widget.setCancelButtonText(cancelButtonText);
+ },
+ set labelText(labelText: string) {
+ widget.setLabelText(labelText);
+ },
+ set maxValue(maxValue: number) {
+ widget.setMaximum(maxValue);
+ },
+ set minValue(minValue: number) {
+ widget.setMinimum(minValue);
+ },
+ set minDuration(minDuration: number) {
+ widget.setMinimumDuration(minDuration);
+ },
+ set range({ max, min }: ProgressBarRange) {
+ widget.setRange(min, max);
+ },
+ set value(value: number) {
+ widget.setValue(value);
+ },
+ };
+ Object.assign(setter, newProps);
+ setDialogProps(widget, newProps, oldProps);
+}
+
+export class RNProgressDialog extends QProgressDialog implements RNWidget {
+ setProps(newProps: ProgressDialogProps, oldProps: ProgressDialogProps): void {
+ setProgressDialogProps(this, newProps, oldProps);
+ }
+ appendInitialChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ appendChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
+ throwUnsupported(this);
+ }
+ removeChild(child: QWidget): void {
+ throwUnsupported(this);
+ }
+ static tagName = "progress-dialog";
+}
diff --git a/src/components/ProgressDialog/index.ts b/src/components/ProgressDialog/index.ts
new file mode 100644
index 00000000..a9da8b2f
--- /dev/null
+++ b/src/components/ProgressDialog/index.ts
@@ -0,0 +1,59 @@
+import { Fiber } from "react-reconciler";
+import { AppContainer } from "../../reconciler";
+import { ComponentConfig, registerComponent } from "../config";
+import { RNProgressDialog, ProgressDialogProps } from "./RNProgressDialog";
+
+class ProgressDialogConfig extends ComponentConfig {
+ tagName: string = RNProgressDialog.tagName;
+ shouldSetTextContent(nextProps: ProgressDialogProps): boolean {
+ return false;
+ }
+ createInstance(newProps: ProgressDialogProps, rootInstance: AppContainer, context: any, workInProgress: Fiber): RNProgressDialog {
+ const widget = new RNProgressDialog();
+ widget.setProps(newProps, {});
+ return widget;
+ }
+ commitMount(instance: RNProgressDialog, newProps: ProgressDialogProps, internalInstanceHandle: any): void {
+ if (newProps.visible !== false && newProps.open !== false) {
+ instance.show();
+ }
+ return;
+ }
+ commitUpdate(instance: RNProgressDialog, updatePayload: any, oldProps: ProgressDialogProps, newProps: ProgressDialogProps, finishedWork: Fiber): void {
+ instance.setProps(newProps, oldProps);
+ }
+}
+/**
+ * Pop up ProgressDialog inheriting the functionality of nodegui's `QProgressDialog`
+ * @example
+ * ```javascript
+ * function ProgressDialogExample(props){
+ * const [open, setOpen] = useState(false);
+ * const events = useEventHandler({
+ * canceled(){
+ * setOpen(false);
+ * //....do whatever
+ * }
+ * }, [....deps])
+ * const [value, setValue] = useState(0);
+ * return (
+ *
+ *
+ *
+ * )
+ * }
+ * ```
+ */
+
+export const ProgressDialog = registerComponent(new ProgressDialogConfig());
diff --git a/src/components/RadioButton/RNRadioButton.ts b/src/components/RadioButton/RNRadioButton.ts
index ee137dbc..415b3ec0 100644
--- a/src/components/RadioButton/RNRadioButton.ts
+++ b/src/components/RadioButton/RNRadioButton.ts
@@ -1,6 +1,6 @@
import {
QRadioButton,
- NodeWidget,
+ QWidget,
QRadioButtonSignals
} from "@nodegui/nodegui";
import { RNWidget } from "../config";
@@ -34,16 +34,16 @@ export class RNRadioButton extends QRadioButton implements RNWidget {
setProps(newProps: RadioButtonProps, oldProps: RadioButtonProps): void {
setRadioButtonProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "radiobutton";
diff --git a/src/components/ScrollArea/RNScrollArea.ts b/src/components/ScrollArea/RNScrollArea.ts
index 0f9a8b78..2cd82f29 100644
--- a/src/components/ScrollArea/RNScrollArea.ts
+++ b/src/components/ScrollArea/RNScrollArea.ts
@@ -1,4 +1,4 @@
-import { QScrollArea, NodeWidget, QScrollAreaSignals } from "@nodegui/nodegui";
+import { QScrollArea, QWidget, QScrollAreaSignals } from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNWidget } from "../config";
@@ -27,24 +27,24 @@ export class RNScrollArea extends QScrollArea implements RNWidget {
setProps(newProps: ScrollAreaProps, oldProps: ScrollAreaProps): void {
setScrollAreaProps(this, newProps, oldProps);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
const removedChild = this.takeWidget();
if (removedChild) {
removedChild.close();
}
child.close();
}
- appendInitialChild(child: NodeWidget): void {
- if (this.contentWidget) {
+ appendInitialChild(child: QWidget): void {
+ if (this.widget()) {
console.warn("ScrollView can't have more than one child node");
return;
}
this.setWidget(child);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
this.appendInitialChild(child);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
this.appendInitialChild(child);
}
static tagName = "scrollarea";
diff --git a/src/components/Slider/RNSlider.ts b/src/components/Slider/RNSlider.ts
index 7b1b5ca4..500a165d 100644
--- a/src/components/Slider/RNSlider.ts
+++ b/src/components/Slider/RNSlider.ts
@@ -1,4 +1,4 @@
-import { QSlider, NodeWidget, QSliderSignals, TickPosition, Orientation } from '@nodegui/nodegui';
+import { QSlider, QWidget, QSliderSignals, TickPosition, Orientation } from '@nodegui/nodegui';
import { setViewProps, ViewProps } from '../View/RNView';
import { RNWidget } from '../config';
import { throwUnsupported } from '../../utils/helpers';
@@ -77,19 +77,19 @@ export class RNSlider extends QSlider implements RNWidget {
setSliderProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
diff --git a/src/components/SpinBox/RNSpinBox.ts b/src/components/SpinBox/RNSpinBox.ts
index e546bfb7..68fcf2b4 100644
--- a/src/components/SpinBox/RNSpinBox.ts
+++ b/src/components/SpinBox/RNSpinBox.ts
@@ -1,4 +1,4 @@
-import { QSpinBox, NodeWidget, QSpinBoxSignals } from "@nodegui/nodegui";
+import { QSpinBox, QWidget, QSpinBoxSignals } from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNWidget } from "../config";
import { throwUnsupported } from "../../utils/helpers";
@@ -67,16 +67,16 @@ export class RNSpinBox extends QSpinBox implements RNWidget {
setProps(newProps: SpinBoxProps, oldProps: SpinBoxProps): void {
setSpinBoxProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
throwUnsupported(this);
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
throwUnsupported(this);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
static tagName = "spinbox";
diff --git a/src/components/SystemTrayIcon/RNSystemTrayIcon.ts b/src/components/SystemTrayIcon/RNSystemTrayIcon.ts
index 4f8a355b..caf25e99 100644
--- a/src/components/SystemTrayIcon/RNSystemTrayIcon.ts
+++ b/src/components/SystemTrayIcon/RNSystemTrayIcon.ts
@@ -2,7 +2,7 @@ import { WidgetEventListeners } from "../View/RNView";
import {
QSystemTrayIconSignals,
QSystemTrayIcon,
- NodeWidget,
+ QWidget,
QIcon,
QMenu,
} from "@nodegui/nodegui";
@@ -47,7 +47,7 @@ export interface SystemTrayIconProps extends RNProps {
icon?: QIcon;
/**
- * Sets the object name (id) of the widget in Qt. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world. [QWidget: setObjectName](https://docs.nodegui.org/docs/api/NodeWidget#widgetsetobjectnameobjectname)
+ * Sets the object name (id) of the widget in Qt. Object name can be analogous to id of an element in the web world. Using the objectName of the widget one can reference it in the Qt's stylesheet much like what we do with id in the web world. [QWidget: setObjectName](https://docs.nodegui.org/docs/api/generated/classes/QWidget#widgetsetobjectnameobjectname)
*/
id?: string;
@@ -62,7 +62,7 @@ export interface SystemTrayIconProps extends RNProps {
tooltip?: string;
/**
- * Shows or hides the widget and its children. [QWidget: show](https://docs.nodegui.org/docs/api/NodeWidget#widgetshow)
+ * Shows or hides the widget and its children. [QWidget: show](https://docs.nodegui.org/docs/api/generated/classes/QWidget#widgetshow)
*/
visible?: boolean;
}
@@ -114,13 +114,15 @@ const setSystemTrayIconProps = (
*/
export class RNSystemTrayIcon extends QSystemTrayIcon implements RNComponent {
static tagName = "systemtrayicon";
+ contextMenu: QMenu | null = null;
setProps(newProps: SystemTrayIconProps, oldProps: SystemTrayIconProps): void {
setSystemTrayIconProps(this, newProps, oldProps);
}
- appendInitialChild(child: NodeWidget): void {
+ appendInitialChild(child: QWidget): void {
if (child instanceof QMenu) {
if (!this.contextMenu) {
+ this.contextMenu = child;
this.setContextMenu(child);
} else {
console.warn("SystemTrayIcon can't have more than one Menu.");
@@ -129,13 +131,13 @@ export class RNSystemTrayIcon extends QSystemTrayIcon implements RNComponent {
console.warn("SystemTrayIcon only supports Menu as its children");
}
}
- appendChild(child: NodeWidget): void {
+ appendChild(child: QWidget): void {
this.appendInitialChild(child);
}
- insertBefore(child: NodeWidget, beforeChild: NodeWidget): void {
+ insertBefore(child: QWidget, beforeChild: QWidget): void {
throwUnsupported(this);
}
- removeChild(child: NodeWidget): void {
+ removeChild(child: QWidget): void {
throwUnsupported(this);
}
}
diff --git a/src/components/Tab/RNTab.ts b/src/components/Tab/RNTab.ts
index 9333cce7..27219f68 100644
--- a/src/components/Tab/RNTab.ts
+++ b/src/components/Tab/RNTab.ts
@@ -3,7 +3,7 @@ import {
QTabWidgetSignals,
TabPosition,
QIcon,
- NodeWidget
+ QWidget
} from "@nodegui/nodegui";
import { ViewProps, setViewProps } from "../View/RNView";
import { RNComponent } from "../config";
@@ -56,13 +56,13 @@ export class RNTab extends QTabWidget implements RNComponent {
if (!(child instanceof RNTabItem)) {
throw new Error("Children of tab should be of type TabItem");
}
- const index = this.indexOf(beforeChild.actualTabWidget as NodeWidget);
- this.insertTab(index, child.actualTabWidget as NodeWidget, new QIcon(), "");
+ const index = this.indexOf(beforeChild.actualTabWidget as QWidget);
+ this.insertTab(index, child.actualTabWidget as QWidget, new QIcon(), "");
child.parentTab = this;
setTabItemProps(child, this, child.initialProps, {});
}
removeChild(child: RNTabItem): void {
- const childIndex = this.indexOf(child.actualTabWidget as NodeWidget