Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
O
op_01
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
op_01
Commits
84e30557
Commit
84e30557
authored
Sep 22, 2021
by
范雪寒
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
feat: 点选组件
parent
ce304201
Changes
16
Hide whitespace changes
Inline
Side-by-side
Showing
16 changed files
with
2189 additions
and
1202 deletions
+2189
-1202
angular.json
form/angular.json
+5
-2
package-lock.json
form/package-lock.json
+641
-146
package.json
form/package.json
+1
-1
app.module.ts
form/src/app/app.module.ts
+3
-1
audio-recorder.component.html
...c/app/common/audio-recorder/audio-recorder.component.html
+2
-1
audio-recorder.component.ts
...src/app/common/audio-recorder/audio-recorder.component.ts
+19
-1
custom-action.component.html
...src/app/common/custom-action/custom-action.component.html
+153
-0
custom-action.component.scss
...src/app/common/custom-action/custom-action.component.scss
+110
-0
custom-action.component.ts
form/src/app/common/custom-action/custom-action.component.ts
+216
-0
Unit.ts
form/src/app/common/custom-hot-zone/Unit.ts
+57
-791
custom-hot-zone.component.html
...app/common/custom-hot-zone/custom-hot-zone.component.html
+165
-21
custom-hot-zone.component.scss
...app/common/custom-hot-zone/custom-hot-zone.component.scss
+10
-109
custom-hot-zone.component.ts
...c/app/common/custom-hot-zone/custom-hot-zone.component.ts
+694
-125
upload-image-with-preview.component.ts
...image-with-preview/upload-image-with-preview.component.ts
+17
-0
form.component.html
form/src/app/form/form.component.html
+25
-3
form.component.ts
form/src/app/form/form.component.ts
+71
-1
No files found.
form/angular.json
View file @
84e30557
...
@@ -128,5 +128,8 @@
...
@@ -128,5 +128,8 @@
}
}
}
}
},
},
"defaultProject"
:
"ng-template-generator"
"defaultProject"
:
"ng-template-generator"
,
}
"cli"
:
{
"analytics"
:
false
}
}
\ No newline at end of file
form/package-lock.json
View file @
84e30557
...
@@ -1778,6 +1778,11 @@
...
@@ -1778,6 +1778,11 @@
"through"
:
">=2.2.7 <3"
"through"
:
">=2.2.7 <3"
}
}
},
},
"abbrev"
:
{
"version"
:
"1.1.1"
,
"resolved"
:
"https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz"
,
"integrity"
:
"sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q=="
},
"accepts"
:
{
"accepts"
:
{
"version"
:
"1.3.7"
,
"version"
:
"1.3.7"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"
,
"resolved"
:
"https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz"
,
...
@@ -1900,6 +1905,11 @@
...
@@ -1900,6 +1905,11 @@
"integrity"
:
"sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
,
"integrity"
:
"sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM="
,
"dev"
:
true
"dev"
:
true
},
},
"amdefine"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/amdefine/-/amdefine-1.0.1.tgz"
,
"integrity"
:
"sha1-SlKCrBZHKek2Gbz9OtFR+BfOkfU="
},
"ansi-colors"
:
{
"ansi-colors"
:
{
"version"
:
"3.2.4"
,
"version"
:
"3.2.4"
,
"resolved"
:
"https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz"
,
...
@@ -1924,14 +1934,12 @@
...
@@ -1924,14 +1934,12 @@
"ansi-regex"
:
{
"ansi-regex"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz"
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
,
"integrity"
:
"sha1-w7M6te42DYbg5ijwRorn7yfWVN8="
"dev"
:
true
},
},
"ansi-styles"
:
{
"ansi-styles"
:
{
"version"
:
"3.2.1"
,
"version"
:
"3.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz"
,
"integrity"
:
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
,
"integrity"
:
"sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"color-convert"
:
"^1.9.0"
"color-convert"
:
"^1.9.0"
}
}
...
@@ -1969,8 +1977,16 @@
...
@@ -1969,8 +1977,16 @@
"aproba"
:
{
"aproba"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz"
,
"integrity"
:
"sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
,
"integrity"
:
"sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw=="
"dev"
:
true
},
"are-we-there-yet"
:
{
"version"
:
"1.1.7"
,
"resolved"
:
"https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.7.tgz"
,
"integrity"
:
"sha512-nxwy40TuMiUGqMyRHgCSWZ9FM4VAoRP4xUYSTv5ImRog+h9yISPbVH7H8fASCIzYn9wlEv4zvFL7uKDMCFQm3g=="
,
"requires"
:
{
"delegates"
:
"^1.0.0"
,
"readable-stream"
:
"^2.0.6"
}
},
},
"arg"
:
{
"arg"
:
{
"version"
:
"4.1.3"
,
"version"
:
"4.1.3"
,
...
@@ -2015,6 +2031,11 @@
...
@@ -2015,6 +2031,11 @@
"integrity"
:
"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
,
"integrity"
:
"sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ="
,
"dev"
:
true
"dev"
:
true
},
},
"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="
},
"array-flatten"
:
{
"array-flatten"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz"
,
...
@@ -2064,7 +2085,6 @@
...
@@ -2064,7 +2085,6 @@
"version"
:
"0.2.4"
,
"version"
:
"0.2.4"
,
"resolved"
:
"https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz"
,
"integrity"
:
"sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="
,
"integrity"
:
"sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"safer-buffer"
:
"~2.1.0"
"safer-buffer"
:
"~2.1.0"
}
}
...
@@ -2118,8 +2138,7 @@
...
@@ -2118,8 +2138,7 @@
"assert-plus"
:
{
"assert-plus"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz"
,
"integrity"
:
"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
,
"integrity"
:
"sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU="
"dev"
:
true
},
},
"assign-symbols"
:
{
"assign-symbols"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
...
@@ -2153,6 +2172,11 @@
...
@@ -2153,6 +2172,11 @@
"integrity"
:
"sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
,
"integrity"
:
"sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ=="
,
"dev"
:
true
"dev"
:
true
},
},
"async-foreach"
:
{
"version"
:
"0.1.3"
,
"resolved"
:
"https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz"
,
"integrity"
:
"sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI="
},
"async-limiter"
:
{
"async-limiter"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz"
,
...
@@ -2162,8 +2186,7 @@
...
@@ -2162,8 +2186,7 @@
"asynckit"
:
{
"asynckit"
:
{
"version"
:
"0.4.0"
,
"version"
:
"0.4.0"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz"
,
"integrity"
:
"sha1-x57Zf380y48robyXkLzDZkdLS3k="
,
"integrity"
:
"sha1-x57Zf380y48robyXkLzDZkdLS3k="
"dev"
:
true
},
},
"atob"
:
{
"atob"
:
{
"version"
:
"2.1.2"
,
"version"
:
"2.1.2"
,
...
@@ -2189,14 +2212,12 @@
...
@@ -2189,14 +2212,12 @@
"aws-sign2"
:
{
"aws-sign2"
:
{
"version"
:
"0.7.0"
,
"version"
:
"0.7.0"
,
"resolved"
:
"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz"
,
"integrity"
:
"sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
,
"integrity"
:
"sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg="
"dev"
:
true
},
},
"aws4"
:
{
"aws4"
:
{
"version"
:
"1.10.0"
,
"version"
:
"1.10.0"
,
"resolved"
:
"https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/aws4/-/aws4-1.10.0.tgz"
,
"integrity"
:
"sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
,
"integrity"
:
"sha512-3YDiu347mtVtjpyV3u5kVqQLP242c06zwDOgpeRnybmXlYYsLbtTrUBUm8i8srONt+FWobl5aibnU1030PeeuA=="
"dev"
:
true
},
},
"axobject-query"
:
{
"axobject-query"
:
{
"version"
:
"2.0.2"
,
"version"
:
"2.0.2"
,
...
@@ -2335,7 +2356,6 @@
...
@@ -2335,7 +2356,6 @@
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz"
,
"integrity"
:
"sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4="
,
"integrity"
:
"sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"tweetnacl"
:
"^0.14.3"
"tweetnacl"
:
"^0.14.3"
}
}
...
@@ -2386,6 +2406,14 @@
...
@@ -2386,6 +2406,14 @@
"integrity"
:
"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
,
"integrity"
:
"sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig=="
,
"dev"
:
true
"dev"
:
true
},
},
"block-stream"
:
{
"version"
:
"0.0.9"
,
"resolved"
:
"https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz"
,
"integrity"
:
"sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo="
,
"requires"
:
{
"inherits"
:
"~2.0.0"
}
},
"blocking-proxy"
:
{
"blocking-proxy"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz"
,
...
@@ -2806,8 +2834,23 @@
...
@@ -2806,8 +2834,23 @@
"camelcase"
:
{
"camelcase"
:
{
"version"
:
"5.3.1"
,
"version"
:
"5.3.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz"
,
"integrity"
:
"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
,
"integrity"
:
"sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg=="
"dev"
:
true
},
"camelcase-keys"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz"
,
"integrity"
:
"sha1-MIvur/3ygRkFHvodkyITyRuPkuc="
,
"requires"
:
{
"camelcase"
:
"^2.0.0"
,
"map-obj"
:
"^1.0.0"
},
"dependencies"
:
{
"camelcase"
:
{
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz"
,
"integrity"
:
"sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8="
}
}
},
},
"caniuse-api"
:
{
"caniuse-api"
:
{
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
...
@@ -2836,8 +2879,7 @@
...
@@ -2836,8 +2879,7 @@
"caseless"
:
{
"caseless"
:
{
"version"
:
"0.12.0"
,
"version"
:
"0.12.0"
,
"resolved"
:
"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz"
,
"integrity"
:
"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
,
"integrity"
:
"sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw="
"dev"
:
true
},
},
"chalk"
:
{
"chalk"
:
{
"version"
:
"2.4.2"
,
"version"
:
"2.4.2"
,
...
@@ -3033,8 +3075,7 @@
...
@@ -3033,8 +3075,7 @@
"code-point-at"
:
{
"code-point-at"
:
{
"version"
:
"1.1.0"
,
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz"
,
"integrity"
:
"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
,
"integrity"
:
"sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c="
"dev"
:
true
},
},
"codelyzer"
:
{
"codelyzer"
:
{
"version"
:
"5.2.2"
,
"version"
:
"5.2.2"
,
...
@@ -3091,7 +3132,6 @@
...
@@ -3091,7 +3132,6 @@
"version"
:
"1.9.3"
,
"version"
:
"1.9.3"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz"
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"integrity"
:
"sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"color-name"
:
"1.1.3"
"color-name"
:
"1.1.3"
}
}
...
@@ -3099,8 +3139,7 @@
...
@@ -3099,8 +3139,7 @@
"color-name"
:
{
"color-name"
:
{
"version"
:
"1.1.3"
,
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz"
,
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
,
"integrity"
:
"sha1-p9BVi9icQveV3UIyj3QIMcpTvCU="
"dev"
:
true
},
},
"color-string"
:
{
"color-string"
:
{
"version"
:
"1.5.3"
,
"version"
:
"1.5.3"
,
...
@@ -3122,7 +3161,6 @@
...
@@ -3122,7 +3161,6 @@
"version"
:
"1.0.8"
,
"version"
:
"1.0.8"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"resolved"
:
"https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz"
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"integrity"
:
"sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"delayed-stream"
:
"~1.0.0"
"delayed-stream"
:
"~1.0.0"
}
}
...
@@ -3262,6 +3300,11 @@
...
@@ -3262,6 +3300,11 @@
"integrity"
:
"sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
,
"integrity"
:
"sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA=="
,
"dev"
:
true
"dev"
:
true
},
},
"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="
},
"constants-browserify"
:
{
"constants-browserify"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz"
,
...
@@ -3755,6 +3798,14 @@
...
@@ -3755,6 +3798,14 @@
}
}
}
}
},
},
"currently-unhandled"
:
{
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/currently-unhandled/-/currently-unhandled-0.4.1.tgz"
,
"integrity"
:
"sha1-mI3zP+qxke95mmE2nddsF635V+o="
,
"requires"
:
{
"array-find-index"
:
"^1.0.1"
}
},
"custom-event"
:
{
"custom-event"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz"
,
...
@@ -3777,7 +3828,6 @@
...
@@ -3777,7 +3828,6 @@
"version"
:
"1.14.1"
,
"version"
:
"1.14.1"
,
"resolved"
:
"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz"
,
"integrity"
:
"sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA="
,
"integrity"
:
"sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"assert-plus"
:
"^1.0.0"
"assert-plus"
:
"^1.0.0"
}
}
...
@@ -3827,8 +3877,7 @@
...
@@ -3827,8 +3877,7 @@
"decamelize"
:
{
"decamelize"
:
{
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz"
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
,
"integrity"
:
"sha1-9lNNFRSCabIDUue+4m9QH5oZEpA="
"dev"
:
true
},
},
"decode-uri-component"
:
{
"decode-uri-component"
:
{
"version"
:
"0.2.0"
,
"version"
:
"0.2.0"
,
...
@@ -4006,8 +4055,12 @@
...
@@ -4006,8 +4055,12 @@
"delayed-stream"
:
{
"delayed-stream"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz"
,
"integrity"
:
"sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
,
"integrity"
:
"sha1-3zrhmayt+31ECqrgsp4icrJOxhk="
"dev"
:
true
},
"delegates"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz"
,
"integrity"
:
"sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o="
},
},
"depd"
:
{
"depd"
:
{
"version"
:
"1.1.2"
,
"version"
:
"1.1.2"
,
...
@@ -4211,7 +4264,6 @@
...
@@ -4211,7 +4264,6 @@
"version"
:
"0.1.2"
,
"version"
:
"0.1.2"
,
"resolved"
:
"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz"
,
"integrity"
:
"sha1-OoOpBOVDUyh4dMVkt1SThoSamMk="
,
"integrity"
:
"sha1-OoOpBOVDUyh4dMVkt1SThoSamMk="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"jsbn"
:
"~0.1.0"
,
"jsbn"
:
"~0.1.0"
,
"safer-buffer"
:
"^2.1.0"
"safer-buffer"
:
"^2.1.0"
...
@@ -4458,7 +4510,6 @@
...
@@ -4458,7 +4510,6 @@
"version"
:
"1.3.2"
,
"version"
:
"1.3.2"
,
"resolved"
:
"https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz"
,
"integrity"
:
"sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
,
"integrity"
:
"sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"is-arrayish"
:
"^0.2.1"
"is-arrayish"
:
"^0.2.1"
}
}
...
@@ -4520,8 +4571,7 @@
...
@@ -4520,8 +4571,7 @@
"escape-string-regexp"
:
{
"escape-string-regexp"
:
{
"version"
:
"1.0.5"
,
"version"
:
"1.0.5"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz"
,
"integrity"
:
"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
,
"integrity"
:
"sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ="
"dev"
:
true
},
},
"escodegen"
:
{
"escodegen"
:
{
"version"
:
"1.14.3"
,
"version"
:
"1.14.3"
,
...
@@ -4795,8 +4845,7 @@
...
@@ -4795,8 +4845,7 @@
"extsprintf"
:
{
"extsprintf"
:
{
"version"
:
"1.3.0"
,
"version"
:
"1.3.0"
,
"resolved"
:
"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz"
,
"integrity"
:
"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
,
"integrity"
:
"sha1-lpGEQOMEGnpBT4xS48V06zw+HgU="
"dev"
:
true
},
},
"fast-deep-equal"
:
{
"fast-deep-equal"
:
{
"version"
:
"2.0.1"
,
"version"
:
"2.0.1"
,
...
@@ -4807,8 +4856,7 @@
...
@@ -4807,8 +4856,7 @@
"fast-json-stable-stringify"
:
{
"fast-json-stable-stringify"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz"
,
"integrity"
:
"sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
,
"integrity"
:
"sha1-1RQsDK7msRifh9OnYREGT4bIu/I="
"dev"
:
true
},
},
"fast-levenshtein"
:
{
"fast-levenshtein"
:
{
"version"
:
"2.0.6"
,
"version"
:
"2.0.6"
,
...
@@ -5008,7 +5056,6 @@
...
@@ -5008,7 +5056,6 @@
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz"
,
"integrity"
:
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
,
"integrity"
:
"sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"locate-path"
:
"^3.0.0"
"locate-path"
:
"^3.0.0"
}
}
...
@@ -5049,14 +5096,12 @@
...
@@ -5049,14 +5096,12 @@
"forever-agent"
:
{
"forever-agent"
:
{
"version"
:
"0.6.1"
,
"version"
:
"0.6.1"
,
"resolved"
:
"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz"
,
"integrity"
:
"sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
,
"integrity"
:
"sha1-+8cfDEGt6zf5bFd60e1C2P2sypE="
"dev"
:
true
},
},
"form-data"
:
{
"form-data"
:
{
"version"
:
"2.3.3"
,
"version"
:
"2.3.3"
,
"resolved"
:
"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz"
,
"integrity"
:
"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="
,
"integrity"
:
"sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"asynckit"
:
"^0.4.0"
,
"asynckit"
:
"^0.4.0"
,
"combined-stream"
:
"^1.0.6"
,
"combined-stream"
:
"^1.0.6"
,
...
@@ -5160,6 +5205,17 @@
...
@@ -5160,6 +5205,17 @@
"dev"
:
true
,
"dev"
:
true
,
"optional"
:
true
"optional"
:
true
},
},
"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"
}
},
"ftp"
:
{
"ftp"
:
{
"version"
:
"0.3.10"
,
"version"
:
"0.3.10"
,
"resolved"
:
"https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ftp/-/ftp-0.3.10.tgz"
,
...
@@ -5198,6 +5254,49 @@
...
@@ -5198,6 +5254,49 @@
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
,
"integrity"
:
"sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A=="
,
"dev"
:
true
"dev"
:
true
},
},
"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"
},
"dependencies"
:
{
"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"
}
},
"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"
}
}
}
},
"gaze"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz"
,
"integrity"
:
"sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g=="
,
"requires"
:
{
"globule"
:
"^1.0.0"
}
},
"genfun"
:
{
"genfun"
:
{
"version"
:
"5.0.0"
,
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz"
,
...
@@ -5215,6 +5314,11 @@
...
@@ -5215,6 +5314,11 @@
"resolved"
:
"https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/get-ready/-/get-ready-1.0.0.tgz"
,
"integrity"
:
"sha1-+RgX8emt7P6hOlYq38jeiDqzR4I="
"integrity"
:
"sha1-+RgX8emt7P6hOlYq38jeiDqzR4I="
},
},
"get-stdin"
:
{
"version"
:
"4.0.1"
,
"resolved"
:
"https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz"
,
"integrity"
:
"sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4="
},
"get-stream"
:
{
"get-stream"
:
{
"version"
:
"4.1.0"
,
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz"
,
...
@@ -5247,7 +5351,6 @@
...
@@ -5247,7 +5351,6 @@
"version"
:
"0.1.7"
,
"version"
:
"0.1.7"
,
"resolved"
:
"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
,
"resolved"
:
"https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz"
,
"integrity"
:
"sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo="
,
"integrity"
:
"sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"assert-plus"
:
"^1.0.0"
"assert-plus"
:
"^1.0.0"
}
}
...
@@ -5314,11 +5417,20 @@
...
@@ -5314,11 +5417,20 @@
}
}
}
}
},
},
"globule"
:
{
"version"
:
"1.3.3"
,
"resolved"
:
"https://registry.npmjs.org/globule/-/globule-1.3.3.tgz"
,
"integrity"
:
"sha512-mb1aYtDbIjTu4ShMB85m3UzjX9BVKe9WCzsnfMSZk+K5GpIbBOexgg4PPCt5eHDEG5/ZQAUX2Kct02zfiPLsKg=="
,
"requires"
:
{
"glob"
:
"~7.1.1"
,
"lodash"
:
"~4.17.10"
,
"minimatch"
:
"~3.0.2"
}
},
"graceful-fs"
:
{
"graceful-fs"
:
{
"version"
:
"4.2.4"
,
"version"
:
"4.2.4"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz"
,
"integrity"
:
"sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
,
"integrity"
:
"sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw=="
"dev"
:
true
},
},
"handle-thing"
:
{
"handle-thing"
:
{
"version"
:
"2.0.1"
,
"version"
:
"2.0.1"
,
...
@@ -5329,14 +5441,12 @@
...
@@ -5329,14 +5441,12 @@
"har-schema"
:
{
"har-schema"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz"
,
"integrity"
:
"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
,
"integrity"
:
"sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI="
"dev"
:
true
},
},
"har-validator"
:
{
"har-validator"
:
{
"version"
:
"5.1.5"
,
"version"
:
"5.1.5"
,
"resolved"
:
"https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz"
,
"integrity"
:
"sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="
,
"integrity"
:
"sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"ajv"
:
"^6.12.3"
,
"ajv"
:
"^6.12.3"
,
"har-schema"
:
"^2.0.0"
"har-schema"
:
"^2.0.0"
...
@@ -5346,7 +5456,6 @@
...
@@ -5346,7 +5456,6 @@
"version"
:
"6.12.3"
,
"version"
:
"6.12.3"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ajv/-/ajv-6.12.3.tgz"
,
"integrity"
:
"sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA=="
,
"integrity"
:
"sha512-4K0cK3L1hsqk9xIb2z9vs/XU+PGJZ9PNpJRDS9YLzmNdX6jmVPfamLvTJr0aDAusnHyCHO6MjzlkAsgtqp9teA=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"fast-deep-equal"
:
"^3.1.1"
,
"fast-deep-equal"
:
"^3.1.1"
,
"fast-json-stable-stringify"
:
"^2.0.0"
,
"fast-json-stable-stringify"
:
"^2.0.0"
,
...
@@ -5357,8 +5466,7 @@
...
@@ -5357,8 +5466,7 @@
"fast-deep-equal"
:
{
"fast-deep-equal"
:
{
"version"
:
"3.1.3"
,
"version"
:
"3.1.3"
,
"resolved"
:
"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz"
,
"integrity"
:
"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
,
"integrity"
:
"sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q=="
"dev"
:
true
}
}
}
}
},
},
...
@@ -5375,7 +5483,6 @@
...
@@ -5375,7 +5483,6 @@
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz"
,
"integrity"
:
"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
,
"integrity"
:
"sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
"ansi-regex"
:
"^2.0.0"
}
}
...
@@ -5415,6 +5522,11 @@
...
@@ -5415,6 +5522,11 @@
"integrity"
:
"sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
,
"integrity"
:
"sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg=="
,
"dev"
:
true
"dev"
:
true
},
},
"has-unicode"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz"
,
"integrity"
:
"sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk="
},
"has-value"
:
{
"has-value"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz"
,
...
@@ -5673,7 +5785,6 @@
...
@@ -5673,7 +5785,6 @@
"version"
:
"1.2.0"
,
"version"
:
"1.2.0"
,
"resolved"
:
"https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz"
,
"integrity"
:
"sha1-muzZJRFHcvPZW2WmCruPfBj7rOE="
,
"integrity"
:
"sha1-muzZJRFHcvPZW2WmCruPfBj7rOE="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"assert-plus"
:
"^1.0.0"
,
"assert-plus"
:
"^1.0.0"
,
"jsprim"
:
"^1.2.2"
,
"jsprim"
:
"^1.2.2"
,
...
@@ -5805,6 +5916,11 @@
...
@@ -5805,6 +5916,11 @@
"integrity"
:
"sha1-khi5srkoojixPcT7a21XbyMUU+o="
,
"integrity"
:
"sha1-khi5srkoojixPcT7a21XbyMUU+o="
,
"dev"
:
true
"dev"
:
true
},
},
"in-publish"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/in-publish/-/in-publish-2.0.1.tgz"
,
"integrity"
:
"sha512-oDM0kUSNFC31ShNxHKUyfZKy8ZeXZBWMjMdZHKLOk13uvT27VTL/QzRGfRUcevJhpkZAvlhPYuXkF7eNWrtyxQ=="
},
"indent-string"
:
{
"indent-string"
:
{
"version"
:
"4.0.0"
,
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz"
,
...
@@ -6000,8 +6116,7 @@
...
@@ -6000,8 +6116,7 @@
"is-arrayish"
:
{
"is-arrayish"
:
{
"version"
:
"0.2.1"
,
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz"
,
"integrity"
:
"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
,
"integrity"
:
"sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0="
"dev"
:
true
},
},
"is-binary-path"
:
{
"is-binary-path"
:
{
"version"
:
"2.1.0"
,
"version"
:
"2.1.0"
,
...
@@ -6111,11 +6226,15 @@
...
@@ -6111,11 +6226,15 @@
"integrity"
:
"sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
,
"integrity"
:
"sha1-qIwCU1eR8C7TfHahueqXc8gz+MI="
,
"dev"
:
true
"dev"
:
true
},
},
"is-finite"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/is-finite/-/is-finite-1.1.0.tgz"
,
"integrity"
:
"sha512-cdyMtqX/BOqqNBBiKlIVkytNHm49MtMlYyn1zxzvJKWmFMlGzm+ry5BBfYyeY9YmNKbRSo/o7OX9w9ale0wg3w=="
},
"is-fullwidth-code-point"
:
{
"is-fullwidth-code-point"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz"
,
"integrity"
:
"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
,
"integrity"
:
"sha1-o7MKXE8ZkYMWeqq5O+764937ZU8="
"dev"
:
true
},
},
"is-glob"
:
{
"is-glob"
:
{
"version"
:
"4.0.1"
,
"version"
:
"4.0.1"
,
...
@@ -6235,8 +6354,12 @@
...
@@ -6235,8 +6354,12 @@
"is-typedarray"
:
{
"is-typedarray"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz"
,
"integrity"
:
"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
,
"integrity"
:
"sha1-5HnICFjfDBsR3dppQPlgEfzaSpo="
"dev"
:
true
},
"is-utf8"
:
{
"version"
:
"0.2.1"
,
"resolved"
:
"https://registry.npmjs.org/is-utf8/-/is-utf8-0.2.1.tgz"
,
"integrity"
:
"sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI="
},
},
"is-windows"
:
{
"is-windows"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
...
@@ -6270,8 +6393,7 @@
...
@@ -6270,8 +6393,7 @@
"isexe"
:
{
"isexe"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz"
,
"integrity"
:
"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
,
"integrity"
:
"sha1-6PvzdNxVb/iUehDcsFctYz8s+hA="
"dev"
:
true
},
},
"isobject"
:
{
"isobject"
:
{
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
...
@@ -6535,8 +6657,7 @@
...
@@ -6535,8 +6657,7 @@
"jsbn"
:
{
"jsbn"
:
{
"version"
:
"0.1.1"
,
"version"
:
"0.1.1"
,
"resolved"
:
"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz"
,
"integrity"
:
"sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
,
"integrity"
:
"sha1-peZUwuWi3rXyAdls77yoDA7y9RM="
"dev"
:
true
},
},
"jsesc"
:
{
"jsesc"
:
{
"version"
:
"2.5.2"
,
"version"
:
"2.5.2"
,
...
@@ -6553,20 +6674,17 @@
...
@@ -6553,20 +6674,17 @@
"json-schema"
:
{
"json-schema"
:
{
"version"
:
"0.2.3"
,
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz"
,
"integrity"
:
"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
,
"integrity"
:
"sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM="
"dev"
:
true
},
},
"json-schema-traverse"
:
{
"json-schema-traverse"
:
{
"version"
:
"0.4.1"
,
"version"
:
"0.4.1"
,
"resolved"
:
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz"
,
"integrity"
:
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
,
"integrity"
:
"sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg=="
"dev"
:
true
},
},
"json-stringify-safe"
:
{
"json-stringify-safe"
:
{
"version"
:
"5.0.1"
,
"version"
:
"5.0.1"
,
"resolved"
:
"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz"
,
"integrity"
:
"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
,
"integrity"
:
"sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus="
"dev"
:
true
},
},
"json3"
:
{
"json3"
:
{
"version"
:
"3.3.3"
,
"version"
:
"3.3.3"
,
...
@@ -6602,7 +6720,6 @@
...
@@ -6602,7 +6720,6 @@
"version"
:
"1.4.1"
,
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz"
,
"integrity"
:
"sha1-MT5mvB5cwG5Di8G3SZwuXFastqI="
,
"integrity"
:
"sha1-MT5mvB5cwG5Di8G3SZwuXFastqI="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"assert-plus"
:
"1.0.0"
,
"assert-plus"
:
"1.0.0"
,
"extsprintf"
:
"1.3.0"
,
"extsprintf"
:
"1.3.0"
,
...
@@ -6799,6 +6916,41 @@
...
@@ -6799,6 +6916,41 @@
"immediate"
:
"~3.0.5"
"immediate"
:
"~3.0.5"
}
}
},
},
"load-json-file"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz"
,
"integrity"
:
"sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA="
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"parse-json"
:
"^2.2.0"
,
"pify"
:
"^2.0.0"
,
"pinkie-promise"
:
"^2.0.0"
,
"strip-bom"
:
"^2.0.0"
},
"dependencies"
:
{
"parse-json"
:
{
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz"
,
"integrity"
:
"sha1-9ID0BDTvgHQfhGkJn43qGPVaTck="
,
"requires"
:
{
"error-ex"
:
"^1.2.0"
}
},
"pify"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
,
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
},
"strip-bom"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz"
,
"integrity"
:
"sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4="
,
"requires"
:
{
"is-utf8"
:
"^0.2.0"
}
}
}
},
"loader-runner"
:
{
"loader-runner"
:
{
"version"
:
"2.4.0"
,
"version"
:
"2.4.0"
,
"resolved"
:
"https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz"
,
...
@@ -6820,7 +6972,6 @@
...
@@ -6820,7 +6972,6 @@
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz"
,
"integrity"
:
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
,
"integrity"
:
"sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"p-locate"
:
"^3.0.0"
,
"p-locate"
:
"^3.0.0"
,
"path-exists"
:
"^3.0.0"
"path-exists"
:
"^3.0.0"
...
@@ -6829,8 +6980,7 @@
...
@@ -6829,8 +6980,7 @@
"lodash"
:
{
"lodash"
:
{
"version"
:
"4.17.19"
,
"version"
:
"4.17.19"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz"
,
"resolved"
:
"https://registry.npmjs.org/lodash/-/lodash-4.17.19.tgz"
,
"integrity"
:
"sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
,
"integrity"
:
"sha512-JNvd8XER9GQX0v2qJgsaN/mzFCNA5BRe/j8JN9d+tWyGLSodKQHKFicdwNYzWwI3wjRnaKPsGj1XkBjx/F96DQ=="
"dev"
:
true
},
},
"lodash.clonedeep"
:
{
"lodash.clonedeep"
:
{
"version"
:
"4.5.0"
,
"version"
:
"4.5.0"
,
...
@@ -6898,6 +7048,15 @@
...
@@ -6898,6 +7048,15 @@
"js-tokens"
:
"^3.0.0 || ^4.0.0"
"js-tokens"
:
"^3.0.0 || ^4.0.0"
}
}
},
},
"loud-rejection"
:
{
"version"
:
"1.6.0"
,
"resolved"
:
"https://registry.npmjs.org/loud-rejection/-/loud-rejection-1.6.0.tgz"
,
"integrity"
:
"sha1-W0b4AUft7leIcPCG0Eghz5mOVR8="
,
"requires"
:
{
"currently-unhandled"
:
"^0.4.1"
,
"signal-exit"
:
"^3.0.0"
}
},
"lru-cache"
:
{
"lru-cache"
:
{
"version"
:
"5.1.1"
,
"version"
:
"5.1.1"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz"
,
...
@@ -7024,6 +7183,11 @@
...
@@ -7024,6 +7183,11 @@
"integrity"
:
"sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
,
"integrity"
:
"sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8="
,
"dev"
:
true
"dev"
:
true
},
},
"map-obj"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz"
,
"integrity"
:
"sha1-2TPOuSBdgr3PSIb2dCvcK03qFG0="
},
"map-visit"
:
{
"map-visit"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz"
,
...
@@ -7077,6 +7241,23 @@
...
@@ -7077,6 +7241,23 @@
"readable-stream"
:
"^2.0.1"
"readable-stream"
:
"^2.0.1"
}
}
},
},
"meow"
:
{
"version"
:
"3.7.0"
,
"resolved"
:
"https://registry.npmjs.org/meow/-/meow-3.7.0.tgz"
,
"integrity"
:
"sha1-cstmi0JSKCkKu/qFaJJYcwioAfs="
,
"requires"
:
{
"camelcase-keys"
:
"^2.0.0"
,
"decamelize"
:
"^1.1.2"
,
"loud-rejection"
:
"^1.0.0"
,
"map-obj"
:
"^1.0.1"
,
"minimist"
:
"^1.1.3"
,
"normalize-package-data"
:
"^2.3.4"
,
"object-assign"
:
"^4.0.1"
,
"read-pkg-up"
:
"^1.0.1"
,
"redent"
:
"^1.0.0"
,
"trim-newlines"
:
"^1.0.0"
}
},
"merge-descriptors"
:
{
"merge-descriptors"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz"
,
...
@@ -7255,14 +7436,12 @@
...
@@ -7255,14 +7436,12 @@
"mime-db"
:
{
"mime-db"
:
{
"version"
:
"1.44.0"
,
"version"
:
"1.44.0"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/mime-db/-/mime-db-1.44.0.tgz"
,
"integrity"
:
"sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
,
"integrity"
:
"sha512-/NOTfLrsPBVeH7YtFPgsVWveuL+4SjjYxaQ1xtM1KMFj7HdxlBlxeyNLzhyJVx7r4rZGJAZ/6lkKCitSc/Nmpg=="
"dev"
:
true
},
},
"mime-types"
:
{
"mime-types"
:
{
"version"
:
"2.1.27"
,
"version"
:
"2.1.27"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz"
,
"resolved"
:
"https://registry.npmjs.org/mime-types/-/mime-types-2.1.27.tgz"
,
"integrity"
:
"sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w=="
,
"integrity"
:
"sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"mime-db"
:
"1.44.0"
"mime-db"
:
"1.44.0"
}
}
...
@@ -7502,9 +7681,7 @@
...
@@ -7502,9 +7681,7 @@
"nan"
:
{
"nan"
:
{
"version"
:
"2.14.1"
,
"version"
:
"2.14.1"
,
"resolved"
:
"https://registry.npmjs.org/nan/-/nan-2.14.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/nan/-/nan-2.14.1.tgz"
,
"integrity"
:
"sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
,
"integrity"
:
"sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw=="
"dev"
:
true
,
"optional"
:
true
},
},
"nanomatch"
:
{
"nanomatch"
:
{
"version"
:
"1.2.13"
,
"version"
:
"1.2.13"
,
...
@@ -7597,6 +7774,42 @@
...
@@ -7597,6 +7774,42 @@
"integrity"
:
"sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ=="
,
"integrity"
:
"sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ=="
,
"dev"
:
true
"dev"
:
true
},
},
"node-gyp"
:
{
"version"
:
"3.8.0"
,
"resolved"
:
"https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz"
,
"integrity"
:
"sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA=="
,
"requires"
:
{
"fstream"
:
"^1.0.0"
,
"glob"
:
"^7.0.3"
,
"graceful-fs"
:
"^4.1.2"
,
"mkdirp"
:
"^0.5.0"
,
"nopt"
:
"2 || 3"
,
"npmlog"
:
"0 || 1 || 2 || 3 || 4"
,
"osenv"
:
"0"
,
"request"
:
"^2.87.0"
,
"rimraf"
:
"2"
,
"semver"
:
"~5.3.0"
,
"tar"
:
"^2.0.0"
,
"which"
:
"1"
},
"dependencies"
:
{
"semver"
:
{
"version"
:
"5.3.0"
,
"resolved"
:
"https://registry.npmjs.org/semver/-/semver-5.3.0.tgz"
,
"integrity"
:
"sha1-myzl094C0XxgEq0yaqa00M9U+U8="
},
"tar"
:
{
"version"
:
"2.2.2"
,
"resolved"
:
"https://registry.npmjs.org/tar/-/tar-2.2.2.tgz"
,
"integrity"
:
"sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA=="
,
"requires"
:
{
"block-stream"
:
"*"
,
"fstream"
:
"^1.0.12"
,
"inherits"
:
"2"
}
}
}
},
"node-libs-browser"
:
{
"node-libs-browser"
:
{
"version"
:
"2.2.1"
,
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz"
,
...
@@ -7642,11 +7855,89 @@
...
@@ -7642,11 +7855,89 @@
"integrity"
:
"sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA=="
,
"integrity"
:
"sha512-gsO4vjEdQaTusZAEebUWp2a5d7dF5DYoIpDG7WySnk7BuZDW+GPpHXoXXuYawRBr/9t5q54tirPz79kFIWg4dA=="
,
"dev"
:
true
"dev"
:
true
},
},
"node-sass"
:
{
"version"
:
"4.14.1"
,
"resolved"
:
"https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz"
,
"integrity"
:
"sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g=="
,
"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"
:
"^4.17.15"
,
"meow"
:
"^3.7.0"
,
"mkdirp"
:
"^0.5.1"
,
"nan"
:
"^2.13.2"
,
"node-gyp"
:
"^3.8.0"
,
"npmlog"
:
"^4.0.0"
,
"request"
:
"^2.88.0"
,
"sass-graph"
:
"2.2.5"
,
"stdout-stream"
:
"^1.4.0"
,
"true-case-path"
:
"^1.0.2"
},
"dependencies"
:
{
"ansi-styles"
:
{
"version"
:
"2.2.1"
,
"resolved"
:
"https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz"
,
"integrity"
:
"sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4="
},
"chalk"
:
{
"version"
:
"1.1.3"
,
"resolved"
:
"https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz"
,
"integrity"
:
"sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg="
,
"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"
}
},
"cross-spawn"
:
{
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz"
,
"integrity"
:
"sha1-ElYDfsufDF9549bvE14wdwGEuYI="
,
"requires"
:
{
"lru-cache"
:
"^4.0.1"
,
"which"
:
"^1.2.9"
}
},
"lru-cache"
:
{
"version"
:
"4.1.5"
,
"resolved"
:
"https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz"
,
"integrity"
:
"sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g=="
,
"requires"
:
{
"pseudomap"
:
"^1.0.2"
,
"yallist"
:
"^2.1.2"
}
},
"supports-color"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz"
,
"integrity"
:
"sha1-U10EXOa2Nj+kARcIRimZXp3zJMc="
},
"yallist"
:
{
"version"
:
"2.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz"
,
"integrity"
:
"sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI="
}
}
},
"nopt"
:
{
"version"
:
"3.0.6"
,
"resolved"
:
"https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz"
,
"integrity"
:
"sha1-xkZdvwirzU2zWTF/eaxopkayj/k="
,
"requires"
:
{
"abbrev"
:
"1"
}
},
"normalize-package-data"
:
{
"normalize-package-data"
:
{
"version"
:
"2.5.0"
,
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz"
,
"integrity"
:
"sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
,
"integrity"
:
"sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"hosted-git-info"
:
"^2.1.4"
,
"hosted-git-info"
:
"^2.1.4"
,
"resolve"
:
"^1.10.0"
,
"resolve"
:
"^1.10.0"
,
...
@@ -7657,8 +7948,7 @@
...
@@ -7657,8 +7948,7 @@
"hosted-git-info"
:
{
"hosted-git-info"
:
{
"version"
:
"2.8.8"
,
"version"
:
"2.8.8"
,
"resolved"
:
"https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz"
,
"resolved"
:
"https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz"
,
"integrity"
:
"sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
,
"integrity"
:
"sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg=="
"dev"
:
true
}
}
}
}
},
},
...
@@ -7769,6 +8059,17 @@
...
@@ -7769,6 +8059,17 @@
"path-key"
:
"^2.0.0"
"path-key"
:
"^2.0.0"
}
}
},
},
"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"
}
},
"nth-check"
:
{
"nth-check"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz"
,
...
@@ -7787,14 +8088,12 @@
...
@@ -7787,14 +8088,12 @@
"number-is-nan"
:
{
"number-is-nan"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz"
,
"integrity"
:
"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
,
"integrity"
:
"sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0="
"dev"
:
true
},
},
"oauth-sign"
:
{
"oauth-sign"
:
{
"version"
:
"0.9.0"
,
"version"
:
"0.9.0"
,
"resolved"
:
"https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz"
,
"integrity"
:
"sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
,
"integrity"
:
"sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ=="
"dev"
:
true
},
},
"object-assign"
:
{
"object-assign"
:
{
"version"
:
"4.1.1"
,
"version"
:
"4.1.1"
,
...
@@ -8057,8 +8356,7 @@
...
@@ -8057,8 +8356,7 @@
"os-homedir"
:
{
"os-homedir"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz"
,
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
,
"integrity"
:
"sha1-/7xJiDNuDoM94MFox+8VISGqf7M="
"dev"
:
true
},
},
"os-locale"
:
{
"os-locale"
:
{
"version"
:
"3.1.0"
,
"version"
:
"3.1.0"
,
...
@@ -8083,14 +8381,12 @@
...
@@ -8083,14 +8381,12 @@
"os-tmpdir"
:
{
"os-tmpdir"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz"
,
"integrity"
:
"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
,
"integrity"
:
"sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ="
"dev"
:
true
},
},
"osenv"
:
{
"osenv"
:
{
"version"
:
"0.1.5"
,
"version"
:
"0.1.5"
,
"resolved"
:
"https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz"
,
"integrity"
:
"sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="
,
"integrity"
:
"sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"os-homedir"
:
"^1.0.0"
,
"os-homedir"
:
"^1.0.0"
,
"os-tmpdir"
:
"^1.0.0"
"os-tmpdir"
:
"^1.0.0"
...
@@ -8126,7 +8422,6 @@
...
@@ -8126,7 +8422,6 @@
"version"
:
"2.3.0"
,
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz"
,
"integrity"
:
"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
,
"integrity"
:
"sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"p-try"
:
"^2.0.0"
"p-try"
:
"^2.0.0"
}
}
...
@@ -8135,7 +8430,6 @@
...
@@ -8135,7 +8430,6 @@
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz"
,
"integrity"
:
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
,
"integrity"
:
"sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"p-limit"
:
"^2.0.0"
"p-limit"
:
"^2.0.0"
}
}
...
@@ -8161,8 +8455,7 @@
...
@@ -8161,8 +8455,7 @@
"p-try"
:
{
"p-try"
:
{
"version"
:
"2.2.0"
,
"version"
:
"2.2.0"
,
"resolved"
:
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz"
,
"integrity"
:
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
,
"integrity"
:
"sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ=="
"dev"
:
true
},
},
"pac-proxy-agent"
:
{
"pac-proxy-agent"
:
{
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
...
@@ -8374,8 +8667,7 @@
...
@@ -8374,8 +8667,7 @@
"path-exists"
:
{
"path-exists"
:
{
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz"
,
"integrity"
:
"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
,
"integrity"
:
"sha1-zg6+ql94yxiSXqfYENe1mwEP1RU="
"dev"
:
true
},
},
"path-is-absolute"
:
{
"path-is-absolute"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
...
@@ -8397,8 +8689,7 @@
...
@@ -8397,8 +8689,7 @@
"path-parse"
:
{
"path-parse"
:
{
"version"
:
"1.0.6"
,
"version"
:
"1.0.6"
,
"resolved"
:
"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
,
"resolved"
:
"https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz"
,
"integrity"
:
"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
,
"integrity"
:
"sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw=="
"dev"
:
true
},
},
"path-to-regexp"
:
{
"path-to-regexp"
:
{
"version"
:
"0.1.7"
,
"version"
:
"0.1.7"
,
...
@@ -8452,8 +8743,7 @@
...
@@ -8452,8 +8743,7 @@
"performance-now"
:
{
"performance-now"
:
{
"version"
:
"2.1.0"
,
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz"
,
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
,
"integrity"
:
"sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns="
"dev"
:
true
},
},
"picomatch"
:
{
"picomatch"
:
{
"version"
:
"2.2.2"
,
"version"
:
"2.2.2"
,
...
@@ -8470,14 +8760,12 @@
...
@@ -8470,14 +8760,12 @@
"pinkie"
:
{
"pinkie"
:
{
"version"
:
"2.0.4"
,
"version"
:
"2.0.4"
,
"resolved"
:
"https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz"
,
"integrity"
:
"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
,
"integrity"
:
"sha1-clVrgM+g1IqXToDnckjoDtT3+HA="
"dev"
:
true
},
},
"pinkie-promise"
:
{
"pinkie-promise"
:
{
"version"
:
"2.0.1"
,
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz"
,
"integrity"
:
"sha1-ITXW36ejWMBprJsXh3YogihFD/o="
,
"integrity"
:
"sha1-ITXW36ejWMBprJsXh3YogihFD/o="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"pinkie"
:
"^2.0.0"
"pinkie"
:
"^2.0.0"
}
}
...
@@ -9359,14 +9647,12 @@
...
@@ -9359,14 +9647,12 @@
"pseudomap"
:
{
"pseudomap"
:
{
"version"
:
"1.0.2"
,
"version"
:
"1.0.2"
,
"resolved"
:
"https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz"
,
"integrity"
:
"sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
,
"integrity"
:
"sha1-8FKijacOYYkX7wqKw0wa5aaChrM="
"dev"
:
true
},
},
"psl"
:
{
"psl"
:
{
"version"
:
"1.8.0"
,
"version"
:
"1.8.0"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/psl/-/psl-1.8.0.tgz"
,
"integrity"
:
"sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
,
"integrity"
:
"sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ=="
"dev"
:
true
},
},
"public-encrypt"
:
{
"public-encrypt"
:
{
"version"
:
"4.0.3"
,
"version"
:
"4.0.3"
,
...
@@ -9425,8 +9711,7 @@
...
@@ -9425,8 +9711,7 @@
"punycode"
:
{
"punycode"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz"
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
,
"integrity"
:
"sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A=="
"dev"
:
true
},
},
"q"
:
{
"q"
:
{
"version"
:
"1.5.1"
,
"version"
:
"1.5.1"
,
...
@@ -9591,6 +9876,61 @@
...
@@ -9591,6 +9876,61 @@
"util-promisify"
:
"^2.1.0"
"util-promisify"
:
"^2.1.0"
}
}
},
},
"read-pkg"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz"
,
"integrity"
:
"sha1-9f+qXs0pyzHAR0vKfXVra7KePyg="
,
"requires"
:
{
"load-json-file"
:
"^1.0.0"
,
"normalize-package-data"
:
"^2.3.2"
,
"path-type"
:
"^1.0.0"
},
"dependencies"
:
{
"path-type"
:
{
"version"
:
"1.1.0"
,
"resolved"
:
"https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz"
,
"integrity"
:
"sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE="
,
"requires"
:
{
"graceful-fs"
:
"^4.1.2"
,
"pify"
:
"^2.0.0"
,
"pinkie-promise"
:
"^2.0.0"
}
},
"pify"
:
{
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/pify/-/pify-2.3.0.tgz"
,
"integrity"
:
"sha1-7RQaasBDqEnqWISY59yosVMw6Qw="
}
}
},
"read-pkg-up"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz"
,
"integrity"
:
"sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI="
,
"requires"
:
{
"find-up"
:
"^1.0.0"
,
"read-pkg"
:
"^1.0.0"
},
"dependencies"
:
{
"find-up"
:
{
"version"
:
"1.1.2"
,
"resolved"
:
"https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz"
,
"integrity"
:
"sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8="
,
"requires"
:
{
"path-exists"
:
"^2.0.0"
,
"pinkie-promise"
:
"^2.0.0"
}
},
"path-exists"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz"
,
"integrity"
:
"sha1-D+tsZPD8UY2adU3V77YscCJ2H0s="
,
"requires"
:
{
"pinkie-promise"
:
"^2.0.0"
}
}
}
},
"readable-stream"
:
{
"readable-stream"
:
{
"version"
:
"2.3.7"
,
"version"
:
"2.3.7"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
,
"resolved"
:
"https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz"
,
...
@@ -9626,6 +9966,25 @@
...
@@ -9626,6 +9966,25 @@
"picomatch"
:
"^2.2.1"
"picomatch"
:
"^2.2.1"
}
}
},
},
"redent"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/redent/-/redent-1.0.0.tgz"
,
"integrity"
:
"sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94="
,
"requires"
:
{
"indent-string"
:
"^2.1.0"
,
"strip-indent"
:
"^1.0.1"
},
"dependencies"
:
{
"indent-string"
:
{
"version"
:
"2.1.0"
,
"resolved"
:
"https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz"
,
"integrity"
:
"sha1-ji1INIdCEhtKghi3oTfppSBJ3IA="
,
"requires"
:
{
"repeating"
:
"^2.0.0"
}
}
}
},
"reflect-metadata"
:
{
"reflect-metadata"
:
{
"version"
:
"0.1.13"
,
"version"
:
"0.1.13"
,
"resolved"
:
"https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz"
,
"resolved"
:
"https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz"
,
...
@@ -9758,11 +10117,18 @@
...
@@ -9758,11 +10117,18 @@
"integrity"
:
"sha1-jcrkcOHIirwtYA//Sndihtp15jc="
,
"integrity"
:
"sha1-jcrkcOHIirwtYA//Sndihtp15jc="
,
"dev"
:
true
"dev"
:
true
},
},
"repeating"
:
{
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/repeating/-/repeating-2.0.1.tgz"
,
"integrity"
:
"sha1-UhTFOpJtNVJwdSf7q0FdvAjQbdo="
,
"requires"
:
{
"is-finite"
:
"^1.0.0"
}
},
"request"
:
{
"request"
:
{
"version"
:
"2.88.2"
,
"version"
:
"2.88.2"
,
"resolved"
:
"https://registry.npmjs.org/request/-/request-2.88.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/request/-/request-2.88.2.tgz"
,
"integrity"
:
"sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="
,
"integrity"
:
"sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"aws-sign2"
:
"~0.7.0"
,
"aws-sign2"
:
"~0.7.0"
,
"aws4"
:
"^1.8.0"
,
"aws4"
:
"^1.8.0"
,
...
@@ -9789,16 +10155,14 @@
...
@@ -9789,16 +10155,14 @@
"qs"
:
{
"qs"
:
{
"version"
:
"6.5.2"
,
"version"
:
"6.5.2"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/qs/-/qs-6.5.2.tgz"
,
"integrity"
:
"sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
,
"integrity"
:
"sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA=="
"dev"
:
true
}
}
}
}
},
},
"require-directory"
:
{
"require-directory"
:
{
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz"
,
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
,
"integrity"
:
"sha1-jGStX9MNqxyXbiNE/+f3kqam30I="
"dev"
:
true
},
},
"require-main-filename"
:
{
"require-main-filename"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
...
@@ -9816,7 +10180,6 @@
...
@@ -9816,7 +10180,6 @@
"version"
:
"1.17.0"
,
"version"
:
"1.17.0"
,
"resolved"
:
"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/resolve/-/resolve-1.17.0.tgz"
,
"integrity"
:
"sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w=="
,
"integrity"
:
"sha512-ic+7JYiV8Vi2yzQGFWOkiZD5Z9z7O2Zhm9XMaTxdJExKasieFCr+yXZ/WmXsckHiKl12ar0y6XiXDx3m4RHn1w=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"path-parse"
:
"^1.0.6"
"path-parse"
:
"^1.0.6"
}
}
...
@@ -9962,6 +10325,103 @@
...
@@ -9962,6 +10325,103 @@
"chokidar"
:
">=2.0.0 <4.0.0"
"chokidar"
:
">=2.0.0 <4.0.0"
}
}
},
},
"sass-graph"
:
{
"version"
:
"2.2.5"
,
"resolved"
:
"https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz"
,
"integrity"
:
"sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag=="
,
"requires"
:
{
"glob"
:
"^7.0.0"
,
"lodash"
:
"^4.0.0"
,
"scss-tokenizer"
:
"^0.2.3"
,
"yargs"
:
"^13.3.2"
},
"dependencies"
:
{
"ansi-regex"
:
{
"version"
:
"4.1.0"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz"
,
"integrity"
:
"sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg=="
},
"cliui"
:
{
"version"
:
"5.0.0"
,
"resolved"
:
"https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz"
,
"integrity"
:
"sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA=="
,
"requires"
:
{
"string-width"
:
"^3.1.0"
,
"strip-ansi"
:
"^5.2.0"
,
"wrap-ansi"
:
"^5.1.0"
}
},
"emoji-regex"
:
{
"version"
:
"7.0.3"
,
"resolved"
:
"https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz"
,
"integrity"
:
"sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA=="
},
"get-caller-file"
:
{
"version"
:
"2.0.5"
,
"resolved"
:
"https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz"
,
"integrity"
:
"sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg=="
},
"require-main-filename"
:
{
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz"
,
"integrity"
:
"sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg=="
},
"string-width"
:
{
"version"
:
"3.1.0"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz"
,
"integrity"
:
"sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w=="
,
"requires"
:
{
"emoji-regex"
:
"^7.0.1"
,
"is-fullwidth-code-point"
:
"^2.0.0"
,
"strip-ansi"
:
"^5.1.0"
}
},
"strip-ansi"
:
{
"version"
:
"5.2.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz"
,
"integrity"
:
"sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA=="
,
"requires"
:
{
"ansi-regex"
:
"^4.1.0"
}
},
"wrap-ansi"
:
{
"version"
:
"5.1.0"
,
"resolved"
:
"https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz"
,
"integrity"
:
"sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q=="
,
"requires"
:
{
"ansi-styles"
:
"^3.2.0"
,
"string-width"
:
"^3.0.0"
,
"strip-ansi"
:
"^5.0.0"
}
},
"yargs"
:
{
"version"
:
"13.3.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz"
,
"integrity"
:
"sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw=="
,
"requires"
:
{
"cliui"
:
"^5.0.0"
,
"find-up"
:
"^3.0.0"
,
"get-caller-file"
:
"^2.0.1"
,
"require-directory"
:
"^2.1.1"
,
"require-main-filename"
:
"^2.0.0"
,
"set-blocking"
:
"^2.0.0"
,
"string-width"
:
"^3.0.0"
,
"which-module"
:
"^2.0.0"
,
"y18n"
:
"^4.0.0"
,
"yargs-parser"
:
"^13.1.2"
}
},
"yargs-parser"
:
{
"version"
:
"13.1.2"
,
"resolved"
:
"https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz"
,
"integrity"
:
"sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg=="
,
"requires"
:
{
"camelcase"
:
"^5.0.0"
,
"decamelize"
:
"^1.2.0"
}
}
}
},
"sass-loader"
:
{
"sass-loader"
:
{
"version"
:
"8.0.0"
,
"version"
:
"8.0.0"
,
"resolved"
:
"https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz"
,
...
@@ -10058,6 +10518,25 @@
...
@@ -10058,6 +10518,25 @@
"ajv-keywords"
:
"^3.1.0"
"ajv-keywords"
:
"^3.1.0"
}
}
},
},
"scss-tokenizer"
:
{
"version"
:
"0.2.3"
,
"resolved"
:
"https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz"
,
"integrity"
:
"sha1-jrBtualyMzOCTT9VMGQRSYR85dE="
,
"requires"
:
{
"js-base64"
:
"^2.1.8"
,
"source-map"
:
"^0.4.2"
},
"dependencies"
:
{
"source-map"
:
{
"version"
:
"0.4.4"
,
"resolved"
:
"https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz"
,
"integrity"
:
"sha1-66T12pwNyZneaAMti092FzZSA2s="
,
"requires"
:
{
"amdefine"
:
">=0.0.4"
}
}
}
},
"sdk-base"
:
{
"sdk-base"
:
{
"version"
:
"2.0.1"
,
"version"
:
"2.0.1"
,
"resolved"
:
"https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/sdk-base/-/sdk-base-2.0.1.tgz"
,
...
@@ -10224,8 +10703,7 @@
...
@@ -10224,8 +10703,7 @@
"set-blocking"
:
{
"set-blocking"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz"
,
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
,
"integrity"
:
"sha1-BF+XgtARrppoA93TgrJDkrPYkPc="
"dev"
:
true
},
},
"set-immediate-shim"
:
{
"set-immediate-shim"
:
{
"version"
:
"1.0.1"
,
"version"
:
"1.0.1"
,
...
@@ -10293,8 +10771,7 @@
...
@@ -10293,8 +10771,7 @@
"signal-exit"
:
{
"signal-exit"
:
{
"version"
:
"3.0.3"
,
"version"
:
"3.0.3"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"
,
"resolved"
:
"https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz"
,
"integrity"
:
"sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
,
"integrity"
:
"sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA=="
"dev"
:
true
},
},
"simple-swizzle"
:
{
"simple-swizzle"
:
{
"version"
:
"0.2.2"
,
"version"
:
"0.2.2"
,
...
@@ -10696,7 +11173,6 @@
...
@@ -10696,7 +11173,6 @@
"version"
:
"3.1.1"
,
"version"
:
"3.1.1"
,
"resolved"
:
"https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz"
,
"integrity"
:
"sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w=="
,
"integrity"
:
"sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"spdx-expression-parse"
:
"^3.0.0"
,
"spdx-expression-parse"
:
"^3.0.0"
,
"spdx-license-ids"
:
"^3.0.0"
"spdx-license-ids"
:
"^3.0.0"
...
@@ -10705,14 +11181,12 @@
...
@@ -10705,14 +11181,12 @@
"spdx-exceptions"
:
{
"spdx-exceptions"
:
{
"version"
:
"2.3.0"
,
"version"
:
"2.3.0"
,
"resolved"
:
"https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz"
,
"integrity"
:
"sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
,
"integrity"
:
"sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A=="
"dev"
:
true
},
},
"spdx-expression-parse"
:
{
"spdx-expression-parse"
:
{
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz"
,
"integrity"
:
"sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="
,
"integrity"
:
"sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"spdx-exceptions"
:
"^2.1.0"
,
"spdx-exceptions"
:
"^2.1.0"
,
"spdx-license-ids"
:
"^3.0.0"
"spdx-license-ids"
:
"^3.0.0"
...
@@ -10721,8 +11195,7 @@
...
@@ -10721,8 +11195,7 @@
"spdx-license-ids"
:
{
"spdx-license-ids"
:
{
"version"
:
"3.0.5"
,
"version"
:
"3.0.5"
,
"resolved"
:
"https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.5.tgz"
,
"integrity"
:
"sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
,
"integrity"
:
"sha512-J+FWzZoynJEXGphVIS+XEh3kFSjZX/1i9gFBaWQcB+/tmpe2qUsSBABpcxqxnAxFdiUFEgAX1bjYGQvIZmoz9Q=="
"dev"
:
true
},
},
"spdy"
:
{
"spdy"
:
{
"version"
:
"4.0.2"
,
"version"
:
"4.0.2"
,
...
@@ -10833,7 +11306,6 @@
...
@@ -10833,7 +11306,6 @@
"version"
:
"1.16.1"
,
"version"
:
"1.16.1"
,
"resolved"
:
"https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz"
,
"integrity"
:
"sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="
,
"integrity"
:
"sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"asn1"
:
"~0.2.3"
,
"asn1"
:
"~0.2.3"
,
"assert-plus"
:
"^1.0.0"
,
"assert-plus"
:
"^1.0.0"
,
...
@@ -10888,6 +11360,14 @@
...
@@ -10888,6 +11360,14 @@
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz"
,
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
"integrity"
:
"sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow="
},
},
"stdout-stream"
:
{
"version"
:
"1.4.1"
,
"resolved"
:
"https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz"
,
"integrity"
:
"sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA=="
,
"requires"
:
{
"readable-stream"
:
"^2.0.1"
}
},
"stream-browserify"
:
{
"stream-browserify"
:
{
"version"
:
"2.0.2"
,
"version"
:
"2.0.2"
,
"resolved"
:
"https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz"
,
...
@@ -10981,7 +11461,6 @@
...
@@ -10981,7 +11461,6 @@
"version"
:
"2.1.1"
,
"version"
:
"2.1.1"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz"
,
"integrity"
:
"sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="
,
"integrity"
:
"sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"is-fullwidth-code-point"
:
"^2.0.0"
,
"is-fullwidth-code-point"
:
"^2.0.0"
,
"strip-ansi"
:
"^4.0.0"
"strip-ansi"
:
"^4.0.0"
...
@@ -10990,14 +11469,12 @@
...
@@ -10990,14 +11469,12 @@
"ansi-regex"
:
{
"ansi-regex"
:
{
"version"
:
"3.0.0"
,
"version"
:
"3.0.0"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz"
,
"integrity"
:
"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
,
"integrity"
:
"sha1-7QMXwyIGT3lGbAKWa922Bas32Zg="
"dev"
:
true
},
},
"strip-ansi"
:
{
"strip-ansi"
:
{
"version"
:
"4.0.0"
,
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz"
,
"integrity"
:
"sha1-qEeQIusaw2iocTibY1JixQXuNo8="
,
"integrity"
:
"sha1-qEeQIusaw2iocTibY1JixQXuNo8="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"ansi-regex"
:
"^3.0.0"
"ansi-regex"
:
"^3.0.0"
}
}
...
@@ -11036,7 +11513,6 @@
...
@@ -11036,7 +11513,6 @@
"version"
:
"3.0.1"
,
"version"
:
"3.0.1"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz"
,
"integrity"
:
"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
,
"integrity"
:
"sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"ansi-regex"
:
"^2.0.0"
"ansi-regex"
:
"^2.0.0"
}
}
...
@@ -11053,6 +11529,14 @@
...
@@ -11053,6 +11529,14 @@
"integrity"
:
"sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
,
"integrity"
:
"sha1-u0P/VZim6wXYm1n80SnJgzE2Br8="
,
"dev"
:
true
"dev"
:
true
},
},
"strip-indent"
:
{
"version"
:
"1.0.1"
,
"resolved"
:
"https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz"
,
"integrity"
:
"sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI="
,
"requires"
:
{
"get-stdin"
:
"^4.0.1"
}
},
"style-loader"
:
{
"style-loader"
:
{
"version"
:
"1.0.0"
,
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz"
,
...
@@ -11583,7 +12067,6 @@
...
@@ -11583,7 +12067,6 @@
"version"
:
"2.5.0"
,
"version"
:
"2.5.0"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz"
,
"integrity"
:
"sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="
,
"integrity"
:
"sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"psl"
:
"^1.1.28"
,
"psl"
:
"^1.1.28"
,
"punycode"
:
"^2.1.1"
"punycode"
:
"^2.1.1"
...
@@ -11595,6 +12078,19 @@
...
@@ -11595,6 +12078,19 @@
"integrity"
:
"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="
,
"integrity"
:
"sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A=="
,
"dev"
:
true
"dev"
:
true
},
},
"trim-newlines"
:
{
"version"
:
"1.0.0"
,
"resolved"
:
"https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz"
,
"integrity"
:
"sha1-WIeWa7WCpFA6QetST301ARgVphM="
},
"true-case-path"
:
{
"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=="
,
"requires"
:
{
"glob"
:
"^7.1.2"
}
},
"ts-node"
:
{
"ts-node"
:
{
"version"
:
"8.3.0"
,
"version"
:
"8.3.0"
,
"resolved"
:
"https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz"
,
...
@@ -11661,7 +12157,6 @@
...
@@ -11661,7 +12157,6 @@
"version"
:
"0.6.0"
,
"version"
:
"0.6.0"
,
"resolved"
:
"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz"
,
"integrity"
:
"sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0="
,
"integrity"
:
"sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"safe-buffer"
:
"^5.0.1"
"safe-buffer"
:
"^5.0.1"
}
}
...
@@ -11669,8 +12164,7 @@
...
@@ -11669,8 +12164,7 @@
"tweetnacl"
:
{
"tweetnacl"
:
{
"version"
:
"0.14.5"
,
"version"
:
"0.14.5"
,
"resolved"
:
"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
,
"resolved"
:
"https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz"
,
"integrity"
:
"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
,
"integrity"
:
"sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q="
"dev"
:
true
},
},
"type-check"
:
{
"type-check"
:
{
"version"
:
"0.3.2"
,
"version"
:
"0.3.2"
,
...
@@ -11881,7 +12375,6 @@
...
@@ -11881,7 +12375,6 @@
"version"
:
"4.2.2"
,
"version"
:
"4.2.2"
,
"resolved"
:
"https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
,
"resolved"
:
"https://registry.npmjs.org/uri-js/-/uri-js-4.2.2.tgz"
,
"integrity"
:
"sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="
,
"integrity"
:
"sha512-KY9Frmirql91X2Qgjry0Wd4Y+YTdrdZheS8TFwvkbLWf/G5KNJDCh6pKL5OZctEW4+0Baa5idK2ZQuELRwPznQ=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"punycode"
:
"^2.1.0"
"punycode"
:
"^2.1.0"
}
}
...
@@ -12040,14 +12533,12 @@
...
@@ -12040,14 +12533,12 @@
"uuid"
:
{
"uuid"
:
{
"version"
:
"3.4.0"
,
"version"
:
"3.4.0"
,
"resolved"
:
"https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz"
,
"integrity"
:
"sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
,
"integrity"
:
"sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A=="
"dev"
:
true
},
},
"validate-npm-package-license"
:
{
"validate-npm-package-license"
:
{
"version"
:
"3.0.4"
,
"version"
:
"3.0.4"
,
"resolved"
:
"https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
,
"resolved"
:
"https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz"
,
"integrity"
:
"sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="
,
"integrity"
:
"sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"spdx-correct"
:
"^3.0.0"
,
"spdx-correct"
:
"^3.0.0"
,
"spdx-expression-parse"
:
"^3.0.0"
"spdx-expression-parse"
:
"^3.0.0"
...
@@ -12078,7 +12569,6 @@
...
@@ -12078,7 +12569,6 @@
"version"
:
"1.10.0"
,
"version"
:
"1.10.0"
,
"resolved"
:
"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/verror/-/verror-1.10.0.tgz"
,
"integrity"
:
"sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA="
,
"integrity"
:
"sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"assert-plus"
:
"^1.0.0"
,
"assert-plus"
:
"^1.0.0"
,
"core-util-is"
:
"1.0.2"
,
"core-util-is"
:
"1.0.2"
,
...
@@ -12719,7 +13209,6 @@
...
@@ -12719,7 +13209,6 @@
"version"
:
"1.3.1"
,
"version"
:
"1.3.1"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-1.3.1.tgz"
,
"resolved"
:
"https://registry.npmjs.org/which/-/which-1.3.1.tgz"
,
"integrity"
:
"sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="
,
"integrity"
:
"sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ=="
,
"dev"
:
true
,
"requires"
:
{
"requires"
:
{
"isexe"
:
"^2.0.0"
"isexe"
:
"^2.0.0"
}
}
...
@@ -12727,8 +13216,15 @@
...
@@ -12727,8 +13216,15 @@
"which-module"
:
{
"which-module"
:
{
"version"
:
"2.0.0"
,
"version"
:
"2.0.0"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz"
,
"integrity"
:
"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
,
"integrity"
:
"sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho="
"dev"
:
true
},
"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"
}
},
},
"win-release"
:
{
"win-release"
:
{
"version"
:
"1.1.1"
,
"version"
:
"1.1.1"
,
...
@@ -12846,8 +13342,7 @@
...
@@ -12846,8 +13342,7 @@
"y18n"
:
{
"y18n"
:
{
"version"
:
"4.0.0"
,
"version"
:
"4.0.0"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"
,
"resolved"
:
"https://registry.npmjs.org/y18n/-/y18n-4.0.0.tgz"
,
"integrity"
:
"sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
,
"integrity"
:
"sha512-r9S/ZyXu/Xu9q1tYlpsLIsa3EeLXXk0VwlxqTcFRfg9EhMW+17kbt9G0NrgCmhGb5vT2hyhJZLfDGx+7+5Uj/w=="
"dev"
:
true
},
},
"yallist"
:
{
"yallist"
:
{
"version"
:
"3.1.1"
,
"version"
:
"3.1.1"
,
...
...
form/package.json
View file @
84e30557
...
@@ -55,4 +55,4 @@
...
@@ -55,4 +55,4 @@
"tslint"
:
"~5.18.0"
,
"tslint"
:
"~5.18.0"
,
"typescript"
:
"~3.7.5"
"typescript"
:
"~3.7.5"
}
}
}
}
\ No newline at end of file
form/src/app/app.module.ts
View file @
84e30557
...
@@ -25,6 +25,7 @@ import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontaweso
...
@@ -25,6 +25,7 @@ import { FontAwesomeModule, FaIconLibrary } from '@fortawesome/angular-fontaweso
import
{
fas
}
from
'
@fortawesome/free-solid-svg-icons
'
;
import
{
fas
}
from
'
@fortawesome/free-solid-svg-icons
'
;
import
{
far
}
from
'
@fortawesome/free-regular-svg-icons
'
;
import
{
far
}
from
'
@fortawesome/free-regular-svg-icons
'
;
import
{
UploadDragonBoneComponent
}
from
'
./common/upload-dragon-bone/upload-dragon-bone.component
'
;
import
{
UploadDragonBoneComponent
}
from
'
./common/upload-dragon-bone/upload-dragon-bone.component
'
;
import
{
CustomActionComponent
}
from
'
./common/custom-action/custom-action.component
'
;
registerLocaleData
(
zh
);
registerLocaleData
(
zh
);
...
@@ -42,7 +43,8 @@ registerLocaleData(zh);
...
@@ -42,7 +43,8 @@ registerLocaleData(zh);
UploadVideoComponent
,
UploadVideoComponent
,
CustomHotZoneComponent
,
CustomHotZoneComponent
,
UploadDragonBoneComponent
,
UploadDragonBoneComponent
,
PlayerContentWrapperComponent
PlayerContentWrapperComponent
,
CustomActionComponent
,
],
],
imports
:
[
imports
:
[
...
...
form/src/app/common/audio-recorder/audio-recorder.component.html
View file @
84e30557
...
@@ -35,7 +35,8 @@
...
@@ -35,7 +35,8 @@
<ng-template
#
truthyTemplate
>
<ng-template
#
truthyTemplate
>
<div
class=
"btn-delete"
(
click
)="
onBtnDeleteAudio
()"
>
<div
class=
"btn-delete"
(
click
)="
onBtnDeleteAudio
()"
>
<fa-icon
icon=
"close"
></fa-icon>
<!-- <fa-icon icon="close"></fa-icon> -->
<i
nz-icon
nzType=
"close"
nzTheme=
"outline"
></i>
</div>
</div>
</ng-template>
</ng-template>
...
...
form/src/app/common/audio-recorder/audio-recorder.component.ts
View file @
84e30557
...
@@ -26,7 +26,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
...
@@ -26,7 +26,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
uploadData
;
uploadData
;
@
Input
()
@
Input
()
needRemove
=
fals
e
;
needRemove
=
tru
e
;
@
Input
()
@
Input
()
audioItem
:
any
=
null
;
audioItem
:
any
=
null
;
...
@@ -62,8 +62,25 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
...
@@ -62,8 +62,25 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
this
.
uploadUrl
=
url
;
this
.
uploadUrl
=
url
;
this
.
uploadData
=
data
;
this
.
uploadData
=
data
;
};
};
this
.
setUploadUrl
();
}
}
setUploadUrl
()
{
if
(
!
this
.
uploadUrl
)
{
this
.
uploadUrl
=
(
<
any
>
window
).
courseware
.
uploadUrl
();
this
.
uploadData
=
(
<
any
>
window
).
courseware
.
uploadData
();
setTimeout
(()
=>
{
this
.
setUploadUrl
();
},
500
);
}
}
init
()
{
init
()
{
this
.
playIcon
=
'
play
'
;
this
.
playIcon
=
'
play
'
;
this
.
isPlaying
=
false
;
this
.
isPlaying
=
false
;
...
@@ -157,6 +174,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
...
@@ -157,6 +174,7 @@ export class AudioRecorderComponent implements OnInit, OnChanges, OnDestroy {
onBtnDeleteAudio
()
{
onBtnDeleteAudio
()
{
this
.
audioUrl
=
null
;
this
.
audioUrl
=
null
;
this
.
audioUploaded
.
emit
({});
this
.
audioRemoved
.
emit
();
this
.
audioRemoved
.
emit
();
}
}
...
...
form/src/app/common/custom-action/custom-action.component.html
0 → 100644
View file @
84e30557
<div
class=
"position-relative"
>
<button
nz-button
(
click
)="
setAnimaBtnClick
()"
style=
" border-radius: 0.5rem; border: 1px solid #ddd;"
>
<i
nz-icon
nzType=
"tool"
nzTheme=
"outline"
></i>
{{btnName}}
</button>
<!--配置龙骨面板-->
<nz-modal
[(
nzVisible
)]="
panelVisible
"
(
nzAfterClose
)="
closePanel
()"
[
nzTitle
]="
btnName
"
(
nzOnCancel
)="
panelCancel
()"
(
nzOnOk
)="
panelOk
()"
nzOkText=
"保存"
>
<div>
<h4>
基础内容:
</h4>
<div
style=
"margin-bottom: 10px; width: 80%; margin: auto;"
>
<!-- <nz-radio-group [ngModel]="item.type" (ngModelChange)="radioChange($event)">
<label nz-radio nzValue="pic">图片</label>
<label nz-radio nzValue="text">文本</label>
</nz-radio-group> -->
<div
*
ngIf=
"item.type == 'pic'"
>
<app-upload-image-with-preview
[
picUrl
]="
item
?.
pic_url
"
(
imageUploaded
)="
onItemImgUploadSuccess
($
event
,
item
)"
>
</app-upload-image-with-preview>
</div>
<div
*
ngIf=
"item.type == 'text'"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
item
.
text
"
(
blur
)="
saveText
(
item
)"
>
</div>
<div
*
ngIf=
"item.type == 'anima'"
style=
"margin-left: 100px;"
>
<app-upload-dragon-bone
[
skeJsonData
]=
item
.
skeJsonData
[
texJsonData
]=
item
.
texJsonData
[
texPngData
]=
item
.
texPngData
(
save
)="
saveAnima
($
event
)"
>
</app-upload-dragon-bone>
</div>
</div>
<nz-divider
style=
"margin-top: 10px;"
></nz-divider>
<h4>
状态设置:
</h4>
<div
style=
"display: flex; justify-content: space-around;"
>
<div
style=
"width: 30%; display: flex; align-items: center; flex-direction: column;"
>
<h5>
开始状态
</h5>
<div
*
ngFor=
"let op of item.changeOption; let i = index"
style=
"margin-bottom: 5px; "
>
<div
style=
"display: flex; align-items: center; justify-content: center;"
>
<span>
{{op[0]}}:
</span>
<input
type=
"text"
nz-input
[(
ngModel
)]="
op
[
1
]"
(
blur
)="
saveText
(
op
)"
style=
"margin-left: 5px;"
>
</div>
</div>
</div>
<div
style=
"width: 30%; display: flex; align-items: center; flex-direction: column; "
>
<h5>
切换时间
</h5>
<div
style=
"display: flex; width: 100%; align-items: center; justify-content: center;"
>
<span>
time:
</span>
<input
type=
"text"
nz-input
[(
ngModel
)]="
item
.
changeTime
"
(
blur
)="
saveText
(
item
.
changeTime
)"
style=
"width: 80px; margin-left: 5px;"
>
</div>
</div>
<div
style=
"width: 30%; display: flex; align-items: center; flex-direction: column;"
>
<h5>
结束状态
</h5>
<div
*
ngFor=
"let op of item.changeOption; let i = index"
style=
"margin-bottom: 5px; "
>
<div
style=
"display: flex; align-items: center; justify-content: center;"
>
<span>
{{op[0]}}:
</span>
<input
[
disabled
]="
op
[
2
]
==
null
"
type=
"text"
nz-input
[(
ngModel
)]="
op
[
2
]"
(
blur
)="
saveText
(
op
)"
style=
"margin-left: 5px;"
>
</div>
</div>
</div>
</div>
<div
style=
"display: flex; align-items: center; justify-content: center; margin-top: 10px;"
>
<button
style=
"margin-left: 20px; margin-top: -5px"
nz-button
(
click
)="
copyChangeData
()"
>
复制数据
</button>
<div
style=
"margin-left: 20px; margin-top: -5px"
>
<span>
粘贴数据:
</span>
<input
style=
"width: 100px;"
type=
"text"
nz-input
[(
ngModel
)]="
pasteData
"
>
<button
style=
"margin-left: 5px;"
nz-button
[
disabled
]="
pasteData=
=''"
nzType=
"primary"
(
click
)="
importData
()"
>
导入
</button>
</div>
</div>
<nz-divider
style=
"margin-top: 10px;"
></nz-divider>
<h4>
音频设置
</h4>
<app-audio-recorder
style=
"margin: auto"
[
audioUrl
]="
item
?.
audio_url
"
(
audioUploaded
)="
onItemAudioUploadSuccess
($
event
,
item
)"
></app-audio-recorder>
</div>
<!--
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 ske_json 文件: </span>
<nz-upload [nzShowUploadList]="false"
nzAccept="application/json"
[nzAction]="uploadUrl"
[nzData]="uploadData"
(nzChange)="skeJsonHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isSkeJsonLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="skeJsonData && skeJsonData['name']" style="margin-left: 10px"><u> {{skeJsonData['name']}} </u></span>
</div>
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 tex_json 文件: </span>
<nz-upload [nzShowUploadList]="false"
nzAccept="application/json"
[nzAction]="uploadUrl"
[nzData]="uploadData"
(nzChange)="texJsonHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isTexJsonLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="texJsonData && texJsonData['name']" style="margin-left: 10px"><u> {{texJsonData['name']}} </u></span>
</div>
<div class="anima-upload-btn">
<span style="margin-right: 10px">上传 tex_png 文件: </span>
<nz-upload [nzShowUploadList]="false"
nzAccept = "image/*"
[nzAction]="uploadUrl"
[nzData]="uploadData"
(nzChange)="texPngHandleChange($event)">
<button nz-button><i nz-icon nzType="upload"></i><span>Upload</span></button>
</nz-upload>
<i *ngIf="isTexPngLoading" style="margin-left: 10px;" nz-icon [nzType]="'loading'"></i>
<span *ngIf="texPngData && texPngData['name']" style="margin-left: 10px"><u> {{texPngData['name']}} </u></span>
</div>
<div class="anima-upload-btn" *ngIf="animaNames && animaNames.length > 0">
提示:需包含动画: {{animaNames.toString()}}.
</div> -->
</nz-modal>
</div>
form/src/app/common/custom-action/custom-action.component.scss
0 → 100644
View file @
84e30557
@import
'../../style/common_mixin.css'
;
.p-image-uploader
{
position
:
relative
;
display
:
block
;
width
:
100%
;
height
:
0
;
padding-bottom
:
56
.25%
;
.p-box
{
position
:
absolute
;
left
:
0
;
top
:
0
;
right
:
0
;
bottom
:
0
;
border
:
2px
dashed
#ddd
;
border-radius
:
0
.5rem
;
background-color
:
#fafafa
;
text-align
:
center
;
color
:
#aaa
;
.p-upload-icon
{
text-align
:
center
;
margin
:
auto
;
.anticon-upload
{
color
:
#888
;
font-size
:
5rem
;
}
.p-progress-bar
{
position
:
relative
;
width
:
20rem
;
height
:
1
.5rem
;
border
:
1px
solid
#ccc
;
border-radius
:
1rem
;
.p-progress-bg
{
background-color
:
#1890ff
;
border-radius
:
1rem
;
height
:
100%
;
}
.p-progress-value
{
position
:
absolute
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
text-shadow
:
0
0
4px
#000
;
color
:
white
;
text-align
:
center
;
font-size
:
0
.9rem
;
line-height
:
1
.5rem
;
}
}
}
.p-preview
{
width
:
100%
;
height
:
100%
;
background-size
:
contain
;
background-repeat
:
no-repeat
;
background-position
:
50%
50%
;
//background-image: url("https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png");
}
}
.d-flex
{
display
:
flex
;
}
}
.p-btn-delete
{
position
:
absolute
;
right
:
-0
.5rem
;
top
:
-0
.5rem
;
width
:
2rem
;
height
:
2rem
;
border
:
0
.2rem
solid
white
;
border-radius
:
50%
;
font-size
:
1
.2rem
;
background-color
:
#fb781a
;
color
:
white
;
text-align
:
center
;
}
.p-upload-progress-bg
{
position
:
absolute
;
width
:
100%
;
height
:
100%
;
display
:
flex
;
align-items
:
center
;
justify-content
:
center
;
&
.i-text
{
position
:
absolute
;
text-align
:
center
;
color
:
white
;
text-shadow
:
0
0
2px
rgba
(
0
,
0
,
0
,
.85
);
}
&
.i-bg
{
position
:
absolute
;
left
:
0
;
top
:
0
;
height
:
100%
;
background-color
:
#27b43f
;
border-radius
:
0
.5rem
;
}
}
.anima-upload-btn
{
padding
:
10px
;
}
:host
::ng-deep
.ant-upload
{
display
:
block
;
}
form/src/app/common/custom-action/custom-action.component.ts
0 → 100644
View file @
84e30557
import
{
ApplicationRef
,
Component
,
EventEmitter
,
Input
,
OnChanges
,
OnDestroy
,
Output
}
from
'
@angular/core
'
;
import
{
NzMessageService
,
UploadXHRArgs
,
UploadFile
}
from
'
ng-zorro-antd
'
;
@
Component
({
selector
:
'
app-custom-action
'
,
templateUrl
:
'
./custom-action.component.html
'
,
styleUrls
:
[
'
./custom-action.component.scss
'
]
})
export
class
CustomActionComponent
implements
OnDestroy
,
OnChanges
{
uploading
=
false
;
progress
=
0
;
@
Input
()
btnName
=
'
配置变化状态
'
;
@
Input
()
option
=
[]
@
Input
()
item
;
@
Input
()
type
=
'
text
'
@
Output
()
save
=
new
EventEmitter
();
@
Output
()
refreshEmitter
=
new
EventEmitter
();
uploadUrl
;
uploadData
;
panelVisible
=
false
;
pasteData
=
''
;
constructor
(
private
appRef
:
ApplicationRef
,
private
nzMessageService
:
NzMessageService
)
{
window
[
'
air
'
].
getUploadCallback
=
(
url
,
data
)
=>
{
this
.
uploadUrl
=
url
;
this
.
uploadData
=
data
;
};
const
tmpId
=
setInterval
(()
=>
{
console
.
log
(
'
in setInterval
'
)
this
.
uploadUrl
=
(
<
any
>
window
).
courseware
.
uploadUrl
();
this
.
uploadData
=
(
<
any
>
window
).
courseware
.
uploadData
();
if
(
this
.
uploadUrl
)
{
clearInterval
(
tmpId
);
}
},
500
)
}
ngOnInit
()
{
this
.
initItem
();
}
ngOnChanges
()
{
}
initItem
()
{
console
.
log
(
'
```this.item:
'
,
this
.
item
);
if
(
!
this
.
item
)
{
this
.
item
=
{
type
:
this
.
type
,
skeJsonData
:
{},
texJsonData
:
{},
texPngData
:
{},
changeStart
:
[
],
changeEnd
:
[
],
changeTime
:
0.3
};
if
(
this
.
option
)
{
this
.
item
.
changeOption
=
JSON
.
parse
(
JSON
.
stringify
(
this
.
option
));
}
}
console
.
log
(
'
initItem
'
,
this
.
item
);
}
setAnimaBtnClick
()
{
this
.
panelVisible
=
true
;
this
.
refresh
();
}
panelCancel
()
{
this
.
panelVisible
=
false
;
this
.
refresh
();
}
panelOk
()
{
// this.sendItemDragonBoneData();
this
.
panelVisible
=
false
;
this
.
refresh
();
this
.
save
.
emit
(
this
.
item
);
}
saveText
(
t
)
{
}
radioChange
(
e
)
{
this
.
item
.
type
=
e
;
console
.
log
(
'
e:
'
,
e
);
}
onItemImgUploadSuccess
(
e
,
item
)
{
item
.
pic_url
=
e
.
url
;
this
.
refresh
();
}
onItemAudioUploadSuccess
(
e
,
item
)
{
item
.
audio_url
=
e
.
url
;
this
.
refresh
();
}
saveAnima
(
e
)
{
console
.
log
(
"
~ e:
"
,
e
);
}
copyChangeData
()
{
console
.
log
(
'
this.item:
'
,
this
.
item
);
const
jsonData
=
{
changeOption
:
this
.
item
.
changeOption
,
changeTime
:
this
.
item
.
changeTime
// bgItem,
// hotZoneItemArr,
// isHasRect: this.isHasRect,
// isHasPic: this.isHasPic,
// isHasText: this.isHasText,
// isHasAudio: this.isHasAudio,
// isHasAnima: this.isHasAnima,
// hotZoneFontObj: this.hotZoneFontObj,
// defaultItemType: this.defaultItemType,
// hotZoneImgSize: this.hotZoneImgSize,
};
const
oInput
=
document
.
createElement
(
'
input
'
);
oInput
.
value
=
JSON
.
stringify
(
jsonData
);
document
.
body
.
appendChild
(
oInput
);
oInput
.
select
();
// 选择对象
document
.
execCommand
(
'
Copy
'
);
// 执行浏览器复制命令
document
.
body
.
removeChild
(
oInput
);
this
.
nzMessageService
.
success
(
'
复制成功
'
);
}
importData
()
{
if
(
!
this
.
pasteData
)
{
return
;
}
try
{
const
data
=
JSON
.
parse
(
this
.
pasteData
);
console
.
log
(
'
data:
'
,
data
);
const
{
changeOption
,
changeTime
}
=
data
;
this
.
item
.
changeOption
=
changeOption
;
this
.
item
.
changeTime
=
changeTime
;
this
.
pasteData
=
''
;
}
catch
(
e
)
{
console
.
log
(
'
err:
'
,
e
);
this
.
nzMessageService
.
error
(
'
导入失败
'
);
}
}
/**
* 刷新 渲染页面
*/
refresh
()
{
// this.refreshEmitter.emit();
setTimeout
(()
=>
{
this
.
appRef
.
tick
();
},
1
);
}
closePanel
()
{
console
.
log
(
'
in closePanel
'
);
this
.
refresh
();
}
ngOnDestroy
()
{
}
}
form/src/app/common/custom-hot-zone/Unit.ts
View file @
84e30557
...
@@ -329,6 +329,7 @@ export class MySprite extends Sprite {
...
@@ -329,6 +329,7 @@ export class MySprite extends Sprite {
this
.
scaleX
=
this
.
scaleY
=
value
;
this
.
scaleX
=
this
.
scaleY
=
value
;
}
}
getBoundingBox
()
{
getBoundingBox
()
{
const
getParentData
=
(
item
)
=>
{
const
getParentData
=
(
item
)
=>
{
...
@@ -1956,6 +1957,10 @@ export class HotZoneItem extends MySprite {
...
@@ -1956,6 +1957,10 @@ export class HotZoneItem extends MySprite {
audio_url
;
audio_url
;
pic_url
;
pic_url
;
text
;
text
;
gIdx
;
isAnimaStyle
=
false
;
private
_itemType
;
private
_itemType
;
private
shapeRect
:
ShapeRect
;
private
shapeRect
:
ShapeRect
;
...
@@ -2056,7 +2061,10 @@ export class HotZoneItem extends MySprite {
...
@@ -2056,7 +2061,10 @@ export class HotZoneItem extends MySprite {
this
.
hideLabel
();
this
.
hideLabel
();
}
}
setAnimaStyle
(
isAnimaStyle
)
{
this
.
isAnimaStyle
=
isAnimaStyle
;
console
.
log
(
'
in setAnimaStyle
'
)
}
drawArrow
()
{
drawArrow
()
{
if
(
!
this
.
arrow
)
{
return
;
}
if
(
!
this
.
arrow
)
{
return
;
}
...
@@ -2068,13 +2076,16 @@ export class HotZoneItem extends MySprite {
...
@@ -2068,13 +2076,16 @@ export class HotZoneItem extends MySprite {
this
.
arrow
.
update
();
this
.
arrow
.
update
();
this
.
arrowTop
.
x
=
rect
.
x
+
rect
.
width
/
2
;
if
(
!
this
.
isAnimaStyle
)
{
this
.
arrowTop
.
y
=
rect
.
y
;
this
.
arrowTop
.
x
=
rect
.
x
+
rect
.
width
/
2
;
this
.
arrowTop
.
update
();
this
.
arrowTop
.
y
=
rect
.
y
;
this
.
arrowTop
.
update
();
this
.
arrowRight
.
x
=
rect
.
x
+
rect
.
width
;
this
.
arrowRight
.
y
=
rect
.
y
+
rect
.
height
/
2
;
this
.
arrowRight
.
x
=
rect
.
x
+
rect
.
width
;
this
.
arrowRight
.
update
();
this
.
arrowRight
.
y
=
rect
.
y
+
rect
.
height
/
2
;
this
.
arrowRight
.
update
();
}
}
}
drawFrame
()
{
drawFrame
()
{
...
@@ -2197,8 +2208,26 @@ export class HotZoneLabel extends Label {
...
@@ -2197,8 +2208,26 @@ export class HotZoneLabel extends Label {
this
.
drawFrame
();
this
.
drawFrame
();
}
}
getLabelRect
()
{
const
rect
=
this
.
getBoundingBox
();
const
width
=
rect
.
width
/
this
.
scaleX
;
const
height
=
this
.
height
*
this
.
scaleY
;
const
x
=
this
.
x
-
width
/
2
;
const
y
=
this
.
y
-
height
/
2
;
return
{
width
,
height
,
x
,
y
};
}
}
}
export
class
HotZoneAction
extends
MySprite
{
}
...
@@ -2208,6 +2237,8 @@ export class EditorItem extends MySprite {
...
@@ -2208,6 +2237,8 @@ export class EditorItem extends MySprite {
arrow
:
MySprite
;
arrow
:
MySprite
;
label
:
Label
;
label
:
Label
;
text
;
text
;
arrowTop
;
arrowRight
;
showLabel
(
text
=
null
)
{
showLabel
(
text
=
null
)
{
...
@@ -2246,6 +2277,13 @@ export class EditorItem extends MySprite {
...
@@ -2246,6 +2277,13 @@ export class EditorItem extends MySprite {
this
.
arrow
.
load
(
'
assets/common/arrow.png
'
,
1
,
0
);
this
.
arrow
.
load
(
'
assets/common/arrow.png
'
,
1
,
0
);
this
.
arrow
.
setScaleXY
(
0.06
);
this
.
arrow
.
setScaleXY
(
0.06
);
// this.arrowTop = new MySprite(this.ctx);
// this.arrowTop.load('assets/common/arrow_top.png', 0.5, 0);
// this.arrowTop.setScaleXY(0.06);
//
// this.arrowRight = new MySprite(this.ctx);
// this.arrowRight.load('assets/common/arrow_right.png', 1, 0.5);
// this.arrowRight.setScaleXY(0.06);
}
}
this
.
showLabel
();
this
.
showLabel
();
...
@@ -2262,16 +2300,25 @@ export class EditorItem extends MySprite {
...
@@ -2262,16 +2300,25 @@ export class EditorItem extends MySprite {
this
.
hideLabel
();
this
.
hideLabel
();
}
}
refreshLabelScale
()
{}
drawArrow
()
{
drawArrow
()
{
if
(
!
this
.
arrow
)
{
return
;
}
if
(
!
this
.
arrow
)
{
return
;
}
const
rect
=
this
.
getBoundingBox
();
const
rect
=
this
.
getBoundingBox
();
this
.
arrow
.
x
=
rect
.
x
+
rect
.
width
;
this
.
arrow
.
x
=
rect
.
x
+
rect
.
width
;
this
.
arrow
.
y
=
rect
.
y
;
this
.
arrow
.
y
=
rect
.
y
;
this
.
arrow
.
update
();
this
.
arrow
.
update
();
// this.arrowTop.x = rect.x + rect.width / 2;
// this.arrowTop.y = rect.y;
// this.arrowTop.update();
//
// this.arrowRight.x = rect.x + rect.width;
// this.arrowRight.y = rect.y + rect.height / 2;
// this.arrowRight.update();
}
}
drawFrame
()
{
drawFrame
()
{
...
@@ -2325,784 +2372,3 @@ export class EditorItem extends MySprite {
...
@@ -2325,784 +2372,3 @@ export class EditorItem extends MySprite {
}
}
//
//
// import TWEEN from '@tweenjs/tween.js';
//
//
// class Sprite {
// x = 0;
// y = 0;
// color = '';
// radius = 0;
// alive = false;
// margin = 0;
// angle = 0;
// ctx;
//
// constructor(ctx) {
// this.ctx = ctx;
// }
// update($event) {
// this.draw();
// }
// draw() {
//
// }
//
// }
//
//
//
//
//
// export class MySprite extends Sprite {
//
// width = 0;
// height = 0;
// _anchorX = 0;
// _anchorY = 0;
// _offX = 0;
// _offY = 0;
// scaleX = 1;
// scaleY = 1;
// alpha = 1;
// rotation = 0;
// visible = true;
//
// children = [this];
//
// img;
// _z = 0;
//
//
// init(imgObj = null, anchorX:number = 0.5, anchorY:number = 0.5) {
//
// if (imgObj) {
//
// this.img = imgObj;
//
// this.width = this.img.width;
// this.height = this.img.height;
// }
//
// this.anchorX = anchorX;
// this.anchorY = anchorY;
// }
//
//
//
// update($event = null) {
// if (this.visible) {
// this.draw();
// }
// }
// draw() {
//
// this.ctx.save();
//
// this.drawInit();
//
// this.updateChildren();
//
// this.ctx.restore();
// }
//
// drawInit() {
//
// this.ctx.translate(this.x, this.y);
//
// this.ctx.rotate(this.rotation * Math.PI / 180);
//
// this.ctx.scale(this.scaleX, this.scaleY);
//
// this.ctx.globalAlpha = this.alpha;
//
// }
//
// drawSelf() {
// if (this.img) {
// this.ctx.drawImage(this.img, this._offX, this._offY);
// }
// }
//
// updateChildren() {
//
// if (this.children.length <= 0) { return; }
//
// for (let i = 0; i < this.children.length; i++) {
//
// if (this.children[i] === this) {
//
// this.drawSelf();
// } else {
//
// this.children[i].update();
// }
// }
// }
//
//
// load(url, anchorX = 0.5, anchorY = 0.5) {
//
// return new Promise((resolve, reject) => {
// const img = new Image();
// img.onload = () => resolve(img);
// img.onerror = reject;
// img.src = url;
// }).then(img => {
//
// this.init(img, anchorX, anchorY);
// return img;
// });
// }
//
// addChild(child, z = 1) {
// if (this.children.indexOf(child) === -1) {
// this.children.push(child);
// child._z = z;
// child.parent = this;
// }
//
// this.children.sort((a, b) => {
// return a._z - b._z;
// });
//
// }
// removeChild(child) {
// const index = this.children.indexOf(child);
// if (index !== -1) {
// this.children.splice(index, 1);
// }
// }
//
// set anchorX(value) {
// this._anchorX = value;
// this.refreshAnchorOff();
// }
// get anchorX() {
// return this._anchorX;
// }
// set anchorY(value) {
// this._anchorY = value;
// this.refreshAnchorOff();
// }
// get anchorY() {
// return this._anchorY;
// }
// refreshAnchorOff() {
// this._offX = -this.width * this.anchorX;
// this._offY = -this.height * this.anchorY;
// }
//
// setScaleXY(value) {
// this.scaleX = this.scaleY = value;
// }
//
// getBoundingBox() {
//
// const x = this.x + this._offX * this.scaleX;
// const y = this.y + this._offY * this.scaleY;
// const width = this.width * this.scaleX;
// const height = this.height * this.scaleY;
//
// return {x, y, width, height};
// }
//
// }
//
//
//
//
//
// export class Item extends MySprite {
//
// baseX;
//
// move(targetY, callBack) {
//
// const self = this;
//
// const tween = new TWEEN.Tween(this)
// .to({ y: targetY }, 2500)
// .easing(TWEEN.Easing.Quintic.Out)
// .onComplete(function() {
//
// self.hide(callBack);
// // if (callBack) {
// // callBack();
// // }
// })
// .start();
//
// }
//
// show(callBack = null) {
//
// const tween = new TWEEN.Tween(this)
// .to({ alpha: 1 }, 800)
// // .easing(TWEEN.Easing.Quadratic.Out) // Use an easing function to make the animation smooth.
// .onComplete(function() {
// if (callBack) {
// callBack();
// }
// })
// .start(); // Start the tween immediately.
//
// }
//
// hide(callBack = null) {
//
// const tween = new TWEEN.Tween(this)
// .to({ alpha: 0 }, 800)
// // .easing(TWEEN.Easing.Quadratic.Out) // Use an easing function to make the animation smooth.
// .onComplete(function() {
// if (callBack) {
// callBack();
// }
// })
// .start(); // Start the tween immediately.
// }
//
//
// shake(id) {
//
//
// if (!this.baseX) {
// this.baseX = this.x;
// }
//
// const baseX = this.baseX;
// const baseTime = 50;
// const sequence = [
// {target: {x: baseX + 40 * id}, time: baseTime - 25},
// {target: {x: baseX - 20 * id}, time: baseTime},
// {target: {x: baseX + 10 * id}, time: baseTime},
// {target: {x: baseX - 5 * id}, time: baseTime},
// {target: {x: baseX + 2 * id}, time: baseTime},
// {target: {x: baseX - 1 * id}, time: baseTime},
// {target: {x: baseX}, time: baseTime},
//
// ];
//
//
// const self = this;
//
// function runSequence() {
//
// if (self['shakeTween']) {
// self['shakeTween'].stop();
// }
//
// const tween = new TWEEN.Tween(self);
//
// if (sequence.length > 0) {
// // console.log('sequence.length: ', sequence.length);
// const action = sequence.shift();
// tween.to(action['target'], action['time']);
// tween.onComplete( () => {
// runSequence();
// });
// tween.start();
//
// self['shakeTween'] = tween;
// }
// }
//
// runSequence();
//
// }
//
//
//
// drop(targetY, callBack = null) {
//
// const self = this;
//
// const time = Math.abs(targetY - this.y) * 2.4;
//
// this.alpha = 1;
//
// const tween = new TWEEN.Tween(this)
// .to({ y: targetY }, time)
// .easing(TWEEN.Easing.Cubic.In)
// .onComplete(function() {
//
// // self.hideItem(callBack);
// if (callBack) {
// callBack();
// }
// })
// .start();
//
//
// }
//
//
// }
//
//
// export class EndSpr extends MySprite {
//
// show(s) {
//
// this.scaleX = this.scaleY = 0;
// this.alpha = 0;
//
// const tween = new TWEEN.Tween(this)
// .to({ alpha: 1, scaleX: s, scaleY: s }, 800)
// .easing(TWEEN.Easing.Elastic.Out) // Use an easing function to make the animation smooth.
// .onComplete(function() {
//
// })
// .start(); // Start the tween immediately.
//
// }
// }
//
//
//
// export class ShapeRect extends MySprite {
//
// fillColor = '#FF0000';
//
// setSize(w, h) {
// this.width = w;
// this.height = h;
//
// console.log('w:', w);
// console.log('h:', h);
// }
//
// drawShape() {
//
// this.ctx.fillStyle = this.fillColor;
// this.ctx.fillRect(this._offX, this._offY, this.width, this.height);
//
// }
//
//
// drawSelf() {
// super.drawSelf();
// this.drawShape();
// }
// }
//
//
// export class HotZoneItem extends MySprite {
//
//
// lineDashFlag = false;
// arrow: MySprite;
// label: Label;
// title;
//
// arrowTop;
// arrowRight;
//
// audio_url;
// pic_url;
// text;
// private _itemType;
// private shapeRect: ShapeRect;
//
// get itemType() {
// return this._itemType;
// }
// set itemType(value) {
// this._itemType = value;
// }
//
// setSize(w, h) {
// this.width = w;
// this.height = h;
//
//
// const rect = new ShapeRect(this.ctx);
// rect.x = -w / 2;
// rect.y = -h / 2;
// rect.setSize(w, h);
// rect.fillColor = '#ffffff';
// rect.alpha = 0.2;
// this.addChild(rect);
// }
//
// showLabel(text = null) {
//
//
// if (!this.label) {
// this.label = new Label(this.ctx);
// this.label.anchorY = 0;
// this.label.fontSize = '40px';
// this.label.textAlign = 'center';
// this.addChild(this.label);
// // this.label.scaleX = 1 / this.scaleX;
// // this.label.scaleY = 1 / this.scaleY;
//
// this.refreshLabelScale();
//
// }
//
// if (text) {
// this.label.text = text;
// } else if (this.title) {
// this.label.text = this.title;
// }
// this.label.visible = true;
//
// }
//
// hideLabel() {
// if (!this.label) { return; }
//
// this.label.visible = false;
// }
//
// refreshLabelScale() {
// if (this.scaleX == this.scaleY) {
// this.label.setScaleXY(1);
// }
//
// if (this.scaleX > this.scaleY) {
// this.label.scaleX = this.scaleY / this.scaleX;
// } else {
// this.label.scaleY = this.scaleX / this.scaleY;
// }
// }
//
// showLineDash() {
// this.lineDashFlag = true;
//
// if (this.arrow) {
// this.arrow.visible = true;
// } else {
// this.arrow = new MySprite(this.ctx);
// this.arrow.load('assets/common/arrow.png', 1, 0);
// this.arrow.setScaleXY(0.06);
//
// this.arrowTop = new MySprite(this.ctx);
// this.arrowTop.load('assets/common/arrow_top.png', 0.5, 0);
// this.arrowTop.setScaleXY(0.06);
//
// this.arrowRight = new MySprite(this.ctx);
// this.arrowRight.load('assets/common/arrow_right.png', 1, 0.5);
// this.arrowRight.setScaleXY(0.06);
// }
//
// this.showLabel();
// }
//
// hideLineDash() {
//
// this.lineDashFlag = false;
//
// if (this.arrow) {
// this.arrow.visible = false;
// }
//
// this.hideLabel();
// }
//
//
//
// drawArrow() {
// if (!this.arrow) { return; }
//
// const rect = this.getBoundingBox();
// this.arrow.x = rect.x + rect.width;
// this.arrow.y = rect.y;
//
// this.arrow.update();
//
//
// this.arrowTop.x = rect.x + rect.width / 2;
// this.arrowTop.y = rect.y;
// this.arrowTop.update();
//
// this.arrowRight.x = rect.x + rect.width;
// this.arrowRight.y = rect.y + rect.height / 2;
// this.arrowRight.update();
// }
//
// drawFrame() {
//
//
// this.ctx.save();
//
//
// const rect = this.getBoundingBox();
//
// const w = rect.width;
// const h = rect.height;
// const x = rect.x + w / 2;
// const y = rect.y + h / 2;
//
// this.ctx.setLineDash([5, 5]);
// this.ctx.lineWidth = 2;
// this.ctx.strokeStyle = '#1bfff7';
// // this.ctx.fillStyle = '#ffffff';
//
// this.ctx.beginPath();
//
// this.ctx.moveTo( x - w / 2, y - h / 2);
//
// this.ctx.lineTo(x + w / 2, y - h / 2);
//
// this.ctx.lineTo(x + w / 2, y + h / 2);
//
// this.ctx.lineTo(x - w / 2, y + h / 2);
//
// this.ctx.lineTo(x - w / 2, y - h / 2);
//
// // this.ctx.fill();
// this.ctx.stroke();
//
//
//
//
// this.ctx.restore();
//
// }
//
// draw() {
// super.draw();
//
// if (this.lineDashFlag) {
// this.drawFrame();
// this.drawArrow();
// }
// }
// }
//
//
// export class EditorItem extends MySprite {
//
// lineDashFlag = false;
// arrow: MySprite;
// label:Label;
// text;
//
// showLabel(text = null) {
//
//
// if (!this.label) {
// this.label = new Label(this.ctx);
// this.label.anchorY = 0;
// this.label.fontSize = '50px';
// this.label.textAlign = 'center';
// this.addChild(this.label);
// this.label.setScaleXY(1 / this.scaleX);
// }
//
// if (text) {
// this.label.text = text;
// } else if (this.text) {
// this.label.text = this.text;
// }
// this.label.visible = true;
//
// }
//
// hideLabel() {
// if (!this.label) { return; }
//
// this.label.visible = false;
// }
//
// showLineDash() {
// this.lineDashFlag = true;
//
// if (this.arrow) {
// this.arrow.visible = true;
// } else {
// this.arrow = new MySprite(this.ctx);
// this.arrow.load('assets/common/arrow.png', 1, 0);
// this.arrow.setScaleXY(0.06);
//
// }
//
// this.showLabel();
// }
//
// hideLineDash() {
//
// this.lineDashFlag = false;
//
// if (this.arrow) {
// this.arrow.visible = false;
// }
//
// this.hideLabel();
// }
//
//
//
// drawArrow() {
// if (!this.arrow) { return; }
//
// const rect = this.getBoundingBox();
// this.arrow.x = rect.x + rect.width;
// this.arrow.y = rect.y;
//
// this.arrow.update();
// }
//
// drawFrame() {
//
//
// this.ctx.save();
//
//
// const rect = this.getBoundingBox();
//
// const w = rect.width;
// const h = rect.height;
// const x = rect.x + w / 2;
// const y = rect.y + h / 2;
//
// this.ctx.setLineDash([5, 5]);
// this.ctx.lineWidth = 2;
// this.ctx.strokeStyle = '#1bfff7';
// // this.ctx.fillStyle = '#ffffff';
//
// this.ctx.beginPath();
//
// this.ctx.moveTo( x - w / 2, y - h / 2);
//
// this.ctx.lineTo(x + w / 2, y - h / 2);
//
// this.ctx.lineTo(x + w / 2, y + h / 2);
//
// this.ctx.lineTo(x - w / 2, y + h / 2);
//
// this.ctx.lineTo(x - w / 2, y - h / 2);
//
// // this.ctx.fill();
// this.ctx.stroke();
//
//
//
//
// this.ctx.restore();
//
// }
//
// draw() {
// super.draw();
//
// if (this.lineDashFlag) {
// this.drawFrame();
// this.drawArrow();
// }
// }
// }
//
//
//
// export class Label extends MySprite {
//
// text:String;
// fontSize:String = '40px';
// fontName:String = 'Verdana';
// textAlign:String = 'left';
//
//
// constructor(ctx) {
// super(ctx);
// this.init();
// }
//
// drawText() {
//
// // console.log('in drawText', this.text);
//
// if (!this.text) { return; }
//
// this.ctx.font = `${this.fontSize} ${this.fontName}`;
// this.ctx.textAlign = this.textAlign;
// this.ctx.textBaseline = 'middle';
// this.ctx.fontWeight = 900;
//
// this.ctx.lineWidth = 5;
// this.ctx.strokeStyle = '#ffffff';
// this.ctx.strokeText(this.text, 0, 0);
//
// this.ctx.fillStyle = '#000000';
// this.ctx.fillText(this.text, 0, 0);
//
//
// }
//
//
// drawSelf() {
// super.drawSelf();
// this.drawText();
// }
//
// }
//
//
//
// export function getPosByAngle(angle, len) {
//
// const radian = angle * Math.PI / 180;
// const x = Math.sin(radian) * len;
// const y = Math.cos(radian) * len;
//
// return {x, y};
//
// }
//
// export function getAngleByPos(px, py, mx, my) {
//
// // const _x = p2x - p1x;
// // const _y = p2y - p1y;
// // const tan = _y / _x;
// //
// // const radina = Math.atan(tan); // 用反三角函数求弧度
// // const angle = Math.floor(180 / (Math.PI / radina)); //
// //
// // console.log('r: ' , angle);
// // return angle;
// //
//
//
//
// const x = Math.abs(px - mx);
// const y = Math.abs(py - my);
// // const x = Math.abs(mx - px);
// // const y = Math.abs(my - py);
// const z = Math.sqrt(Math.pow(x, 2) + Math.pow(y, 2));
// const cos = y / z;
// const radina = Math.acos(cos); // 用反三角函数求弧度
// let angle = Math.floor(180 / (Math.PI / radina) * 100) / 100; // 将弧度转换成角度
//
// if(mx > px && my > py) {// 鼠标在第四象限
// angle = 180 - angle;
// }
//
// if(mx === px && my > py) {// 鼠标在y轴负方向上
// angle = 180;
// }
//
// if(mx > px && my === py) {// 鼠标在x轴正方向上
// angle = 90;
// }
//
// if(mx < px && my > py) {// 鼠标在第三象限
// angle = 180 + angle;
// }
//
// if(mx < px && my === py) {// 鼠标在x轴负方向
// angle = 270;
// }
//
// if(mx < px && my < py) {// 鼠标在第二象限
// angle = 360 - angle;
// }
//
// // console.log('angle: ', angle);
// return angle;
//
// }
form/src/app/common/custom-hot-zone/custom-hot-zone.component.html
View file @
84e30557
...
@@ -32,33 +32,111 @@
...
@@ -32,33 +32,111 @@
<nz-divider
style=
"margin-top: 10px;"
></nz-divider>
<nz-divider
style=
"margin-top: 10px;"
></nz-divider>
<div
style=
"margin-top: -20px; margin-bottom: 5px; width: 100%;"
>
<div
style=
"margin-top: -20px; margin-bottom: 5px"
>
<div
*
ngIf=
"customTypeGroupArr"
>
<nz-radio-group
[
ngModel
]="
it
.
itemType
"
(
ngModelChange
)="
radioChange
($
event
,
it
)"
>
<nz-radio-group
[
ngModel
]="
it
.
gIdx
"
(
ngModelChange
)="
customRadioChange
($
event
,
it
)"
style=
"display: flex; align-items: center; justify-content: center; flex-wrap: wrap;"
>
<label
*
ngIf=
"isHasRect"
nz-radio
nzValue=
"rect"
>
矩形
</label>
<div
*
ngFor=
"let group of customTypeGroupArr; let gIdx = index"
style=
"display: flex; "
>
<label
*
ngIf=
"isHasPic"
nz-radio
nzValue=
"pic"
>
图片
</label>
<label
nz-radio
nzValue=
"{{gIdx}}"
>
{{group.name}}
</label>
<label
*
ngIf=
"isHasText"
nz-radio
nzValue=
"text"
>
文本
</label>
</div>
</nz-radio-group>
</nz-radio-group>
</div>
<div
*
ngIf=
"it.itemType == 'pic'"
>
</div>
<app-upload-image-with-preview
[
picUrl
]="
it
?.
pic_url
"
<!-- <div *ngIf="!customTypeGroupArr">
(
imageUploaded
)="
onItemImgUploadSuccess
($
event
,
it
)"
>
<nz-radio-group [ngModel]="it.itemType" (ngModelChange)="radioChange($event, it)" style="display: flex; align-items: center; justify-content: center">
</app-upload-image-with-preview>
</div>
<label *ngIf="isHasRect" nz-radio nzValue="rect">矩形</label>
<label *ngIf="isHasPic" nz-radio nzValue="pic">图片</label>
<label *ngIf="isHasText" nz-radio nzValue="text">文本</label>
</nz-radio-group>
</div> -->
<div
*
ngIf=
"it.itemType == 'text'"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
it
.
text
"
(
blur
)="
saveText
(
it
)"
>
</div>
</div>
<div
style=
"width: 100%; margin-top: 5px;"
>
<div
*
ngIf=
"customTypeGroupArr && customTypeGroupArr[it.gIdx]"
>
<app-audio-recorder
[
audioUrl
]="
it
.
audio_url
"
<div
*
ngIf=
"customTypeGroupArr[it.gIdx].pic"
>
(
audioUploaded
)="
onItemAudioUploadSuccess
($
event
,
it
)"
<app-upload-image-with-preview
></app-audio-recorder>
[
picUrl
]="
it
?.
pic_url
"
(
imageUploaded
)="
onItemImgUploadSuccess
($
event
,
it
)"
>
</app-upload-image-with-preview>
</div>
<div
*
ngIf=
"customTypeGroupArr[it.gIdx].text"
style=
"margin-top: 5px"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
it
.
text
"
(
blur
)="
saveText
(
it
)"
>
</div>
<div
*
ngIf=
"customTypeGroupArr[it.gIdx].anima"
align=
"center"
style=
"margin-top: 5px"
>
<button
nz-button
(
click
)="
setAnimaBtnClick
(
i
)"
>
<i
nz-icon
nzType=
"tool"
nzTheme=
"outline"
></i>
配置龙骨动画
</button>
</div>
<div
*
ngIf=
"customTypeGroupArr[it.gIdx].animaSmall"
align=
"center"
style=
"margin-top: 5px"
>
<button
nz-button
(
click
)="
setAnimaSmallBtnClick
(
i
)"
>
<i
nz-icon
nzType=
"tool"
nzTheme=
"outline"
></i>
配置龙骨动画(小)
</button>
</div>
<div
*
ngIf=
"customTypeGroupArr[it.gIdx].audio"
style=
"display: flex;align-items: center; margin-top: 5px"
>
<app-audio-recorder
style=
"margin: auto"
[
audioUrl
]="
it
.
audio_url
"
(
audioUploaded
)="
onItemAudioUploadSuccess
($
event
,
it
)"
></app-audio-recorder>
</div>
<div
*
ngIf=
"customTypeGroupArr[it.gIdx]?.action"
style=
"display: flex;align-items: center; margin-top: 5px"
>
<app-custom-action
style=
"margin: auto"
[
item
]="
it
?
it
['
actionData_
'
+
it
.
gIdx
]
:
{}"
[
type
]="
customTypeGroupArr
[
it
.
gIdx
].
action
.
type
"
[
option
]="
customTypeGroupArr
[
it
.
gIdx
].
action
.
option
"
(
save
)="
onSaveCustomAction
($
event
,
it
)"
>
>
</app-custom-action>
</div>
</div>
</div>
<!-- <div *ngIf="!customTypeGroupArr">
<div *ngIf="it.itemType == 'pic'">
<app-upload-image-with-preview
[picUrl]="it?.pic_url"
(imageUploaded)="onItemImgUploadSuccess($event, it)">
</app-upload-image-with-preview>
</div>
<div *ngIf="it.itemType == 'text'">
<input type="text" nz-input [(ngModel)]="it.text" (blur)="saveText(it)">
</div>
<div *ngIf="isHasAudio"
style="width: 100%; margin-top: 5px; display: flex; align-items: center; justify-items: center;">
<app-audio-recorder
style="margin: auto"
[audioUrl]="it.audio_url"
(audioUploaded)="onItemAudioUploadSuccess($event, it)"
></app-audio-recorder>
</div>
<div *ngIf="it.itemType == 'rect' && isHasAnima" align="center" style="margin-bottom: 5px">
<button nz-button (click)="setAnimaBtnClick(i)" >
<i nz-icon nzType="tool" nzTheme="outline"></i>
配置龙骨动画
</button>
</div>
</div> -->
</div>
</div>
</div>
</div>
...
@@ -83,12 +161,29 @@
...
@@ -83,12 +161,29 @@
<div
class=
"save-box"
>
<div
class=
"save-box"
>
<button
class=
"save-btn"
nz-button
nzType=
"primary"
[
nzSize
]="'
large
'"
nzShape=
"round"
<button
style=
"margin-left: 200px"
class=
"save-btn"
nz-button
nzType=
"primary"
[
nzSize
]="'
large
'"
nzShape=
"round"
(
click
)="
saveClick
()"
>
(
click
)="
saveClick
()"
>
<i
nz-icon
nzType=
"save"
></i>
<i
nz-icon
nzType=
"save"
></i>
Save
Save
</button>
</button>
<div
*
ngIf=
"isCopyData"
style=
"height: 40px; display: flex; justify-items: center;"
>
<label
style=
"margin-left: 40px"
nz-checkbox
[(
ngModel
)]="
bgItem
.
isShowDebugLine
"
>
显示辅助框
</label>
<button
style=
"margin-left: 20px; margin-top: -5px"
nz-button
(
click
)="
copyHotZoneData
()"
>
复制基础数据
</button>
<div
style=
"margin-left: 10px; margin-top: -5px"
>
<span>
粘贴数据:
</span>
<input
style=
"width: 100px;"
type=
"text"
nz-input
[(
ngModel
)]="
pasteData
"
>
<button
style=
"margin-left: 5px;"
nz-button
[
disabled
]="
pasteData=
=''"
nzType=
"primary"
(
click
)="
importData
()"
>
导入
</button>
</div>
</div>
</div>
</div>
...
@@ -98,3 +193,52 @@
...
@@ -98,3 +193,52 @@
<label
style=
"opacity: 0; position: absolute; top: 0px; font-family: 'BRLNSR_1'"
>
1
</label>
<label
style=
"opacity: 0; position: absolute; top: 0px; font-family: 'BRLNSR_1'"
>
1
</label>
<!--龙骨面板-->
<nz-modal
[(
nzVisible
)]="
animaPanelVisible
"
nzTitle=
"配置资源文件"
(
nzAfterClose
)="
closeAfterPanel
()"
(
nzOnCancel
)="
animaPanelCancel
()"
(
nzOnOk
)="
animaPanelOk
()"
nzOkText=
"保存"
>
<div
class=
"anima-upload-btn"
>
<span
style=
"margin-right: 10px"
>
上传 ske_json 文件:
</span>
<nz-upload
[
nzShowUploadList
]="
false
"
nzAccept=
"application/json"
[
nzAction
]="
uploadUrl
"
[
nzData
]="
uploadData
"
(
nzChange
)="
skeJsonHandleChange
($
event
)"
>
<button
nz-button
><i
nz-icon
nzType=
"upload"
></i><span>
Upload
</span></button>
</nz-upload>
<i
*
ngIf=
"isSkeJsonLoading"
style=
"margin-left: 10px;"
nz-icon
[
nzType
]="'
loading
'"
></i>
<span
*
ngIf=
"skeJsonData['name']"
style=
"margin-left: 10px"
><u>
{{skeJsonData['name']}}
</u></span>
</div>
<div
class=
"anima-upload-btn"
>
<span
style=
"margin-right: 10px"
>
上传 tex_json 文件:
</span>
<nz-upload
[
nzShowUploadList
]="
false
"
nzAccept=
"application/json"
[
nzAction
]="
uploadUrl
"
[
nzData
]="
uploadData
"
(
nzChange
)="
texJsonHandleChange
($
event
)"
>
<button
nz-button
><i
nz-icon
nzType=
"upload"
></i><span>
Upload
</span></button>
</nz-upload>
<i
*
ngIf=
"isTexJsonLoading"
style=
"margin-left: 10px;"
nz-icon
[
nzType
]="'
loading
'"
></i>
<span
*
ngIf=
"texJsonData['name']"
style=
"margin-left: 10px"
><u>
{{texJsonData['name']}}
</u></span>
</div>
<div
class=
"anima-upload-btn"
>
<span
style=
"margin-right: 10px"
>
上传 tex_png 文件:
</span>
<nz-upload
[
nzShowUploadList
]="
false
"
nzAccept =
"image/*"
[
nzAction
]="
uploadUrl
"
[
nzData
]="
uploadData
"
(
nzChange
)="
texPngHandleChange
($
event
)"
>
<button
nz-button
><i
nz-icon
nzType=
"upload"
></i><span>
Upload
</span></button>
</nz-upload>
<i
*
ngIf=
"isTexPngLoading"
style=
"margin-left: 10px;"
nz-icon
[
nzType
]="'
loading
'"
></i>
<span
*
ngIf=
"texPngData['name']"
style=
"margin-left: 10px"
><u>
{{texPngData['name']}}
</u></span>
</div>
<div
class=
"anima-upload-btn"
*
ngIf=
"customTypeGroupArr && customTypeGroupArr[curDragonBoneGIdx] && customTypeGroupArr[curDragonBoneGIdx].animaNames"
>
提示:需包含以下动画: {{customTypeGroupArr[curDragonBoneGIdx].animaNames.toString()}}
</div>
</nz-modal>
form/src/app/common/custom-hot-zone/custom-hot-zone.component.scss
View file @
84e30557
...
@@ -81,19 +81,21 @@
...
@@ -81,19 +81,21 @@
}
}
}
}
h5
{
.anima-upload-btn
{
margin-top
:
1rem
;
padding
:
10px
;
}
}
h5
{
margin-top
:
1rem
;
@font-face
{
font-family
:
'BRLNSR_1'
;
src
:
url("/assets/font/BRLNSR_1.TTF")
;
}
}
//
//@font-face
//{
// font-family: 'BRLNSR_1';
// src: url("/assets/font/BRLNSR_1.TTF") ;
//}
...
@@ -107,104 +109,3 @@ h5 {
...
@@ -107,104 +109,3 @@ h5 {
//@import '../../../style/common_mixin';
//
//.p-image-uploader {
// position: relative;
// display: block;
// width: 100%;
// height: 0;
// padding-bottom: 56.25%;
// .p-box {
// position: absolute;
// left: 0;
// top: 0;
// right: 0;
// bottom: 0;
// border: 2px dashed #ddd;
// border-radius: 0.5rem;
// background-color: #fafafa;
// text-align: center;
// color: #aaa;
// .p-upload-icon {
// text-align: center;
// margin: auto;
// .anticon-upload {
// color: #888;
// font-size: 5rem;
// }
// .p-progress-bar {
// position: relative;
// width: 20rem;
// height: 1.5rem;
// border: 1px solid #ccc;
// border-radius: 1rem;
// .p-progress-bg {
// background-color: #1890ff;
// border-radius: 1rem;
// height: 100%;
// }
// .p-progress-value {
// position: absolute;
// top: 0;
// left: 0;
// width: 100%;
// height: 100%;
// text-shadow: 0 0 4px #000;
// color: white;
// text-align: center;
// font-size: 0.9rem;
// line-height: 1.5rem;
// }
// }
// }
// .p-preview {
// width: 100%;
// height: 100%;
// //background-image: url("https://zos.alipayobjects.com/rmsportal/jkjgkEfvpUPVyRjUImniVslZfWPnJuuZ.png");
// @include k-img-bg();
// }
// }
//}
//
//.p-btn-delete {
// position: absolute;
// right: -0.5rem;
// top: -0.5rem;
// width: 2rem;
// height: 2rem;
// border: 0.2rem solid white;
// border-radius: 50%;
// font-size: 1.2rem;
// background-color: #fb781a;
// color: white;
// text-align: center;
//}
//
//.p-upload-progress-bg {
// position: absolute;
// width: 100%;
// height: 100%;
// display: flex;
// align-items: center;
// justify-content: center;
// & .i-text {
// position: absolute;
// text-align: center;
// color: white;
// text-shadow: 0 0 2px rgba(0, 0, 0, .85);
// }
// & .i-bg {
// position: absolute;
// left: 0;
// top: 0;
// height: 100%;
// background-color: #27b43f;
// border-radius: 0.5rem;
// }
//}
//
//
//:host ::ng-deep .ant-upload {
// display: block;
//}
form/src/app/common/custom-hot-zone/custom-hot-zone.component.ts
View file @
84e30557
import
{
import
{
ApplicationRef
,
ChangeDetectorRef
,
Component
,
Component
,
ElementRef
,
ElementRef
,
EventEmitter
,
EventEmitter
,
...
@@ -12,10 +14,11 @@ import {
...
@@ -12,10 +14,11 @@ import {
}
from
'
@angular/core
'
;
}
from
'
@angular/core
'
;
import
{
Subject
}
from
'
rxjs
'
;
import
{
Subject
}
from
'
rxjs
'
;
import
{
debounceTime
}
from
'
rxjs/operators
'
;
import
{
debounceTime
}
from
'
rxjs/operators
'
;
import
{
EditorItem
,
HotZoneImg
,
HotZoneItem
,
HotZoneLabel
,
Label
,
MySprite
,
removeItemFromArr
}
from
'
./Unit
'
;
import
{
EditorItem
,
HotZoneImg
,
HotZoneItem
,
HotZoneLabel
,
Label
,
MySprite
,
removeItemFromArr
,
ShapeRect
,
ShapeRectNew
}
from
'
./Unit
'
;
import
TWEEN
from
'
@tweenjs/tween.js
'
;
import
TWEEN
from
'
@tweenjs/tween.js
'
;
import
{
getMinScale
}
from
"
../../play/Unit
"
;
import
{
getMinScale
}
from
'
../../play/Unit
'
;
import
{
tar
}
from
"
compressing
"
;
import
{
tar
}
from
'
compressing
'
;
import
{
NzMessageService
}
from
'
ng-zorro-antd
'
;
@
Component
({
@
Component
({
...
@@ -25,18 +28,14 @@ import {tar} from "compressing";
...
@@ -25,18 +28,14 @@ import {tar} from "compressing";
})
})
export
class
CustomHotZoneComponent
implements
OnInit
,
OnDestroy
,
OnChanges
{
export
class
CustomHotZoneComponent
implements
OnInit
,
OnDestroy
,
OnChanges
{
@
ViewChild
(
'
canvas
'
,
{
static
:
true
})
canvas
:
ElementRef
;
@
ViewChild
(
'
wrap
'
,
{
static
:
true
})
wrap
:
ElementRef
;
@
Input
()
imgItemArr
=
null
;
@
Input
()
@
Input
()
hotZoneItemArr
=
null
;
hotZoneItemArr
=
null
;
@
Input
()
@
Input
()
hotZoneArr
=
null
;
hotZoneArr
=
null
;
@
Output
()
save
=
new
EventEmitter
();
@
ViewChild
(
'
canvas
'
,
{
static
:
true
})
canvas
:
ElementRef
;
@
ViewChild
(
'
wrap
'
,
{
static
:
true
})
wrap
:
ElementRef
;
@
Input
()
@
Input
()
isHasRect
=
true
;
isHasRect
=
true
;
@
Input
()
@
Input
()
...
@@ -44,16 +43,30 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -44,16 +43,30 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
@
Input
()
@
Input
()
isHasText
=
true
;
isHasText
=
true
;
@
Input
()
@
Input
()
hotZoneFontObj
=
{
isHasAudio
=
true
;
size
:
50
,
name
:
'
BRLNSR_1
'
,
color
:
'
#8f3758
'
}
@
Input
()
@
Input
()
defaultItemType
=
'
text
'
;
isHasAnima
=
false
;
@
Input
()
customTypeGroupArr
;
// [{name:string, rect:boolean, pic:boolean, text:boolean, audio:boolean, anima:boolean, animaNames:['name1', ..]}, ...]
@
Input
()
hotZoneFontObj
;
@
Input
()
isCopyData
=
false
;
// hotZoneFontObj = {
// size: 50,
// name: 'BRLNSR_1',
// color: '#8f3758'
// }
@
Input
()
defaultItemType
=
'
text
'
;
@
Input
()
@
Input
()
hotZoneImgSize
=
190
;
hotZoneImgSize
=
0
;
@
Output
()
save
=
new
EventEmitter
();
saveDisabled
=
true
;
saveDisabled
=
true
;
...
@@ -86,8 +99,33 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -86,8 +99,33 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
changeSizeFlag
=
false
;
changeSizeFlag
=
false
;
changeTopSizeFlag
=
false
;
changeTopSizeFlag
=
false
;
changeRightSizeFlag
=
false
;
changeRightSizeFlag
=
false
;
animaPanelVisible
=
false
;
uploadUrl
;
uploadData
;
skeJsonData
=
{};
texJsonData
=
{};
texPngData
=
{};
animaName
=
''
;
curDragonBoneIndex
;
curDragonBoneGIdx
;
pasteData
=
''
;
isSkeJsonLoading
=
false
;
isTexJsonLoading
=
false
;
isTexPngLoading
=
false
;
isAnimaSmall
=
false
;
constructor
()
{
constructor
(
private
nzMessageService
:
NzMessageService
,
private
appRef
:
ApplicationRef
,
private
changeDetectorRef
:
ChangeDetectorRef
)
{
this
.
uploadUrl
=
(
<
any
>
window
).
courseware
.
uploadUrl
();
this
.
uploadData
=
(
<
any
>
window
).
courseware
.
uploadData
();
window
[
'
air
'
].
getUploadCallback
=
(
url
,
data
)
=>
{
this
.
uploadUrl
=
url
;
this
.
uploadData
=
data
;
};
}
}
_bgItem
=
null
;
_bgItem
=
null
;
...
@@ -110,11 +148,14 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -110,11 +148,14 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
ngOnInit
()
{
ngOnInit
()
{
this
.
initListener
();
this
.
initListener
();
// this.init();
// this.init();
this
.
update
();
this
.
update
();
this
.
refresh
();
}
}
ngOnDestroy
()
{
ngOnDestroy
()
{
...
@@ -136,10 +177,12 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -136,10 +177,12 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
onItemImgUploadSuccess
(
e
,
item
)
{
onItemImgUploadSuccess
(
e
,
item
)
{
item
.
pic_url
=
e
.
url
;
item
.
pic_url
=
e
.
url
;
this
.
loadHotZonePic
(
item
.
pic
,
e
.
url
);
this
.
loadHotZonePic
(
item
.
pic
,
e
.
url
);
this
.
refresh
();
}
}
onItemAudioUploadSuccess
(
e
,
item
)
{
onItemAudioUploadSuccess
(
e
,
item
)
{
item
.
audio_url
=
e
.
url
;
item
.
audio_url
=
e
.
url
;
this
.
refresh
();
}
}
...
@@ -150,25 +193,32 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -150,25 +193,32 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
renderArr
.
push
(
this
.
bg
);
this
.
renderArr
.
push
(
this
.
bg
);
}
}
if
(
!
this
.
bgItem
.
url
)
{
this
.
bgItem
.
url
=
'
http://teach.cdn.ireadabc.com/8ebb1858564340ea0936b83e3280ad7d.jpg
'
;
}
const
bg
=
this
.
bg
;
const
bg
=
this
.
bg
;
if
(
this
.
bgItem
.
url
)
{
//
if (this.bgItem.url) {
bg
.
load
(
this
.
bgItem
.
url
).
then
(()
=>
{
bg
.
load
(
this
.
bgItem
.
url
).
then
(()
=>
{
const
rate1
=
this
.
canvasWidth
/
bg
.
width
;
const
rate1
=
this
.
canvasWidth
/
bg
.
width
;
const
rate2
=
this
.
canvasHeight
/
bg
.
height
;
const
rate2
=
this
.
canvasHeight
/
bg
.
height
;
const
rate
=
Math
.
min
(
rate1
,
rate2
);
const
rate
=
Math
.
min
(
rate1
,
rate2
);
bg
.
setScaleXY
(
rate
);
bg
.
setScaleXY
(
rate
);
bg
.
x
=
this
.
canvasWidth
/
2
;
bg
.
x
=
this
.
canvasWidth
/
2
;
bg
.
y
=
this
.
canvasHeight
/
2
;
bg
.
y
=
this
.
canvasHeight
/
2
;
if
(
callBack
)
{
if
(
callBack
)
{
callBack
();
callBack
();
}
}
});
}
this
.
refresh
();
});
// }
}
}
...
@@ -199,6 +249,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -199,6 +249,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
onImgUploadSuccessByImg
(
e
,
img
)
{
onImgUploadSuccessByImg
(
e
,
img
)
{
img
.
pic_url
=
e
.
url
;
img
.
pic_url
=
e
.
url
;
this
.
refreshImage
(
img
);
this
.
refreshImage
(
img
);
this
.
refresh
();
}
}
refreshImage
(
img
)
{
refreshImage
(
img
)
{
...
@@ -221,6 +272,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -221,6 +272,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
}
}
}
}
this
.
refresh
();
}
}
...
@@ -245,10 +297,17 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -245,10 +297,17 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
item
.
anchorX
=
0.5
;
item
.
anchorX
=
0.5
;
item
.
anchorY
=
0.5
;
item
.
anchorY
=
0.5
;
item
.
x
=
this
.
canvasWidth
/
2
;
item
.
x
=
this
.
canvasWidth
/
2
;
item
.
y
=
this
.
canvasHeight
/
2
;
item
.
y
=
this
.
canvasHeight
/
2
;
item
.
itemType
=
this
.
defaultItemType
;
item
.
itemType
=
this
.
getDefaultItemType
();
item
.
gIdx
=
'
0
'
;
item
[
'
id
'
]
=
new
Date
().
getTime
().
toString
();
item
[
'
data
'
]
=
saveData
;
console
.
log
(
'
item.x:
'
,
item
.
x
);
if
(
saveData
)
{
if
(
saveData
)
{
...
@@ -257,41 +316,143 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -257,41 +316,143 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
item
.
scaleY
=
saveRect
.
height
/
item
.
height
;
item
.
scaleY
=
saveRect
.
height
/
item
.
height
;
item
.
x
=
saveRect
.
x
+
saveRect
.
width
/
2
;
item
.
x
=
saveRect
.
x
+
saveRect
.
width
/
2
;
item
.
y
=
saveRect
.
y
+
saveRect
.
height
/
2
;
item
.
y
=
saveRect
.
y
+
saveRect
.
height
/
2
;
item
.
gIdx
=
saveData
.
gIdx
;
item
[
'
id
'
]
=
saveData
.
id
;
item
[
'
skeJsonData
'
]
=
saveData
.
skeJsonData
;
item
[
'
texJsonData
'
]
=
saveData
.
texJsonData
;
item
[
'
texPngData
'
]
=
saveData
.
texPngData
;
item
[
'
actionData_
'
+
item
.
gIdx
]
=
saveData
[
'
actionData_
'
+
item
.
gIdx
];
}
}
console
.
log
(
'
item.x:~~
'
,
item
.
x
);
item
.
showLineDash
();
item
.
showLineDash
();
const
pic
=
new
HotZoneImg
(
this
.
ctx
);
// const pic = new HotZoneImg(this.ctx);
this
.
setItemPic
(
item
,
saveData
);
this
.
setItemLabel
(
item
,
saveData
);
this
.
setItemAnima
(
item
,
saveData
);
return
item
;
}
setItemPic
(
item
,
saveData
)
{
console
.
log
(
'
in setItemPic
'
,
saveData
);
const
pic
=
new
EditorItem
(
this
.
ctx
);
pic
.
visible
=
false
;
pic
.
visible
=
false
;
item
[
'
pic
'
]
=
pic
;
item
[
'
pic
'
]
=
pic
;
if
(
saveData
&&
saveData
.
pic_url
)
{
if
(
saveData
)
{
this
.
loadHotZonePic
(
pic
,
saveData
.
pic_url
);
let
picUrl
=
saveData
.
pic_url
;
const
actionData
=
saveData
[
'
actionData_
'
+
item
.
gIdx
];
if
(
actionData
&&
actionData
.
type
==
'
pic
'
)
{
picUrl
=
actionData
.
pic_url
;
}
console
.
log
(
'
saveData:
'
,
saveData
);
console
.
log
(
'
picUrl:
'
,
picUrl
);
if
(
picUrl
)
{
this
.
loadHotZonePic
(
pic
,
picUrl
,
saveData
.
imgScale
);
}
}
}
pic
.
x
=
item
.
x
;
pic
.
x
=
item
.
x
;
pic
.
y
=
item
.
y
;
pic
.
y
=
item
.
y
;
this
.
renderArr
.
push
(
pic
);
this
.
renderArr
.
push
(
pic
);
}
setItemAnima
(
item
,
saveData
)
{
console
.
log
(
'
in setItemAnima
'
,
saveData
);
// const pic = new EditorItem(this.ctx);
// pic.visible = false;
// item['pic'] = pic;
// if (saveData) {
// let picUrl = saveData.pic_url;
// const actionData = saveData['actionData_' + item.gIdx];
// if (actionData && actionData.type == 'pic') {
// picUrl = actionData.pic_url;
// }
// console.log('saveData: ', saveData);
// console.log('picUrl: ', picUrl);
// if (picUrl) {
// this.loadHotZonePic(pic, picUrl, saveData.imgScale);
// }
// }
// pic.x = item.x;
// pic.y = item.y;
// this.renderArr.push(pic);
}
setItemLabel
(
item
,
saveData
)
{
const
textLabel
=
new
HotZoneLabel
(
this
.
ctx
);
const
textLabel
=
new
HotZoneLabel
(
this
.
ctx
);
textLabel
.
fontSize
=
this
.
hotZoneFontObj
.
size
;
if
(
this
.
hotZoneFontObj
)
{
textLabel
.
fontName
=
this
.
hotZoneFontObj
.
name
;
textLabel
.
fontSize
=
this
.
hotZoneFontObj
.
size
;
textLabel
.
fontColor
=
this
.
hotZoneFontObj
.
color
;
textLabel
.
fontName
=
this
.
hotZoneFontObj
.
name
;
textLabel
.
fontColor
=
this
.
hotZoneFontObj
.
color
;
}
textLabel
.
textAlign
=
'
center
'
;
textLabel
.
textAlign
=
'
center
'
;
// textLabel.setOutline();
// textLabel.setOutline();
// console.log('saveData:', saveData);
item
[
'
textLabel
'
]
=
textLabel
;
item
[
'
textLabel
'
]
=
textLabel
;
textLabel
.
setScaleXY
(
this
.
mapScale
);
textLabel
.
setScaleXY
(
this
.
mapScale
);
if
(
saveData
&&
saveData
.
text
)
{
if
(
saveData
)
{
textLabel
.
text
=
saveData
.
text
;
if
(
saveData
.
text
&&
this
.
hotZoneFontObj
)
{
textLabel
.
text
=
saveData
.
text
}
this
.
setActionFont
(
textLabel
,
saveData
[
'
actionData_
'
+
item
.
gIdx
]);
textLabel
.
refreshSize
();
textLabel
.
refreshSize
();
}
}
textLabel
.
x
=
item
.
x
;
textLabel
.
x
=
item
.
x
;
textLabel
.
y
=
item
.
y
;
textLabel
.
y
=
item
.
y
;
this
.
renderArr
.
push
(
textLabel
);
this
.
renderArr
.
push
(
textLabel
);
}
return
item
;
setActionFont
(
textLabel
,
actionData
)
{
if
(
actionData
&&
actionData
.
type
==
'
text
'
)
{
textLabel
.
text
=
actionData
.
text
;
for
(
let
i
=
0
;
i
<
actionData
.
changeOption
.
length
;
i
++
)
{
const
op
=
actionData
.
changeOption
[
i
];
textLabel
[
op
[
0
]]
=
op
[
1
];
}
}
}
}
getDefaultItemType
()
{
if
(
this
.
customTypeGroupArr
)
{
const
group
=
this
.
customTypeGroupArr
[
0
];
if
(
group
.
rect
)
{
return
'
rect
'
;
}
if
(
group
.
pic
)
{
return
'
pic
'
;
}
if
(
group
.
text
)
{
return
'
text
'
;
}
}
else
{
return
this
.
defaultItemType
;
}
}
getPicItem
(
img
,
saveData
=
null
)
{
getPicItem
(
img
,
saveData
=
null
)
{
...
@@ -327,9 +488,11 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -327,9 +488,11 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
item
.
y
=
saveRect
.
y
+
saveRect
.
height
/
2
;
item
.
y
=
saveRect
.
y
+
saveRect
.
height
/
2
;
}
else
{
}
else
{
item
.
showLineDash
();
//
item.showLineDash();
}
}
item
.
showLineDash
();
console
.
log
(
'
aaa
'
);
});
});
return
item
;
return
item
;
}
}
...
@@ -337,6 +500,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -337,6 +500,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
onAudioUploadSuccessByImg
(
e
,
img
)
{
onAudioUploadSuccessByImg
(
e
,
img
)
{
img
.
audio_url
=
e
.
url
;
img
.
audio_url
=
e
.
url
;
this
.
refresh
();
}
}
deleteItem
(
e
,
i
)
{
deleteItem
(
e
,
i
)
{
...
@@ -345,15 +509,106 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -345,15 +509,106 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
hotZoneArr
.
splice
(
i
,
1
);
this
.
hotZoneArr
.
splice
(
i
,
1
);
this
.
refreshHotZoneId
();
this
.
refreshHotZoneId
();
this
.
refresh
();
}
}
radioChange
(
e
,
item
)
{
//
radioChange(e, item) {
item
.
itemType
=
e
;
//
item.itemType = e;
this
.
refreshItem
(
item
);
// this.refreshItem(item);
// this.refresh();
// // console.log(' in radioChange e: ', e);
// }
customRadioChange
(
e
,
item
)
{
console
.
log
(
'
in customRadioChange
'
,
e
);
item
.
gIdx
=
-
1
;
setTimeout
(()
=>
{
item
.
gIdx
=
e
;
this
.
refreshCustomItem
(
item
);
this
.
refresh
();
},
1
);
// const curGroup = this.customTypeGroupArr[e];
// console.log(' in radioChange e: ', e);
}
refreshCustomItem
(
item
)
{
this
.
hideHotZoneItem
(
item
);
const
group
=
this
.
customTypeGroupArr
[
item
.
gIdx
];
if
(
!
group
)
{
return
;
}
if
(
group
.
text
)
{
this
.
showItemLabel
(
item
);
}
if
(
group
.
rect
)
{
this
.
showItemRect
(
item
,
true
);
}
if
(
group
.
pic
&&
!
group
.
anima
)
{
this
.
showItemPic
(
item
);
}
if
(
group
.
action
)
{
if
(
group
.
action
.
type
==
'
pic
'
)
{
this
.
showItemPic
(
item
);
}
if
(
group
.
action
.
type
==
'
text
'
)
{
this
.
showItemLabel
(
item
);
}
if
(
group
.
action
.
type
==
'
anima
'
)
{
this
.
showItemRect
(
item
);
}
}
item
.
setAnimaStyle
(
group
.
animaSmall
)
}
setItemIsAnimaStyle
(
item
,
isAnimal
)
{
}
showItemPic
(
item
)
{
item
.
pic
.
visible
=
true
;
item
.
itemType
=
'
pic
'
;
this
.
showArrowTop
(
item
)
}
showItemLabel
(
item
)
{
item
.
textLabel
.
visible
=
true
;
item
.
itemType
=
'
text
'
;
this
.
showArrowTop
(
item
)
}
showItemRect
(
item
,
isShowArrowTop
=
true
)
{
item
.
visible
=
true
;
item
.
itemType
=
'
rect
'
;
this
.
showArrowTop
(
item
,
isShowArrowTop
)
}
showArrowTop
(
item
,
isShowArrowTop
=
false
)
{
if
(
isShowArrowTop
)
{
item
.
arrowTop
.
visible
=
true
;
item
.
arrowRight
.
visible
=
true
;
}
else
{
item
.
arrowTop
.
visible
=
false
;
item
.
arrowRight
.
visible
=
false
;
}
}
hideHotZoneItem
(
item
)
{
item
.
visible
=
false
;
item
.
pic
.
visible
=
false
;
item
.
textLabel
.
visible
=
false
;
}
}
refreshItem
(
item
)
{
refreshItem
(
item
)
{
...
@@ -368,13 +623,14 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -368,13 +623,14 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
setTextState
(
item
);
this
.
setTextState
(
item
);
break
;
break
;
default
:
default
:
this
.
setNoneState
(
item
);
}
}
}
}
init
()
{
init
()
{
console
.
log
(
'
init
'
);
this
.
initData
();
this
.
initData
();
this
.
initCtx
();
this
.
initCtx
();
...
@@ -382,18 +638,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -382,18 +638,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
}
}
initItem
()
{
initItem
()
{
this
.
changeDetectorRef
.
markForCheck
();
this
.
changeDetectorRef
.
detectChanges
();
if
(
!
this
.
bgItem
)
{
if
(
!
this
.
bgItem
)
{
this
.
bgItem
=
{};
this
.
bgItem
=
{};
}
else
{
}
else
{
this
.
refreshBackground
(()
=>
{
this
.
refreshBackground
(()
=>
{
// if (!this.imgItemArr) {
// this.imgItemArr = [];
// } else {
// this.initImgArr();
// }
// console.log('aaaaa');
if
(
!
this
.
hotZoneItemArr
)
{
if
(
!
this
.
hotZoneItemArr
)
{
this
.
hotZoneItemArr
=
[];
this
.
hotZoneItemArr
=
[];
...
@@ -404,6 +657,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -404,6 +657,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
});
});
}
}
this
.
refresh
();
}
}
initHotZoneArr
()
{
initHotZoneArr
()
{
...
@@ -427,6 +681,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -427,6 +681,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
hotZoneArr
=
[];
this
.
hotZoneArr
=
[];
const
arr
=
this
.
hotZoneItemArr
.
concat
();
const
arr
=
this
.
hotZoneItemArr
.
concat
();
console
.
log
(
'
this.hotZoneItemArr:
'
,
this
.
hotZoneItemArr
);
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
arr
[
i
]));
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
arr
[
i
]));
...
@@ -449,9 +704,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -449,9 +704,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
item
.
pic_url
=
data
.
pic_url
;
item
.
pic_url
=
data
.
pic_url
;
item
.
text
=
data
.
text
;
item
.
text
=
data
.
text
;
item
.
itemType
=
data
.
itemType
;
item
.
itemType
=
data
.
itemType
;
this
.
refreshItem
(
item
);
console
.
log
(
'
item:
'
,
item
);
if
(
this
.
customTypeGroupArr
)
{
this
.
refreshCustomItem
(
item
);
}
else
{
this
.
refreshItem
(
item
);
}
console
.
log
(
'
1 item:
'
,
item
);
this
.
hotZoneArr
.
push
(
item
);
this
.
hotZoneArr
.
push
(
item
);
}
}
...
@@ -463,48 +724,6 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -463,48 +724,6 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
}
}
initImgArr
()
{
console
.
log
(
'
this.imgItemArr:
'
,
this
.
imgItemArr
);
let
curBgRect
;
if
(
this
.
bg
)
{
curBgRect
=
this
.
bg
.
getBoundingBox
();
}
else
{
curBgRect
=
{
x
:
0
,
y
:
0
,
width
:
this
.
canvasWidth
,
height
:
this
.
canvasHeight
};
}
let
oldBgRect
=
this
.
bgItem
.
rect
;
if
(
!
oldBgRect
)
{
oldBgRect
=
curBgRect
;
}
const
rate
=
curBgRect
.
width
/
oldBgRect
.
width
;
console
.
log
(
'
rate:
'
,
rate
);
this
.
imgArr
=
[];
const
arr
=
this
.
imgItemArr
.
concat
();
for
(
let
i
=
0
;
i
<
arr
.
length
;
i
++
)
{
const
data
=
JSON
.
parse
(
JSON
.
stringify
(
arr
[
i
]));
const
img
=
{
pic_url
:
data
.
pic_url
};
data
.
rect
.
x
*=
rate
;
data
.
rect
.
y
*=
rate
;
data
.
rect
.
width
*=
rate
;
data
.
rect
.
height
*=
rate
;
data
.
rect
.
x
+=
curBgRect
.
x
;
data
.
rect
.
y
+=
curBgRect
.
y
;
img
[
'
picItem
'
]
=
this
.
getPicItem
(
img
,
data
);
img
[
'
audio_url
'
]
=
arr
[
i
].
audio_url
;
this
.
imgArr
.
push
(
img
);
}
this
.
refreshImageId
();
}
initData
()
{
initData
()
{
this
.
canvasWidth
=
this
.
wrap
.
nativeElement
.
clientWidth
;
this
.
canvasWidth
=
this
.
wrap
.
nativeElement
.
clientWidth
;
...
@@ -528,9 +747,10 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -528,9 +747,10 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
oldPos
=
{
x
:
this
.
mx
,
y
:
this
.
my
};
this
.
oldPos
=
{
x
:
this
.
mx
,
y
:
this
.
my
};
for
(
let
i
=
0
;
i
<
this
.
hotZoneArr
.
length
;
i
++
)
{
for
(
let
i
=
this
.
hotZoneArr
.
length
-
1
;
i
>=
0
;
i
--
)
{
const
item
=
this
.
hotZoneArr
[
i
];
const
item
=
this
.
hotZoneArr
[
i
];
console
.
log
(
'
mapDown item:
'
,
item
);
let
callback
;
let
callback
;
let
target
;
let
target
;
switch
(
item
.
itemType
)
{
switch
(
item
.
itemType
)
{
...
@@ -548,7 +768,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -548,7 +768,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
break
;
break
;
}
}
if
(
this
.
checkClickTarget
(
target
))
{
if
(
t
arget
&&
t
his
.
checkClickTarget
(
target
))
{
callback
(
target
);
callback
(
target
);
return
;
return
;
}
}
...
@@ -582,7 +802,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -582,7 +802,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
this
.
oldPos
=
{
x
:
this
.
mx
,
y
:
this
.
my
};
this
.
oldPos
=
{
x
:
this
.
mx
,
y
:
this
.
my
};
this
.
saveDisabled
=
tru
e
;
// this.saveDisabled = fals
e;
}
}
...
@@ -723,7 +943,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -723,7 +943,7 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
// }
// }
this
.
updateArr
(
this
.
hotZoneArr
);
this
.
updateArr
(
this
.
hotZoneArr
);
this
.
updatePos
()
this
.
updatePos
()
;
TWEEN
.
update
();
TWEEN
.
update
();
...
@@ -833,7 +1053,9 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -833,7 +1053,9 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
checkClickTarget
(
target
)
{
checkClickTarget
(
target
)
{
if
(
!
target
||
!
target
.
visible
)
{
return
;
}
const
rect
=
target
.
getBoundingBox
();
const
rect
=
target
.
getBoundingBox
();
if
(
this
.
checkPointInRect
(
this
.
mx
,
this
.
my
,
rect
))
{
if
(
this
.
checkPointInRect
(
this
.
mx
,
this
.
my
,
rect
))
{
return
true
;
return
true
;
...
@@ -852,9 +1074,21 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -852,9 +1074,21 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
saveClick
()
{
saveClick
()
{
const
sendData
=
this
.
getSendData
();
this
.
save
.
emit
(
sendData
);
}
getSendData
()
{
const
bgItem
=
this
.
bgItem
;
const
bgItem
=
this
.
bgItem
;
if
(
this
.
bg
)
{
if
(
this
.
bg
)
{
bgItem
[
'
rect
'
]
=
this
.
bg
.
getBoundingBox
();
const
rect
=
this
.
bg
.
getBoundingBox
();
bgItem
[
'
rect
'
]
=
rect
;
rect
.
x
=
Math
.
round
(
rect
.
x
*
100
)
/
100
;
rect
.
y
=
Math
.
round
(
rect
.
y
*
100
)
/
100
;
rect
.
width
=
Math
.
round
(
rect
.
width
*
100
)
/
100
;
rect
.
height
=
Math
.
round
(
rect
.
height
*
100
)
/
100
;
}
else
{
}
else
{
bgItem
[
'
rect
'
]
=
{
bgItem
[
'
rect
'
]
=
{
x
:
0
,
x
:
0
,
...
@@ -870,19 +1104,43 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -870,19 +1104,43 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
for
(
let
i
=
0
;
i
<
hotZoneArr
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
hotZoneArr
.
length
;
i
++
)
{
const
hotZoneItem
=
{
const
hotZoneItem
=
{
id
:
hotZoneArr
[
i
].
id
,
index
:
hotZoneArr
[
i
].
index
,
index
:
hotZoneArr
[
i
].
index
,
pic_url
:
hotZoneArr
[
i
].
pic_url
,
pic_url
:
hotZoneArr
[
i
].
pic_url
,
text
:
hotZoneArr
[
i
].
text
,
text
:
hotZoneArr
[
i
].
text
,
audio_url
:
hotZoneArr
[
i
].
audio_url
,
audio_url
:
hotZoneArr
[
i
].
audio_url
,
itemType
:
hotZoneArr
[
i
].
itemType
,
itemType
:
hotZoneArr
[
i
].
itemType
,
fontSize
:
this
.
hotZoneFontObj
.
size
,
fontName
:
this
.
hotZoneFontObj
.
name
,
fontColor
:
this
.
hotZoneFontObj
.
color
,
fontScale
:
hotZoneArr
[
i
].
textLabel
?
hotZoneArr
[
i
].
textLabel
.
scaleX
:
1
,
fontScale
:
hotZoneArr
[
i
].
textLabel
?
hotZoneArr
[
i
].
textLabel
.
scaleX
:
1
,
imgScale
:
hotZoneArr
[
i
].
pic
?
hotZoneArr
[
i
].
pic
.
scaleX
:
1
,
imgScale
:
hotZoneArr
[
i
].
pic
?
hotZoneArr
[
i
].
pic
.
scaleX
:
1
,
mapScale
:
this
.
mapScale
mapScale
:
this
.
mapScale
,
skeJsonData
:
hotZoneArr
[
i
].
skeJsonData
,
texJsonData
:
hotZoneArr
[
i
].
texJsonData
,
texPngData
:
hotZoneArr
[
i
].
texPngData
,
gIdx
:
hotZoneArr
[
i
].
gIdx
};
};
hotZoneItem
[
'
rect
'
]
=
hotZoneArr
[
i
].
getBoundingBox
();
hotZoneItem
[
'
actionData_
'
+
hotZoneItem
.
gIdx
]
=
hotZoneArr
[
i
][
'
actionData_
'
+
hotZoneArr
[
i
].
gIdx
]
if
(
this
.
hotZoneFontObj
)
{
hotZoneItem
[
'
fontSize
'
]
=
this
.
hotZoneFontObj
.
size
;
hotZoneItem
[
'
fontName
'
]
=
this
.
hotZoneFontObj
.
name
;
hotZoneItem
[
'
ontColor
'
]
=
this
.
hotZoneFontObj
.
color
;
}
if
(
hotZoneArr
[
i
].
itemType
==
'
pic
'
)
{
hotZoneItem
[
'
rect
'
]
=
hotZoneArr
[
i
].
pic
.
getBoundingBox
();
}
else
if
(
hotZoneArr
[
i
].
itemType
==
'
text
'
)
{
hotZoneArr
[
i
].
textLabel
.
refreshSize
();
hotZoneItem
[
'
rect
'
]
=
hotZoneArr
[
i
].
textLabel
.
getLabelRect
();
// hotZoneItem['rect'].width = hotZoneItem['rect'].width / hotZoneArr[i].textLabel.scaleX;
// hotZoneItem['rect'].height = hotZoneArr[i].textLabel.height * hotZoneArr[i].textLabel.scaleY;
}
else
{
hotZoneItem
[
'
rect
'
]
=
hotZoneArr
[
i
].
getBoundingBox
();
}
// hotZoneItem['rect'] = hotZoneArr[i].getBoundingBox();
hotZoneItem
[
'
rect
'
].
x
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
x
-
bgItem
[
'
rect
'
].
x
)
*
100
)
/
100
;
hotZoneItem
[
'
rect
'
].
x
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
x
-
bgItem
[
'
rect
'
].
x
)
*
100
)
/
100
;
hotZoneItem
[
'
rect
'
].
y
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
y
-
bgItem
[
'
rect
'
].
y
)
*
100
)
/
100
;
hotZoneItem
[
'
rect
'
].
y
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
y
-
bgItem
[
'
rect
'
].
y
)
*
100
)
/
100
;
hotZoneItem
[
'
rect
'
].
width
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
width
)
*
100
)
/
100
;
hotZoneItem
[
'
rect
'
].
width
=
Math
.
round
((
hotZoneItem
[
'
rect
'
].
width
)
*
100
)
/
100
;
...
@@ -894,7 +1152,275 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -894,7 +1152,275 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
console
.
log
(
'
hotZoneItemArr:
'
,
hotZoneItemArr
);
console
.
log
(
'
hotZoneItemArr:
'
,
hotZoneItemArr
);
this
.
save
.
emit
({
bgItem
,
hotZoneItemArr
});
return
{
bgItem
,
hotZoneItemArr
};
}
saveText
(
item
)
{
if
(
item
.
itemType
==
'
text
'
)
{
item
.
textLabel
.
text
=
item
.
text
;
}
}
onSaveCustomAction
(
e
,
item
)
{
const
data
=
e
;
item
[
'
actionData_
'
+
item
.
gIdx
]
=
data
;
if
(
data
.
type
==
'
pic
'
)
{
let
picUrl
=
data
.
pic_url
;
if
(
picUrl
)
{
this
.
loadHotZonePic
(
item
.
pic
,
picUrl
);
}
}
if
(
data
.
type
==
'
text
'
)
{
this
.
setActionFont
(
item
.
textLabel
,
data
);
item
.
textLabel
.
refreshSize
();
}
// if (data.type == 'anima') {
// this.setActionAnima(item.anima, data);
// }
// this.loadHotZonePic(item.pic, e.url);
this
.
refresh
()
}
setActionAnima
()
{
}
setAnimaBtnClick
(
index
)
{
console
.
log
(
'
aaaa
'
)
this
.
isAnimaSmall
=
false
;
this
.
setCurDragonBone
(
index
);
// this.curDragonBoneIndex = index;
// this.curDragonBoneGIdx = Number(this.hotZoneArr[index].gIdx);
// const {skeJsonData, texJsonData, texPngData} = this.hotZoneArr[index];
// this.skeJsonData = skeJsonData || {};
// this.texJsonData = texJsonData || {};
// this.texPngData = texPngData || {};
// this.animaPanelVisible = true;
// this.refresh();
}
setAnimaSmallBtnClick
(
index
)
{
console
.
log
(
'
bbb
'
)
this
.
isAnimaSmall
=
true
;
this
.
setCurDragonBone
(
index
);
}
setCurDragonBone
(
index
)
{
this
.
curDragonBoneIndex
=
index
;
this
.
curDragonBoneGIdx
=
Number
(
this
.
hotZoneArr
[
index
].
gIdx
);
const
{
skeJsonData
,
texJsonData
,
texPngData
}
=
this
.
hotZoneArr
[
index
];
this
.
skeJsonData
=
skeJsonData
||
{};
this
.
texJsonData
=
texJsonData
||
{};
this
.
texPngData
=
texPngData
||
{};
this
.
animaPanelVisible
=
true
;
this
.
refresh
();
}
setItemSizeByAnima
(
jsonData
,
item
)
{
console
.
log
(
'
json:
'
,
jsonData
);
const
request
=
new
XMLHttpRequest
();
//通过url获取文件,第二个选项是文件所在的具体地址
request
.
open
(
'
GET
'
,
jsonData
.
url
,
true
);
request
.
send
(
null
);
request
.
onreadystatechange
=
()
=>
{
if
(
request
.
readyState
===
4
&&
request
.
status
===
200
)
{
var
type
=
request
.
getResponseHeader
(
'
Content-Type
'
);
if
(
type
.
indexOf
(
"
text
"
)
!==
1
)
{
//返回一个文件内容的对象
const
data
=
JSON
.
parse
(
request
.
responseText
);
console
.
log
(
'
request.responseText;
'
,
data
)
const
animaSize
=
data
.
armature
[
0
].
canvas
;
item
.
width
=
animaSize
.
width
;
item
.
height
=
animaSize
.
height
;
// return request.responseText;
}
}
}
}
animaPanelCancel
()
{
this
.
animaPanelVisible
=
false
;
this
.
refresh
();
}
animaPanelOk
()
{
this
.
setItemDragonBoneData
(
this
.
hotZoneArr
[
this
.
curDragonBoneIndex
]);
console
.
log
(
'
this.hotZoneArr:
'
,
this
.
hotZoneArr
);
this
.
animaPanelVisible
=
false
;
if
(
this
.
isAnimaSmall
)
{
this
.
setItemSizeByAnima
(
this
.
skeJsonData
,
this
.
hotZoneArr
[
this
.
curDragonBoneIndex
]);
}
this
.
refresh
();
}
setItemDragonBoneData
(
item
)
{
item
[
'
skeJsonData
'
]
=
this
.
skeJsonData
;
item
[
'
texJsonData
'
]
=
this
.
texJsonData
;
item
[
'
texPngData
'
]
=
this
.
texPngData
;
}
skeJsonHandleChange
(
e
)
{
console
.
log
(
'
e:
'
,
e
);
switch
(
e
.
type
)
{
case
'
start
'
:
this
.
isSkeJsonLoading
=
true
;
break
;
case
'
success
'
:
this
.
skeJsonData
[
'
url
'
]
=
e
.
file
.
response
.
url
;
this
.
skeJsonData
[
'
name
'
]
=
e
.
file
.
name
;
this
.
nzMessageService
.
success
(
'
上传成功
'
);
this
.
isSkeJsonLoading
=
false
;
break
;
case
'
progress
'
:
break
;
}
}
texJsonHandleChange
(
e
)
{
console
.
log
(
'
e:
'
,
e
);
switch
(
e
.
type
)
{
case
'
start
'
:
this
.
isTexJsonLoading
=
true
;
break
;
case
'
success
'
:
this
.
texJsonData
[
'
url
'
]
=
e
.
file
.
response
.
url
;
this
.
texJsonData
[
'
name
'
]
=
e
.
file
.
name
;
this
.
nzMessageService
.
success
(
'
上传成功
'
);
this
.
isTexJsonLoading
=
false
;
break
;
case
'
progress
'
:
break
;
}
}
texPngHandleChange
(
e
)
{
console
.
log
(
'
e:
'
,
e
);
switch
(
e
.
type
)
{
case
'
start
'
:
this
.
isTexPngLoading
=
true
;
break
;
case
'
success
'
:
this
.
texPngData
[
'
url
'
]
=
e
.
file
.
response
.
url
;
this
.
texPngData
[
'
name
'
]
=
e
.
file
.
name
;
this
.
nzMessageService
.
success
(
'
上传成功
'
);
this
.
isTexPngLoading
=
false
;
break
;
case
'
progress
'
:
break
;
}
}
copyHotZoneData
()
{
const
{
bgItem
,
hotZoneItemArr
}
=
this
.
getSendData
();
// const hotZoneItemArrNew = [];
// const tmpArr = JSON.parse(JSON.stringify(hotZoneItemArr));
// tmpArr.forEach((item) => {
// if (item.gIdx === '0') {
// hotZoneItemArr.push(item);
// }
// })
const
jsonData
=
{
bgItem
,
hotZoneItemArr
,
isHasRect
:
this
.
isHasRect
,
isHasPic
:
this
.
isHasPic
,
isHasText
:
this
.
isHasText
,
isHasAudio
:
this
.
isHasAudio
,
isHasAnima
:
this
.
isHasAnima
,
hotZoneFontObj
:
this
.
hotZoneFontObj
,
defaultItemType
:
this
.
defaultItemType
,
hotZoneImgSize
:
this
.
hotZoneImgSize
,
};
const
oInput
=
document
.
createElement
(
'
input
'
);
oInput
.
value
=
JSON
.
stringify
(
jsonData
);
document
.
body
.
appendChild
(
oInput
);
oInput
.
select
();
// 选择对象
document
.
execCommand
(
'
Copy
'
);
// 执行浏览器复制命令
document
.
body
.
removeChild
(
oInput
);
this
.
nzMessageService
.
success
(
'
复制成功
'
);
// alert('复制成功');
}
importData
()
{
if
(
!
this
.
pasteData
)
{
return
;
}
try
{
const
data
=
JSON
.
parse
(
this
.
pasteData
);
console
.
log
(
'
data:
'
,
data
);
const
{
bgItem
,
hotZoneItemArr
,
isHasRect
,
isHasPic
,
isHasText
,
isHasAudio
,
isHasAnima
,
hotZoneFontObj
,
defaultItemType
,
hotZoneImgSize
,
}
=
data
;
this
.
hotZoneItemArr
=
hotZoneItemArr
;
this
.
isHasRect
=
isHasRect
;
this
.
isHasPic
=
isHasPic
;
this
.
isHasText
=
isHasText
;
this
.
isHasAudio
=
isHasAudio
;
this
.
isHasAnima
=
isHasAnima
;
this
.
hotZoneFontObj
=
hotZoneFontObj
;
this
.
defaultItemType
=
defaultItemType
;
this
.
hotZoneImgSize
=
hotZoneImgSize
;
this
.
bgItem
=
bgItem
;
this
.
pasteData
=
''
;
}
catch
(
e
)
{
console
.
log
(
'
err:
'
,
e
);
this
.
nzMessageService
.
error
(
'
导入失败
'
);
}
}
}
private
updatePos
()
{
private
updatePos
()
{
...
@@ -917,12 +1443,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -917,12 +1443,15 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
break
;
break
;
}
}
item
.
x
=
x
;
if
(
x
!=
undefined
&&
y
!=
undefined
)
{
item
.
y
=
y
;
item
.
x
=
x
;
item
.
pic
.
x
=
x
;
item
.
y
=
y
;
item
.
pic
.
y
=
y
;
item
.
pic
.
x
=
x
;
item
.
textLabel
.
x
=
x
;
item
.
pic
.
y
=
y
;
item
.
textLabel
.
y
=
y
;
item
.
textLabel
.
x
=
x
;
item
.
textLabel
.
y
=
y
;
}
});
});
}
}
...
@@ -944,6 +1473,12 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -944,6 +1473,12 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
item
.
textLabel
.
visible
=
true
;
item
.
textLabel
.
visible
=
true
;
}
}
private
setNoneState
(
item
:
any
)
{
item
.
visible
=
false
;
item
.
pic
.
visible
=
false
;
item
.
textLabel
.
visible
=
false
;
}
private
clickedHotZoneRect
(
item
:
any
)
{
private
clickedHotZoneRect
(
item
:
any
)
{
if
(
this
.
checkClickTarget
(
item
))
{
if
(
this
.
checkClickTarget
(
item
))
{
...
@@ -962,6 +1497,17 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -962,6 +1497,17 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
private
clickedHotZonePic
(
item
:
any
)
{
private
clickedHotZonePic
(
item
:
any
)
{
if
(
this
.
checkClickTarget
(
item
))
{
if
(
this
.
checkClickTarget
(
item
))
{
if
(
item
.
lineDashFlag
&&
this
.
checkClickTarget
(
item
.
arrow
))
{
this
.
changeItemSize
(
item
);
// } else if (item.lineDashFlag && this.checkClickTarget(item.arrowTop)) {
// this.changeItemTopSize(item);
// } else if (item.lineDashFlag && this.checkClickTarget(item.arrowRight)) {
// this.changeItemRightSize(item);
}
else
{
this
.
changeCurItem
(
item
);
}
this
.
curItem
=
item
;
this
.
curItem
=
item
;
}
}
}
}
...
@@ -972,15 +1518,38 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
...
@@ -972,15 +1518,38 @@ export class CustomHotZoneComponent implements OnInit, OnDestroy, OnChanges {
}
}
}
}
saveText
(
item
)
{
private
loadHotZonePic
(
pic
:
HotZoneImg
,
url
,
scale
=
null
)
{
item
.
textLabel
.
text
=
item
.
text
;
}
let
baseLen
;
if
(
this
.
hotZoneImgSize
)
{
baseLen
=
this
.
hotZoneImgSize
*
this
.
mapScale
;
}
private
loadHotZonePic
(
pic
:
HotZoneImg
,
url
)
{
const
baseLen
=
this
.
hotZoneImgSize
*
this
.
mapScale
;
pic
.
load
(
url
).
then
(()
=>
{
pic
.
load
(
url
).
then
(()
=>
{
const
s
=
getMinScale
(
pic
,
baseLen
);
if
(
!
scale
)
{
pic
.
setScaleXY
(
s
);
if
(
baseLen
)
{
scale
=
getMinScale
(
pic
,
baseLen
);
}
else
{
scale
=
this
.
bg
.
scaleX
;
}
}
pic
.
setScaleXY
(
scale
);
});
});
}
}
closeAfterPanel
()
{
this
.
refresh
();
}
/**
* 刷新 渲染页面
*/
refresh
()
{
setTimeout
(()
=>
{
this
.
appRef
.
tick
();
},
1
);
}
}
}
form/src/app/common/upload-image-with-preview/upload-image-with-preview.component.ts
View file @
84e30557
...
@@ -42,7 +42,24 @@ export class UploadImageWithPreviewComponent implements OnDestroy, OnChanges {
...
@@ -42,7 +42,24 @@ export class UploadImageWithPreviewComponent implements OnDestroy, OnChanges {
this
.
uploadData
=
data
;
this
.
uploadData
=
data
;
};
};
this
.
setUploadUrl
();
}
}
setUploadUrl
()
{
if
(
!
this
.
uploadUrl
)
{
this
.
uploadUrl
=
(
<
any
>
window
).
courseware
.
uploadUrl
();
this
.
uploadData
=
(
<
any
>
window
).
courseware
.
uploadData
();
setTimeout
(()
=>
{
this
.
setUploadUrl
();
},
500
);
}
}
ngOnChanges
()
{
ngOnChanges
()
{
if
(
!
this
.
picItem
)
{
if
(
!
this
.
picItem
)
{
return
;
return
;
...
...
form/src/app/form/form.component.html
View file @
84e30557
<div
class=
"model-content"
>
<div
class=
"model-content"
>
<div
style=
"padding: 10px;"
>
<div
style=
"padding: 10px;"
>
<div
style=
"width: 300px;"
align=
'center'
>
<div
style=
"width: 100%; margin-top: 15px; margin-bottom: 50px;"
align=
"center"
>
<h2>
标题设置
</h2>
<div
style=
"width: 50%; display: flex; justify-content: center; align-items: center;"
>
<input
type=
"text"
nz-input
[(
ngModel
)]="
item
.
title
"
(
blur
)="
save
()"
style=
"width: 200px;margin-top: 5px"
>
<app-audio-recorder
style=
"margin-top: 5px; margin-left: 5px;"
[
audioUrl
]="
item
.
title_audio_url
"
(
audioUploaded
)="
onAudioUploadSuccess
($
event
,
'
title_audio_url
')"
></app-audio-recorder>
</div>
</div>
<app-custom-hot-zone
[
bgItem
]="
item
.
bgItem
"
[
hotZoneItemArr
]="
item
.
hotZoneItemArr
"
[
customTypeGroupArr
]="
customTypeGroupArr
"
(
save
)="
saveHotZone
(
item
,
$
event
)"
>
</app-custom-hot-zone>
<!-- <div style="width: 300px;" align='center'>
<span>图1: </span>
<span>图1: </span>
<app-upload-image-with-preview
<app-upload-image-with-preview
[picUrl]="item.pic_url"
[picUrl]="item.pic_url"
...
@@ -29,7 +51,7 @@
...
@@ -29,7 +51,7 @@
[audioUrl]="item.audio_url"
[audioUrl]="item.audio_url"
(audioUploaded)="onAudioUploadSuccess($event, 'audio_url')"
(audioUploaded)="onAudioUploadSuccess($event, 'audio_url')"
></app-audio-recorder>
></app-audio-recorder>
</div>
</div>
-->
</div>
</div>
...
...
form/src/app/form/form.component.ts
View file @
84e30557
...
@@ -10,10 +10,62 @@ import { JsonPipe } from '@angular/common';
...
@@ -10,10 +10,62 @@ import { JsonPipe } from '@angular/common';
export
class
FormComponent
implements
OnInit
,
OnChanges
,
OnDestroy
{
export
class
FormComponent
implements
OnInit
,
OnChanges
,
OnDestroy
{
// 储存数据用
// 储存数据用
saveKey
=
"
test_0
01
"
;
saveKey
=
"
op_
01
"
;
// 储存对象
// 储存对象
item
;
item
;
customTypeGroupArr
=
[
{
name
:
'
发音动画
'
,
rect
:
true
,
animaSmall
:
true
,
audio
:
true
,
},
{
name
:
'
发音图片
'
,
pic
:
true
,
audio
:
true
,
},
{
name
:
'
发音区块
'
,
rect
:
true
,
audio
:
true
,
},
{
name
:
'
变化文本
'
,
action
:
{
type
:
'
text
'
,
option
:
[
[
'
fontColor
'
,
'
#000000
'
],
[
'
fontSize
'
,
'
100
'
],
[
'
opacity
'
,
'
0
'
,
'
100
'
]
]
},
},
{
name
:
'
变化图片
'
,
action
:
{
type
:
'
pic
'
,
option
:
[
// ['scale', '1'],
[
'
opacity
'
,
'
0
'
,
'
100
'
]
]
},
},
{
name
:
'
变化动画
'
,
action
:
{
type
:
'
anima
'
,
option
:
[
// ['scale', '1'],
[
'
opacity
'
,
'
0
'
,
'
100
'
]
]
},
},
]
constructor
(
private
appRef
:
ApplicationRef
,
private
changeDetectorRef
:
ChangeDetectorRef
)
{
constructor
(
private
appRef
:
ApplicationRef
,
private
changeDetectorRef
:
ChangeDetectorRef
)
{
}
}
...
@@ -63,6 +115,24 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
...
@@ -63,6 +115,24 @@ export class FormComponent implements OnInit, OnChanges, OnDestroy {
}
}
onSaveCustomAction
(
e
)
{
console
.
log
(
'
e:
'
,
e
);
this
.
item
.
customAction
=
e
;
this
.
save
();
}
saveHotZone
(
group
,
e
)
{
console
.
log
(
'
e:
'
,
e
);
const
{
bgItem
,
hotZoneItemArr
}
=
e
;
group
.
bgItem
=
bgItem
;
group
.
hotZoneItemArr
=
hotZoneItemArr
;
this
.
save
();
}
/**
/**
* 储存图片数据
* 储存图片数据
* @param e
* @param e
...
...
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