Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Y
ym_018
Project
Project
Details
Activity
Releases
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
template admin
ym_018
Commits
ada42ef3
Commit
ada42ef3
authored
Feb 11, 2020
by
Chen Jiping
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
完成课件18开发
parent
a7e92ed4
Changes
8
Show whitespace changes
Inline
Side-by-side
Showing
8 changed files
with
631 additions
and
473 deletions
+631
-473
package-lock.json
package-lock.json
+128
-265
package.json
package.json
+4
-3
form.component.html
src/app/form/form.component.html
+85
-40
form.component.ts
src/app/form/form.component.ts
+51
-5
Unit.ts
src/app/play/Unit.ts
+76
-0
play.component.scss
src/app/play/play.component.scss
+5
-0
play.component.ts
src/app/play/play.component.ts
+282
-160
GOTHICB.TTF
src/assets/font/GOTHICB.TTF
+0
-0
No files found.
package-lock.json
View file @
ada42ef3
...
...
@@ -276,6 +276,13 @@
"uri-js"
:
"^4.2.2"
}
},
"ansi-styles"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
,
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
,
"dev"
:
true
,
"optional"
:
true
},
"big.js"
:
{
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/big.js/-/big.js-3.2.0.tgz"
,
...
...
@@ -320,6 +327,20 @@
}
}
},
"chalk"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
,
"integrity"
:
"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"ansi-styles"
:
"^2.2.1"
,
"escape-string-regexp"
:
"^1.0.2"
,
"has-ansi"
:
"^2.0.0"
,
"strip-ansi"
:
"^3.0.0"
,
"supports-color"
:
"^2.0.0"
}
},
"glob"
:
{
"version"
:
"7.1.3"
,
"resolved"
:
"https://registry.npmjs.org/glob/-/glob-7.1.3.tgz"
,
...
...
@@ -360,6 +381,34 @@
"yallist"
:
"^3.0.2"
}
},
"node-sass"
:
{
"version"
:
"4.10.0"
,
"resolved"
:
"https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz"
,
"integrity"
:
"sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"async-foreach"
:
"^0.1.3"
,
"chalk"
:
"^1.1.1"
,
"cross-spawn"
:
"^3.0.0"
,
"gaze"
:
"^1.0.0"
,
"get-stdin"
:
"^4.0.1"
,
"glob"
:
"^7.0.3"
,
"in-publish"
:
"^2.0.0"
,
"lodash.assign"
:
"^4.2.0"
,
"lodash.clonedeep"
:
"^4.3.2"
,
"lodash.mergewith"
:
"^4.6.0"
,
"meow"
:
"^3.7.0"
,
"mkdirp"
:
"^0.5.1"
,
"nan"
:
"^2.10.0"
,
"node-gyp"
:
"^3.8.0"
,
"npmlog"
:
"^4.0.0"
,
"request"
:
"^2.88.0"
,
"sass-graph"
:
"^2.2.4"
,
"stdout-stream"
:
"^1.4.0"
,
"true-case-path"
:
"^1.0.2"
}
},
"parse5"
:
{
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz"
,
...
...
@@ -391,6 +440,13 @@
"source-map"
:
"^0.6.0"
}
},
"supports-color"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
,
"integrity"
:
"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
,
"dev"
:
true
,
"optional"
:
true
},
"terser"
:
{
"version"
:
"3.17.0"
,
"resolved"
:
"https://registry.npmjs.org/terser/-/terser-3.17.0.tgz"
,
...
...
@@ -1815,8 +1871,7 @@
"abbrev"
:
{
"version"
:
"1.0.9"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.0.9.tgz"
,
"integrity"
:
"sha1-kbR5JYinc4wl813W9jdSovh3YTU="
,
"dev"
:
true
"integrity"
:
"sha1-kbR5JYinc4wl813W9jdSovh3YTU="
},
"accepts"
:
{
"version"
:
"1.3.7"
,
...
...
@@ -1938,8 +1993,7 @@
"amdefine"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
,
"integrity"
:
"sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
,
"dev"
:
true
"integrity"
:
"sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"angular-cropperjs"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -1996,8 +2050,7 @@
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
,
"dev"
:
true
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
},
"ansi-styles"
:
{
"version"
:
"3.2.1"
,
...
...
@@ -2055,8 +2108,6 @@
"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=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"delegates"
:
"^1.0.0"
,
"readable-stream"
:
"^2.0.6"
...
...
@@ -2088,9 +2139,7 @@
"array-find-index"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz"
,
"integrity"
:
"sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-3wEKoSh+Fku9pvlyOwqWoexBh6E="
},
"array-flatten"
:
{
"version"
:
"2.1.2"
,
...
...
@@ -2147,7 +2196,6 @@
"version"
:
"0.2.4"
,
"resolved"
:
"https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"
,
"integrity"
:
"sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="
,
"dev"
:
true
,
"requires"
:
{
"safer-buffer"
:
"~2.1.0"
}
...
...
@@ -2189,8 +2237,7 @@
"assert-plus"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
,
"integrity"
:
"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
,
"dev"
:
true
"integrity"
:
"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
},
"assign-symbols"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -2215,9 +2262,7 @@
"async-foreach"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz"
,
"integrity"
:
"sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
},
"async-limiter"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -2228,8 +2273,7 @@
"asynckit"
:
{
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"integrity"
:
"sha1-x57Zf380y48robyXkLzDZkdLS3k="
,
"dev"
:
true
"integrity"
:
"sha1-x57Zf380y48robyXkLzDZkdLS3k="
},
"atob"
:
{
"version"
:
"2.1.2"
,
...
...
@@ -2253,14 +2297,12 @@
"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="
,
"dev"
:
true
"integrity"
:
"sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
},
"aws4"
:
{
"version"
:
"1.8.0"
,
"resolved"
:
"https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz"
,
"integrity"
:
"sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
,
"dev"
:
true
"integrity"
:
"sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ=="
},
"babel-code-frame"
:
{
"version"
:
"6.26.0"
,
...
...
@@ -2485,7 +2527,6 @@
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
,
"integrity"
:
"sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4="
,
"dev"
:
true
,
"requires"
:
{
"tweetnacl"
:
"^0.14.3"
}
...
...
@@ -2536,8 +2577,6 @@
"version"
:
"0.0.9"
,
"resolved"
:
"https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
,
"integrity"
:
"sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"inherits"
:
"~2.0.0"
}
...
...
@@ -2928,16 +2967,12 @@
"camelcase"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
,
"integrity"
:
"sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
},
"camelcase-keys"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz"
,
"integrity"
:
"sha1-MIvur/3ygRkFHvodkyITyRuPkuc="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"camelcase"
:
"^2.0.0"
,
"map-obj"
:
"^1.0.0"
...
...
@@ -2958,8 +2993,7 @@
"caseless"
:
{
"version"
:
"0.12.0"
,
"resolved"
:
"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
,
"integrity"
:
"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
,
"dev"
:
true
"integrity"
:
"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
},
"chalk"
:
{
"version"
:
"2.4.2"
,
...
...
@@ -3079,7 +3113,6 @@
"version"
:
"3.2.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz"
,
"integrity"
:
"sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0="
,
"dev"
:
true
,
"requires"
:
{
"string-width"
:
"^1.0.1"
,
"strip-ansi"
:
"^3.0.1"
,
...
...
@@ -3117,8 +3150,7 @@
"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="
,
"dev"
:
true
"integrity"
:
"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
},
"codelyzer"
:
{
"version"
:
"4.5.0"
,
...
...
@@ -3189,7 +3221,6 @@
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"dev"
:
true
,
"requires"
:
{
"delayed-stream"
:
"~1.0.0"
}
...
...
@@ -3319,9 +3350,7 @@
"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="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4="
},
"constants-browserify"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -3617,8 +3646,6 @@
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz"
,
"integrity"
:
"sha1-ElYDfsufDF9549bvE14wdwGEuYI="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"lru-cache"
:
"^4.0.1"
,
"which"
:
"^1.2.9"
...
...
@@ -3683,8 +3710,6 @@
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz"
,
"integrity"
:
"sha1-mI3zP+qxke95mmE2nddsF635V+o="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"array-find-index"
:
"^1.0.1"
}
...
...
@@ -3704,7 +3729,6 @@
"version"
:
"1.14.1"
,
"resolved"
:
"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
,
"integrity"
:
"sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA="
,
"dev"
:
true
,
"requires"
:
{
"assert-plus"
:
"^1.0.0"
}
...
...
@@ -3763,8 +3787,7 @@
"decamelize"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
,
"dev"
:
true
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
},
"decimal.js"
:
{
"version"
:
"10.2.0"
,
...
...
@@ -3932,15 +3955,12 @@
"delayed-stream"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
,
"dev"
:
true
"integrity"
:
"sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
},
"delegates"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
,
"integrity"
:
"sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
"depd"
:
{
"version"
:
"1.1.2"
,
...
...
@@ -4092,7 +4112,6 @@
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
,
"integrity"
:
"sha1-OoOpBOVDUyh4dMVkt1SThoSamMk="
,
"dev"
:
true
,
"requires"
:
{
"jsbn"
:
"~0.1.0"
,
"safer-buffer"
:
"^2.1.0"
...
...
@@ -4282,7 +4301,6 @@
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
,
"integrity"
:
"sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
,
"dev"
:
true
,
"requires"
:
{
"is-arrayish"
:
"^0.2.1"
}
...
...
@@ -4631,8 +4649,7 @@
"extsprintf"
:
{
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
,
"integrity"
:
"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
,
"dev"
:
true
"integrity"
:
"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
},
"fast-deep-equal"
:
{
"version"
:
"2.0.1"
,
...
...
@@ -4817,14 +4834,12 @@
"forever-agent"
:
{
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
,
"integrity"
:
"sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
,
"dev"
:
true
"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=="
,
"dev"
:
true
,
"requires"
:
{
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.6"
,
...
...
@@ -5394,8 +5409,6 @@
"version"
:
"1.0.12"
,
"resolved"
:
"https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz"
,
"integrity"
:
"sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"inherits"
:
"~2.0.0"
,
...
...
@@ -5445,8 +5458,6 @@
"version"
:
"2.7.4"
,
"resolved"
:
"https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz"
,
"integrity"
:
"sha1-LANAXHU4w51+s3sxcCLjJfsBi/c="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"aproba"
:
"^1.0.3"
,
"console-control-strings"
:
"^1.0.0"
,
...
...
@@ -5462,8 +5473,6 @@
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz"
,
"integrity"
:
"sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"globule"
:
"^1.0.0"
}
...
...
@@ -5477,8 +5486,7 @@
"get-caller-file"
:
{
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz"
,
"integrity"
:
"sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
,
"dev"
:
true
"integrity"
:
"sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w=="
},
"get-ready"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -5488,9 +5496,7 @@
"get-stdin"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
,
"integrity"
:
"sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
},
"get-stream"
:
{
"version"
:
"3.0.0"
,
...
...
@@ -5540,7 +5546,6 @@
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
,
"integrity"
:
"sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo="
,
"dev"
:
true
,
"requires"
:
{
"assert-plus"
:
"^1.0.0"
}
...
...
@@ -5606,11 +5611,9 @@
}
},
"globule"
:
{
"version"
:
"1.2.1"
,
"resolved"
:
"https://registry.npmjs.org/globule/-/globule-1.2.1.tgz"
,
"integrity"
:
"sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ=="
,
"dev"
:
true
,
"optional"
:
true
,
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/globule/-/globule-1.3.0.tgz"
,
"integrity"
:
"sha512-YlD4kdMqRCQHrhVdonet4TdRtv1/sZKepvoxNT4Nrhrp5HI8XFfc8kFlGlBn2myBo80aGp8Eft259mbcUJhgSg=="
,
"requires"
:
{
"glob"
:
"~7.1.1"
,
"lodash"
:
"~4.17.10"
,
...
...
@@ -5648,14 +5651,12 @@
"har-schema"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
"integrity"
:
"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
,
"dev"
:
true
"integrity"
:
"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
},
"har-validator"
:
{
"version"
:
"5.1.3"
,
"resolved"
:
"https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz"
,
"integrity"
:
"sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g=="
,
"dev"
:
true
,
"requires"
:
{
"ajv"
:
"^6.5.5"
,
"har-schema"
:
"^2.0.0"
...
...
@@ -5674,7 +5675,6 @@
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
,
"integrity"
:
"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
,
"dev"
:
true
,
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
}
...
...
@@ -5710,9 +5710,7 @@
"has-unicode"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
,
"integrity"
:
"sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"has-value"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -5774,8 +5772,7 @@
"hosted-git-info"
:
{
"version"
:
"2.8.4"
,
"resolved"
:
"https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.4.tgz"
,
"integrity"
:
"sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="
,
"dev"
:
true
"integrity"
:
"sha512-pzXIvANXEFrc5oFFXRMkbLPQ2rXRoDERwDLyrcUxGhaZhgP54BBSl9Oheh7Vv0T090cszWBxPjkQQ5Sq1PbBRQ=="
},
"hpack.js"
:
{
"version"
:
"2.1.6"
,
...
...
@@ -5876,7 +5873,6 @@
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
,
"integrity"
:
"sha1-muzZJRFHcvPZW2WmCruPfBj7rOE="
,
"dev"
:
true
,
"requires"
:
{
"assert-plus"
:
"^1.0.0"
,
"jsprim"
:
"^1.2.2"
,
...
...
@@ -6006,16 +6002,12 @@
"in-publish"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz"
,
"integrity"
:
"sha1-4g/146KvwmkDILbcVSaCqcf631E="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-4g/146KvwmkDILbcVSaCqcf631E="
},
"indent-string"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz"
,
"integrity"
:
"sha1-ji1INIdCEhtKghi3oTfppSBJ3IA="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"repeating"
:
"^2.0.0"
}
...
...
@@ -6157,8 +6149,7 @@
"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="
,
"dev"
:
true
"integrity"
:
"sha1-EEqOSqym09jNFXqO+L+rLXo//bY="
},
"ip"
:
{
"version"
:
"1.1.5"
,
...
...
@@ -6204,8 +6195,7 @@
"is-arrayish"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
,
"integrity"
:
"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
,
"dev"
:
true
"integrity"
:
"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
},
"is-binary-path"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -6286,7 +6276,6 @@
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/is-finite/-/is-finite-1.0.2.tgz"
,
"integrity"
:
"sha1-zGZ3aVYCvlUO8R6LSqYwU0K20Ko="
,
"dev"
:
true
,
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
}
...
...
@@ -6295,7 +6284,6 @@
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz"
,
"integrity"
:
"sha1-754xOG8DGn8NZDr4L95QxFfvAMs="
,
"dev"
:
true
,
"requires"
:
{
"number-is-nan"
:
"^1.0.0"
}
...
...
@@ -6392,15 +6380,12 @@
"is-typedarray"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
"integrity"
:
"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
,
"dev"
:
true
"integrity"
:
"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
},
"is-utf8"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
,
"integrity"
:
"sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
},
"is-windows"
:
{
"version"
:
"1.0.2"
,
...
...
@@ -6429,8 +6414,7 @@
"isexe"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
,
"integrity"
:
"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
,
"dev"
:
true
"integrity"
:
"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
},
"isobject"
:
{
"version"
:
"3.0.1"
,
...
...
@@ -6787,9 +6771,7 @@
"js-base64"
:
{
"version"
:
"2.5.1"
,
"resolved"
:
"https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz"
,
"integrity"
:
"sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw=="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw=="
},
"js-tokens"
:
{
"version"
:
"4.0.0"
,
...
...
@@ -6815,8 +6797,7 @@
"jsbn"
:
{
"version"
:
"0.1.1"
,
"resolved"
:
"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
,
"integrity"
:
"sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
,
"dev"
:
true
"integrity"
:
"sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
},
"jsesc"
:
{
"version"
:
"1.3.0"
,
...
...
@@ -6832,8 +6813,7 @@
"json-schema"
:
{
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
,
"integrity"
:
"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
,
"dev"
:
true
"integrity"
:
"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
},
"json-schema-traverse"
:
{
"version"
:
"0.4.1"
,
...
...
@@ -6843,8 +6823,7 @@
"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="
,
"dev"
:
true
"integrity"
:
"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
},
"json3"
:
{
"version"
:
"3.3.3"
,
...
...
@@ -6877,7 +6856,6 @@
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
,
"integrity"
:
"sha1-MT5mvB5cwG5Di8G3SZwuXFastqI="
,
"dev"
:
true
,
"requires"
:
{
"assert-plus"
:
"1.0.0"
,
"extsprintf"
:
"1.3.0"
,
...
...
@@ -7032,7 +7010,6 @@
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz"
,
"integrity"
:
"sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU="
,
"dev"
:
true
,
"requires"
:
{
"invert-kv"
:
"^1.0.0"
}
...
...
@@ -7103,8 +7080,6 @@
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz"
,
"integrity"
:
"sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"parse-json"
:
"^2.2.0"
,
...
...
@@ -7116,9 +7091,7 @@
"pify"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
,
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
...
...
@@ -7239,8 +7212,6 @@
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz"
,
"integrity"
:
"sha1-W0b4AUft7leIcPCG0Eghz5mOVR8="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"currently-unhandled"
:
"^0.4.1"
,
"signal-exit"
:
"^3.0.0"
...
...
@@ -7359,9 +7330,7 @@
"map-obj"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
,
"integrity"
:
"sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
},
"map-visit"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -7411,8 +7380,6 @@
"version"
:
"3.7.0"
,
"resolved"
:
"https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
,
"integrity"
:
"sha1-cstmi0JSKCkKu/qFaJJYcwioAfs="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"camelcase-keys"
:
"^2.0.0"
,
"decamelize"
:
"^1.1.2"
,
...
...
@@ -7429,9 +7396,7 @@
"minimist"
:
{
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz"
,
"integrity"
:
"sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ="
}
}
},
...
...
@@ -7502,14 +7467,12 @@
"mime-db"
:
{
"version"
:
"1.40.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz"
,
"integrity"
:
"sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
,
"dev"
:
true
"integrity"
:
"sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA=="
},
"mime-types"
:
{
"version"
:
"2.1.24"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz"
,
"integrity"
:
"sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ=="
,
"dev"
:
true
,
"requires"
:
{
"mime-db"
:
"1.40.0"
}
...
...
@@ -7708,8 +7671,7 @@
"nan"
:
{
"version"
:
"2.14.0"
,
"resolved"
:
"https://registry.npmjs.org/nan/-/nan-2.14.0.tgz"
,
"integrity"
:
"sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
,
"optional"
:
true
"integrity"
:
"sha512-INOFj37C7k3AfaNTtX8RhsTw7qRy7eLET14cROi9+5HAVbbHuIWUHEauBv5qT4Av2tWasiTY1Jw6puUNqRJXQg=="
},
"nanomatch"
:
{
"version"
:
"1.2.13"
,
...
...
@@ -7822,8 +7784,6 @@
"version"
:
"3.8.0"
,
"resolved"
:
"https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz"
,
"integrity"
:
"sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"fstream"
:
"^1.0.0"
,
"glob"
:
"^7.0.3"
,
...
...
@@ -7842,9 +7802,7 @@
"semver"
:
{
"version"
:
"5.3.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
,
"integrity"
:
"sha1-myzl094C0XxgEq0yaqa00M9U+U8="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-myzl094C0XxgEq0yaqa00M9U+U8="
}
}
},
...
...
@@ -7895,11 +7853,9 @@
}
},
"node-sass"
:
{
"version"
:
"4.10.0"
,
"resolved"
:
"https://registry.npmjs.org/node-sass/-/node-sass-4.10.0.tgz"
,
"integrity"
:
"sha512-fDQJfXszw6vek63Fe/ldkYXmRYK/QS6NbvM3i5oEo9ntPDy4XX7BcKZyTKv+/kSSxRtXXc7l+MSwEmYc0CSy6Q=="
,
"dev"
:
true
,
"optional"
:
true
,
"version"
:
"4.13.1"
,
"resolved"
:
"https://registry.npmjs.org/node-sass/-/node-sass-4.13.1.tgz"
,
"integrity"
:
"sha512-TTWFx+ZhyDx1Biiez2nB0L3YrCZ/8oHagaDalbuBSlqXgUPsdkUSzJsVxeDO9LtPB49+Fh3WQl3slABo6AotNw=="
,
"requires"
:
{
"async-foreach"
:
"^0.1.3"
,
"chalk"
:
"^1.1.1"
,
...
...
@@ -7908,12 +7864,10 @@
"get-stdin"
:
"^4.0.1"
,
"glob"
:
"^7.0.3"
,
"in-publish"
:
"^2.0.0"
,
"lodash.assign"
:
"^4.2.0"
,
"lodash.clonedeep"
:
"^4.3.2"
,
"lodash.mergewith"
:
"^4.6.0"
,
"lodash"
:
"^4.17.15"
,
"meow"
:
"^3.7.0"
,
"mkdirp"
:
"^0.5.1"
,
"nan"
:
"^2.1
0.0
"
,
"nan"
:
"^2.1
3.2
"
,
"node-gyp"
:
"^3.8.0"
,
"npmlog"
:
"^4.0.0"
,
"request"
:
"^2.88.0"
,
...
...
@@ -7925,16 +7879,12 @@
"ansi-styles"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
,
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"chalk"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
,
"integrity"
:
"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"ansi-styles"
:
"^2.2.1"
,
"escape-string-regexp"
:
"^1.0.2"
,
...
...
@@ -7946,9 +7896,7 @@
"supports-color"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
,
"integrity"
:
"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
}
}
},
...
...
@@ -7956,7 +7904,6 @@
"version"
:
"3.0.6"
,
"resolved"
:
"https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"
,
"integrity"
:
"sha1-xkZdvwirzU2zWTF/eaxopkayj/k="
,
"dev"
:
true
,
"requires"
:
{
"abbrev"
:
"1"
}
...
...
@@ -7965,7 +7912,6 @@
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
,
"integrity"
:
"sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
,
"dev"
:
true
,
"requires"
:
{
"hosted-git-info"
:
"^2.1.4"
,
"resolve"
:
"^1.10.0"
,
...
...
@@ -11116,8 +11062,6 @@
"version"
:
"4.1.2"
,
"resolved"
:
"https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz"
,
"integrity"
:
"sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"are-we-there-yet"
:
"~1.1.2"
,
"console-control-strings"
:
"~1.1.0"
,
...
...
@@ -11140,14 +11084,12 @@
"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="
,
"dev"
:
true
"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=="
,
"dev"
:
true
"integrity"
:
"sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
},
"object-assign"
:
{
"version"
:
"4.1.1"
,
...
...
@@ -11326,15 +11268,12 @@
"os-homedir"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
,
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
,
"dev"
:
true
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
},
"os-locale"
:
{
"version"
:
"1.4.0"
,
"resolved"
:
"https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz"
,
"integrity"
:
"sha1-IPnxeuKe00XoveWDsT0gCYA8FNk="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"lcid"
:
"^1.0.0"
}
...
...
@@ -11351,14 +11290,12 @@
"os-tmpdir"
:
{
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
,
"integrity"
:
"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
,
"dev"
:
true
"integrity"
:
"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
},
"osenv"
:
{
"version"
:
"0.1.5"
,
"resolved"
:
"https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"
,
"integrity"
:
"sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="
,
"dev"
:
true
,
"requires"
:
{
"os-homedir"
:
"^1.0.0"
,
"os-tmpdir"
:
"^1.0.0"
...
...
@@ -11591,7 +11528,6 @@
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"
,
"integrity"
:
"sha1-9ID0BDTvgHQfhGkJn43qGPVaTck="
,
"dev"
:
true
,
"requires"
:
{
"error-ex"
:
"^1.2.0"
}
...
...
@@ -11719,8 +11655,7 @@
"performance-now"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
,
"dev"
:
true
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
},
"pify"
:
{
"version"
:
"4.0.1"
,
...
...
@@ -11730,14 +11665,12 @@
"pinkie"
:
{
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
,
"integrity"
:
"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
,
"dev"
:
true
"integrity"
:
"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
},
"pinkie-promise"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
,
"integrity"
:
"sha1-ITXW36ejWMBprJsXh3YogihFD/o="
,
"dev"
:
true
,
"requires"
:
{
"pinkie"
:
"^2.0.0"
}
...
...
@@ -12057,8 +11990,7 @@
"psl"
:
{
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.3.1.tgz"
,
"integrity"
:
"sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA=="
,
"dev"
:
true
"integrity"
:
"sha512-2KLd5fKOdAfShtY2d/8XDWVRnmp3zp40Qt6ge2zBPFARLXOGUf2fHD5eg+TV/5oxBtQKVhjUaKFsAaE4HnwfSA=="
},
"public-encrypt"
:
{
"version"
:
"4.0.3"
,
...
...
@@ -12207,8 +12139,6 @@
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
,
"integrity"
:
"sha1-9f+qXs0pyzHAR0vKfXVra7KePyg="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"load-json-file"
:
"^1.0.0"
,
"normalize-package-data"
:
"^2.3.2"
,
...
...
@@ -12219,8 +12149,6 @@
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
,
"integrity"
:
"sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"pify"
:
"^2.0.0"
,
...
...
@@ -12230,9 +12158,7 @@
"pify"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
,
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
...
...
@@ -12240,8 +12166,6 @@
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz"
,
"integrity"
:
"sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"find-up"
:
"^1.0.0"
,
"read-pkg"
:
"^1.0.0"
...
...
@@ -12251,8 +12175,6 @@
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
,
"integrity"
:
"sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"path-exists"
:
"^2.0.0"
,
"pinkie-promise"
:
"^2.0.0"
...
...
@@ -12262,8 +12184,6 @@
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz"
,
"integrity"
:
"sha1-D+tsZPD8UY2adU3V77YscCJ2H0s="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"pinkie-promise"
:
"^2.0.0"
}
...
...
@@ -12307,8 +12227,6 @@
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/redent/-/redent-1.0.0.tgz"
,
"integrity"
:
"sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"indent-string"
:
"^2.1.0"
,
"strip-indent"
:
"^1.0.1"
...
...
@@ -12422,7 +12340,6 @@
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
,
"integrity"
:
"sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo="
,
"dev"
:
true
,
"requires"
:
{
"is-finite"
:
"^1.0.0"
}
...
...
@@ -12431,7 +12348,6 @@
"version"
:
"2.88.0"
,
"resolved"
:
"https://registry.npmjs.org/request/-/request-2.88.0.tgz"
,
"integrity"
:
"sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg=="
,
"dev"
:
true
,
"requires"
:
{
"aws-sign2"
:
"~0.7.0"
,
"aws4"
:
"^1.8.0"
,
...
...
@@ -12458,22 +12374,19 @@
"qs"
:
{
"version"
:
"6.5.2"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
,
"integrity"
:
"sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
,
"dev"
:
true
"integrity"
:
"sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
}
}
},
"require-directory"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
,
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
,
"dev"
:
true
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
},
"require-main-filename"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz"
,
"integrity"
:
"sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
,
"dev"
:
true
"integrity"
:
"sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE="
},
"requires-port"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -12624,8 +12537,6 @@
"version"
:
"2.2.4"
,
"resolved"
:
"https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz"
,
"integrity"
:
"sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"glob"
:
"^7.0.0"
,
"lodash"
:
"^4.0.0"
,
...
...
@@ -12683,8 +12594,6 @@
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz"
,
"integrity"
:
"sha1-jrBtualyMzOCTT9VMGQRSYR85dE="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"js-base64"
:
"^2.1.8"
,
"source-map"
:
"^0.4.2"
...
...
@@ -12694,8 +12603,6 @@
"version"
:
"0.4.4"
,
"resolved"
:
"https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
,
"integrity"
:
"sha1-66T12pwNyZneaAMti092FzZSA2s="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"amdefine"
:
">=0.0.4"
}
...
...
@@ -12861,8 +12768,7 @@
"set-blocking"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
,
"dev"
:
true
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
},
"set-immediate-shim"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -12948,8 +12854,7 @@
"signal-exit"
:
{
"version"
:
"3.0.2"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.2.tgz"
,
"integrity"
:
"sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
,
"dev"
:
true
"integrity"
:
"sha1-tf3AjxKH6hF4Yo5BXiUTK3NkbG0="
},
"slash"
:
{
"version"
:
"1.0.0"
,
...
...
@@ -13322,7 +13227,6 @@
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.0.tgz"
,
"integrity"
:
"sha512-lr2EZCctC2BNR7j7WzJ2FpDznxky1sjfxvvYEyzxNyb6lZXHODmEoJeFu4JupYlkfha1KZpJyoqiJ7pgA1qq8Q=="
,
"dev"
:
true
,
"requires"
:
{
"spdx-expression-parse"
:
"^3.0.0"
,
"spdx-license-ids"
:
"^3.0.0"
...
...
@@ -13331,14 +13235,12 @@
"spdx-exceptions"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.2.0.tgz"
,
"integrity"
:
"sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
,
"dev"
:
true
"integrity"
:
"sha512-2XQACfElKi9SlVb1CYadKDXvoajPgBVPn/gOQLrTvHdElaVhr7ZEbqJaRnJLVNeaI4cMEAgVCeBMKF6MWRDCRA=="
},
"spdx-expression-parse"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.0.tgz"
,
"integrity"
:
"sha512-Yg6D3XpRD4kkOmTpdgbUiEJFKghJH03fiC1OPll5h/0sO6neh2jqRDVHOQ4o/LMea0tgCkbMgea5ip/e+MkWyg=="
,
"dev"
:
true
,
"requires"
:
{
"spdx-exceptions"
:
"^2.1.0"
,
"spdx-license-ids"
:
"^3.0.0"
...
...
@@ -13347,8 +13249,7 @@
"spdx-license-ids"
:
{
"version"
:
"3.0.5"
,
"resolved"
:
"https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"
,
"integrity"
:
"sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
,
"dev"
:
true
"integrity"
:
"sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
},
"spdy"
:
{
"version"
:
"3.4.7"
,
...
...
@@ -13424,7 +13325,6 @@
"version"
:
"1.16.1"
,
"resolved"
:
"https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
,
"integrity"
:
"sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="
,
"dev"
:
true
,
"requires"
:
{
"asn1"
:
"~0.2.3"
,
"assert-plus"
:
"^1.0.0"
,
...
...
@@ -13482,8 +13382,6 @@
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz"
,
"integrity"
:
"sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"readable-stream"
:
"^2.0.1"
}
...
...
@@ -13560,7 +13458,6 @@
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz"
,
"integrity"
:
"sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M="
,
"dev"
:
true
,
"requires"
:
{
"code-point-at"
:
"^1.0.0"
,
"is-fullwidth-code-point"
:
"^1.0.0"
,
...
...
@@ -13579,7 +13476,6 @@
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
,
"integrity"
:
"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
,
"dev"
:
true
,
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
}
...
...
@@ -13588,8 +13484,6 @@
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
,
"integrity"
:
"sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"is-utf8"
:
"^0.2.0"
}
...
...
@@ -13604,8 +13498,6 @@
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
,
"integrity"
:
"sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"get-stdin"
:
"^4.0.1"
}
...
...
@@ -13699,8 +13591,6 @@
"version"
:
"2.2.2"
,
"resolved"
:
"https://registry.npmjs.org/tar/-/tar-2.2.2.tgz"
,
"integrity"
:
"sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"block-stream"
:
"*"
,
"fstream"
:
"^1.0.12"
,
...
...
@@ -13898,7 +13788,6 @@
"version"
:
"2.4.3"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz"
,
"integrity"
:
"sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ=="
,
"dev"
:
true
,
"requires"
:
{
"psl"
:
"^1.1.24"
,
"punycode"
:
"^1.4.1"
...
...
@@ -13907,8 +13796,7 @@
"punycode"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz"
,
"integrity"
:
"sha1-wNWmOycYgArY4esPpSachN1BhF4="
,
"dev"
:
true
"integrity"
:
"sha1-wNWmOycYgArY4esPpSachN1BhF4="
}
}
},
...
...
@@ -13921,9 +13809,7 @@
"trim-newlines"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
,
"integrity"
:
"sha1-WIeWa7WCpFA6QetST301ARgVphM="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-WIeWa7WCpFA6QetST301ARgVphM="
},
"trim-right"
:
{
"version"
:
"1.0.1"
,
...
...
@@ -13935,8 +13821,6 @@
"version"
:
"1.0.3"
,
"resolved"
:
"https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz"
,
"integrity"
:
"sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"glob"
:
"^7.1.2"
}
...
...
@@ -14007,7 +13891,6 @@
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
,
"integrity"
:
"sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0="
,
"dev"
:
true
,
"requires"
:
{
"safe-buffer"
:
"^5.0.1"
}
...
...
@@ -14015,8 +13898,7 @@
"tweetnacl"
:
{
"version"
:
"0.14.5"
,
"resolved"
:
"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
,
"integrity"
:
"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
,
"dev"
:
true
"integrity"
:
"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
},
"type-check"
:
{
"version"
:
"0.3.2"
,
...
...
@@ -14447,14 +14329,12 @@
"uuid"
:
{
"version"
:
"3.3.3"
,
"resolved"
:
"https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz"
,
"integrity"
:
"sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
,
"dev"
:
true
"integrity"
:
"sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ=="
},
"validate-npm-package-license"
:
{
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
,
"integrity"
:
"sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="
,
"dev"
:
true
,
"requires"
:
{
"spdx-correct"
:
"^3.0.0"
,
"spdx-expression-parse"
:
"^3.0.0"
...
...
@@ -14479,7 +14359,6 @@
"version"
:
"1.10.0"
,
"resolved"
:
"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
,
"integrity"
:
"sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA="
,
"dev"
:
true
,
"requires"
:
{
"assert-plus"
:
"^1.0.0"
,
"core-util-is"
:
"1.0.2"
,
...
...
@@ -14888,7 +14767,6 @@
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-1.3.1.tgz"
,
"integrity"
:
"sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="
,
"dev"
:
true
,
"requires"
:
{
"isexe"
:
"^2.0.0"
}
...
...
@@ -14896,16 +14774,12 @@
"which-module"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz"
,
"integrity"
:
"sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8="
},
"wide-align"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz"
,
"integrity"
:
"sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA=="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"string-width"
:
"^1.0.2 || 2"
}
...
...
@@ -14935,7 +14809,6 @@
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz"
,
"integrity"
:
"sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU="
,
"dev"
:
true
,
"requires"
:
{
"string-width"
:
"^1.0.1"
,
"strip-ansi"
:
"^3.0.1"
...
...
@@ -15006,8 +14879,6 @@
"version"
:
"7.1.0"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz"
,
"integrity"
:
"sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"camelcase"
:
"^3.0.0"
,
"cliui"
:
"^3.2.0"
,
...
...
@@ -15027,16 +14898,12 @@
"camelcase"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
,
"integrity"
:
"sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
},
"y18n"
:
{
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz"
,
"integrity"
:
"sha1-bRX7qITAhnnA136I53WegR4H+kE="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-bRX7qITAhnnA136I53WegR4H+kE="
}
}
},
...
...
@@ -15044,8 +14911,6 @@
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz"
,
"integrity"
:
"sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo="
,
"dev"
:
true
,
"optional"
:
true
,
"requires"
:
{
"camelcase"
:
"^3.0.0"
},
...
...
@@ -15053,9 +14918,7 @@
"camelcase"
:
{
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz"
,
"integrity"
:
"sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
,
"dev"
:
true
,
"optional"
:
true
"integrity"
:
"sha1-MvxLn82vhF/N9+c7uXysImHwqwo="
}
}
},
...
...
package.json
View file @
ada42ef3
...
...
@@ -43,6 +43,7 @@
"
nedb
"
:
"
^1.8.0
"
,
"
ng-lottie
"
:
"
^0.3.1
"
,
"
ng-zorro-antd
"
:
"
^7.2.0
"
,
"
node-sass
"
:
"
^4.13.1
"
,
"
npm
"
:
"
^6.5.0
"
,
"
rxjs
"
:
"
^6.3.3
"
,
"
rxjs-compat
"
:
"
^6.3.3
"
,
...
...
src/app/form/form.component.html
View file @
ada42ef3
<div
class=
"model-content"
>
<div
style=
"position: absolute; left: 200px; top: 100px; width: 300px;"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
item
.
text
"
(
blur
)="
save
()"
>
<app-upload-image-with-preview
[
picUrl
]="
item
.
pic_url
"
(
imageUploaded
)="
onImageUploadSuccess
($
event
,
'
pic_url
')"
></app-upload-image-with-preview>
<app-audio-recorder
[
audioUrl
]="
item
.
audio_url
"
(
audioUploaded
)="
onAudioUploadSuccess
($
event
,
'
audio_url
')"
></app-audio-recorder>
<div
nz-row
>
<div
nz-col
nzOffset=
"2"
[
nzSpan
]="
16
"
>
<div
nz-row
>
<div
nz-col
nzOffset=
'4'
[
nzSpan
]="
12
"
><h1
nz-title
>
课程内容编辑
</h1></div>
</div>
<div
style=
"position: absolute; left: 1000px; top: 100px; width: 300px;"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
item
.
text_2
"
(
blur
)="
save
()"
>
<app-upload-image-with-preview
[
picUrl
]="
item
.
pic_url_2
"
(
imageUploaded
)="
onImageUploadSuccess
($
event
,
'
pic_url_2
')"
></app-upload-image-with-preview>
<div
nz-form
>
<div
id=
'title-anchor'
>
<nz-divider
nzText=
"课程名称"
nzOrientation=
"left"
></nz-divider>
<nz-form-item>
<nz-form-label
[
nzSpan
]="
3
"
nzFor=
"t_val1"
>
标题
</nz-form-label>
<nz-form-control
[
nzSpan
]="
6
"
>
<nz-input-group
nzAddOnBefore=
"Lesson"
>
<input
type=
"text"
id=
"t_val1"
nz-input
[(
ngModel
)]="
item
.
title
.
t_val
"
(
blur
)="
save
()"
>
</nz-input-group>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label
[
nzSpan
]="
3
"
nzFor=
"t_audio_url"
>
发音
</nz-form-label>
<nz-form-control
[
nzSpan
]="
6
"
>
<app-audio-recorder
[
audioUrl
]="
item
.
audio_url_2
"
(
audioUploaded
)="
onAudioUploadSuccess
($
event
,
'
audio_url_2
')"
></app-audio-recorder>
[
audioUrl
]="
item
.
title
.
t_audio_url
"
id=
"t_audio_url"
(
audioUploaded
)="
onAudioUploadSuccess
($
event
,
item
.
title
,
'
t_audio_url
')"
>
</app-audio-recorder>
</nz-form-control>
</nz-form-item>
</div>
<div
id=
'word-anchor'
>
<nz-divider
nzText=
"单词信息"
nzOrientation=
"left"
></nz-divider>
<nz-form-item>
<nz-form-control
[
nzSpan
]="
6
"
nzOffset=
"3"
class=
"add-btn-box"
>
<nz-affix
[
nzOffsetTop
]="
120
"
>
<button
nz-button
nzType=
"dashed"
nzTooltipTitle=
"添加单词"
nzTooltipPlacement=
"right"
class=
"add-btn"
id=
"add-btn"
(
click
)="
addWordItem
()"
nz-tooltip
>
<i
nz-icon
nzType=
"plus-circle"
nzTheme=
"outline"
></i>
添加
</button>
</nz-affix>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-control
[
nzSpan
]="
10
"
nzOffset=
"3"
>
<div
*
ngFor=
"let it of item.words; let i = index"
>
<nz-card
nzType=
"inner"
style=
"margin-top:16px;"
nzTitle=
"单词 {{i + 1}}"
[
nzExtra
]="
delWordTemplate
"
>
<div
nz-form
id=
"word-anchor-{{i + 1}}"
>
<nz-form-item>
<nz-form-label
[
nzSpan
]="
6
"
nzFor=
"word_val"
>
单词
</nz-form-label>
<nz-form-control
[
nzSpan
]="
12
"
>
<input
type=
"text"
nz-input
placeholder=
"Please input word"
[(
ngModel
)]="
it
.
word_val
"
(
blur
)="
save
()"
>
</nz-form-control>
</nz-form-item>
<nz-form-item>
<nz-form-label
[
nzSpan
]="
6
"
nzFor=
"word_pic_url"
>
发音
</nz-form-label>
<nz-form-control
[
nzSpan
]="
12
"
>
<app-audio-recorder
id=
"it.word_audio_url"
[
audioUrl
]="
it
.
word_audio_url
"
(
audioUploaded
)="
onAudioUploadSuccess
($
event
,
it
,
'
word_audio_url
')"
>
</app-audio-recorder>
</nz-form-control>
</nz-form-item>
</div>
</nz-card>
<ng-template
#
delWordTemplate
>
<button
nz-button
nzType=
"danger"
id=
"del-word-btn"
(
click
)="
deleteArrItem
(
item
.
words
,
i
)"
>
<i
nz-icon
nzType=
"delete"
nzTheme=
"outline"
></i>
删除
</button>
</ng-template>
</div>
</nz-form-control>
</nz-form-item>
</div>
</div>
</div>
<div
nz-col
nzOffset=
"2"
[
nzSpan
]="
4
"
>
<nz-affix
style=
"position: absolute; margin-top: 100px;margin-right: 10px;"
>
<nz-anchor>
<nz-link
nzHref=
"#title-anchor"
nzTitle=
"标题"
></nz-link>
<nz-link
nzHref=
"#word-anchor"
nzTitle=
"单词信息"
>
<nz-link
*
ngFor=
"let it of item.words; let i = index"
nzHref=
"#word-anchor-{{i}}"
nzTitle=
"单词 {{i + 1}}"
>
</nz-link>
</nz-link>
</nz-anchor>
</nz-affix>
</div>
</div>
</div>
...
...
src/app/form/form.component.ts
View file @
ada42ef3
...
...
@@ -10,10 +10,11 @@ import {Component, EventEmitter, Input, OnDestroy, OnChanges, OnInit, Output, Ap
export
class
FormComponent
implements
OnInit
,
OnChanges
,
OnDestroy
{
// 储存数据用
saveKey
=
"
test_0011
"
;
saveKey
=
"
ym_018
"
;
// 储存对象
item
;
word_arr
=
[];
constructor
(
private
appRef
:
ApplicationRef
)
{
...
...
@@ -31,6 +32,8 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
this
.
item
=
data
;
}
console
.
log
(
'
item
'
,
this
.
item
);
this
.
init
();
this
.
refresh
();
...
...
@@ -49,6 +52,19 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
init
()
{
//标题
if
(
!
this
.
item
.
title
){
this
.
item
.
title
=
{
t_val
:
'
1
'
};
}
if
(
!
this
.
item
.
words
){
this
.
item
.
words
=
this
.
word_arr
;
}
else
{
this
.
word_arr
=
this
.
item
.
words
;
}
}
...
...
@@ -56,9 +72,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
* 储存图片数据
* @param e
*/
onImageUploadSuccess
(
e
,
key
)
{
onImageUploadSuccess
(
e
,
item
,
key
)
{
this
.
item
[
key
]
=
e
.
url
;
item
[
key
]
=
e
.
url
;
this
.
save
();
}
...
...
@@ -66,9 +82,9 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
* 储存音频数据
* @param e
*/
onAudioUploadSuccess
(
e
,
key
)
{
onAudioUploadSuccess
(
e
,
item
,
key
)
{
this
.
item
[
key
]
=
e
.
url
;
item
[
key
]
=
e
.
url
;
this
.
save
();
}
...
...
@@ -78,6 +94,7 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
* 储存数据
*/
save
()
{
console
.
log
(
'
item
'
,
this
.
item
);
(
<
any
>
window
).
courseware
.
setData
(
this
.
item
,
null
,
this
.
saveKey
);
this
.
refresh
();
}
...
...
@@ -91,5 +108,34 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
},
1
);
}
wordItemData
(){
return
{
word_val
:
""
,
word_audio_url
:
""
};
}
/**
* 添加单词项
*/
addWordItem
(){
let
word
=
this
.
wordItemData
();
this
.
word_arr
.
push
(
word
);
this
.
save
();
}
/**
* 删除数组指定索引项
* @param arrItem 数组对象
* @param index 索引
*/
deleteArrItem
(
arrItem
,
index
){
if
(
index
!==
-
1
)
{
arrItem
.
splice
(
index
,
1
);
}
this
.
save
();
}
}
src/app/play/Unit.ts
View file @
ada42ef3
...
...
@@ -864,8 +864,84 @@ export class ShapeRect extends MySprite {
}
}
export
class
ShapeRoundRect
extends
MySprite
{
radius
=
0
;
fillColor
=
'
#ffffff
'
;
strokeColor
=
'
#000000
'
;
fill
=
true
;
stroke
=
false
;
lineWidth
=
1
;
setSize
(
w
,
h
,
r
)
{
this
.
width
=
w
;
this
.
height
=
h
;
this
.
radius
=
r
;
}
setOutLine
(
color
,
lineWidth
)
{
this
.
stroke
=
true
;
this
.
strokeColor
=
color
;
this
.
lineWidth
=
lineWidth
;
}
drawShape
()
{
const
ctx
=
this
.
ctx
;
const
width
=
this
.
width
;
const
height
=
this
.
height
;
const
radius
=
this
.
radius
;
ctx
.
save
();
ctx
.
beginPath
(
0
);
// 从右下角顺时针绘制,弧度从0到1/2PI
ctx
.
arc
(
width
-
radius
,
height
-
radius
,
radius
,
0
,
Math
.
PI
/
2
);
// 矩形下边线
ctx
.
lineTo
(
radius
,
height
);
// 左下角圆弧,弧度从1/2PI到PI
ctx
.
arc
(
radius
,
height
-
radius
,
radius
,
Math
.
PI
/
2
,
Math
.
PI
);
// 矩形左边线
ctx
.
lineTo
(
0
,
radius
);
// 左上角圆弧,弧度从PI到3/2PI
ctx
.
arc
(
radius
,
radius
,
radius
,
Math
.
PI
,
Math
.
PI
*
3
/
2
);
// 上边线
ctx
.
lineTo
(
width
-
radius
,
0
);
// 右上角圆弧
ctx
.
arc
(
width
-
radius
,
radius
,
radius
,
Math
.
PI
*
3
/
2
,
Math
.
PI
*
2
);
// 右边线
ctx
.
lineTo
(
width
,
height
-
radius
);
ctx
.
closePath
();
if
(
this
.
fill
)
{
ctx
.
fillStyle
=
this
.
fillColor
;
ctx
.
fill
();
}
if
(
this
.
stroke
)
{
ctx
.
lineWidth
=
this
.
lineWidth
;
ctx
.
strokeStyle
=
this
.
strokeColor
;
ctx
.
stroke
();
}
ctx
.
restore
();
}
drawSelf
()
{
super
.
drawSelf
();
this
.
drawShape
();
}
}
export
class
ShapeCircle
extends
MySprite
{
fillColor
=
'
#FF0000
'
;
...
...
src/app/play/play.component.scss
View file @
ada42ef3
...
...
@@ -17,3 +17,8 @@
src
:
url("../../assets/font/BRLNSDB.TTF")
;
}
@font-face
{
font-family
:
'GOTHICB'
;
src
:
url("../../assets/font/GOTHICB.TTF")
;
}
\ No newline at end of file
src/app/play/play.component.ts
View file @
ada42ef3
...
...
@@ -2,7 +2,11 @@ import {Component, ElementRef, ViewChild, OnInit, Input, OnDestroy, HostListener
import
{
Label
,
MySprite
,
tweenChange
,
MySprite
,
tweenChange
,
ShapeRect
,
ShapeCircle
,
ShapeRoundRect
}
from
'
./Unit
'
;
import
{
res
,
resAudio
}
from
'
./resources
'
;
...
...
@@ -57,17 +61,19 @@ export class PlayComponent implements OnInit, OnDestroy {
canvasLeft
;
canvasTop
;
saveKey
=
'
test_0011
'
;
//间隔宽度
interval_width
;
//间隔高度
interval_height
;
btnLeft
;
btnRight
;
pic1
;
pic2
;
//单词数组
wordSprArr
=
[];
canTouch
=
true
;
//标题背景
title_bg
curPic
;
saveKey
=
'
ym_018
'
;
@
HostListener
(
'
window:resize
'
,
[
'
$event
'
])
onResize
(
event
)
{
...
...
@@ -86,7 +92,8 @@ export class PlayComponent implements OnInit, OnDestroy {
if
(
data
&&
typeof
data
==
'
object
'
)
{
this
.
data
=
data
;
}
// console.log('data:' , data);
console
.
log
(
'
data:
'
,
data
);
// 初始化 各事件监听
this
.
initListener
();
...
...
@@ -105,6 +112,15 @@ export class PlayComponent implements OnInit, OnDestroy {
}
getDefaultTitle
(){
return
{
t_val
:
''
,
t_font_color
:
'
#000000
'
,
t_font
:
'
BRLNSDB
'
,
t_font_size
:
40
};
}
ngOnDestroy
()
{
window
[
'
curCtx
'
]
=
null
;
window
.
cancelAnimationFrame
(
this
.
animationId
);
...
...
@@ -143,11 +159,6 @@ export class PlayComponent implements OnInit, OnDestroy {
window
[
'
curCtx
'
]
=
this
.
ctx
;
}
updateItem
(
item
)
{
if
(
item
)
{
item
.
update
();
...
...
@@ -163,12 +174,6 @@ export class PlayComponent implements OnInit, OnDestroy {
}
}
initListener
()
{
this
.
winResizeEventStream
...
...
@@ -289,6 +294,20 @@ export class PlayComponent implements OnInit, OnDestroy {
}
pauseAudio
(
key
,
callback
=
null
){
const
audio
=
this
.
audioObj
[
key
];
if
(
audio
)
{
if
(
callback
)
{
audio
.
onended
=
()
=>
{
callback
();
};
}
audio
.
pause
();
}
}
loadResources
()
{
const
pr
=
[];
...
...
@@ -344,13 +363,17 @@ export class PlayComponent implements OnInit, OnDestroy {
renderAfterResize
()
{
this
.
canvasWidth
=
this
.
wrap
.
nativeElement
.
clientWidth
;
this
.
canvasHeight
=
this
.
wrap
.
nativeElement
.
clientHeight
;
this
.
init
();
}
// 若无数据 则为预览模式 需要填充一些默认数据用来显示
this
.
initDefaultData
();
this
.
init
();
}
/**
* 检查鼠标点击目标视图里
* @param target 目标视图
*/
checkClickTarget
(
target
)
{
const
rect
=
target
.
getBoundingBox
();
...
...
@@ -361,18 +384,6 @@ export class PlayComponent implements OnInit, OnDestroy {
return
false
;
}
getWorlRect
(
target
)
{
let
rect
=
target
.
getBoundingBox
();
if
(
target
.
parent
)
{
const
pRect
=
this
.
getWorlRect
(
target
.
parent
);
rect
.
x
+=
pRect
.
x
;
rect
.
y
+=
pRect
.
y
;
}
return
rect
;
}
checkPointInRect
(
x
,
y
,
rect
)
{
if
(
x
>=
rect
.
x
&&
x
<=
rect
.
x
+
rect
.
width
)
{
...
...
@@ -383,11 +394,12 @@ export class PlayComponent implements OnInit, OnDestroy {
return
false
;
}
addUrlToAudioObj
(
key
,
url
=
null
,
vlomue
=
1
,
loop
=
false
,
callback
=
null
,
callbackParam
=
null
)
{
addUrlToAudioObj
(
key
,
url
=
null
,
vlomue
=
1
,
loop
=
false
,
callback
=
null
)
{
console
.
log
(
'
add audio
'
,
key
);
if
(
!
key
){
return
;
}
const
audioObj
=
this
.
audioObj
;
...
...
@@ -405,11 +417,12 @@ export class PlayComponent implements OnInit, OnDestroy {
audioObj
[
key
]
=
audio
;
audio
.
addEventListener
(
'
ended
'
,
function
()
{
console
.
log
(
'
play ended
'
);
if
(
callback
)
{
audio
.
onended
=
()
=>
{
callback
();
};
callback
(
callbackParam
);
}
},
false
);
}
addUrlToImages
(
url
)
{
...
...
@@ -432,10 +445,23 @@ export class PlayComponent implements OnInit, OnDestroy {
*/
initDefaultData
()
{
if
(
!
this
.
data
.
pic_url
)
{
this
.
data
.
pic_url
=
'
assets/play/default/pic.jpg
'
;
this
.
data
.
pic_url_2
=
'
assets/play/default/pic.jpg
'
;
if
(
!
this
.
data
.
title
){
this
.
data
.
title
=
this
.
getDefaultTitle
();
}
if
(
!
this
.
data
.
words
){
this
.
data
.
words
=
[];
}
this
.
wordSprArr
=
[];
//间隔宽度
this
.
interval_width
=
250
;
//间隔高度
this
.
interval_height
=
60
;
this
.
title_bg
=
{};
}
...
...
@@ -444,9 +470,6 @@ export class PlayComponent implements OnInit, OnDestroy {
*/
initImg
()
{
this
.
addUrlToImages
(
this
.
data
.
pic_url
);
this
.
addUrlToImages
(
this
.
data
.
pic_url_2
);
}
/**
...
...
@@ -454,16 +477,18 @@ export class PlayComponent implements OnInit, OnDestroy {
*/
initAudio
()
{
// 音频资源
this
.
addUrlToAudioObj
(
this
.
data
.
audio_url
);
this
.
addUrlToAudioObj
(
this
.
data
.
audio_url_2
);
// 音效
this
.
addUrlToAudioObj
(
'
click
'
,
this
.
rawAudios
.
get
(
'
click
'
),
0.3
);
}
//标题发音
this
.
addUrlToAudioObj
(
this
.
data
.
title
.
t_audio_url
);
//单词发音
for
(
let
i
=
0
;
i
<
this
.
data
.
words
.
length
;
++
i
){
let
word
=
this
.
data
.
words
[
i
];
this
.
addUrlToAudioObj
(
word
.
word_audio_url
);
}
}
/**
* 初始化数据
...
...
@@ -475,176 +500,275 @@ export class PlayComponent implements OnInit, OnDestroy {
const
s
=
Math
.
min
(
sx
,
sy
);
this
.
mapScale
=
s
;
// this.mapScale = sx;
// this.mapScale = sy;
this
.
interval_height
=
this
.
interval_height
*
s
;
this
.
interval_width
=
this
.
interval_width
*
s
;
this
.
renderArr
=
[];
}
/**
* 初始化
试
图
* 初始化
视
图
*/
initView
()
{
//初始化标题
this
.
initTitle
();
//初始化单词
this
.
initWord
();
}
/**
* 初始化标题
*/
initTitle
(){
const
title_bg
=
new
ShapeRoundRect
();
title_bg
.
y
=
-
24
;
title_bg
.
fillColor
=
"
#975833
"
;
this
.
title_bg
=
title_bg
;
this
.
renderArr
.
push
(
title_bg
);
let
title_content
=
this
.
data
.
title
;
console
.
log
(
'
title
'
,
title_content
);
//标题1
let
title1
;
//标题2
let
title2
;
this
.
initPic
();
if
(
title_content
){
this
.
initBottomPart
();
//标题1
title1
=
new
Label
();
title1
.
text
=
"
Lesson
"
;
title1
.
textAlign
=
'
center
'
;
title1
.
fontSize
=
40
;
title1
.
fontName
=
"
BRLNSDB
"
;
title1
.
fontColor
=
"
#FFFFFF
"
;
title1
.
refreshSize
();
title_bg
.
addChild
(
title1
);
title1
.
y
=
(
title1
.
height
+
10
)
/
2
;
//标题2
title2
=
new
Label
();
title2
.
text
=
title_content
.
t_val
;
title2
.
textAlign
=
'
center
'
;
title2
.
fontSize
=
40
;
title2
.
fontName
=
"
BRLNSDB
"
;
title2
.
fontColor
=
"
#975833
"
;
title2
.
refreshSize
();
}
initBottomPart
()
{
//标题2背景
let
title2_bg
=
new
ShapeCircle
();
title2_bg
.
setRadius
(
30
);
title2_bg
.
fillColor
=
"
#F8C224
"
;
title2_bg
.
addChild
(
title2
);
//将标题1添加到标题背景里
title_bg
.
addChild
(
title2_bg
);
const
btnLeft
=
new
MySprite
();
btnLeft
.
init
(
this
.
images
.
get
(
'
btn_left
'
));
btnLeft
.
x
=
this
.
canvasWidth
-
150
*
this
.
mapScale
;
btnLeft
.
y
=
this
.
canvasHeight
-
100
*
this
.
mapScale
;
//标题宽度
let
titleTotalWidth
=
title1
.
width
+
10
+
title2_bg
.
width
;
btnLeft
.
setScaleXY
(
this
.
mapScale
)
;
let
title_bg_width
=
titleTotalWidth
+
50
;
this
.
renderArr
.
push
(
btnLeft
);
this
.
title_bg
.
setSize
(
title_bg_width
,
110
,
24
);
this
.
btnLeft
=
btnLeft
;
this
.
title_bg
.
x
=
(
this
.
canvasWidth
-
title_bg_width
)
/
2
;
//重新设置字母(组合)的坐标
let
titleStartX
=
(
title_bg_width
-
titleTotalWidth
)
/
2
;
//标题 1坐标
title1
.
y
=
this
.
title_bg
.
height
/
2
+
12
title1
.
x
=
titleStartX
+
title1
.
width
/
2
;
//父类拉伸后,子类不拉伸
title1
.
scaleX
/=
this
.
title_bg
.
scaleX
;
const
btnRight
=
new
MySprite
();
btnRight
.
init
(
this
.
images
.
get
(
'
btn_right
'
));
btnRight
.
x
=
this
.
canvasWidth
-
50
*
this
.
mapScale
;
btnRight
.
y
=
this
.
canvasHeight
-
100
*
this
.
mapScale
;
btnRight
.
setScaleXY
(
this
.
mapScale
);
titleStartX
+=
title1
.
width
+
20
;
this
.
renderArr
.
push
(
btnRight
);
//标题 2坐标
title2_bg
.
y
=
this
.
title_bg
.
height
/
2
+
12
title2_bg
.
x
=
titleStartX
+
title2_bg
.
width
/
2
;
//父类拉伸后,子类不拉伸
title2_bg
.
scaleX
/=
this
.
title_bg
.
scaleX
;
this
.
btnRight
=
btnRight
;
this
.
title_bg
=
title_bg
;
this
.
renderArr
.
push
(
title_bg
);
}
initPic
()
{
/**
* 初始化单词
*/
initWord
(){
const
maxW
=
this
.
canvasWidth
*
0.7
;
let
maxWidth
=
0
;
const
pic1
=
new
MySprite
();
pic1
.
init
(
this
.
images
.
get
(
this
.
data
.
pic_url
));
pic1
.
x
=
this
.
canvasWidth
/
2
;
pic1
.
y
=
this
.
canvasHeight
/
2
;
pic1
.
setScaleXY
(
maxW
/
pic1
.
width
);
let
maxHeiht
=
0
;
this
.
renderArr
.
push
(
pic1
);
this
.
pic1
=
pic1
;
let
v_word_arr
=
[];
//循环生成单词视图
for
(
let
i
=
0
;
i
<
this
.
data
.
words
.
length
;
++
i
){
const
label1
=
new
Label
();
label1
.
text
=
this
.
data
.
text
;
label1
.
textAlign
=
'
center
'
;
label1
.
fontSize
=
50
;
label1
.
fontName
=
'
BRLNSDB
'
;
label1
.
fontColor
=
'
#ffffff
'
;
let
word
=
this
.
data
.
words
[
i
];
pic1
.
addChild
(
label1
);
let
v_word
=
new
ShapeRect
();
v_word
.
alpha
=
0
;
v_word
.
setScaleXY
(
this
.
mapScale
);
this
.
renderArr
.
push
(
v_word
);
this
.
wordSprArr
.
push
(
v_word
);
//单词
let
word_val
=
this
.
getWordValSprite
(
word
,
v_word
);
if
(
maxWidth
<
v_word
.
width
){
maxWidth
=
v_word
.
width
;
}
maxHeiht
=
v_word
.
height
;
}
const
pic2
=
new
MySprite
();
pic2
.
init
(
this
.
images
.
get
(
this
.
data
.
pic_url_2
));
pic2
.
x
=
this
.
canvasWidth
/
2
+
this
.
canvasWidth
;
pic2
.
y
=
this
.
canvasHeight
/
2
;
pic2
.
setScaleXY
(
maxW
/
pic2
.
width
);
console
.
log
(
'
word_spr_arr
'
,
this
.
wordSprArr
);
this
.
renderArr
.
push
(
pic2
);
this
.
pic2
=
pic2
;
//行数
let
rows
=
0
;
this
.
curPic
=
pic1
;
}
//列数
let
cols
=
0
;
//单词个数
let
wordNum
=
this
.
wordSprArr
.
length
;
btnLeftClicked
()
{
if
(
wordNum
<
4
){
rows
=
1
;
this
.
lastPage
()
;
cols
=
wordNum
;
}
else
if
(
wordNum
==
4
){
rows
=
2
;
btnRightClicked
()
{
this
.
nextPage
();
cols
=
2
;
}
else
{
lastPage
()
{
cols
=
3
;
if
(
this
.
curPic
==
this
.
pic1
)
{
return
;
rows
=
Math
.
floor
(
wordNum
/
3
);
if
(
wordNum
%
3
!=
0
){
rows
+=
1
;
}
}
this
.
canTouch
=
false
;
//总宽度
let
totalWidth
=
0
;
const
moveLen
=
this
.
canvasWidth
;
tweenChange
(
this
.
pic1
,
{
x
:
this
.
pic1
.
x
+
moveLen
},
1
);
tweenChange
(
this
.
pic2
,
{
x
:
this
.
pic2
.
x
+
moveLen
},
1
,
()
=>
{
this
.
canTouch
=
true
;
this
.
curPic
=
this
.
pic1
;
});
}
//总高度
let
totalHeight
=
rows
*
maxHeiht
+
(
rows
-
1
)
*
this
.
interval_height
;
nextPage
()
{
//起始Y坐标
let
startY
=
(
this
.
canvasHeight
-
totalHeight
)
/
2
;
if
(
this
.
curPic
==
this
.
pic2
)
{
return
;
console
.
log
(
'
canvasHeight
'
,
this
.
canvasHeight
);
console
.
log
(
'
title_bg
'
,
this
.
title_bg
.
height
);
console
.
log
(
'
totalHeight
'
,
totalHeight
);
let
row_max_width
=
cols
*
maxWidth
+
(
cols
-
1
)
*
this
.
interval_width
;
//起始X坐标
let
startX
=
(
this
.
canvasWidth
-
row_max_width
)
/
2
;
//每行起始坐标
let
row_startX
=
startX
;
for
(
let
i
=
0
;
i
<
wordNum
;
++
i
){
let
index
=
i
+
1
;
let
word_spreat
=
this
.
wordSprArr
[
i
];
word_spreat
.
y
=
startY
;
word_spreat
.
x
=
row_startX
;
// 如果不是行末尾,增加空格
if
(
index
%
cols
!=
0
&&
index
!=
wordNum
){
row_startX
+=
maxWidth
+
this
.
interval_width
;
}
// 到最后一个单词
else
if
(
index
%
cols
!=
0
&&
index
==
wordNum
){
this
.
canTouch
=
false
;
const
moveLen
=
this
.
canvasWidth
;
tweenChange
(
this
.
pic1
,
{
x
:
this
.
pic1
.
x
-
moveLen
},
1
);
tweenChange
(
this
.
pic2
,
{
x
:
this
.
pic2
.
x
-
moveLen
},
1
,
()
=>
{
this
.
canTouch
=
true
;
this
.
curPic
=
this
.
pic2
;
});
}
// 每行显示n个单词
else
if
(
index
%
cols
==
0
){
//每一行最后一个单词,高度起始坐标增加
startY
+=
word_spreat
.
height
+
this
.
interval_height
;
pic1Clicked
()
{
this
.
playAudio
(
this
.
data
.
audio_url
)
;
//下一行X坐标复原
row_startX
=
startX
;
}
pic2Clicked
()
{
this
.
playAudio
(
this
.
data
.
audio_url_2
);
console
.
log
(
'
word_spr
'
,
word_spreat
);
}
}
/**
* 获取单词值视图
* @param word
* @param word_bg
*/
getWordValSprite
(
word
,
word_bg
){
let
word_val
=
new
Label
();
word_val
.
text
=
word
.
word_val
;
word_val
.
textAlign
=
'
center
'
;
word_val
.
fontSize
=
110
;
word_val
.
fontName
=
"
GOTHICB
"
;
word_val
.
fontColor
=
"
#674023
"
;
word_val
.
refreshSize
();
word_bg
.
addChild
(
word_val
);
word_val
.
x
=
word_val
.
width
/
2
;
word_val
.
y
=
word_val
.
height
/
2
;
mapDown
(
event
)
{
word_bg
.
setSize
(
word_val
.
width
,
word_val
.
height
);
if
(
!
this
.
canTouch
)
{
return
;
return
word_val
;
}
if
(
this
.
checkClickTarget
(
this
.
btnLeft
)
)
{
this
.
btnLeftClicked
();
return
;
}
mapDown
(
event
)
{
if
(
this
.
checkClickTarget
(
this
.
btnRight
)
)
{
this
.
btnRightClicked
();
return
;
}
if
(
this
.
checkClickTarget
(
this
.
pic1
)
)
{
this
.
pic1Clicked
();
for
(
let
i
=
0
;
i
<
this
.
wordSprArr
.
length
;
++
i
){
let
wordSpr
=
this
.
wordSprArr
[
i
];
if
(
this
.
checkClickTarget
(
wordSpr
)){
this
.
playAudio
(
this
.
data
.
words
[
i
].
word_audio_url
);
return
;
}
}
if
(
this
.
checkClickTarget
(
this
.
pic2
)
)
{
this
.
pic2Clicked
();
if
(
this
.
checkClickTarget
(
this
.
title_bg
)){
console
.
log
(
'
click title
'
);
this
.
playAudio
(
this
.
data
.
title
.
t_audio_url
);
return
;
}
}
mapMove
(
event
)
{
...
...
@@ -674,6 +798,4 @@ export class PlayComponent implements OnInit, OnDestroy {
}
}
src/assets/font/GOTHICB.TTF
0 → 100644
View file @
ada42ef3
File added
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment