| @@ -10,11 +10,10 | |||||
| 10 | "license": "BSD-2-Clause", |
|
10 | "license": "BSD-2-Clause", | |
| 11 | "devDependencies": { |
|
11 | "devDependencies": { | |
| 12 | "@implab/core-amd": "^1.4.0", |
|
12 | "@implab/core-amd": "^1.4.0", | |
| 13 | "@implab/dojo-typings": "/home/sergey/projects/implabjs-dojo-typings/dojo-typings/build/npm/package/implab-dojo-typings-v1.0.0-rc4.tgz", |
|
13 | "@implab/dojo-typings": "1.0.0", | |
| 14 | "@types/chai": "4.1.3", |
|
14 | "@types/chai": "4.1.3", | |
| 15 | "@types/requirejs": "2.1.31", |
|
15 | "@types/requirejs": "2.1.31", | |
| 16 | "@types/yaml": "1.2.0", |
|
16 | "@types/yaml": "1.2.0", | |
| 17 | "chai": "4.2.0", |
|
|||
| 18 | "dojo": "1.16.0", |
|
17 | "dojo": "1.16.0", | |
| 19 | "eslint": "6.8.0", |
|
18 | "eslint": "6.8.0", | |
| 20 | "requirejs": "2.3.6", |
|
19 | "requirejs": "2.3.6", | |
| @@ -63,11 +62,10 | |||||
| 63 | "dev": true |
|
62 | "dev": true | |
| 64 | }, |
|
63 | }, | |
| 65 | "node_modules/@implab/dojo-typings": { |
|
64 | "node_modules/@implab/dojo-typings": { | |
| 66 |
"version": " |
|
65 | "version": "1.0.0", | |
| 67 |
"resolved": " |
|
66 | "resolved": "https://registry.npmjs.org/@implab/dojo-typings/-/dojo-typings-1.0.0.tgz", | |
| 68 | "integrity": "sha512-whWA/3shw3j4WFdmh5ml9BYZMj4KFruv1YXtz29W0LXMNpmj5nyyM8FJYYCdtvWJEGvnEUcUCQ0zsZ+Gh5ah9Q==", |
|
67 | "integrity": "sha512-B2kvlKJgvyIQAl/k1pVyNmtp4ADvBDCs4Lw/qfBC+Sz/ft4c7EuRXmN/+2dhWrd6A5SMjEgex5oeq6Ja2ntrig==", | |
| 69 |
"dev": true |
|
68 | "dev": true | |
| 70 | "license": "MIT" |
|
|||
| 71 | }, |
|
69 | }, | |
| 72 | "node_modules/@types/chai": { |
|
70 | "node_modules/@types/chai": { | |
| 73 | "version": "4.1.3", |
|
71 | "version": "4.1.3", | |
| @@ -159,15 +157,6 | |||||
| 159 | "sprintf-js": "~1.0.2" |
|
157 | "sprintf-js": "~1.0.2" | |
| 160 | } |
|
158 | } | |
| 161 | }, |
|
159 | }, | |
| 162 | "node_modules/assertion-error": { |
|
|||
| 163 | "version": "1.1.0", |
|
|||
| 164 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", |
|
|||
| 165 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", |
|
|||
| 166 | "dev": true, |
|
|||
| 167 | "engines": { |
|
|||
| 168 | "node": "*" |
|
|||
| 169 | } |
|
|||
| 170 | }, |
|
|||
| 171 | "node_modules/astral-regex": { |
|
160 | "node_modules/astral-regex": { | |
| 172 | "version": "1.0.0", |
|
161 | "version": "1.0.0", | |
| 173 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
|
162 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | |
| @@ -211,23 +200,6 | |||||
| 211 | "node": ">=6" |
|
200 | "node": ">=6" | |
| 212 | } |
|
201 | } | |
| 213 | }, |
|
202 | }, | |
| 214 | "node_modules/chai": { |
|
|||
| 215 | "version": "4.2.0", |
|
|||
| 216 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", |
|
|||
| 217 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", |
|
|||
| 218 | "dev": true, |
|
|||
| 219 | "dependencies": { |
|
|||
| 220 | "assertion-error": "^1.1.0", |
|
|||
| 221 | "check-error": "^1.0.2", |
|
|||
| 222 | "deep-eql": "^3.0.1", |
|
|||
| 223 | "get-func-name": "^2.0.0", |
|
|||
| 224 | "pathval": "^1.1.0", |
|
|||
| 225 | "type-detect": "^4.0.5" |
|
|||
| 226 | }, |
|
|||
| 227 | "engines": { |
|
|||
| 228 | "node": ">=4" |
|
|||
| 229 | } |
|
|||
| 230 | }, |
|
|||
| 231 | "node_modules/chalk": { |
|
203 | "node_modules/chalk": { | |
| 232 | "version": "2.4.2", |
|
204 | "version": "2.4.2", | |
| 233 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
|
205 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | |
| @@ -248,15 +220,6 | |||||
| 248 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", |
|
220 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | |
| 249 | "dev": true |
|
221 | "dev": true | |
| 250 | }, |
|
222 | }, | |
| 251 | "node_modules/check-error": { |
|
|||
| 252 | "version": "1.0.2", |
|
|||
| 253 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", |
|
|||
| 254 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", |
|
|||
| 255 | "dev": true, |
|
|||
| 256 | "engines": { |
|
|||
| 257 | "node": "*" |
|
|||
| 258 | } |
|
|||
| 259 | }, |
|
|||
| 260 | "node_modules/cli-cursor": { |
|
223 | "node_modules/cli-cursor": { | |
| 261 | "version": "3.1.0", |
|
224 | "version": "3.1.0", | |
| 262 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", |
|
225 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | |
| @@ -336,18 +299,6 | |||||
| 336 | "ms": "^2.1.1" |
|
299 | "ms": "^2.1.1" | |
| 337 | } |
|
300 | } | |
| 338 | }, |
|
301 | }, | |
| 339 | "node_modules/deep-eql": { |
|
|||
| 340 | "version": "3.0.1", |
|
|||
| 341 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", |
|
|||
| 342 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", |
|
|||
| 343 | "dev": true, |
|
|||
| 344 | "dependencies": { |
|
|||
| 345 | "type-detect": "^4.0.0" |
|
|||
| 346 | }, |
|
|||
| 347 | "engines": { |
|
|||
| 348 | "node": ">=0.12" |
|
|||
| 349 | } |
|
|||
| 350 | }, |
|
|||
| 351 | "node_modules/deep-is": { |
|
302 | "node_modules/deep-is": { | |
| 352 | "version": "0.1.3", |
|
303 | "version": "0.1.3", | |
| 353 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", |
|
304 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | |
| @@ -638,15 +589,6 | |||||
| 638 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", |
|
589 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", | |
| 639 | "dev": true |
|
590 | "dev": true | |
| 640 | }, |
|
591 | }, | |
| 641 | "node_modules/get-func-name": { |
|
|||
| 642 | "version": "2.0.0", |
|
|||
| 643 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", |
|
|||
| 644 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", |
|
|||
| 645 | "dev": true, |
|
|||
| 646 | "engines": { |
|
|||
| 647 | "node": "*" |
|
|||
| 648 | } |
|
|||
| 649 | }, |
|
|||
| 650 | "node_modules/glob": { |
|
592 | "node_modules/glob": { | |
| 651 | "version": "7.1.6", |
|
593 | "version": "7.1.6", | |
| 652 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", |
|
594 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | |
| @@ -1018,15 +960,6 | |||||
| 1018 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", |
|
960 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", | |
| 1019 | "dev": true |
|
961 | "dev": true | |
| 1020 | }, |
|
962 | }, | |
| 1021 | "node_modules/pathval": { |
|
|||
| 1022 | "version": "1.1.0", |
|
|||
| 1023 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", |
|
|||
| 1024 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", |
|
|||
| 1025 | "dev": true, |
|
|||
| 1026 | "engines": { |
|
|||
| 1027 | "node": "*" |
|
|||
| 1028 | } |
|
|||
| 1029 | }, |
|
|||
| 1030 | "node_modules/prelude-ls": { |
|
963 | "node_modules/prelude-ls": { | |
| 1031 | "version": "1.1.2", |
|
964 | "version": "1.1.2", | |
| 1032 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", |
|
965 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | |
| @@ -1425,15 +1358,6 | |||||
| 1425 | "node": ">= 0.8.0" |
|
1358 | "node": ">= 0.8.0" | |
| 1426 | } |
|
1359 | } | |
| 1427 | }, |
|
1360 | }, | |
| 1428 | "node_modules/type-detect": { |
|
|||
| 1429 | "version": "4.0.8", |
|
|||
| 1430 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", |
|
|||
| 1431 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", |
|
|||
| 1432 | "dev": true, |
|
|||
| 1433 | "engines": { |
|
|||
| 1434 | "node": ">=4" |
|
|||
| 1435 | } |
|
|||
| 1436 | }, |
|
|||
| 1437 | "node_modules/type-fest": { |
|
1361 | "node_modules/type-fest": { | |
| 1438 | "version": "0.8.1", |
|
1362 | "version": "0.8.1", | |
| 1439 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", |
|
1363 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | |
| @@ -1560,8 +1484,9 | |||||
| 1560 | "dev": true |
|
1484 | "dev": true | |
| 1561 | }, |
|
1485 | }, | |
| 1562 | "@implab/dojo-typings": { |
|
1486 | "@implab/dojo-typings": { | |
| 1563 | "version": "file:/home/sergey/projects/implabjs-dojo-typings/dojo-typings/build/npm/package/implab-dojo-typings-v1.0.0-rc4.tgz", |
|
1487 | "version": "1.0.0", | |
| 1564 | "integrity": "sha512-whWA/3shw3j4WFdmh5ml9BYZMj4KFruv1YXtz29W0LXMNpmj5nyyM8FJYYCdtvWJEGvnEUcUCQ0zsZ+Gh5ah9Q==", |
|
1488 | "resolved": "https://registry.npmjs.org/@implab/dojo-typings/-/dojo-typings-1.0.0.tgz", | |
|
|
1489 | "integrity": "sha512-B2kvlKJgvyIQAl/k1pVyNmtp4ADvBDCs4Lw/qfBC+Sz/ft4c7EuRXmN/+2dhWrd6A5SMjEgex5oeq6Ja2ntrig==", | |||
| 1565 | "dev": true |
|
1490 | "dev": true | |
| 1566 | }, |
|
1491 | }, | |
| 1567 | "@types/chai": { |
|
1492 | "@types/chai": { | |
| @@ -1639,12 +1564,6 | |||||
| 1639 | "sprintf-js": "~1.0.2" |
|
1564 | "sprintf-js": "~1.0.2" | |
| 1640 | } |
|
1565 | } | |
| 1641 | }, |
|
1566 | }, | |
| 1642 | "assertion-error": { |
|
|||
| 1643 | "version": "1.1.0", |
|
|||
| 1644 | "resolved": "https://registry.npmjs.org/assertion-error/-/assertion-error-1.1.0.tgz", |
|
|||
| 1645 | "integrity": "sha512-jgsaNduz+ndvGyFt3uSuWqvy4lCnIJiovtouQN5JZHOKCS2QuhEdbcQHFhVksz2N2U9hXJo8odG7ETyWlEeuDw==", |
|
|||
| 1646 | "dev": true |
|
|||
| 1647 | }, |
|
|||
| 1648 | "astral-regex": { |
|
1567 | "astral-regex": { | |
| 1649 | "version": "1.0.0", |
|
1568 | "version": "1.0.0", | |
| 1650 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", |
|
1569 | "resolved": "https://registry.npmjs.org/astral-regex/-/astral-regex-1.0.0.tgz", | |
| @@ -1679,20 +1598,6 | |||||
| 1679 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", |
|
1598 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", | |
| 1680 | "dev": true |
|
1599 | "dev": true | |
| 1681 | }, |
|
1600 | }, | |
| 1682 | "chai": { |
|
|||
| 1683 | "version": "4.2.0", |
|
|||
| 1684 | "resolved": "https://registry.npmjs.org/chai/-/chai-4.2.0.tgz", |
|
|||
| 1685 | "integrity": "sha512-XQU3bhBukrOsQCuwZndwGcCVQHyZi53fQ6Ys1Fym7E4olpIqqZZhhoFJoaKVvV17lWQoXYwgWN2nF5crA8J2jw==", |
|
|||
| 1686 | "dev": true, |
|
|||
| 1687 | "requires": { |
|
|||
| 1688 | "assertion-error": "^1.1.0", |
|
|||
| 1689 | "check-error": "^1.0.2", |
|
|||
| 1690 | "deep-eql": "^3.0.1", |
|
|||
| 1691 | "get-func-name": "^2.0.0", |
|
|||
| 1692 | "pathval": "^1.1.0", |
|
|||
| 1693 | "type-detect": "^4.0.5" |
|
|||
| 1694 | } |
|
|||
| 1695 | }, |
|
|||
| 1696 | "chalk": { |
|
1601 | "chalk": { | |
| 1697 | "version": "2.4.2", |
|
1602 | "version": "2.4.2", | |
| 1698 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", |
|
1603 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", | |
| @@ -1710,12 +1615,6 | |||||
| 1710 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", |
|
1615 | "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", | |
| 1711 | "dev": true |
|
1616 | "dev": true | |
| 1712 | }, |
|
1617 | }, | |
| 1713 | "check-error": { |
|
|||
| 1714 | "version": "1.0.2", |
|
|||
| 1715 | "resolved": "https://registry.npmjs.org/check-error/-/check-error-1.0.2.tgz", |
|
|||
| 1716 | "integrity": "sha1-V00xLt2Iu13YkS6Sht1sCu1KrII=", |
|
|||
| 1717 | "dev": true |
|
|||
| 1718 | }, |
|
|||
| 1719 | "cli-cursor": { |
|
1618 | "cli-cursor": { | |
| 1720 | "version": "3.1.0", |
|
1619 | "version": "3.1.0", | |
| 1721 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", |
|
1620 | "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", | |
| @@ -1788,15 +1687,6 | |||||
| 1788 | "ms": "^2.1.1" |
|
1687 | "ms": "^2.1.1" | |
| 1789 | } |
|
1688 | } | |
| 1790 | }, |
|
1689 | }, | |
| 1791 | "deep-eql": { |
|
|||
| 1792 | "version": "3.0.1", |
|
|||
| 1793 | "resolved": "https://registry.npmjs.org/deep-eql/-/deep-eql-3.0.1.tgz", |
|
|||
| 1794 | "integrity": "sha512-+QeIQyN5ZuO+3Uk5DYh6/1eKO0m0YmJFGNmFHGACpf1ClL1nmlV/p4gNgbl2pJGxgXb4faqo6UE+M5ACEMyVcw==", |
|
|||
| 1795 | "dev": true, |
|
|||
| 1796 | "requires": { |
|
|||
| 1797 | "type-detect": "^4.0.0" |
|
|||
| 1798 | } |
|
|||
| 1799 | }, |
|
|||
| 1800 | "deep-is": { |
|
1690 | "deep-is": { | |
| 1801 | "version": "0.1.3", |
|
1691 | "version": "0.1.3", | |
| 1802 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", |
|
1692 | "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", | |
| @@ -2029,12 +1919,6 | |||||
| 2029 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", |
|
1919 | "integrity": "sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=", | |
| 2030 | "dev": true |
|
1920 | "dev": true | |
| 2031 | }, |
|
1921 | }, | |
| 2032 | "get-func-name": { |
|
|||
| 2033 | "version": "2.0.0", |
|
|||
| 2034 | "resolved": "https://registry.npmjs.org/get-func-name/-/get-func-name-2.0.0.tgz", |
|
|||
| 2035 | "integrity": "sha1-6td0q+5y4gQJQzoGY2YCPdaIekE=", |
|
|||
| 2036 | "dev": true |
|
|||
| 2037 | }, |
|
|||
| 2038 | "glob": { |
|
1922 | "glob": { | |
| 2039 | "version": "7.1.6", |
|
1923 | "version": "7.1.6", | |
| 2040 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", |
|
1924 | "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.6.tgz", | |
| @@ -2339,12 +2223,6 | |||||
| 2339 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", |
|
2223 | "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", | |
| 2340 | "dev": true |
|
2224 | "dev": true | |
| 2341 | }, |
|
2225 | }, | |
| 2342 | "pathval": { |
|
|||
| 2343 | "version": "1.1.0", |
|
|||
| 2344 | "resolved": "https://registry.npmjs.org/pathval/-/pathval-1.1.0.tgz", |
|
|||
| 2345 | "integrity": "sha1-uULm1L3mUwBe9rcTYd74cn0GReA=", |
|
|||
| 2346 | "dev": true |
|
|||
| 2347 | }, |
|
|||
| 2348 | "prelude-ls": { |
|
2226 | "prelude-ls": { | |
| 2349 | "version": "1.1.2", |
|
2227 | "version": "1.1.2", | |
| 2350 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", |
|
2228 | "resolved": "https://registry.npmjs.org/prelude-ls/-/prelude-ls-1.1.2.tgz", | |
| @@ -2662,12 +2540,6 | |||||
| 2662 | "prelude-ls": "~1.1.2" |
|
2540 | "prelude-ls": "~1.1.2" | |
| 2663 | } |
|
2541 | } | |
| 2664 | }, |
|
2542 | }, | |
| 2665 | "type-detect": { |
|
|||
| 2666 | "version": "4.0.8", |
|
|||
| 2667 | "resolved": "https://registry.npmjs.org/type-detect/-/type-detect-4.0.8.tgz", |
|
|||
| 2668 | "integrity": "sha512-0fr/mIH1dlO+x7TlcMy+bIDqKPsw/70tVyeHW787goQjhmqaZe10uwLujubK9q9Lg6Fiho1KUKDYz0Z7k7g5/g==", |
|
|||
| 2669 | "dev": true |
|
|||
| 2670 | }, |
|
|||
| 2671 | "type-fest": { |
|
2543 | "type-fest": { | |
| 2672 | "version": "0.8.1", |
|
2544 | "version": "0.8.1", | |
| 2673 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", |
|
2545 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | |
| @@ -17,6 +17,9 export interface EventArgs { | |||||
| 17 | export interface DjxWidgetBase<Attrs = {}, Events extends { [name in keyof Events]: Event } = {}> extends |
|
17 | export interface DjxWidgetBase<Attrs = {}, Events extends { [name in keyof Events]: Event } = {}> extends | |
| 18 | _WidgetBase<Events> { |
|
18 | _WidgetBase<Events> { | |
| 19 |
|
19 | |||
|
|
20 | /** This property is declared only for type inference to work, it is never assigned | |||
|
|
21 | * and should not be used. | |||
|
|
22 | */ | |||
| 20 | readonly _eventMap: Events & GlobalEventHandlersEventMap; |
|
23 | readonly _eventMap: Events & GlobalEventHandlersEventMap; | |
| 21 | } |
|
24 | } | |
| 22 |
|
25 | |||
| @@ -27,9 +30,12 type _super = { | |||||
| 27 | @djclass |
|
30 | @djclass | |
| 28 | export abstract class DjxWidgetBase<Attrs = {}, Events = {}> extends djbase<_super, _AttachMixin>(_WidgetBase, _AttachMixin) { |
|
31 | export abstract class DjxWidgetBase<Attrs = {}, Events = {}> extends djbase<_super, _AttachMixin>(_WidgetBase, _AttachMixin) { | |
| 29 |
|
32 | |||
|
|
33 | /** The list of pairs of event and method names. When the widget is created all methods from | |||
|
|
34 | * this list will be connected to corresponding events. | |||
|
|
35 | */ | |||
| 30 | _eventHandlers: Array<{ |
|
36 | _eventHandlers: Array<{ | |
| 31 |
eventName: |
|
37 | eventName: string, | |
| 32 |
handlerMethod: |
|
38 | handlerMethod: keyof any; | |
| 33 | }> = []; |
|
39 | }> = []; | |
| 34 |
|
40 | |||
| 35 | buildRendering() { |
|
41 | buildRendering() { | |
| @@ -41,6 +47,9 export abstract class DjxWidgetBase<Attr | |||||
| 41 | const src = this.srcNodeRef; |
|
47 | const src = this.srcNodeRef; | |
| 42 | const dest = this.containerNode; |
|
48 | const dest = this.containerNode; | |
| 43 |
|
49 | |||
|
|
50 | // the donNode is constructed now we need to connect event handlers | |||
|
|
51 | this._connectEventHandlers(); | |||
|
|
52 | ||||
| 44 | if (src && dest) { |
|
53 | if (src && dest) { | |
| 45 | while (src.firstChild) |
|
54 | while (src.firstChild) | |
| 46 | dest.appendChild(src.firstChild); |
|
55 | dest.appendChild(src.firstChild); | |
| @@ -51,8 +60,9 export abstract class DjxWidgetBase<Attr | |||||
| 51 |
|
60 | |||
| 52 | private _connectEventHandlers() { |
|
61 | private _connectEventHandlers() { | |
| 53 | this._eventHandlers.forEach(({eventName, handlerMethod}) => { |
|
62 | this._eventHandlers.forEach(({eventName, handlerMethod}) => { | |
| 54 |
|
|
63 | const handler = this[handlerMethod as keyof this]; | |
| 55 | this.on(eventName, this[handlerMethod] as Function); |
|
64 | if (typeof handler === "function") | |
|
|
65 | this.on(eventName, handler); | |||
| 56 | }); |
|
66 | }); | |
| 57 | } |
|
67 | } | |
| 58 |
|
68 | |||
| @@ -204,19 +204,24 export function watch<T extends Stateful | |||||
| 204 | return rendition; |
|
204 | return rendition; | |
| 205 | } |
|
205 | } | |
| 206 |
|
206 | |||
| 207 | export type WidgetEvents<W> = W extends DjxWidgetBase<any, infer EM> ? EM : never; |
|
207 | /** Decorates the method which will be registered as the handle for the specified event. | |
| 208 |
|
208 | * This decorator can be applied to DjxWidgetBase subclass methods. | ||
| 209 | export type HandlerType<W, E extends keyof any> = W extends { |
|
209 | * | |
| 210 | on(eventName: E, handler: infer H): any; |
|
210 | * ``` | |
| 211 | } ? H : never; |
|
211 | * @on("click") | |
| 212 |
|
212 | * _onClick(eventObj: MouseEvent) { | ||
| 213 | export const on = <E extends keyof any>(eventName: E) => |
|
213 | * // ... | |
|
|
214 | * } | |||
|
|
215 | * ``` | |||
|
|
216 | */ | |||
|
|
217 | export const on = <E extends string>(eventName: E) => | |||
| 214 | <K extends keyof T, |
|
218 | <K extends keyof T, | |
| 215 | T extends DjxWidgetBase |
|
219 | T extends DjxWidgetBase<any, { [p in E]: EV }>, | |
|
|
220 | EV extends Event | |||
| 216 | >( |
|
221 | >( | |
| 217 | target: T, |
|
222 | target: T, | |
| 218 | key: K, |
|
223 | key: K, | |
| 219 | descriptor: PropertyDescriptor |
|
224 | descriptor: TypedPropertyDescriptor<(eventObj: EV) => void> | TypedPropertyDescriptor<() => void> | |
| 220 | ): any => { |
|
225 | ): any => { | |
| 221 | target. |
|
226 | target._eventHandlers.push({ eventName, handlerMethod: key }); | |
| 222 | }; |
|
227 | }; | |
| @@ -1,5 +1,4 | |||||
| 1 | /// <reference path="./css.d.ts"/> |
|
1 | /// <reference path="./css.d.ts"/> | |
| 2 | /// <reference path="./dijit.d.ts"/> |
|
|||
| 3 |
|
2 | |||
| 4 | declare namespace JSX { |
|
3 | declare namespace JSX { | |
| 5 |
|
4 | |||
| @@ -2,7 +2,7 import { djbase, djclass, bind, prototyp | |||||
| 2 |
|
2 | |||
| 3 | import { DjxWidgetBase } from "../tsx/DjxWidgetBase"; |
|
3 | import { DjxWidgetBase } from "../tsx/DjxWidgetBase"; | |
| 4 | import { createElement } from "../tsx"; |
|
4 | import { createElement } from "../tsx"; | |
| 5 |
import { |
|
5 | import { on } from "../tsx/traits"; | |
| 6 |
|
6 | |||
| 7 | interface MyWidgetAttrs { |
|
7 | interface MyWidgetAttrs { | |
| 8 | title: string; |
|
8 | title: string; | |
| @@ -61,13 +61,11 export class MyWidget extends djbase(Djx | |||||
| 61 | } |
|
61 | } | |
| 62 |
|
62 | |||
| 63 | @on("count-inc") |
|
63 | @on("count-inc") | |
| 64 | _onCounterInc(evt: Event & { detail: number; }) { |
|
64 | _onCounterInc(evt: Event & { detail: number; x?: number; }) { | |
|
|
65 | } | |||
|
|
66 | ||||
|
|
67 | @on("click") | |||
|
|
68 | _onClick() { | |||
| 65 |
|
69 | |||
| 66 | } |
|
70 | } | |
| 67 |
} |
|
71 | } No newline at end of file | |
| 68 |
|
||||
| 69 | declare const w: MyWidget; |
|
|||
| 70 | w.on("click", () => {}); |
|
|||
| 71 |
|
||||
| 72 | declare const ev: WidgetEvents<MyWidget>; |
|
|||
| 73 | ev["count-inc"]; |
|
|||
| @@ -14,5 +14,4 | |||||
| 14 |
|
14 | |||
| 15 | rootProject.name = 'implabjs-djx' |
|
15 | rootProject.name = 'implabjs-djx' | |
| 16 |
|
16 | |||
| 17 |
include 'djx' |
|
17 | include 'djx' No newline at end of file | |
| 18 | include 'playground' No newline at end of file |
|
|||
| 1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
| 1 | NO CONTENT: file was removed |
|
NO CONTENT: file was removed |
General Comments 0
You need to be logged in to leave comments.
Login now
