Merge branch 'react-star-ratings' of https://github.com/karamem0/sp-dev-fx-webparts into pr/2456
This commit is contained in:
commit
529dc9fc50
|
@ -0,0 +1,13 @@
|
|||
name: auto-merge
|
||||
|
||||
on:
|
||||
pull_request:
|
||||
|
||||
jobs:
|
||||
auto-merge:
|
||||
runs-on: ubuntu-latest
|
||||
steps:
|
||||
- uses: actions/checkout@v2
|
||||
- uses: ahmadnassri/action-dependabot-auto-merge@v2
|
||||
with:
|
||||
github-token: ${{ secrets.mytoken }}
|
|
@ -11467,9 +11467,9 @@
|
|||
}
|
||||
},
|
||||
"macaddress": {
|
||||
"version": "0.2.8",
|
||||
"resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.8.tgz",
|
||||
"integrity": "sha1-WQTcU3w57G2+/q6QIycTX6hRHxI=",
|
||||
"version": "0.2.9",
|
||||
"resolved": "https://registry.npmjs.org/macaddress/-/macaddress-0.2.9.tgz",
|
||||
"integrity": "sha512-k4F1JUof6cQXxNFzx3thLby4oJzXTXQueAOOts944Vqizn+Rjc2QNFenT9FJSLU1CH3PmrHRSyZs2E+Cqw+P2w==",
|
||||
"dev": true
|
||||
},
|
||||
"make-dir": {
|
||||
|
|
|
@ -11592,9 +11592,9 @@
|
|||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.24.0",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.24.0.tgz",
|
||||
"integrity": "sha512-bV7f+6l2QigeBBZSM/6yTNq4P2fNpSWj/0e7jQcy87A8e7o2nAfP/34/2ky5Vw4B9S446EtIhodAzkFCcR4dQg=="
|
||||
"version": "2.29.2",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz",
|
||||
"integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg=="
|
||||
},
|
||||
"move-concurrently": {
|
||||
"version": "1.0.1",
|
||||
|
|
|
@ -22,7 +22,7 @@
|
|||
"@types/jquery": "^2.0.54",
|
||||
"@types/webpack-env": "1.13.1",
|
||||
"jquery": "^3.5.0",
|
||||
"moment": "^2.24.0"
|
||||
"moment": "^2.29.2"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@microsoft/sp-build-web": "1.9.1",
|
||||
|
|
|
@ -9287,9 +9287,9 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.7.6",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
|
||||
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
|
|
|
@ -300,7 +300,7 @@
|
|||
},
|
||||
"webpack": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "http://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -588,7 +588,7 @@
|
|||
},
|
||||
"webpack": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "http://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -817,7 +817,7 @@
|
|||
},
|
||||
"node-fetch": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
|
||||
"integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -956,7 +956,7 @@
|
|||
},
|
||||
"semver": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "http://registry.npmjs.org/semver/-/semver-5.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.2.0.tgz",
|
||||
"integrity": "sha1-KBmVuAwUSCCUFd28TPUMJpzvVcU=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -1028,7 +1028,7 @@
|
|||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -1043,7 +1043,7 @@
|
|||
},
|
||||
"finalhandler": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz",
|
||||
"integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -1091,13 +1091,13 @@
|
|||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -2127,7 +2127,7 @@
|
|||
"dependencies": {
|
||||
"fast-deep-equal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -2291,7 +2291,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -2438,7 +2438,7 @@
|
|||
},
|
||||
"util": {
|
||||
"version": "0.10.3",
|
||||
"resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
||||
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -2583,7 +2583,7 @@
|
|||
},
|
||||
"md5.js": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
|
||||
"integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -2613,7 +2613,7 @@
|
|||
},
|
||||
"validator": {
|
||||
"version": "9.4.1",
|
||||
"resolved": "http://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/validator/-/validator-9.4.1.tgz",
|
||||
"integrity": "sha512-YV5KjzvRmSyJ1ee/Dm5UED0G+1L4GZnLN3w6/T+zZm8scVua4sOhYKWTUrKa0H/tMiJyO9QLHMPN+9mB/aMunA==",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -3478,7 +3478,7 @@
|
|||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "http://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -3772,7 +3772,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -3943,7 +3943,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -4032,7 +4032,7 @@
|
|||
},
|
||||
"core-js": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
|
||||
},
|
||||
"core-util-is": {
|
||||
|
@ -4860,7 +4860,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -4962,7 +4962,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -4971,7 +4971,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -5009,7 +5009,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -5018,7 +5018,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -5305,7 +5305,7 @@
|
|||
},
|
||||
"event-stream": {
|
||||
"version": "3.0.20",
|
||||
"resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.0.20.tgz",
|
||||
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.0.20.tgz",
|
||||
"integrity": "sha1-A4u7LqnqkDhbJvvBhU0LU58qvqM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -5608,7 +5608,7 @@
|
|||
},
|
||||
"finalhandler": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6377,7 +6377,7 @@
|
|||
},
|
||||
"through2": {
|
||||
"version": "0.6.5",
|
||||
"resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
||||
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6473,7 +6473,7 @@
|
|||
},
|
||||
"graceful-fs": {
|
||||
"version": "1.2.3",
|
||||
"resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-1.2.3.tgz",
|
||||
"integrity": "sha1-FaSAaldUfLLS2/J/QuiajDRRs2Q=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -6545,7 +6545,7 @@
|
|||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "4.3.6",
|
||||
"resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
||||
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -6570,7 +6570,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6616,13 +6616,13 @@
|
|||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -6707,7 +6707,7 @@
|
|||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "0.2.1",
|
||||
"resolved": "http://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-0.2.1.tgz",
|
||||
"integrity": "sha1-DY6UaWej2BQ/k+JOKYUl/BsiNfk=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -6719,7 +6719,7 @@
|
|||
},
|
||||
"chalk": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "http://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-0.5.1.tgz",
|
||||
"integrity": "sha1-Zjs6ZItotV0EaQ1JFnqoN4WPIXQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6844,7 +6844,7 @@
|
|||
},
|
||||
"strip-ansi": {
|
||||
"version": "0.3.0",
|
||||
"resolved": "http://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-0.3.0.tgz",
|
||||
"integrity": "sha1-JfSOoiynkYfzF0pNuHWTR7sSYiA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6859,7 +6859,7 @@
|
|||
},
|
||||
"through2": {
|
||||
"version": "0.5.1",
|
||||
"resolved": "http://registry.npmjs.org/through2/-/through2-0.5.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-0.5.1.tgz",
|
||||
"integrity": "sha1-390BLrnHAOIyP9M084rGIqs3Lac=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6950,7 +6950,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -7014,22 +7014,35 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.0.12",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
|
||||
"integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"async": "^2.5.0",
|
||||
"optimist": "^0.6.1",
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -8000,7 +8013,7 @@
|
|||
"dependencies": {
|
||||
"async": {
|
||||
"version": "1.5.2",
|
||||
"resolved": "http://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz",
|
||||
"integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -8056,7 +8069,7 @@
|
|||
},
|
||||
"source-map": {
|
||||
"version": "0.2.0",
|
||||
"resolved": "http://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.2.0.tgz",
|
||||
"integrity": "sha1-2rc/vPwrqBm03gO9b26qSBZLP50=",
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
|
@ -9543,7 +9556,7 @@
|
|||
"dependencies": {
|
||||
"pako": {
|
||||
"version": "0.2.9",
|
||||
"resolved": "http://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
|
||||
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -9588,7 +9601,7 @@
|
|||
},
|
||||
"lodash": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -9689,7 +9702,7 @@
|
|||
"dependencies": {
|
||||
"async": {
|
||||
"version": "0.9.2",
|
||||
"resolved": "http://registry.npmjs.org/async/-/async-0.9.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-0.9.2.tgz",
|
||||
"integrity": "sha1-rqdNXmHB+JlhO/ZL2mbUx48v0X0=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -9707,7 +9720,7 @@
|
|||
},
|
||||
"lodash": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "http://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-3.10.1.tgz",
|
||||
"integrity": "sha1-W/Rejkm6QYnhfUgnid/RW9FAt7Y=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -9846,7 +9859,7 @@
|
|||
},
|
||||
"lodash": {
|
||||
"version": "1.0.2",
|
||||
"resolved": "http://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-1.0.2.tgz",
|
||||
"integrity": "sha1-j1dWDIO1n8JwvT1WG2kAQ0MOJVE=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -10234,7 +10247,7 @@
|
|||
},
|
||||
"semver": {
|
||||
"version": "4.3.6",
|
||||
"resolved": "http://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-4.3.6.tgz",
|
||||
"integrity": "sha1-MAvG4OhjdPe6YQaLWx7NV/xlMto=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -10242,7 +10255,7 @@
|
|||
},
|
||||
"lolex": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "http://registry.npmjs.org/lolex/-/lolex-1.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.4.0.tgz",
|
||||
"integrity": "sha1-LycSsbwYDendzF06epbvPAuxYq0=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -10278,7 +10291,7 @@
|
|||
},
|
||||
"lru-cache": {
|
||||
"version": "2.7.3",
|
||||
"resolved": "http://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-2.7.3.tgz",
|
||||
"integrity": "sha1-bUUk6LlV+V1PW1iFHOId1y+06VI=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -10398,7 +10411,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -10469,7 +10482,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -10670,7 +10683,7 @@
|
|||
"dependencies": {
|
||||
"commander": {
|
||||
"version": "2.15.1",
|
||||
"resolved": "http://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/commander/-/commander-2.15.1.tgz",
|
||||
"integrity": "sha512-VlfT9F3V0v+jr4yxPc5gg9s62/fIVWsd2Bk2iD435um1NlGMYdVCq+MjcXnhYq2icNOizHr1kK+5TI6H0Hy0ag==",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -10929,7 +10942,7 @@
|
|||
"dependencies": {
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -11104,7 +11117,7 @@
|
|||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.4",
|
||||
"resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -11843,7 +11856,7 @@
|
|||
"dependencies": {
|
||||
"fs-extra": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "http://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-1.0.0.tgz",
|
||||
"integrity": "sha1-zTzl9+fLYUWIP8rjGR6Yd/hYeVA=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -11854,7 +11867,7 @@
|
|||
},
|
||||
"jsonfile": {
|
||||
"version": "2.4.0",
|
||||
"resolved": "http://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz",
|
||||
"integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -13700,7 +13713,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -13931,7 +13944,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14113,7 +14126,7 @@
|
|||
},
|
||||
"rimraf": {
|
||||
"version": "2.5.4",
|
||||
"resolved": "http://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.5.4.tgz",
|
||||
"integrity": "sha1-loAAk8vxoMhr2VtGJUZ1NcKd+gQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14239,7 +14252,7 @@
|
|||
},
|
||||
"os-locale": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
||||
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14322,7 +14335,7 @@
|
|||
"dependencies": {
|
||||
"source-map": {
|
||||
"version": "0.4.4",
|
||||
"resolved": "http://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
||||
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14333,7 +14346,7 @@
|
|||
},
|
||||
"semver": {
|
||||
"version": "5.3.0",
|
||||
"resolved": "http://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -14520,7 +14533,7 @@
|
|||
"dependencies": {
|
||||
"lolex": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "http://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
|
||||
"integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -14662,7 +14675,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14671,7 +14684,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -14695,7 +14708,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14704,7 +14717,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -14731,7 +14744,7 @@
|
|||
"dependencies": {
|
||||
"debug": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.3.3.tgz",
|
||||
"integrity": "sha1-QMRT5n5uE8kB3ewxeviYbNqe/4w=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14740,7 +14753,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.2",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz",
|
||||
"integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -14766,7 +14779,7 @@
|
|||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -14775,7 +14788,7 @@
|
|||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -14899,7 +14912,7 @@
|
|||
},
|
||||
"split": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "http://registry.npmjs.org/split/-/split-0.2.10.tgz",
|
||||
"resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz",
|
||||
"integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15012,7 +15025,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15060,7 +15073,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15120,7 +15133,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15203,13 +15216,13 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "0.10.31",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz",
|
||||
"integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "http://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=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15275,7 +15288,7 @@
|
|||
"dependencies": {
|
||||
"colors": {
|
||||
"version": "1.1.2",
|
||||
"resolved": "http://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz",
|
||||
"integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -15317,7 +15330,7 @@
|
|||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15517,7 +15530,7 @@
|
|||
},
|
||||
"string_decoder": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz",
|
||||
"integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15566,7 +15579,7 @@
|
|||
"dependencies": {
|
||||
"body-parser": {
|
||||
"version": "1.14.2",
|
||||
"resolved": "http://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
||||
"integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15584,7 +15597,7 @@
|
|||
"dependencies": {
|
||||
"qs": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "http://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
||||
"integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -15598,7 +15611,7 @@
|
|||
},
|
||||
"debug": {
|
||||
"version": "2.2.0",
|
||||
"resolved": "http://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/debug/-/debug-2.2.0.tgz",
|
||||
"integrity": "sha1-+HBX6ZWxofauaklgZkE3vFbwOdo=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15617,19 +15630,19 @@
|
|||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.13",
|
||||
"resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
|
||||
"dev": true
|
||||
},
|
||||
"ms": {
|
||||
"version": "0.7.1",
|
||||
"resolved": "http://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ms/-/ms-0.7.1.tgz",
|
||||
"integrity": "sha1-nNE8A62/8ltl7/3nzoZO6VIBcJg=",
|
||||
"dev": true
|
||||
},
|
||||
"qs": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "http://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
||||
"integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -15983,7 +15996,7 @@
|
|||
},
|
||||
"yargs": {
|
||||
"version": "3.10.0",
|
||||
"resolved": "http://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-3.10.0.tgz",
|
||||
"integrity": "sha1-9+572FfdfB0tOMDnTvvWgdFDH9E=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16354,7 +16367,7 @@
|
|||
},
|
||||
"graceful-fs": {
|
||||
"version": "3.0.11",
|
||||
"resolved": "http://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
|
||||
"resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-3.0.11.tgz",
|
||||
"integrity": "sha1-dhPHeKGv6mLyXGMKCG1/Osu92Bg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16375,7 +16388,7 @@
|
|||
},
|
||||
"through2": {
|
||||
"version": "0.6.5",
|
||||
"resolved": "http://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
||||
"resolved": "https://registry.npmjs.org/through2/-/through2-0.6.5.tgz",
|
||||
"integrity": "sha1-QaucZ7KdVyCQcUEOHXp6lozTrUg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16875,7 +16888,7 @@
|
|||
},
|
||||
"ws": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "http://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16912,7 +16925,7 @@
|
|||
"dependencies": {
|
||||
"sax": {
|
||||
"version": "0.5.8",
|
||||
"resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
|
||||
"integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -16950,7 +16963,7 @@
|
|||
},
|
||||
"yargs": {
|
||||
"version": "4.6.0",
|
||||
"resolved": "http://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-4.6.0.tgz",
|
||||
"integrity": "sha1-y0BQwBWb+2u2ScD0r1UFJqhGGdw=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16996,7 +17009,7 @@
|
|||
},
|
||||
"os-locale": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "http://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
||||
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -17016,7 +17029,7 @@
|
|||
},
|
||||
"yargs-parser": {
|
||||
"version": "2.4.1",
|
||||
"resolved": "http://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-2.4.1.tgz",
|
||||
"integrity": "sha1-hVaN488VD/SfpRgl8DqMiA3cxcQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
|
|
@ -11,8 +11,7 @@
|
|||
"creationDateTime": "2020-06-05",
|
||||
"updateDateTime": "2021-10-28",
|
||||
"products": [
|
||||
"SharePoint",
|
||||
"Office"
|
||||
"SharePoint"
|
||||
],
|
||||
"metadata": [
|
||||
{
|
||||
|
|
|
@ -8466,9 +8466,9 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.7.6",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
|
||||
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
|
@ -12467,9 +12467,9 @@
|
|||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.29.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
||||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
||||
"version": "2.29.2",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz",
|
||||
"integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg=="
|
||||
},
|
||||
"move-concurrently": {
|
||||
"version": "1.0.1",
|
||||
|
|
|
@ -8153,22 +8153,35 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.6.0",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.6.0.tgz",
|
||||
"integrity": "sha512-i1ZUP7Qp2JdkMaFon2a+b0m5geE8Z4ZTLaGkgrObkEd+OkUKyRbRWw4KxuFCoHfdETSY1yf9/574eVoNSiK7pw==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -12645,24 +12658,6 @@
|
|||
"is-wsl": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
|
||||
|
@ -16845,12 +16840,6 @@
|
|||
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
|
||||
"dev": true
|
||||
},
|
||||
"worker-farm": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
|
||||
|
|
|
@ -7477,15 +7477,30 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
|
||||
"integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
|
@ -11580,24 +11595,6 @@
|
|||
"is-wsl": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
|
||||
|
@ -17178,12 +17175,6 @@
|
|||
"integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
|
||||
"dev": true
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||
|
|
|
@ -30,3 +30,9 @@ obj
|
|||
|
||||
# Styles Generated Code
|
||||
*.scss.ts
|
||||
# .CER Certificates
|
||||
*.cer
|
||||
# .PEM Certificates
|
||||
*.pem
|
||||
|
||||
release/webpack-stats/js-propertycontrols-svg.stats.json
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
# Dynamic Scalable Vector Graphics (SVG) image using propertie
|
||||
# Dynamic Scalable Vector Graphics (SVG) image using properties
|
||||
|
||||
## Summary
|
||||
|
||||
|
|
|
@ -9,7 +9,7 @@
|
|||
"An SPFx web part that displays a Scalable Vector Graphics (SVG) image using properties to customize how it is rendered. The web part utilizes the PnP SPFx Property Controls package (specifially the SpinButton and ColorPicker) to set these properties."
|
||||
],
|
||||
"creationDateTime": "2017-11-12",
|
||||
"updateDateTime": "2021-12-30",
|
||||
"updateDateTime": "2022-04-07",
|
||||
"products": [
|
||||
"SharePoint"
|
||||
],
|
||||
|
@ -20,7 +20,7 @@
|
|||
},
|
||||
{
|
||||
"key": "SPFX-VERSION",
|
||||
"value": "1.3.4"
|
||||
"value": "1.13.0"
|
||||
},
|
||||
{
|
||||
"key": "PNPCONTROLS",
|
||||
|
|
|
@ -1295,33 +1295,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@microsoft/api-extractor": {
|
||||
"version": "7.7.8",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor/-/api-extractor-7.7.8.tgz",
|
||||
"integrity": "sha512-XNO6Dk6ByfJq24Cn1/j0B0F16ZtwYnEC/sxgB/M0wTphBdBlHjRXZmxofmjirBBj9f7vG4UJ18IOIZRLbhGFPw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@microsoft/api-extractor-model": "7.7.7",
|
||||
"@microsoft/node-core-library": "3.19.3",
|
||||
"@microsoft/ts-command-line": "4.3.10",
|
||||
"@microsoft/tsdoc": "0.12.14",
|
||||
"colors": "~1.2.1",
|
||||
"lodash": "~4.17.15",
|
||||
"resolve": "1.8.1",
|
||||
"source-map": "~0.6.1",
|
||||
"typescript": "~3.7.2"
|
||||
}
|
||||
},
|
||||
"@microsoft/api-extractor-model": {
|
||||
"version": "7.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/api-extractor-model/-/api-extractor-model-7.7.7.tgz",
|
||||
"integrity": "sha512-822kyHMEx2sl+KnBioEiFoTIXuz/4pYBo94nQ4AMqb9BFvY9I1AZUPtC4HFh2zcXQqpFLpKKC55s/o8UOze2wQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@microsoft/node-core-library": "3.19.3",
|
||||
"@microsoft/tsdoc": "0.12.14"
|
||||
}
|
||||
},
|
||||
"@microsoft/gulp-core-build": {
|
||||
"version": "3.17.17",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/gulp-core-build/-/gulp-core-build-3.17.17.tgz",
|
||||
|
@ -1758,21 +1731,6 @@
|
|||
"isomorphic-fetch": "^2.2.1"
|
||||
}
|
||||
},
|
||||
"@microsoft/node-core-library": {
|
||||
"version": "3.19.3",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/node-core-library/-/node-core-library-3.19.3.tgz",
|
||||
"integrity": "sha512-rJ+hT6+XK5AESbhn31YBnHKpZSFKCmqHCRZyK9+jyWwav1HXv0qzuXnFvnyrO0MZyJ6rH0seWOZVWbU5KGv1tg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/node": "10.17.13",
|
||||
"colors": "~1.2.1",
|
||||
"fs-extra": "~7.0.1",
|
||||
"jju": "~1.4.0",
|
||||
"semver": "~5.3.0",
|
||||
"timsort": "~0.3.0",
|
||||
"z-schema": "~3.18.3"
|
||||
}
|
||||
},
|
||||
"@microsoft/office-ui-fabric-react-bundle": {
|
||||
"version": "1.13.0",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/office-ui-fabric-react-bundle/-/office-ui-fabric-react-bundle-1.13.0.tgz",
|
||||
|
@ -2117,22 +2075,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"@microsoft/rush-stack-compiler-3.7": {
|
||||
"version": "0.2.3",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/rush-stack-compiler-3.7/-/rush-stack-compiler-3.7-0.2.3.tgz",
|
||||
"integrity": "sha512-9GXfHslqUIWJ8+UE6mXj4Fmbb5yxKcefJrqLrqHhRmbDnqUKB9jPKcHFLrZgSkNFGdfoWoIC+Q6Q5+oD3lhk1w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@microsoft/api-extractor": "7.7.8",
|
||||
"@microsoft/node-core-library": "3.19.3",
|
||||
"@rushstack/eslint-config": "0.5.4",
|
||||
"@types/node": "10.17.13",
|
||||
"eslint": "~6.5.1",
|
||||
"tslint": "~5.12.1",
|
||||
"tslint-microsoft-contrib": "~5.2.1",
|
||||
"typescript": "~3.7.2"
|
||||
}
|
||||
},
|
||||
"@microsoft/rush-stack-compiler-3.9": {
|
||||
"version": "0.4.47",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/rush-stack-compiler-3.9/-/rush-stack-compiler-3.9-0.4.47.tgz",
|
||||
|
@ -3658,23 +3600,6 @@
|
|||
"resolved": "https://registry.npmjs.org/@microsoft/teams-js/-/teams-js-1.10.0.tgz",
|
||||
"integrity": "sha512-g8+ox5nWe9IjDFRHnCXk7mkQRGjHFcAMSn7JpUtJfuWu2tDUmXAp/4LUSgewvBbbmy68YtS+KTFPHRyUoTzk6w=="
|
||||
},
|
||||
"@microsoft/ts-command-line": {
|
||||
"version": "4.3.10",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/ts-command-line/-/ts-command-line-4.3.10.tgz",
|
||||
"integrity": "sha512-AgxArGqPt0H5WTo3fxNFP3Blm3obkCCopVG9kwIo+/mMdXaj6qMDn6+8Bv8+5Nke3CvvXpKAZtu3IaGY5cV1Hg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/argparse": "1.0.33",
|
||||
"argparse": "~1.0.9",
|
||||
"colors": "~1.2.1"
|
||||
}
|
||||
},
|
||||
"@microsoft/tsdoc": {
|
||||
"version": "0.12.14",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/tsdoc/-/tsdoc-0.12.14.tgz",
|
||||
"integrity": "sha512-518yewjSga1jLdiLrcmpMFlaba5P+50b0TWNFUpC+SL9Yzf0kMi57qw+bMl+rQ08cGqH1vLx4eg9YFUbZXgZ0Q==",
|
||||
"dev": true
|
||||
},
|
||||
"@microsoft/tsdoc-config": {
|
||||
"version": "0.15.2",
|
||||
"resolved": "https://registry.npmjs.org/@microsoft/tsdoc-config/-/tsdoc-config-0.15.2.tgz",
|
||||
|
@ -4003,6 +3928,16 @@
|
|||
"msal": "1.4.13",
|
||||
"msalLegacy": "npm:msal@1.4.12",
|
||||
"tslib": "~1.10.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"msalLegacy": {
|
||||
"version": "npm:msal@1.4.12",
|
||||
"resolved": "https://registry.npmjs.org/msal/-/msal-1.4.12.tgz",
|
||||
"integrity": "sha512-gjupwQ6nvNL6mZkl5NIXyUmZhTiEMRu5giNdgHMh8l5EPOnV2Xj6nukY1NIxFacSTkEYUSDB47Pej9GxDYf+1w==",
|
||||
"requires": {
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"@microsoft/sp-loader": {
|
||||
|
@ -4245,6 +4180,14 @@
|
|||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"msalLegacy": {
|
||||
"version": "npm:msalLegacy@npm:msal@1.4.12",
|
||||
"resolved": "https://registry.npmjs.org/msal/-/msal-1.4.12.tgz",
|
||||
"integrity": "sha512-gjupwQ6nvNL6mZkl5NIXyUmZhTiEMRu5giNdgHMh8l5EPOnV2Xj6nukY1NIxFacSTkEYUSDB47Pej9GxDYf+1w==",
|
||||
"requires": {
|
||||
"tslib": "^1.9.3"
|
||||
}
|
||||
},
|
||||
"office-ui-fabric-react": {
|
||||
"version": "7.174.1",
|
||||
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-7.174.1.tgz",
|
||||
|
@ -4485,35 +4428,12 @@
|
|||
"sudo": "~1.0.3"
|
||||
}
|
||||
},
|
||||
"@rushstack/eslint-config": {
|
||||
"version": "0.5.4",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-config/-/eslint-config-0.5.4.tgz",
|
||||
"integrity": "sha512-AB7wAXYTuF0z1x9BpFM6Nm0hyk9v94k55w0bZHDJJoptopEOsoEEFf4QVnNRCnYi6JAABzOtvq2vW4g4mAx+Xw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@rushstack/eslint-plugin": "0.3.1",
|
||||
"@typescript-eslint/eslint-plugin": "2.3.3",
|
||||
"@typescript-eslint/experimental-utils": "2.3.3",
|
||||
"@typescript-eslint/parser": "2.3.3",
|
||||
"@typescript-eslint/typescript-estree": "2.3.3",
|
||||
"eslint-plugin-promise": "~4.2.1",
|
||||
"eslint-plugin-react": "~7.16.0",
|
||||
"eslint-plugin-security": "~1.4.0",
|
||||
"eslint-plugin-tsdoc": "~0.2.1"
|
||||
}
|
||||
},
|
||||
"@rushstack/eslint-patch": {
|
||||
"version": "1.0.6",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-patch/-/eslint-patch-1.0.6.tgz",
|
||||
"integrity": "sha512-Myxw//kzromB9yWgS8qYGuGVf91oBUUJpNvy5eM50sqvmKLbKjwLxohJnkWGTeeI9v9IBMtPLxz5Gc60FIfvCA==",
|
||||
"dev": true
|
||||
},
|
||||
"@rushstack/eslint-plugin": {
|
||||
"version": "0.3.1",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-plugin/-/eslint-plugin-0.3.1.tgz",
|
||||
"integrity": "sha512-7C1tEdlNTxd8YP852jZnA1RAFEtKTEM112nPQWqyYp5IFHvNEnIaOSvHzutmTItjUCk/S7OygqK6oJyd4xQltQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@rushstack/eslint-plugin-packlets": {
|
||||
"version": "0.2.2",
|
||||
"resolved": "https://registry.npmjs.org/@rushstack/eslint-plugin-packlets/-/eslint-plugin-packlets-0.2.2.tgz",
|
||||
|
@ -5215,12 +5135,6 @@
|
|||
"anymatch": "*"
|
||||
}
|
||||
},
|
||||
"@types/argparse": {
|
||||
"version": "1.0.33",
|
||||
"resolved": "https://registry.npmjs.org/@types/argparse/-/argparse-1.0.33.tgz",
|
||||
"integrity": "sha512-VQgHxyPMTj3hIlq9SY1mctqx+Jj8kpQfoLvDlVSDNOyuYs8JYfkuY3OW/4+dO657yPmNhHpePRx0/Tje5ImNVQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/babel__core": {
|
||||
"version": "7.1.17",
|
||||
"resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.17.tgz",
|
||||
|
@ -5265,7 +5179,8 @@
|
|||
"@types/chai": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/chai/-/chai-4.3.0.tgz",
|
||||
"integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw=="
|
||||
"integrity": "sha512-/ceqdqeRraGolFTcfoXNiqjyQhZzbINDngeoAq9GoHa8PPK1yNzTaxWjA6BFWp5Ua9JpXEMSS4s5i9tS0hOJtw==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/chalk": {
|
||||
"version": "0.4.31",
|
||||
|
@ -5374,7 +5289,8 @@
|
|||
"@types/mocha": {
|
||||
"version": "9.0.0",
|
||||
"resolved": "https://registry.npmjs.org/@types/mocha/-/mocha-9.0.0.tgz",
|
||||
"integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA=="
|
||||
"integrity": "sha512-scN0hAWyLVAvLR9AyW7HoFF5sJZglyBsbPuHO4fv7JRvfmPBMfp1ozWqOf/e4wwPNxezBZXRfWzMb6iFLgEVRA==",
|
||||
"dev": true
|
||||
},
|
||||
"@types/node": {
|
||||
"version": "10.17.13",
|
||||
|
@ -5590,68 +5506,12 @@
|
|||
"integrity": "sha512-7tFImggNeNBVMsn0vLrpn1H1uPrUBdnARPTpZoitY37ZrdJREzf7I16tMrlK3hen349gr1NYh8CmZQa7CTG6Aw==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/eslint-plugin": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/eslint-plugin/-/eslint-plugin-2.3.3.tgz",
|
||||
"integrity": "sha512-12cCbwu5PbQudkq2xCIS/QhB7hCMrsNPXK+vJtqy/zFqtzVkPRGy12O5Yy0gUK086f3VHV/P4a4R4CjMW853pA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@typescript-eslint/experimental-utils": "2.3.3",
|
||||
"eslint-utils": "^1.4.2",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"regexpp": "^2.0.1",
|
||||
"tsutils": "^3.17.1"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/experimental-utils": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/experimental-utils/-/experimental-utils-2.3.3.tgz",
|
||||
"integrity": "sha512-MQ4jKPMTU1ty4TigJCRKFPye2qyQdH8jzIIkceaHgecKFmkNS1hXPqKiZ+mOehkz6+HcN5Nuvwm+frmWZR9tdg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/json-schema": "^7.0.3",
|
||||
"@typescript-eslint/typescript-estree": "2.3.3",
|
||||
"eslint-scope": "^5.0.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/parser": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/parser/-/parser-2.3.3.tgz",
|
||||
"integrity": "sha512-+cV53HuYFeeyrNW8x/rgPmbVrzzp/rpRmwbJnNtwn4K8mroL1BdjxwQh7X9cUHp9rm4BBiEWmD3cSBjKG7d5mw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@types/eslint-visitor-keys": "^1.0.0",
|
||||
"@typescript-eslint/experimental-utils": "2.3.3",
|
||||
"@typescript-eslint/typescript-estree": "2.3.3",
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/types": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/types/-/types-3.10.1.tgz",
|
||||
"integrity": "sha512-+3+FCUJIahE9q0lDi1WleYzjCwJs5hIsbugIgnbB+dSCYUxl8L6PwmsyOPFZde2hc1DlTo/xnkOgiTLSyAbHiQ==",
|
||||
"dev": true
|
||||
},
|
||||
"@typescript-eslint/typescript-estree": {
|
||||
"version": "2.3.3",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/typescript-estree/-/typescript-estree-2.3.3.tgz",
|
||||
"integrity": "sha512-GkACs12Xp8d/STunNv/iSMYJFQrkrax9vuPZySlgSzoJJtw1cp6tbEw4qsLskQv6vloLrkFJHcTJ0a/yCB5cIA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"glob": "^7.1.4",
|
||||
"is-glob": "^4.0.1",
|
||||
"lodash.unescape": "4.0.1",
|
||||
"semver": "^6.3.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"@typescript-eslint/visitor-keys": {
|
||||
"version": "3.10.1",
|
||||
"resolved": "https://registry.npmjs.org/@typescript-eslint/visitor-keys/-/visitor-keys-3.10.1.tgz",
|
||||
|
@ -6085,12 +5945,6 @@
|
|||
"integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-escapes": {
|
||||
"version": "3.2.0",
|
||||
"resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.2.0.tgz",
|
||||
"integrity": "sha512-cBhpre4ma+U0T1oM5fXg7Dy1Jw7zzwv7lt/GoCpr+hDQJoYnKVPLL4dCvSEFMmQurOQvSrwT7SL/DAlhBI97RQ==",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-gray": {
|
||||
"version": "0.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-gray/-/ansi-gray-0.1.1.tgz",
|
||||
|
@ -6541,65 +6395,6 @@
|
|||
"integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==",
|
||||
"dev": true
|
||||
},
|
||||
"babel-code-frame": {
|
||||
"version": "6.26.0",
|
||||
"resolved": "https://registry.npmjs.org/babel-code-frame/-/babel-code-frame-6.26.0.tgz",
|
||||
"integrity": "sha1-Y/1D99weO7fONZR9uP42mj9Yx0s=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"chalk": "^1.1.3",
|
||||
"esutils": "^2.0.2",
|
||||
"js-tokens": "^3.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz",
|
||||
"integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=",
|
||||
"dev": true
|
||||
},
|
||||
"ansi-styles": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
||||
"dev": true
|
||||
},
|
||||
"chalk": {
|
||||
"version": "1.1.3",
|
||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-styles": "^2.2.1",
|
||||
"escape-string-regexp": "^1.0.2",
|
||||
"has-ansi": "^2.0.0",
|
||||
"strip-ansi": "^3.0.0",
|
||||
"supports-color": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"js-tokens": {
|
||||
"version": "3.0.2",
|
||||
"resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-3.0.2.tgz",
|
||||
"integrity": "sha1-mGbfOVECEw449/mWvOtlRDIJwls=",
|
||||
"dev": true
|
||||
},
|
||||
"strip-ansi": {
|
||||
"version": "3.0.1",
|
||||
"resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz",
|
||||
"integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"supports-color": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"babel-jest": {
|
||||
"version": "25.5.1",
|
||||
"resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-25.5.1.tgz",
|
||||
|
@ -7635,15 +7430,6 @@
|
|||
"integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==",
|
||||
"dev": true
|
||||
},
|
||||
"cli-cursor": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-2.1.0.tgz",
|
||||
"integrity": "sha1-s12sN2R5+sw+lHR9QdDQ9SOP/LU=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"restore-cursor": "^2.0.0"
|
||||
}
|
||||
},
|
||||
"cli-table": {
|
||||
"version": "0.3.11",
|
||||
"resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.11.tgz",
|
||||
|
@ -7661,12 +7447,6 @@
|
|||
}
|
||||
}
|
||||
},
|
||||
"cli-width": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "https://registry.npmjs.org/cli-width/-/cli-width-2.2.1.tgz",
|
||||
"integrity": "sha512-GRMWDxpOB6Dgk2E5Uo+3eEBvtOOlimMmpbFiKuLFnQzYDavtLFY3K5ona41jgN/WdRZtG7utuVSVTL4HbZHGkw==",
|
||||
"dev": true
|
||||
},
|
||||
"cliui": {
|
||||
"version": "6.0.0",
|
||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz",
|
||||
|
@ -9068,12 +8848,6 @@
|
|||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"diff": {
|
||||
"version": "3.5.0",
|
||||
"resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz",
|
||||
"integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==",
|
||||
"dev": true
|
||||
},
|
||||
"diff-sequences": {
|
||||
"version": "25.2.6",
|
||||
"resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-25.2.6.tgz",
|
||||
|
@ -9563,124 +9337,12 @@
|
|||
"source-map": "~0.6.1"
|
||||
}
|
||||
},
|
||||
"eslint": {
|
||||
"version": "6.5.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint/-/eslint-6.5.1.tgz",
|
||||
"integrity": "sha512-32h99BoLYStT1iq1v2P9uwpyznQ4M2jRiFB6acitKz52Gqn+vPaMDUTB1bYi1WN4Nquj2w+t+bimYUG83DC55A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"@babel/code-frame": "^7.0.0",
|
||||
"ajv": "^6.10.0",
|
||||
"chalk": "^2.1.0",
|
||||
"cross-spawn": "^6.0.5",
|
||||
"debug": "^4.0.1",
|
||||
"doctrine": "^3.0.0",
|
||||
"eslint-scope": "^5.0.0",
|
||||
"eslint-utils": "^1.4.2",
|
||||
"eslint-visitor-keys": "^1.1.0",
|
||||
"espree": "^6.1.1",
|
||||
"esquery": "^1.0.1",
|
||||
"esutils": "^2.0.2",
|
||||
"file-entry-cache": "^5.0.1",
|
||||
"functional-red-black-tree": "^1.0.1",
|
||||
"glob-parent": "^5.0.0",
|
||||
"globals": "^11.7.0",
|
||||
"ignore": "^4.0.6",
|
||||
"import-fresh": "^3.0.0",
|
||||
"imurmurhash": "^0.1.4",
|
||||
"inquirer": "^6.4.1",
|
||||
"is-glob": "^4.0.0",
|
||||
"js-yaml": "^3.13.1",
|
||||
"json-stable-stringify-without-jsonify": "^1.0.1",
|
||||
"levn": "^0.3.0",
|
||||
"lodash": "^4.17.14",
|
||||
"minimatch": "^3.0.4",
|
||||
"mkdirp": "^0.5.1",
|
||||
"natural-compare": "^1.4.0",
|
||||
"optionator": "^0.8.2",
|
||||
"progress": "^2.0.0",
|
||||
"regexpp": "^2.0.1",
|
||||
"semver": "^6.1.2",
|
||||
"strip-ansi": "^5.2.0",
|
||||
"strip-json-comments": "^3.0.1",
|
||||
"table": "^5.2.3",
|
||||
"text-table": "^0.2.0",
|
||||
"v8-compile-cache": "^2.0.3"
|
||||
},
|
||||
"dependencies": {
|
||||
"ajv": {
|
||||
"version": "6.12.6",
|
||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz",
|
||||
"integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"fast-deep-equal": "^3.1.1",
|
||||
"fast-json-stable-stringify": "^2.0.0",
|
||||
"json-schema-traverse": "^0.4.1",
|
||||
"uri-js": "^4.2.2"
|
||||
}
|
||||
},
|
||||
"doctrine": {
|
||||
"version": "3.0.0",
|
||||
"resolved": "https://registry.npmjs.org/doctrine/-/doctrine-3.0.0.tgz",
|
||||
"integrity": "sha512-yS+Q5i3hBf7GBkd4KG8a7eBNNWNGLTaEwwYWUijIYM7zrlYDM0BFXHjjPWlWZ1Rg7UaddZeIDmi9jF3HmqiQ2w==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"esutils": "^2.0.2"
|
||||
}
|
||||
},
|
||||
"semver": {
|
||||
"version": "6.3.0",
|
||||
"resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz",
|
||||
"integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-promise": {
|
||||
"version": "4.2.1",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-promise/-/eslint-plugin-promise-4.2.1.tgz",
|
||||
"integrity": "sha512-VoM09vT7bfA7D+upt+FjeBO5eHIJQBUWki1aPvB+vbNiHS3+oGIJGIeyBtKQTME6UPXXy3vV07OL1tHd3ANuDw==",
|
||||
"dev": true
|
||||
},
|
||||
"eslint-plugin-react": {
|
||||
"version": "7.16.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-react/-/eslint-plugin-react-7.16.0.tgz",
|
||||
"integrity": "sha512-GacBAATewhhptbK3/vTP09CbFrgUJmBSaaRcWdbQLFvUZy9yVcQxigBNHGPU/KE2AyHpzj3AWXpxoMTsIDiHug==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"array-includes": "^3.0.3",
|
||||
"doctrine": "^2.1.0",
|
||||
"has": "^1.0.3",
|
||||
"jsx-ast-utils": "^2.2.1",
|
||||
"object.entries": "^1.1.0",
|
||||
"object.fromentries": "^2.0.0",
|
||||
"object.values": "^1.1.0",
|
||||
"prop-types": "^15.7.2",
|
||||
"resolve": "^1.12.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"resolve": {
|
||||
"version": "1.20.0",
|
||||
"resolved": "https://registry.npmjs.org/resolve/-/resolve-1.20.0.tgz",
|
||||
"integrity": "sha512-wENBPt4ySzg4ybFQW2TT1zMQucPK95HSh/nq2CFTZVOGut2+pQvSsgtda4d26YrYcr067wjbmzOG8byDPBX63A==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"is-core-module": "^2.2.0",
|
||||
"path-parse": "^1.0.6"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"eslint-plugin-security": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-security/-/eslint-plugin-security-1.4.0.tgz",
|
||||
"integrity": "sha512-xlS7P2PLMXeqfhyf3NpqbvbnW04kN8M9NtmhpR3XGyOvt/vNKS7XPXT5EDbwKW9vCjWH4PpfQvgD/+JgN0VJKA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"safe-regex": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"eslint-plugin-tsdoc": {
|
||||
"version": "0.2.14",
|
||||
"resolved": "https://registry.npmjs.org/eslint-plugin-tsdoc/-/eslint-plugin-tsdoc-0.2.14.tgz",
|
||||
|
@ -9709,32 +9371,12 @@
|
|||
"estraverse": "^4.1.1"
|
||||
}
|
||||
},
|
||||
"eslint-utils": {
|
||||
"version": "1.4.3",
|
||||
"resolved": "https://registry.npmjs.org/eslint-utils/-/eslint-utils-1.4.3.tgz",
|
||||
"integrity": "sha512-fbBN5W2xdY45KulGXmLHZ3c3FHfVYmKg0IrAKGOkT/464PQsx2UeIzfz1RmEci+KLm1bBaAzZAh8+/E+XAeZ8Q==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"eslint-visitor-keys": {
|
||||
"version": "1.3.0",
|
||||
"resolved": "https://registry.npmjs.org/eslint-visitor-keys/-/eslint-visitor-keys-1.3.0.tgz",
|
||||
"integrity": "sha512-6J72N8UNa462wa/KFODt/PJ3IU60SDpC3QXC1Hjc1BXXpfL2C9R5+AU7jhe0F6GREqVMh4Juu+NY7xn+6dipUQ==",
|
||||
"dev": true
|
||||
},
|
||||
"espree": {
|
||||
"version": "6.2.1",
|
||||
"resolved": "https://registry.npmjs.org/espree/-/espree-6.2.1.tgz",
|
||||
"integrity": "sha512-ysCxRQY3WaXJz9tdbWOwuWr5Y/XrPTGX9Kiz3yoUXwW0VZ4w30HTkQLaGx/+ttFjF8i+ACbArnB4ce68a9m5hw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"acorn": "^7.1.1",
|
||||
"acorn-jsx": "^5.2.0",
|
||||
"eslint-visitor-keys": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"esprima": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz",
|
||||
|
@ -10234,15 +9876,6 @@
|
|||
"integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==",
|
||||
"dev": true
|
||||
},
|
||||
"figures": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz",
|
||||
"integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"escape-string-regexp": "^1.0.5"
|
||||
}
|
||||
},
|
||||
"file-entry-cache": {
|
||||
"version": "5.0.1",
|
||||
"resolved": "https://registry.npmjs.org/file-entry-cache/-/file-entry-cache-5.0.1.tgz",
|
||||
|
@ -12333,27 +11966,6 @@
|
|||
"integrity": "sha1-SsIZcQ7Hpy9GD/lL9CTdPvDlKBc=",
|
||||
"dev": true
|
||||
},
|
||||
"inquirer": {
|
||||
"version": "6.5.2",
|
||||
"resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz",
|
||||
"integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"ansi-escapes": "^3.2.0",
|
||||
"chalk": "^2.4.2",
|
||||
"cli-cursor": "^2.1.0",
|
||||
"cli-width": "^2.0.0",
|
||||
"external-editor": "^3.0.3",
|
||||
"figures": "^2.0.0",
|
||||
"lodash": "^4.17.12",
|
||||
"mute-stream": "0.0.7",
|
||||
"run-async": "^2.2.0",
|
||||
"rxjs": "^6.4.0",
|
||||
"string-width": "^2.1.0",
|
||||
"strip-ansi": "^5.1.0",
|
||||
"through": "^2.3.6"
|
||||
}
|
||||
},
|
||||
"internal-ip": {
|
||||
"version": "4.3.0",
|
||||
"resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz",
|
||||
|
@ -15263,12 +14875,6 @@
|
|||
"lodash.escape": "^3.0.0"
|
||||
}
|
||||
},
|
||||
"lodash.unescape": {
|
||||
"version": "4.0.1",
|
||||
"resolved": "https://registry.npmjs.org/lodash.unescape/-/lodash.unescape-4.0.1.tgz",
|
||||
"integrity": "sha1-vyJJiGzlFM2hEvrpIYzcBlIR/Jw=",
|
||||
"dev": true
|
||||
},
|
||||
"lodash.uniq": {
|
||||
"version": "4.5.0",
|
||||
"resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz",
|
||||
|
@ -15698,12 +15304,6 @@
|
|||
"mime-db": "1.51.0"
|
||||
}
|
||||
},
|
||||
"mimic-fn": {
|
||||
"version": "1.2.0",
|
||||
"resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-1.2.0.tgz",
|
||||
"integrity": "sha512-jf84uxzwiuiIVKiOLpfYk7N46TSy8ubTonmneY9vrpHNAnp0QBt2BxWV9dO3/j+BoVAb+a5G6YDPW3M5HOdMWQ==",
|
||||
"dev": true
|
||||
},
|
||||
"minimalistic-assert": {
|
||||
"version": "1.0.1",
|
||||
"resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz",
|
||||
|
@ -16622,15 +16222,6 @@
|
|||
"wrappy": "1"
|
||||
}
|
||||
},
|
||||
"onetime": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz",
|
||||
"integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"mimic-fn": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"opn": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "https://registry.npmjs.org/opn/-/opn-5.2.0.tgz",
|
||||
|
@ -18472,12 +18063,6 @@
|
|||
"define-properties": "^1.1.3"
|
||||
}
|
||||
},
|
||||
"regexpp": {
|
||||
"version": "2.0.1",
|
||||
"resolved": "https://registry.npmjs.org/regexpp/-/regexpp-2.0.1.tgz",
|
||||
"integrity": "sha512-lv0M6+TkDVniA3aD1Eg0DVpfU/booSu7Eev3TDO/mZKHBfVjgCGTV4t4buppESEYDtkArYFOxTJWv6S5C+iaNw==",
|
||||
"dev": true
|
||||
},
|
||||
"relateurl": {
|
||||
"version": "0.2.7",
|
||||
"resolved": "https://registry.npmjs.org/relateurl/-/relateurl-0.2.7.tgz",
|
||||
|
@ -18701,16 +18286,6 @@
|
|||
"integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=",
|
||||
"dev": true
|
||||
},
|
||||
"restore-cursor": {
|
||||
"version": "2.0.0",
|
||||
"resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-2.0.0.tgz",
|
||||
"integrity": "sha1-n37ih/gv0ybU/RYpI9YhKe7g368=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"onetime": "^2.0.0",
|
||||
"signal-exit": "^3.0.2"
|
||||
}
|
||||
},
|
||||
"ret": {
|
||||
"version": "0.1.15",
|
||||
"resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz",
|
||||
|
@ -20752,57 +20327,6 @@
|
|||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz",
|
||||
"integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ=="
|
||||
},
|
||||
"tslint": {
|
||||
"version": "5.12.1",
|
||||
"resolved": "https://registry.npmjs.org/tslint/-/tslint-5.12.1.tgz",
|
||||
"integrity": "sha512-sfodBHOucFg6egff8d1BvuofoOQ/nOeYNfbp7LDlKBcLNrL3lmS5zoiDGyOMdT7YsEXAwWpTdAHwOGOc8eRZAw==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"babel-code-frame": "^6.22.0",
|
||||
"builtin-modules": "^1.1.1",
|
||||
"chalk": "^2.3.0",
|
||||
"commander": "^2.12.1",
|
||||
"diff": "^3.2.0",
|
||||
"glob": "^7.1.1",
|
||||
"js-yaml": "^3.7.0",
|
||||
"minimatch": "^3.0.4",
|
||||
"resolve": "^1.3.2",
|
||||
"semver": "^5.3.0",
|
||||
"tslib": "^1.8.0",
|
||||
"tsutils": "^2.27.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"tsutils": {
|
||||
"version": "2.29.0",
|
||||
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz",
|
||||
"integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.8.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tslint-microsoft-contrib": {
|
||||
"version": "5.2.1",
|
||||
"resolved": "https://registry.npmjs.org/tslint-microsoft-contrib/-/tslint-microsoft-contrib-5.2.1.tgz",
|
||||
"integrity": "sha512-PDYjvpo0gN9IfMULwKk0KpVOPMhU6cNoT9VwCOLeDl/QS8v8W2yspRpFFuUS7/c5EIH/n8ApMi8TxJAz1tfFUA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tsutils": "^2.27.2 <2.29.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"tsutils": {
|
||||
"version": "2.28.0",
|
||||
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.28.0.tgz",
|
||||
"integrity": "sha512-bh5nAtW0tuhvOJnx1GLRn5ScraRLICGyJV5wJhtRWOLsxW70Kk5tZtpK3O/hW6LDnqKS9mlUMPZj9fEMJ0gxqA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"tslib": "^1.8.1"
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
"tsutils": {
|
||||
"version": "3.21.0",
|
||||
"resolved": "https://registry.npmjs.org/tsutils/-/tsutils-3.21.0.tgz",
|
||||
|
@ -20890,12 +20414,6 @@
|
|||
"is-typedarray": "^1.0.0"
|
||||
}
|
||||
},
|
||||
"typescript": {
|
||||
"version": "3.7.7",
|
||||
"resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.7.tgz",
|
||||
"integrity": "sha512-MmQdgo/XenfZPvVLtKZOq9jQQvzaUAUpcKW8Z43x9B2fOm4S5g//tPtMweZUIP+SoBqrVPEIm+dJeQ9dfO0QdA==",
|
||||
"dev": true
|
||||
},
|
||||
"uglify-js": {
|
||||
"version": "3.4.10",
|
||||
"resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.4.10.tgz",
|
||||
|
@ -21119,9 +20637,9 @@
|
|||
}
|
||||
},
|
||||
"url-parse": {
|
||||
"version": "1.5.4",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.4.tgz",
|
||||
"integrity": "sha512-ITeAByWWoqutFClc/lRZnFplgXgEZr3WJ6XngMM/N9DMIm4K8zXPCZ1Jdu0rERwO84w1WC5wkle2ubwTA4NTBg==",
|
||||
"version": "1.5.10",
|
||||
"resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.5.10.tgz",
|
||||
"integrity": "sha512-WypcfiRhfeUP9vvF0j6rw0J3hrWrw6iZv3+22h6iRMJ/8z1Tj6XfLP4DsUix5MhMPnXpiHDoKyoZ/bdCkwBCiQ==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"querystringify": "^2.1.1",
|
||||
|
|
|
@ -18,7 +18,6 @@
|
|||
"@pnp/spfx-property-controls": "3.3.0"
|
||||
},
|
||||
"devDependencies": {
|
||||
"microsoft/rush-stack-compiler-3.7": "0.2.3",
|
||||
"@microsoft/rush-stack-compiler-3.9": "0.4.47",
|
||||
"@microsoft/sp-build-web": "1.13.0",
|
||||
"@microsoft/sp-module-interfaces": "1.13.0",
|
||||
|
@ -29,4 +28,4 @@
|
|||
"ajv": "~5.2.2",
|
||||
"gulp": "4.0.2"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -300,7 +300,7 @@
|
|||
},
|
||||
"webpack": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "http://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -580,7 +580,7 @@
|
|||
},
|
||||
"webpack": {
|
||||
"version": "3.11.0",
|
||||
"resolved": "http://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/webpack/-/webpack-3.11.0.tgz",
|
||||
"integrity": "sha512-3kOFejWqj5ISpJk4Qj/V7w98h9Vl52wak3CLiw/cDOfbVTq7FeoZ0SdoHHY9PYlHr50ZS42OfvzE2vB4nncKQg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -809,7 +809,7 @@
|
|||
},
|
||||
"node-fetch": {
|
||||
"version": "2.1.2",
|
||||
"resolved": "http://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.1.2.tgz",
|
||||
"integrity": "sha1-q4hOjn5X44qUR1POxwb3iNF2i7U=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -1019,7 +1019,7 @@
|
|||
},
|
||||
"finalhandler": {
|
||||
"version": "0.4.1",
|
||||
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-0.4.1.tgz",
|
||||
"integrity": "sha1-haF8bFmpRxfSYtYSMNSw6+PUoU0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -1067,7 +1067,7 @@
|
|||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -2097,7 +2097,7 @@
|
|||
"dependencies": {
|
||||
"fast-deep-equal": {
|
||||
"version": "1.1.0",
|
||||
"resolved": "http://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-1.1.0.tgz",
|
||||
"integrity": "sha1-wFNHeBfIa1HaqFPIHgWbcz0CNhQ=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -2408,7 +2408,7 @@
|
|||
},
|
||||
"util": {
|
||||
"version": "0.10.3",
|
||||
"resolved": "http://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
||||
"resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz",
|
||||
"integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -2553,7 +2553,7 @@
|
|||
},
|
||||
"md5.js": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.4.tgz",
|
||||
"integrity": "sha1-6b296UogpawYsENA/Fdk1bCdkB0=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -4003,7 +4003,7 @@
|
|||
},
|
||||
"core-js": {
|
||||
"version": "1.2.7",
|
||||
"resolved": "http://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz",
|
||||
"integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY="
|
||||
},
|
||||
"core-util-is": {
|
||||
|
@ -5276,7 +5276,7 @@
|
|||
},
|
||||
"event-stream": {
|
||||
"version": "3.0.20",
|
||||
"resolved": "http://registry.npmjs.org/event-stream/-/event-stream-3.0.20.tgz",
|
||||
"resolved": "https://registry.npmjs.org/event-stream/-/event-stream-3.0.20.tgz",
|
||||
"integrity": "sha1-A4u7LqnqkDhbJvvBhU0LU58qvqM=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -5579,7 +5579,7 @@
|
|||
},
|
||||
"finalhandler": {
|
||||
"version": "1.1.1",
|
||||
"resolved": "http://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.1.tgz",
|
||||
"integrity": "sha512-Y1GUDo39ez4aHAw7MysnUD5JzYX+WaIj8I57kO3aEPT1fFRL4sr7mjei97FgnwhAyyzRYmQZaTHb2+9uZ1dPtg==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -6119,7 +6119,8 @@
|
|||
"ansi-regex": {
|
||||
"version": "2.1.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"aproba": {
|
||||
"version": "1.2.0",
|
||||
|
@ -6140,12 +6141,14 @@
|
|||
"balanced-match": {
|
||||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"brace-expansion": {
|
||||
"version": "1.1.11",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"balanced-match": "^1.0.0",
|
||||
"concat-map": "0.0.1"
|
||||
|
@ -6160,17 +6163,20 @@
|
|||
"code-point-at": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"concat-map": {
|
||||
"version": "0.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"console-control-strings": {
|
||||
"version": "1.1.0",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"core-util-is": {
|
||||
"version": "1.0.2",
|
||||
|
@ -6287,7 +6293,8 @@
|
|||
"inherits": {
|
||||
"version": "2.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"ini": {
|
||||
"version": "1.3.5",
|
||||
|
@ -6299,6 +6306,7 @@
|
|||
"version": "1.0.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"number-is-nan": "^1.0.0"
|
||||
}
|
||||
|
@ -6313,6 +6321,7 @@
|
|||
"version": "3.0.4",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"brace-expansion": "^1.1.7"
|
||||
}
|
||||
|
@ -6320,12 +6329,14 @@
|
|||
"minimist": {
|
||||
"version": "0.0.8",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"minipass": {
|
||||
"version": "2.3.5",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"safe-buffer": "^5.1.2",
|
||||
"yallist": "^3.0.0"
|
||||
|
@ -6344,6 +6355,7 @@
|
|||
"version": "0.5.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"minimist": "0.0.8"
|
||||
}
|
||||
|
@ -6424,7 +6436,8 @@
|
|||
"number-is-nan": {
|
||||
"version": "1.0.1",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"object-assign": {
|
||||
"version": "4.1.1",
|
||||
|
@ -6436,6 +6449,7 @@
|
|||
"version": "1.4.0",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"wrappy": "1"
|
||||
}
|
||||
|
@ -6521,7 +6535,8 @@
|
|||
"safe-buffer": {
|
||||
"version": "5.1.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"safer-buffer": {
|
||||
"version": "2.1.2",
|
||||
|
@ -6557,6 +6572,7 @@
|
|||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"code-point-at": "^1.0.0",
|
||||
"is-fullwidth-code-point": "^1.0.0",
|
||||
|
@ -6576,6 +6592,7 @@
|
|||
"version": "3.0.1",
|
||||
"bundled": true,
|
||||
"dev": true,
|
||||
"optional": true,
|
||||
"requires": {
|
||||
"ansi-regex": "^2.0.0"
|
||||
}
|
||||
|
@ -6619,12 +6636,14 @@
|
|||
"wrappy": {
|
||||
"version": "1.0.2",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
},
|
||||
"yallist": {
|
||||
"version": "3.0.3",
|
||||
"bundled": true,
|
||||
"dev": true
|
||||
"dev": true,
|
||||
"optional": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -7116,7 +7135,7 @@
|
|||
},
|
||||
"mime": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "http://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/mime/-/mime-1.3.4.tgz",
|
||||
"integrity": "sha1-EV+eO2s9rylZmDyzjxSaLUDrXVM=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -7521,22 +7540,35 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.0.12",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.0.12.tgz",
|
||||
"integrity": "sha512-RhmTekP+FZL+XNhwS1Wf+bTTZpdLougwt5pcgA1tuz6Jcx0fpH/7z0qd71RKnZHBCxIRBHfBOnio4gViPemNzA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"async": "^2.5.0",
|
||||
"optimist": "^0.6.1",
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -10045,7 +10077,7 @@
|
|||
"dependencies": {
|
||||
"pako": {
|
||||
"version": "0.2.9",
|
||||
"resolved": "http://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
|
||||
"resolved": "https://registry.npmjs.org/pako/-/pako-0.2.9.tgz",
|
||||
"integrity": "sha1-8/dSL073gjSNqBYbrZ7P1Rv4OnU=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -10744,7 +10776,7 @@
|
|||
},
|
||||
"lolex": {
|
||||
"version": "1.4.0",
|
||||
"resolved": "http://registry.npmjs.org/lolex/-/lolex-1.4.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.4.0.tgz",
|
||||
"integrity": "sha1-LycSsbwYDendzF06epbvPAuxYq0=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -11606,7 +11638,7 @@
|
|||
},
|
||||
"tough-cookie": {
|
||||
"version": "2.3.4",
|
||||
"resolved": "http://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.3.4.tgz",
|
||||
"integrity": "sha512-TZ6TTfI5NtZnuyy/Kecv+CnoROnyXn2DN97LontgQpCwsX2XyLYCC0ENhYkehSOwAp8rTQKc/NUIF7BkQ5rKLA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15023,7 +15055,7 @@
|
|||
"dependencies": {
|
||||
"lolex": {
|
||||
"version": "1.3.2",
|
||||
"resolved": "http://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/lolex/-/lolex-1.3.2.tgz",
|
||||
"integrity": "sha1-fD2mL/yzDw9agKJWbKJORdigHzE=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -15402,7 +15434,7 @@
|
|||
},
|
||||
"split": {
|
||||
"version": "0.2.10",
|
||||
"resolved": "http://registry.npmjs.org/split/-/split-0.2.10.tgz",
|
||||
"resolved": "https://registry.npmjs.org/split/-/split-0.2.10.tgz",
|
||||
"integrity": "sha1-Zwl8YB1pfOE2j0GPBs0gHPBSGlc=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -15820,7 +15852,7 @@
|
|||
},
|
||||
"tar": {
|
||||
"version": "2.2.1",
|
||||
"resolved": "http://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.1.tgz",
|
||||
"integrity": "sha1-jk0qJWwOIYXGsYrWlK7JaLg8sdE=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16069,7 +16101,7 @@
|
|||
"dependencies": {
|
||||
"body-parser": {
|
||||
"version": "1.14.2",
|
||||
"resolved": "http://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
||||
"resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.14.2.tgz",
|
||||
"integrity": "sha1-EBXLH+LEQ4WCWVgdtTMy+NDPUPk=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -16087,7 +16119,7 @@
|
|||
"dependencies": {
|
||||
"qs": {
|
||||
"version": "5.2.0",
|
||||
"resolved": "http://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.2.0.tgz",
|
||||
"integrity": "sha1-qfMRQq9GjLcrJbMBNrokVoNJFr4=",
|
||||
"dev": true
|
||||
}
|
||||
|
@ -16120,7 +16152,7 @@
|
|||
},
|
||||
"iconv-lite": {
|
||||
"version": "0.4.13",
|
||||
"resolved": "http://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.13.tgz",
|
||||
"integrity": "sha1-H4irpKsLFQjoMSrMOTRfNumS4vI=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -16132,7 +16164,7 @@
|
|||
},
|
||||
"qs": {
|
||||
"version": "5.1.0",
|
||||
"resolved": "http://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/qs/-/qs-5.1.0.tgz",
|
||||
"integrity": "sha1-TZMuXH6kEcynajEtOaYGIA/VDNk=",
|
||||
"dev": true
|
||||
},
|
||||
|
@ -17393,7 +17425,7 @@
|
|||
},
|
||||
"ws": {
|
||||
"version": "4.1.0",
|
||||
"resolved": "http://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"resolved": "https://registry.npmjs.org/ws/-/ws-4.1.0.tgz",
|
||||
"integrity": "sha512-ZGh/8kF9rrRNffkLFV4AzhvooEclrOH0xaugmqGsIfFgOE/pIz4fMc4Ef+5HSQqTEug2S9JZIWDR47duDSLfaA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
|
@ -17430,7 +17462,7 @@
|
|||
"dependencies": {
|
||||
"sax": {
|
||||
"version": "0.5.8",
|
||||
"resolved": "http://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
|
||||
"resolved": "https://registry.npmjs.org/sax/-/sax-0.5.8.tgz",
|
||||
"integrity": "sha1-1HLbIo6zMcJQaw6MFVJK25OdEsE=",
|
||||
"dev": true
|
||||
}
|
||||
|
|
|
@ -6944,22 +6944,35 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.1.1",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.1.tgz",
|
||||
"integrity": "sha512-3Zhi6C0euYZL5sM0Zcy7lInLXKQ+YLcF/olbN010mzGQ4XVm50JeyBnMqofHh696GrciGruC7kCcApPDJvVgwA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -10365,9 +10378,9 @@
|
|||
}
|
||||
},
|
||||
"mixin-deep": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
|
||||
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
|
||||
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"for-in": "^1.0.2",
|
||||
|
@ -11118,24 +11131,6 @@
|
|||
"is-wsl": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
|
||||
|
@ -16610,12 +16605,6 @@
|
|||
"integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
|
||||
"dev": true
|
||||
},
|
||||
"wrap-ansi": {
|
||||
"version": "2.1.0",
|
||||
"resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz",
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "js-theme-manager",
|
||||
"version": "0.0.1",
|
||||
"version": "2.0.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -13523,18 +13523,18 @@
|
|||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
|
||||
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
|
||||
"integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.17.15",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
|
@ -18525,9 +18525,9 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.7.6",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
|
||||
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
|
|
|
@ -4498,18 +4498,18 @@
|
|||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
|
||||
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
|
||||
"integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.17.15",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.15.tgz",
|
||||
"integrity": "sha512-8xOcRHvCjnocdS5cpwXQXVzmmh5e5+saE2QGoeQmbKmRS6J3VQppPOIt0MnmE+4xlZoumy0GPG0D0MVIQbNA1A==",
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
|
@ -8942,9 +8942,9 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.7.6",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz",
|
||||
"integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
|
@ -8955,9 +8955,9 @@
|
|||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.5",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz",
|
||||
"integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==",
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
|
@ -12981,9 +12981,9 @@
|
|||
}
|
||||
},
|
||||
"mixin-deep": {
|
||||
"version": "1.3.1",
|
||||
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.1.tgz",
|
||||
"integrity": "sha512-8ZItLHeEgaqEvd5lYBXfm4EZSFCX29Jb9K+lAHhDKzReKBQKj3R+7NOF6tjqYi9t4oI8VUfaWITJQm86wnXGNQ==",
|
||||
"version": "1.3.2",
|
||||
"resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz",
|
||||
"integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"for-in": "^1.0.2",
|
||||
|
|
File diff suppressed because it is too large
Load Diff
|
@ -1,6 +1,6 @@
|
|||
{
|
||||
"name": "react-accordion",
|
||||
"version": "1.6.0",
|
||||
"version": "1.7.0",
|
||||
"lockfileVersion": 1,
|
||||
"requires": true,
|
||||
"dependencies": {
|
||||
|
@ -10029,9 +10029,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"@pnp/common": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/common/-/common-1.3.4.tgz",
|
||||
"integrity": "sha512-gs5q9Fiy9BUTqPvqC7Ake9fAQVrcq5RVRGhQMbZPAdx14iiFhfwR1fq7MJltdRMXIToi+3YGdKxh7fn2xCkMbA==",
|
||||
"version": "1.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/common/-/common-1.3.11.tgz",
|
||||
"integrity": "sha512-RhYKcfMP+h0pAzORZRHSPPLOBB58djN/pfnorpWPjsx6ZxMqbiDqTzAtTF4m8z/mdNnxJr0Q3kwt4ImU3FjwnA==",
|
||||
"requires": {
|
||||
"adal-angular": "1.0.17",
|
||||
"tslib": "1.10.0"
|
||||
|
@ -10050,9 +10050,9 @@
|
|||
}
|
||||
},
|
||||
"@pnp/logging": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/logging/-/logging-1.3.4.tgz",
|
||||
"integrity": "sha512-YWvAN5z45afouLtCFP1ClT74bd/tFNf5G5QgmxxMPwEp37PoYTMgUCf4hH+ZZVe6MO3eD5DVPr57ZdeF+oLzzQ==",
|
||||
"version": "1.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/logging/-/logging-1.3.11.tgz",
|
||||
"integrity": "sha512-hADlIXwvF/wjee7425nFJ6NhqaWpWTJ5yg02bpwBUsiSuFqEUf+LwuAcyHQre2lMs6KyNa65FWoRQok9BlZuxA==",
|
||||
"requires": {
|
||||
"tslib": "1.10.0"
|
||||
},
|
||||
|
@ -10065,9 +10065,9 @@
|
|||
}
|
||||
},
|
||||
"@pnp/odata": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/odata/-/odata-1.3.4.tgz",
|
||||
"integrity": "sha512-S9X+qhIrjuxv02cN56wv68hGFa5q27N1DTv/yKC8TXp3nHAGKoKwT/uRIilOrtANIR/DBMC0Oto5lXfLtC/PiQ==",
|
||||
"version": "1.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/odata/-/odata-1.3.11.tgz",
|
||||
"integrity": "sha512-yMaRiuVZRei2pkryCOqsw3ZXD2Lw30IJv136WQmQPQPOxG4cvsS9+woXkfMqbWV2KQ1evFUqVXbitIz6eDVfNA==",
|
||||
"requires": {
|
||||
"tslib": "1.10.0"
|
||||
},
|
||||
|
@ -10080,9 +10080,9 @@
|
|||
}
|
||||
},
|
||||
"@pnp/sp": {
|
||||
"version": "1.3.4",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/sp/-/sp-1.3.4.tgz",
|
||||
"integrity": "sha512-mTPXjs3kI/Ydxy5wMZ0eBMaMmxcMeCUXJbo522xtWNSGgQEHiEdM75QKNniIo6Bf+Nhnf6h3T8bdR8A4+1ztJw==",
|
||||
"version": "1.3.11",
|
||||
"resolved": "https://registry.npmjs.org/@pnp/sp/-/sp-1.3.11.tgz",
|
||||
"integrity": "sha512-NjdeGe81aukiSPelSPjgAFRC1+SrNPTXvTdEqTH+Q1ZvgNtk8bdZp6K6xf9emfeM2qZDOu9GpKZpg0W/emq++g==",
|
||||
"requires": {
|
||||
"tslib": "1.10.0"
|
||||
},
|
||||
|
@ -11317,13 +11317,13 @@
|
|||
"integrity": "sha1-LrHQCl5Ow/pYx2r94S4YK2bcXBw="
|
||||
},
|
||||
"@uifabric/foundation": {
|
||||
"version": "0.7.7",
|
||||
"resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-0.7.7.tgz",
|
||||
"integrity": "sha512-ZsX6vuPX6OpvUb26GL7ribJELYt2SOKFhuM4W+YcowPSBTRLl2DSC+ZkaLI4VngT//D89tl0SqmipukcSn4hDA==",
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/@uifabric/foundation/-/foundation-0.8.3.tgz",
|
||||
"integrity": "sha512-r3WhRj7Out8QAOe50BGA36R8zgRPy0D0GNPuwFK9BB9oIidf91ycj7/miY8U0TZRZi5fB3Kg+dy/uxSDfgC6Og==",
|
||||
"requires": {
|
||||
"@uifabric/set-version": "^1.1.3",
|
||||
"@uifabric/styling": "^6.48.1",
|
||||
"@uifabric/utilities": "^6.41.0",
|
||||
"@uifabric/styling": "^6.50.7",
|
||||
"@uifabric/utilities": "^6.41.7",
|
||||
"tslib": "^1.7.1"
|
||||
}
|
||||
},
|
||||
|
@ -12336,12 +12336,20 @@
|
|||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.2",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz",
|
||||
"integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
|
||||
"integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.11"
|
||||
"lodash": "^4.17.14"
|
||||
},
|
||||
"dependencies": {
|
||||
"lodash": {
|
||||
"version": "4.17.21",
|
||||
"resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz",
|
||||
"integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"async-done": {
|
||||
|
@ -17991,15 +17999,30 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.1.2",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.1.2.tgz",
|
||||
"integrity": "sha512-nvfrjqvt9xQ8Z/w0ijewdD/vvWDTOweBUm96NTr66Wfvo1mJenBLwcYmPs3TIBP5ruzYGD7Hx/DaM9RmhroGPw==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"har-schema": {
|
||||
|
@ -21573,9 +21596,9 @@
|
|||
}
|
||||
},
|
||||
"moment": {
|
||||
"version": "2.29.1",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.1.tgz",
|
||||
"integrity": "sha512-kHmoybcPV8Sqy59DwNDY3Jefr64lK/by/da0ViFcuA4DH0vQg5Q6Ze5VimxkfQNSC+Mls/Kx53s7TjP1RhFEDQ=="
|
||||
"version": "2.29.2",
|
||||
"resolved": "https://registry.npmjs.org/moment/-/moment-2.29.2.tgz",
|
||||
"integrity": "sha512-UgzG4rvxYpN15jgCmVJwac49h9ly9NurikMWGPdVxm8GZD6XjkKPxDTjQQ43gtGgnV3X0cAyWDdP2Wexoquifg=="
|
||||
},
|
||||
"move-concurrently": {
|
||||
"version": "1.0.1",
|
||||
|
@ -22301,17 +22324,17 @@
|
|||
"integrity": "sha512-gcBs5HHr7tjkvk/+Ls10ttb3jEllRn7SvJitX/kx/gQq8BiFMSMKr1w+oNqXlh4EgkBHWUlJVPrYUu1KW/jVaQ=="
|
||||
},
|
||||
"office-ui-fabric-react": {
|
||||
"version": "6.189.2",
|
||||
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-6.189.2.tgz",
|
||||
"integrity": "sha512-1Y111Ip78u7aCbmyRTucRldY4lYwRPkxhFL+y1rgQC4TivB2FmoHN6eSA1nAA59Ix4k2etM0UCzh7MdC1SbP5Q==",
|
||||
"version": "6.214.0",
|
||||
"resolved": "https://registry.npmjs.org/office-ui-fabric-react/-/office-ui-fabric-react-6.214.0.tgz",
|
||||
"integrity": "sha512-sYqi0bhZSdEWpQAsHSropoHm0SxLJkdvQDE+3reSnP+rWABD+WCLvMxRuunoQIFjZKDHZ1f+w+L6Nr7nXc+wbQ==",
|
||||
"requires": {
|
||||
"@microsoft/load-themed-styles": "^1.7.13",
|
||||
"@uifabric/foundation": "^0.7.6",
|
||||
"@uifabric/icons": "^6.5.2",
|
||||
"@uifabric/merge-styles": "^6.18.0",
|
||||
"@uifabric/foundation": "^0.8.3",
|
||||
"@uifabric/icons": "^6.5.5",
|
||||
"@uifabric/merge-styles": "^6.19.4",
|
||||
"@uifabric/set-version": "^1.1.3",
|
||||
"@uifabric/styling": "^6.48.0",
|
||||
"@uifabric/utilities": "^6.40.1",
|
||||
"@uifabric/styling": "^6.50.7",
|
||||
"@uifabric/utilities": "^6.45.2",
|
||||
"prop-types": "^15.5.10",
|
||||
"tslib": "^1.7.1"
|
||||
}
|
||||
|
@ -22352,24 +22375,6 @@
|
|||
"is-wsl": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.2",
|
||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.2.tgz",
|
||||
|
@ -27043,12 +27048,6 @@
|
|||
"integrity": "sha1-tDFbtCFKPXBY6+7okuE/ok2YsHU=",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
|
||||
"dev": true
|
||||
},
|
||||
"worker-farm": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
// For more information on how to run this SPFx project in a VS Code Remote Container, please visit https://aka.ms/spfx-devcontainer
|
||||
{
|
||||
"name": "SPFx 1.13.1",
|
||||
"image": "docker.io/m365pnp/spfx:1.13.1",
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {},
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint"
|
||||
],
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
"forwardPorts": [
|
||||
4321,
|
||||
35729
|
||||
],
|
||||
"portsAttributes": {
|
||||
"4321": {
|
||||
"protocol": "https",
|
||||
"label": "Manifest",
|
||||
"onAutoForward": "silent",
|
||||
"requireLocalPort": true
|
||||
},
|
||||
// Not needed for SPFx>= 1.12.1
|
||||
// "5432": {
|
||||
// "protocol": "https",
|
||||
// "label": "Workbench",
|
||||
// "onAutoForward": "silent"
|
||||
// },
|
||||
"35729": {
|
||||
"protocol": "https",
|
||||
"label": "LiveReload",
|
||||
"onAutoForward": "silent",
|
||||
"requireLocalPort": true
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "bash .devcontainer/spfx-startup.sh",
|
||||
"remoteUser": "node"
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
echo
|
||||
echo -e "\e[1;94mInstalling Node dependencies\e[0m"
|
||||
npm install
|
||||
|
||||
## commands to create dev certificate and copy it to the root folder of the project
|
||||
echo
|
||||
echo -e "\e[1;94mGenerating dev certificate\e[0m"
|
||||
gulp trust-dev-cert
|
||||
|
||||
# Convert the generated PEM certificate to a CER certificate
|
||||
openssl x509 -inform PEM -in ~/.rushstack/rushstack-serve.pem -outform DER -out ./spfx-dev-cert.cer
|
||||
|
||||
# Copy the PEM ecrtificate for non-Windows hosts
|
||||
cp ~/.rushstack/rushstack-serve.pem ./spfx-dev-cert.pem
|
||||
|
||||
## add *.cer to .gitignore to prevent certificates from being saved in repo
|
||||
if ! grep -Fxq '*.cer' ./.gitignore
|
||||
then
|
||||
echo "# .CER Certificates" >> .gitignore
|
||||
echo "*.cer" >> .gitignore
|
||||
fi
|
||||
|
||||
## add *.pem to .gitignore to prevent certificates from being saved in repo
|
||||
if ! grep -Fxq '*.pem' ./.gitignore
|
||||
then
|
||||
echo "# .PEM Certificates" >> .gitignore
|
||||
echo "*.pem" >> .gitignore
|
||||
fi
|
||||
|
||||
echo
|
||||
echo -e "\e[1;92mReady!\e[0m"
|
||||
|
||||
echo -e "\n\e[1;94m**********\nOptional: if you plan on using gulp serve, don't forget to add the container certificate to your local machine. Please visit https://aka.ms/spfx-devcontainer for more information\n**********"
|
|
@ -0,0 +1,37 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
|
||||
# Dependency directories
|
||||
node_modules
|
||||
|
||||
# Build generated files
|
||||
dist
|
||||
lib
|
||||
release
|
||||
solution
|
||||
temp
|
||||
*.sppkg
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
# Visual Studio files
|
||||
.ntvs_analysis.dat
|
||||
.vs
|
||||
bin
|
||||
obj
|
||||
|
||||
# Resx Generated Code
|
||||
*.resx.ts
|
||||
|
||||
# Styles Generated Code
|
||||
*.scss.ts
|
||||
# .CER Certificates
|
||||
*.cer
|
||||
# .PEM Certificates
|
||||
*.pem
|
|
@ -0,0 +1,16 @@
|
|||
!dist
|
||||
config
|
||||
|
||||
gulpfile.js
|
||||
|
||||
release
|
||||
src
|
||||
temp
|
||||
|
||||
tsconfig.json
|
||||
tslint.json
|
||||
|
||||
*.log
|
||||
|
||||
.yo-rc.json
|
||||
.vscode
|
|
@ -0,0 +1,13 @@
|
|||
{
|
||||
"@microsoft/generator-sharepoint": {
|
||||
"plusBeta": false,
|
||||
"isCreatingSolution": true,
|
||||
"environment": "spo",
|
||||
"version": "1.13.0",
|
||||
"libraryName": "react-tabacordion",
|
||||
"libraryId": "e516c8e2-da07-4dba-a522-ae36ec31e879",
|
||||
"packageManager": "npm",
|
||||
"isDomainIsolated": false,
|
||||
"componentType": "webpart"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
---
|
||||
page_type: sample
|
||||
products:
|
||||
- office-sp
|
||||
languages:
|
||||
- javascript
|
||||
- typescript
|
||||
extensions:
|
||||
contentType: samples
|
||||
technologies:
|
||||
- SharePoint Framework
|
||||
platforms:
|
||||
- react
|
||||
createdDate: 03/30/2022 12:00:00 AM
|
||||
---
|
||||
# Tab Accordion Web Part with Property Field Collection Data and tinyMCE for Rich Text Editing
|
||||
|
||||
## Summary
|
||||
|
||||
- This Web Part allows users to create content as Tabbed content using Property Field Collection Data and tinyMCE for Rich Text Editing targeted for SharePoint Online.
|
||||
- Provides options to view as an Accordion or Tab.
|
||||
- In mobile browser defaults to Accordion view.
|
||||
|
||||
![Web part preview](assets/TabAccordionWebpart.PNG)
|
||||
|
||||
## Compatibility
|
||||
|
||||
![SPFx 1.13.1](https://img.shields.io/badge/SPFx-1.13.1-green.svg)
|
||||
![Node.js v14 | v12](https://img.shields.io/badge/Node.js-v14%20%7C%20v12-green.svg)
|
||||
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
|
||||
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
|
||||
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
|
||||
![Local Workbench Unsupported](https://img.shields.io/badge/Local%20Workbench-Unsupported-red.svg "Local workbench is no longer available as of SPFx 1.13 and above")
|
||||
![Hosted Workbench Compatible](https://img.shields.io/badge/Hosted%20Workbench-Compatible-green.svg)
|
||||
![Compatible with Remote Containers](https://img.shields.io/badge/Remote%20Containers-Compatible-green.svg)
|
||||
|
||||
## Applies to
|
||||
|
||||
- [SharePoint Framework](https://aka.ms/spfx)
|
||||
- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
|
||||
|
||||
> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram)
|
||||
|
||||
## Prerequisites
|
||||
|
||||
There are no pre-requisites to use these samples.
|
||||
|
||||
## Solution
|
||||
|
||||
Solution|Author(s)
|
||||
--------|---------
|
||||
react-accordion-with-richtext | [Arun Kumar Perumal](https://github.com/arunkumarperumal) - LinkedIn: <https://www.linkedin.com/in/arunkumarperumal/> - Twitter: <https://twitter.com/arun_perumal16>
|
||||
|
||||
## Version history
|
||||
|
||||
Version|Date|Comments
|
||||
-------|----|--------
|
||||
1.0|April 11, 2022|Initial release
|
||||
|
||||
|
||||
## Minimal path to awesome
|
||||
|
||||
- Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-accordion-with-richtext) then unzip it)
|
||||
- Ensure that you are at the solution folder
|
||||
- in the command-line run:
|
||||
- `npm install`
|
||||
- `gulp serve`
|
||||
|
||||
> This sample can also be opened with [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview). Visit <https://aka.ms/spfx-devcontainer> for further instructions.
|
||||
|
||||
## Features
|
||||
|
||||
This Web Part allows users to create content as Tabbed content using Property Field Collection Data and tinyMCE for Rich Text Editing targeted for SharePoint Online.
|
||||
|
||||
Has the following features:
|
||||
|
||||
- Ability to create Tabs or Accordions based content
|
||||
- Ability to create Tabs with Rich Text Editor for content using tinyMCE Control
|
||||
- Defaults to Accordion in Mobile displays
|
||||
- Uses Custom Accordion components included in the code.
|
||||
- Uses Custom Tab components included in the code
|
||||
- Use the site Primary colors and themes for display
|
||||
|
||||
|
||||
> Share your web part with others through Microsoft 365 Patterns and Practices program to get visibility and exposure. More details on the community, open-source projects and other activities from http://aka.ms/m365pnp.
|
||||
|
||||
## References
|
||||
|
||||
- [Getting started with SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
|
||||
- [Building for Microsoft teams](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/build-for-teams-overview)
|
||||
- [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
|
||||
- [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview)
|
||||
- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
|
||||
|
||||
|
||||
## Help
|
||||
|
||||
|
||||
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.
|
||||
|
||||
If you're having issues building the solution, please run [spfx doctor](https://pnp.github.io/cli-microsoft365/cmd/spfx/spfx-doctor/) from within the solution folder to diagnose incompatibility issues with your environment.
|
||||
|
||||
You can try looking at [issues related to this sample](https://github.com/pnp/sp-dev-fx-webparts/issues?q=label%3A%22sample%3A%20react-accordion-with-richtext%22) to see if anybody else is having the same issues.
|
||||
|
||||
You can also try looking at [discussions related to this sample](https://github.com/pnp/sp-dev-fx-webparts/discussions?discussions_q=react-accordion-with-richtext) and see what the community is saying.
|
||||
|
||||
If you encounter any issues while using this sample, [create a new issue](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected%2Csample%3A%20react-accordion-with-richtext&template=bug-report.yml&sample=react-accordion-with-richtext&authors=@arunkumarperumal&title=react-accordion-with-richtext%20-%20).
|
||||
|
||||
For questions regarding this sample, [create a new question](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aquestion%2Csample%3A%20react-accordion-with-richtext&template=question.yml&sample=react-accordion-with-richtext&authors=@arunkumarperumal&title=react-accordion-with-richtext%20-%20).
|
||||
|
||||
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aenhancement%2Csample%3A%20react-accordion-with-richtext&template=suggestion.yml&sample=react-accordion-with-richtext&authors=@arunkumarperumal&title=react-accordion-with-richtext%20-%20).
|
||||
|
||||
## Disclaimer
|
||||
|
||||
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
|
||||
|
||||
<img src="https://pnptelemetry.azurewebsites.net/sp-dev-fx-webparts/samples/react-accordion-with-richtext" />
|
Binary file not shown.
After Width: | Height: | Size: 44 KiB |
Binary file not shown.
After Width: | Height: | Size: 7.5 MiB |
|
@ -0,0 +1,56 @@
|
|||
[
|
||||
{
|
||||
"name": "pnp-sp-dev-spfx-web-parts-react-accordion-with-richtext",
|
||||
"source": "pnp",
|
||||
"title": "Tab Accordion",
|
||||
"shortDescription": "This Web Part allows users to create content as Tabbed content using Property Field Collection Data and tinyMCE for Rich Text Editing targeted for SharePoint Online",
|
||||
"url": "https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-accordion-with-richtext",
|
||||
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-accordion-with-richtext",
|
||||
"longDescription": [
|
||||
"This Web Part allows users to create content as Tabbed content using Property Field Collection Data and tinyMCE for Rich Text Editing targeted for SharePoint Online"
|
||||
],
|
||||
"creationDateTime": "2022-03-30",
|
||||
"updateDateTime": "2022-03-30",
|
||||
"products": [
|
||||
"SharePoint"
|
||||
],
|
||||
"metadata": [
|
||||
{
|
||||
"key": "CLIENT-SIDE-DEV",
|
||||
"value": "React"
|
||||
},
|
||||
{
|
||||
"key": "SPFX-VERSION",
|
||||
"value": "1.14"
|
||||
}
|
||||
],
|
||||
"thumbnails": [
|
||||
{
|
||||
"type": "image",
|
||||
"order": 100,
|
||||
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-accordion-with-richtext/assets/TabAccordionWebpart.PNG",
|
||||
"alt": "Web Part Preview"
|
||||
},
|
||||
// {
|
||||
// "type": "video",
|
||||
// "order": 101,
|
||||
// "url": "https://www.youtube.com/embed/FS-_0KENJkI",
|
||||
// "alt": "Community demo of the web part"
|
||||
// }
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"gitHubAccount": "arunkumarperumal",
|
||||
"pictureUrl": "https://github.com/arunkumarperumal.png",
|
||||
"name": "Arun Kumar Perumal"
|
||||
}
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"name": "Build your first SharePoint client-side web part",
|
||||
"description": "Client-side web parts are client-side components that run in the context of a SharePoint page. Client-side web parts can be deployed to SharePoint environments that support the SharePoint Framework. You can also use modern JavaScript web frameworks, tools, and libraries to build them.",
|
||||
"url": "https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
|
@ -0,0 +1,25 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json",
|
||||
"version": "2.0",
|
||||
"bundles": {
|
||||
"tab-accordion-web-part": {
|
||||
"components": [
|
||||
{
|
||||
"entrypoint": "./lib/webparts/tabAccordion/TabAccordionWebPart.js",
|
||||
"manifest": "./src/webparts/tabAccordion/TabAccordionWebPart.manifest.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"externals": {
|
||||
"tinymce": {
|
||||
"path": "https://cdnjs.cloudflare.com/ajax/libs/tinymce/5.10.3/tinymce.min.js",
|
||||
"globalName": "tinymce"
|
||||
}
|
||||
},
|
||||
"localizedResources": {
|
||||
"TabAccordionWebPartStrings": "lib/webparts/tabAccordion/loc/{locale}.js",
|
||||
"ControlStrings": "node_modules/@pnp/spfx-controls-react/lib/loc/{locale}.js",
|
||||
"PropertyControlStrings": "node_modules/@pnp/spfx-property-controls/lib/loc/{locale}.js"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json",
|
||||
"workingDir": "./release/assets/",
|
||||
"account": "<!-- STORAGE ACCOUNT NAME -->",
|
||||
"container": "react-tabacordion",
|
||||
"accessKey": "<!-- ACCESS KEY -->"
|
||||
}
|
|
@ -0,0 +1,21 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json",
|
||||
"solution": {
|
||||
"name": "react-tabacordion",
|
||||
"id": "e516c8e2-da07-4dba-a522-ae36ec31e879",
|
||||
"version": "1.0.0.0",
|
||||
"includeClientSideAssets": true,
|
||||
"skipFeatureDeployment": true,
|
||||
"isDomainIsolated": false,
|
||||
"developer": {
|
||||
"name": "",
|
||||
"websiteUrl": "",
|
||||
"privacyUrl": "",
|
||||
"termsOfUseUrl": "",
|
||||
"mpnId": "Undefined-1.13.0"
|
||||
}
|
||||
},
|
||||
"paths": {
|
||||
"zippedPackage": "solution/react-tabacordion.sppkg"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json",
|
||||
"port": 4321,
|
||||
"https": true,
|
||||
"initialPage": "https://enter-your-SharePoint-site/_layouts/workbench.aspx"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json",
|
||||
"cdnBasePath": "<!-- PATH TO CDN -->"
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
'use strict';
|
||||
|
||||
const build = require('@microsoft/sp-build-web');
|
||||
|
||||
build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`);
|
||||
|
||||
var getTasks = build.rig.getTasks;
|
||||
build.rig.getTasks = function () {
|
||||
var result = getTasks.call(build.rig);
|
||||
|
||||
result.set('serve', result.get('serve-deprecated'));
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
build.initialize(require('gulp'));
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"name": "react-tabacordion",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"build": "gulp bundle",
|
||||
"clean": "gulp clean",
|
||||
"test": "gulp test"
|
||||
},
|
||||
"dependencies": {
|
||||
"react": "16.13.1",
|
||||
"react-dom": "16.13.1",
|
||||
"office-ui-fabric-react": "7.174.1",
|
||||
"@microsoft/sp-core-library": "1.13.0",
|
||||
"@microsoft/sp-property-pane": "1.13.0",
|
||||
"@microsoft/sp-webpart-base": "1.13.0",
|
||||
"@microsoft/sp-lodash-subset": "1.13.0",
|
||||
"@microsoft/sp-office-ui-fabric-core": "1.13.0",
|
||||
"@pnp/spfx-controls-react": "^3.5.0",
|
||||
"@pnp/spfx-property-controls": "^3.3.0",
|
||||
"@tinymce/tinymce-react": "^2.2.5"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "16.9.51",
|
||||
"@types/react-dom": "16.9.8",
|
||||
"@microsoft/sp-build-web": "1.13.0",
|
||||
"@microsoft/sp-tslint-rules": "1.13.0",
|
||||
"@microsoft/sp-module-interfaces": "1.13.0",
|
||||
"@microsoft/rush-stack-compiler-3.9": "0.4.47",
|
||||
"gulp": "~4.0.2",
|
||||
"ajv": "~5.2.2",
|
||||
"@types/webpack-env": "1.13.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
// A file is required to be in the root of the /src directory by the TypeScript compiler
|
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx/client-side-web-part-manifest.schema.json",
|
||||
"id": "51789d0c-7a65-494e-8969-59bfc883e751",
|
||||
"alias": "TabAccordionWebPart",
|
||||
"componentType": "WebPart",
|
||||
|
||||
// The "*" signifies that the version should be taken from the package.json
|
||||
"version": "*",
|
||||
"manifestVersion": 2,
|
||||
|
||||
// If true, the component can only be installed on sites where Custom Script is allowed.
|
||||
// Components that allow authors to embed arbitrary script code should set this to true.
|
||||
// https://support.office.com/en-us/article/Turn-scripting-capabilities-on-or-off-1f2c515f-5d7e-448a-9fd7-835da935584f
|
||||
"requiresCustomScript": false,
|
||||
"supportedHosts": ["SharePointWebPart"],
|
||||
|
||||
"preconfiguredEntries": [{
|
||||
"groupId": "ae3ce92d-ee3f-44cf-b944-eeaff3499b8b", // Other
|
||||
"group": { "default": "Other" },
|
||||
"title": { "default": "Tab Accordion" },
|
||||
"description": { "default": "Tab & Accordion Web Part" },
|
||||
"officeFabricIconFontName": "Page",
|
||||
"properties": {
|
||||
"tabs": [
|
||||
{ "Title": "Tab 1", "Content": "Tab 1 Content"},
|
||||
{ "Title": "Tab 2", "Content": "Tab 2 Content"},
|
||||
{ "Title": "Tab 3", "Content": "Tab 3 Content"}
|
||||
],
|
||||
"title": "Tabs",
|
||||
"type": "Tab"
|
||||
}
|
||||
}]
|
||||
}
|
|
@ -0,0 +1,181 @@
|
|||
import * as React from 'react';
|
||||
import * as ReactDom from 'react-dom';
|
||||
import { Version, Guid } from '@microsoft/sp-core-library';
|
||||
import { BrowserUtilities } from '@microsoft/sp-core-library/lib-commonjs/BrowserUtilities';
|
||||
import {
|
||||
BaseClientSideWebPart,
|
||||
IWebPartPropertiesMetadata,
|
||||
WebPartContext
|
||||
} from '@microsoft/sp-webpart-base';
|
||||
|
||||
|
||||
import {
|
||||
IPropertyPaneConfiguration,
|
||||
PropertyPaneDropdown,
|
||||
PropertyPaneTextField
|
||||
} from '@microsoft/sp-property-pane';
|
||||
|
||||
|
||||
|
||||
import * as strings from 'TabAccordionWebPartStrings';
|
||||
import Tab from './components/CTab';
|
||||
import { ICTabProps } from './components/ICTabProps';
|
||||
import Accordion from './components/CAccordion';
|
||||
import { ICAccordionProps } from './components/ICAccordionProps';
|
||||
import { SPComponentLoader } from '@microsoft/sp-loader';
|
||||
import 'tinymce';
|
||||
export interface ITabAccordionWebPartProps {
|
||||
tabs: any[];
|
||||
type: string;
|
||||
title: string;
|
||||
accordion:boolean;
|
||||
tabContent: string;
|
||||
}
|
||||
|
||||
export default class TabAccordionWebPart extends BaseClientSideWebPart<ITabAccordionWebPartProps> {
|
||||
private propertyFieldCollectionData;
|
||||
private customCollectionFieldType;
|
||||
private guid: string;
|
||||
private isMobile: boolean;
|
||||
|
||||
// ...
|
||||
protected get propertiesMetadata(): IWebPartPropertiesMetadata {
|
||||
return {
|
||||
'title': { isSearchablePlainText: true },
|
||||
'tabContent': { isHtmlString: true }
|
||||
};
|
||||
}
|
||||
// ...
|
||||
|
||||
/**
|
||||
* @function
|
||||
* Web part contructor.
|
||||
*/
|
||||
public constructor(context?: WebPartContext) {
|
||||
super();
|
||||
|
||||
//Initialize unique GUID
|
||||
this.guid = Guid.newGuid().toString();
|
||||
|
||||
this.isMobile = BrowserUtilities.isMobileBrowser();
|
||||
|
||||
//Hack: to invoke correctly the onPropertyChange function outside this class
|
||||
//we need to bind this object on it first
|
||||
this.onPropertyPaneFieldChanged = this.onPropertyPaneFieldChanged.bind(this);
|
||||
}
|
||||
|
||||
|
||||
public render(): void {
|
||||
this.properties.tabContent = "";
|
||||
this.properties.tabs.map((tab: any, tabindex: number) => {
|
||||
this.properties.tabContent += tab.Title + "," + tab.Content + "|";
|
||||
});
|
||||
|
||||
const elementTab: React.ReactElement<ICTabProps > = React.createElement(
|
||||
Tab,
|
||||
{
|
||||
tabs: this.properties.tabs,
|
||||
displayMode: this.displayMode,
|
||||
guid: this.guid,
|
||||
title:this.properties.title,
|
||||
fUpdateProperty: (value: string) => {
|
||||
this.properties.title = value;
|
||||
},
|
||||
}
|
||||
);
|
||||
const elementAccordion: React.ReactElement<ICAccordionProps > = React.createElement(
|
||||
Accordion,
|
||||
{
|
||||
tabs: this.properties.tabs,
|
||||
displayMode: this.displayMode,
|
||||
guid: this.guid,
|
||||
title: this.properties.title,
|
||||
accordion:this.properties.accordion,
|
||||
fUpdateProperty: (value: string) => {
|
||||
this.properties.title = value;
|
||||
},
|
||||
}
|
||||
);
|
||||
if(this.isMobile)
|
||||
{
|
||||
ReactDom.render(elementAccordion, this.domElement);
|
||||
}
|
||||
else
|
||||
{
|
||||
if(this.properties.type == "Accordion")
|
||||
{
|
||||
ReactDom.render(elementAccordion, this.domElement);
|
||||
}
|
||||
else
|
||||
{
|
||||
ReactDom.render(elementTab, this.domElement);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
protected get dataVersion(): Version {
|
||||
return Version.parse('1.0');
|
||||
}
|
||||
|
||||
//executes only before property pane is loaded.
|
||||
protected async loadPropertyPaneResources(): Promise<void> {
|
||||
// import additional controls/components
|
||||
const { PropertyFieldCollectionData, CustomCollectionFieldType } = await import (
|
||||
/* webpackChunkName: 'pnp-propcontrols-colldata' */
|
||||
'@pnp/spfx-property-controls/lib/PropertyFieldCollectionData'
|
||||
);
|
||||
|
||||
|
||||
|
||||
this.propertyFieldCollectionData = PropertyFieldCollectionData;
|
||||
this.customCollectionFieldType = CustomCollectionFieldType;
|
||||
}
|
||||
|
||||
/**
|
||||
* @function
|
||||
* PropertyPanel settings definition
|
||||
*/
|
||||
protected getPropertyPaneConfiguration(): IPropertyPaneConfiguration {
|
||||
return {
|
||||
pages: [
|
||||
{
|
||||
header: {
|
||||
description: strings.PropertyPaneDescription
|
||||
},
|
||||
displayGroupsAsAccordion: true,
|
||||
groups: [
|
||||
{
|
||||
groupName: strings.BasicGroupName,
|
||||
groupFields: [
|
||||
PropertyPaneDropdown('type', {
|
||||
label: strings.Type,
|
||||
disabled: false,
|
||||
options: [
|
||||
{key: 'Accordion', text: 'Accordion'},
|
||||
{key: 'Tab', text: 'Tab'}
|
||||
]
|
||||
}),
|
||||
this.propertyFieldCollectionData("tabs", {
|
||||
key: "tabs",
|
||||
panelHeader: strings.ManageAccordion,
|
||||
manageBtnLabel: strings.ManageAccordion,
|
||||
value: this.properties.tabs,
|
||||
enableSorting: false,
|
||||
fields: [
|
||||
{
|
||||
id: "Title",
|
||||
title: strings.TitleFieldLabel,
|
||||
type: this.customCollectionFieldType.string,
|
||||
required: true
|
||||
}
|
||||
]
|
||||
}),
|
||||
],
|
||||
},
|
||||
]
|
||||
}
|
||||
]
|
||||
};
|
||||
}
|
||||
}
|
|
@ -0,0 +1,237 @@
|
|||
@import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss';
|
||||
|
||||
/*
|
||||
* ----------------------------------------------
|
||||
* Demo styles
|
||||
* ----------------------------------------------
|
||||
**/
|
||||
.webparttitle {
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
display: inline-block;
|
||||
margin-bottom: 20px;
|
||||
}
|
||||
|
||||
.webpartheader>span {
|
||||
float: right;
|
||||
position:relative;
|
||||
}
|
||||
|
||||
.positionAbsolute {
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
.positionRelative {
|
||||
position: relative;
|
||||
display: inline;
|
||||
padding-left: 20px;
|
||||
font-family: "Segoe UI Web (West European)", "Segoe UI", -apple-system, BlinkMacSystemFont, Roboto, "Helvetica Neue", sans-serif;
|
||||
font-size: 21px;
|
||||
top: 15%;
|
||||
font-weight: 600;
|
||||
}
|
||||
|
||||
.accordion {
|
||||
// border-bottom: 1px solid;
|
||||
//border-radius: 2px;
|
||||
// border-bottom-color: $ms-color-themePrimary;
|
||||
float: left;
|
||||
width: 100%;
|
||||
@media (max-width: 480px) {
|
||||
margin-top: 10px !important;
|
||||
|
||||
}
|
||||
@media (max-width: 320px) {
|
||||
margin-top: 10px !important;
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.accordion__item{
|
||||
margin-bottom: 15px;
|
||||
}
|
||||
|
||||
.accordion__item:focus{
|
||||
outline:none;
|
||||
}
|
||||
|
||||
.accordionItemHasIcon {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.accordion__title {
|
||||
background-color: $ms-color-neutralLighter;
|
||||
color: $ms-color-themePrimary;
|
||||
cursor: pointer;
|
||||
padding: 8px 0px 10px 0px;
|
||||
text-align: left;
|
||||
border: none;
|
||||
vertical-align: top;
|
||||
&:hover {
|
||||
background-color: $ms-color-neutralLight;
|
||||
}
|
||||
}
|
||||
|
||||
.accordion__item [aria-expanded='true'], .accordion__item [aria-selected='true'] {
|
||||
background-color: $ms-color-themePrimary;
|
||||
color:$ms-color-white;
|
||||
&:hover {
|
||||
background-color: $ms-color-themeDarker;
|
||||
}
|
||||
}
|
||||
|
||||
.accordion__title:focus {
|
||||
outline:none;
|
||||
border:none;
|
||||
}
|
||||
|
||||
.accordion__body {
|
||||
padding: 5px 20px;
|
||||
display: block;
|
||||
animation: fadein 0.35s ease-in;
|
||||
}
|
||||
|
||||
|
||||
.accordionBodyHidden {
|
||||
display: none;
|
||||
opacity: 0;
|
||||
animation: fadein 0.35s ease-in;
|
||||
}
|
||||
|
||||
.accordion__title > *:last-child, .accordion__body > *:last-child {
|
||||
margin-bottom: 0;
|
||||
}
|
||||
|
||||
.accordion__arrow {
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
width: 20px;
|
||||
height: 20px;
|
||||
top: 20%;
|
||||
border-radius: 20px;
|
||||
background-color: $ms-color-themePrimary;
|
||||
color:$ms-color-white;
|
||||
margin-left: 20px;
|
||||
&::after {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 10px;
|
||||
height: 2px;
|
||||
content: '';
|
||||
background-color: $ms-color-white;
|
||||
}
|
||||
&::before {
|
||||
display: block;
|
||||
position: absolute;
|
||||
top: 50%;
|
||||
width: 10px;
|
||||
height: 2px;
|
||||
content: '';
|
||||
transform: rotate(45deg);
|
||||
background-color: $ms-color-white;
|
||||
}
|
||||
}
|
||||
|
||||
[aria-expanded='true'] .accordion__arrow, [aria-selected='true'] .accordion__arrow{
|
||||
background-color: $ms-color-white;
|
||||
}
|
||||
|
||||
[aria-expanded='true'] .accordion__arrow::before, [aria-selected='true'] .accordion__arrow::before {
|
||||
transform: rotate(-45deg);
|
||||
background-color: $ms-color-themePrimary;
|
||||
color:$ms-color-themePrimary;
|
||||
}
|
||||
|
||||
.accordion__arrow::before {
|
||||
left: 2px;
|
||||
}
|
||||
|
||||
.accordion__arrow::after {
|
||||
right: 2px;
|
||||
transform: rotate(-45deg);
|
||||
}
|
||||
|
||||
[aria-expanded='true'] .accordion__arrow::after, [aria-selected='true'] .accordion__arrow::after {
|
||||
transform: rotate(45deg);
|
||||
background-color: $ms-color-themePrimary;
|
||||
}
|
||||
|
||||
.accordion__arrow {
|
||||
&::before, &::after {
|
||||
transition: transform 0.25s ease, -webkit-transform 0.25s ease;
|
||||
}
|
||||
}
|
||||
|
||||
/* -------------------------------------------------- */
|
||||
/* ---------------- Animation part ------------------ */
|
||||
/* -------------------------------------------------- */
|
||||
|
||||
@keyframes fadein {
|
||||
0% {
|
||||
opacity: 0;
|
||||
}
|
||||
|
||||
100% {
|
||||
opacity: 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes moveDown {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
10% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
transform: translateY(5px);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@keyframes moveUp {
|
||||
0% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
10% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
20% {
|
||||
transform: translateY(-5px);
|
||||
}
|
||||
|
||||
30% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
|
||||
100% {
|
||||
transform: translateY(0);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
.accordionTitleAnimated {
|
||||
&:hover .accordion__arrow {
|
||||
animation-name: moveDown;
|
||||
animation-duration: 1.5s;
|
||||
}
|
||||
&[aria-expanded='true']:hover .accordion__arrow {
|
||||
animation-name: moveUp;
|
||||
animation-duration: 1.5s;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
|
||||
|
||||
|
||||
import * as React from 'react';
|
||||
import styles from './CAccordion.module.scss';
|
||||
import { ICAccordionProps } from './ICAccordionProps';
|
||||
import { DisplayMode, Version } from '@microsoft/sp-core-library';
|
||||
import { Editor } from '@tinymce/tinymce-react';
|
||||
import { WebPartTitle } from "@pnp/spfx-controls-react/lib/WebPartTitle";
|
||||
|
||||
import {
|
||||
Accordion,
|
||||
AccordionItem,
|
||||
AccordionItemTitle,
|
||||
AccordionItemBody,
|
||||
} from './utilities/Accordion/index';
|
||||
|
||||
export default class CAccordion extends React.Component<ICAccordionProps, {}> {
|
||||
public handleEditorChange = (e) => {
|
||||
var id = e.target.id.split("-editor-")[1];
|
||||
//Save the content in properties
|
||||
|
||||
this.props.tabs[id].Content = e.target.getContent();
|
||||
}
|
||||
public render(): React.ReactElement<ICAccordionProps> {
|
||||
if(this.props.displayMode === DisplayMode.Edit)
|
||||
{
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.webpartheader}>
|
||||
<WebPartTitle displayMode={this.props.displayMode}
|
||||
title={this.props.title}
|
||||
updateProperty={this.props.fUpdateProperty}
|
||||
className={styles.webparttitle} />
|
||||
</div>
|
||||
<Accordion className={styles.accordion} aria-live="polite" accordion={this.props.accordion}>
|
||||
{
|
||||
this.props.tabs.map((tab: any, index: number) => {
|
||||
return (
|
||||
<AccordionItem key={"tab" + index} className={styles.accordion__item} aria-controls={this.props.guid + '-title-' + index} id={"tab" + index} >
|
||||
<AccordionItemTitle className={styles.accordion__title} id={this.props.guid + '-title-' + index}>
|
||||
<div className={styles.accordion__arrow} role="presentation" />
|
||||
<div className={styles["positionRelative"]}>
|
||||
{tab.Title}
|
||||
</div>
|
||||
</AccordionItemTitle>
|
||||
<AccordionItemBody className={styles.accordion__body} hideBodyClassName={styles["accordionBodyHidden"]} >
|
||||
<Editor
|
||||
id={this.props.guid + '-editor-' + index}
|
||||
value={tab.Content}
|
||||
init={{
|
||||
content_style: "a {color:rgb(0,120,212) !important}",
|
||||
plugins: 'link image table lists media code',
|
||||
menubar: 'edit insert format table lists view', // skip file
|
||||
height : "240",
|
||||
toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | numlist bullist | media | code',
|
||||
table_responsive_width: true,
|
||||
table_default_styles: {
|
||||
'width': '100%',
|
||||
'height': 'auto'
|
||||
},
|
||||
image_advtab: true,
|
||||
style_formats: [
|
||||
{title: 'Headings', items: [
|
||||
{title: 'Heading 1', format: 'h2'},
|
||||
{title: 'Heading 2', format: 'h3'},
|
||||
{title: 'Heading 3', format: 'h4'}
|
||||
]}]
|
||||
|
||||
}}
|
||||
onChange={this.handleEditorChange}
|
||||
/>
|
||||
</AccordionItemBody>
|
||||
</AccordionItem>
|
||||
);
|
||||
})
|
||||
}
|
||||
</Accordion>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.webpartheader}>
|
||||
<WebPartTitle displayMode={this.props.displayMode}
|
||||
title={this.props.title}
|
||||
updateProperty={this.props.fUpdateProperty}
|
||||
className={styles.webparttitle} />
|
||||
</div>
|
||||
<Accordion className={styles.accordion} aria-live="polite" accordion={this.props.accordion}>
|
||||
{
|
||||
this.props.tabs.map((tab: any, index: number) => {
|
||||
return (
|
||||
<AccordionItem key={"tab" + index} className={styles.accordion__item} aria-controls={this.props.guid + '-title-' + index} id={"tab" + index} >
|
||||
<AccordionItemTitle className={styles.accordion__title} id={this.props.guid + '-title-' + index}>
|
||||
<div className={styles.accordion__arrow} role="presentation" />
|
||||
<div className={styles["positionRelative"]} >
|
||||
{tab.Title}
|
||||
</div>
|
||||
</AccordionItemTitle>
|
||||
<AccordionItemBody className={styles.accordion__body} hideBodyClassName={styles["accordionBodyHidden"]}>
|
||||
<div dangerouslySetInnerHTML={{__html:tab.Content}} id={this.props.guid}></div>
|
||||
</AccordionItemBody>
|
||||
</AccordionItem>
|
||||
);
|
||||
})
|
||||
}
|
||||
</Accordion>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,119 @@
|
|||
@import '~@microsoft/sp-office-ui-fabric-core/dist/sass/SPFabricCore.scss';
|
||||
.outermargin {
|
||||
margin:1em 1em;
|
||||
}
|
||||
.tabs {
|
||||
display: inline-block;
|
||||
vertical-align: top;
|
||||
width: 100%;
|
||||
height: 100%;
|
||||
margin-top: 20px;
|
||||
}
|
||||
|
||||
.tabs .tablinks {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 58px;
|
||||
position: relative;
|
||||
background-color: $ms-color-neutralLighter;
|
||||
}
|
||||
|
||||
.tabs .tablink {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
height: 58px;
|
||||
line-height: 58px;
|
||||
padding-left: 10px;
|
||||
padding-right:10px;
|
||||
font-family: "Segoe UI Web (West European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
cursor: pointer;
|
||||
margin-left: 20px;
|
||||
color: $ms-color-neutralTertiary;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tabs .tablinkactive {
|
||||
cursor: pointer;
|
||||
display: inline-block;
|
||||
position: relative;
|
||||
height: 58px;
|
||||
line-height: 58px;
|
||||
padding-left: 10px;
|
||||
padding-right:10px;
|
||||
font-family: "Segoe UI Web (West European)",Segoe UI,-apple-system,BlinkMacSystemFont,Roboto,Helvetica Neue,sans-serif;
|
||||
font-size: 17px;
|
||||
font-weight: 400;
|
||||
cursor: pointer;
|
||||
font-weight: 600 !important;
|
||||
margin-left: 20px;
|
||||
color: $ms-color-themePrimary;
|
||||
}
|
||||
.tabs .tablinkactive span {
|
||||
border-bottom:2px solid;
|
||||
border-bottom-color: $ms-color-themePrimary;
|
||||
padding-bottom: 15px;
|
||||
}
|
||||
.tabs .tablink:focus {
|
||||
outline:none;
|
||||
}
|
||||
.tabs .tablinkactive:focus {
|
||||
outline:none;
|
||||
}
|
||||
.tabs .content {
|
||||
padding: 15px 35px;
|
||||
}
|
||||
|
||||
|
||||
.tabs .content table {
|
||||
border:none;
|
||||
border-collapse: collapse;
|
||||
font-weight: 400;
|
||||
font-size: 16px;
|
||||
}
|
||||
|
||||
.tabs .content tr:first-child {
|
||||
color:#fff;
|
||||
border-top: 1px solid #ddd;
|
||||
font-weight: 600;
|
||||
background-color: #666;
|
||||
}
|
||||
|
||||
.tabs .content td {
|
||||
border-bottom: 1px solid #ddd;
|
||||
padding:5px;
|
||||
vertical-align: top;
|
||||
}
|
||||
.tabs .content tr {
|
||||
border-left: 1px solid #ddd;
|
||||
border-right:1px solid #ddd;
|
||||
vertical-align: top;
|
||||
}
|
||||
|
||||
.tabs .content img {
|
||||
width:100%;
|
||||
}
|
||||
|
||||
|
||||
|
||||
.tabs .content a {
|
||||
color: $ms-color-themePrimary !important;
|
||||
}
|
||||
|
||||
.activeLinkStyle {
|
||||
border-Bottom: '2px solid rgb(0, 120, 212)'
|
||||
}
|
||||
|
||||
.webparttitle {
|
||||
font-size: 32px;
|
||||
font-weight: 600;
|
||||
display: inline-block;
|
||||
}
|
||||
|
||||
.webpartheader > span {
|
||||
float: right;
|
||||
position:relative;
|
||||
}
|
|
@ -0,0 +1,135 @@
|
|||
|
||||
|
||||
import * as React from 'react';
|
||||
import styles from './CTab.module.scss';
|
||||
import { ICTabProps } from './ICTabProps';
|
||||
import { DisplayMode, Version } from '@microsoft/sp-core-library';
|
||||
import { WebPartTitle } from "@pnp/spfx-controls-react/lib/WebPartTitle";
|
||||
import { Editor } from '@tinymce/tinymce-react';
|
||||
|
||||
import { Tabs, TabLink, TabContent } from './utilities/Tab/index';
|
||||
|
||||
|
||||
export default class CTab extends React.Component<ICTabProps, {}> {
|
||||
constructor(props: ICTabProps) {
|
||||
super(props);
|
||||
}
|
||||
/* istanbul ignore next */
|
||||
public handleEditorChange = (e) => {
|
||||
/* istanbul ignore next */
|
||||
var id = e.target.id.split("-editor-")[1];
|
||||
//Save the content in properties
|
||||
this.props.tabs[id].Content = e.target.getContent();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public render(): React.ReactElement<ICTabProps> {
|
||||
if(this.props.displayMode === DisplayMode.Edit)
|
||||
{
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.webpartheader}>
|
||||
<WebPartTitle displayMode={this.props.displayMode}
|
||||
title={this.props.title}
|
||||
updateProperty={this.props.fUpdateProperty}
|
||||
className={styles.webparttitle} />
|
||||
</div>
|
||||
<Tabs className={styles.tabs} selectedTab={this.props.guid + "-editor-0"}>
|
||||
<div className={styles.tablinks} tabIndex={0}>
|
||||
{
|
||||
this.props.tabs.map((tab: any, tabindex: number) => {
|
||||
return (
|
||||
<TabLink className={styles.tablink} activeClassName={styles.tablinkactive}
|
||||
id={this.props.guid + "-link-" + tabindex}
|
||||
to={this.props.guid + "-editor-" + tabindex} key={this.props.guid + "-link-" + tabindex} ><span>{tab.Title}</span></TabLink>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
{
|
||||
this.props.tabs.map((tab: any, tabindex: number) => {
|
||||
return (
|
||||
<TabContent itemKey={this.props.guid + "-editor-" + tabindex}
|
||||
key={this.props.guid + "-editor-" + tabindex}
|
||||
for={this.props.guid + "-editor-" + tabindex} >
|
||||
<Editor
|
||||
id={this.props.guid + '-editor-' + tabindex}
|
||||
itemKey={this.props.guid + '-editor-' + tabindex}
|
||||
value={tab.Content}
|
||||
init={{
|
||||
content_style: "a {color:rgb(0,120,212) !important}",
|
||||
plugins: 'link image table lists media code',
|
||||
menubar: 'edit insert format table lists view', // skip file
|
||||
height : "240",
|
||||
toolbar: 'undo redo | bold italic | alignleft aligncenter alignright | numlist bullist | media | code',
|
||||
table_responsive_width: true,
|
||||
table_default_styles: {
|
||||
'width': '100%',
|
||||
'height': 'auto'
|
||||
},
|
||||
image_advtab: true,
|
||||
style_formats: [
|
||||
{title: 'Headings', items: [
|
||||
{title: 'Heading 1', format: 'h2'},
|
||||
{title: 'Heading 2', format: 'h3'},
|
||||
{title: 'Heading 3', format: 'h4'}
|
||||
]}]
|
||||
|
||||
}}
|
||||
onChange={this.handleEditorChange}
|
||||
/>
|
||||
</TabContent>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</Tabs>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (
|
||||
<div>
|
||||
<div className={styles.webpartheader}>
|
||||
<WebPartTitle displayMode={this.props.displayMode}
|
||||
title={this.props.title}
|
||||
updateProperty={this.props.fUpdateProperty}
|
||||
className={styles.webparttitle} />
|
||||
</div>
|
||||
<Tabs className={styles.tabs} selectedTab={this.props.guid + "-editor-0"} >
|
||||
<div className={styles.tablinks} >
|
||||
{
|
||||
this.props.tabs.map((tab: any, tabindex: number) => {
|
||||
return (
|
||||
<TabLink className={styles.tablink} activeClassName={styles.tablinkactive}
|
||||
id={this.props.guid + "-link-" + tabindex}
|
||||
key={this.props.guid + "-link-" + tabindex}
|
||||
to={this.props.guid + "-editor-" + tabindex}><span>{tab.Title}</span></TabLink>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
<div className={styles.content}>
|
||||
{
|
||||
this.props.tabs.map((tab: any, tabindex: number) => {
|
||||
return (
|
||||
<TabContent key={this.props.guid + "-editor-" + tabindex}
|
||||
for={this.props.guid + "-editor-" + tabindex} >
|
||||
<div dangerouslySetInnerHTML={{__html:tab.Content}} id={this.props.guid} ></div>
|
||||
</TabContent>
|
||||
);
|
||||
})
|
||||
}
|
||||
</div>
|
||||
</Tabs>
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -0,0 +1,10 @@
|
|||
import { DisplayMode } from "@microsoft/sp-core-library";
|
||||
|
||||
export interface ICAccordionProps {
|
||||
tabs: any[];
|
||||
displayMode: DisplayMode;
|
||||
guid: string;
|
||||
title: string;
|
||||
accordion:boolean;
|
||||
fUpdateProperty: (value: string) => void;
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
import { DisplayMode } from "@microsoft/sp-core-library";
|
||||
|
||||
export interface ICTabProps {
|
||||
tabs: any[];
|
||||
displayMode: DisplayMode;
|
||||
guid: string;
|
||||
title:string;
|
||||
fUpdateProperty: (value: string) => void;
|
||||
}
|
1
samples/react-accordion-with-richtext/src/webparts/tabAccordion/components/tinymcereact.d.ts
vendored
Normal file
1
samples/react-accordion-with-richtext/src/webparts/tabAccordion/components/tinymcereact.d.ts
vendored
Normal file
|
@ -0,0 +1 @@
|
|||
declare module '@tinymce/tinymce-react';
|
|
@ -0,0 +1,92 @@
|
|||
import * as React from 'react';
|
||||
|
||||
export interface IAccordionProps {
|
||||
accordion?: boolean;
|
||||
children?: JSX.Element[]|object;
|
||||
className?: string;
|
||||
onChange?: (any) => void;
|
||||
}
|
||||
export interface IAccordionState {
|
||||
activeItems: any [];
|
||||
accordion: boolean;
|
||||
}
|
||||
|
||||
export default class Accordion extends React.Component<IAccordionProps, IAccordionState> {
|
||||
public static defaultProps = {
|
||||
accordion: true,
|
||||
onChange: (any) => {},
|
||||
className: 'accordion',
|
||||
};
|
||||
constructor(props) {
|
||||
super(props);
|
||||
const activeItems = this.preExpandedItems();
|
||||
this.state = {
|
||||
activeItems: activeItems,
|
||||
accordion: true,
|
||||
};
|
||||
this.renderItems = this.renderItems.bind(this);
|
||||
}
|
||||
public preExpandedItems() {
|
||||
const activeItems = [];
|
||||
React.Children.map(this.props.children, (item, index) => {
|
||||
let child = item as React.ReactElement<any>;
|
||||
if (child.props.expanded) {
|
||||
if (this.props.accordion) {
|
||||
if (activeItems.length === 0) activeItems.push(index);
|
||||
} else {
|
||||
activeItems.push(index);
|
||||
}
|
||||
}
|
||||
});
|
||||
return activeItems;
|
||||
}
|
||||
|
||||
public handleClick(key) {
|
||||
let activeItems = this.state.activeItems;
|
||||
if (this.props.accordion) {
|
||||
activeItems = activeItems[0] === key ? [] : [key];
|
||||
} else {
|
||||
activeItems = [...activeItems];
|
||||
const index = activeItems.indexOf(key);
|
||||
const isActive = index > -1;
|
||||
if (isActive) {
|
||||
// remove active state
|
||||
activeItems.splice(index, 1);
|
||||
} else {
|
||||
activeItems.push(key);
|
||||
}
|
||||
}
|
||||
this.setState({
|
||||
activeItems: activeItems,
|
||||
});
|
||||
|
||||
this.props.onChange(this.props.accordion ? activeItems[0] : activeItems);
|
||||
}
|
||||
|
||||
public renderItems() {
|
||||
const { accordion, children } = this.props;
|
||||
|
||||
return React.Children.map(children, (item, index) => {
|
||||
let child = item as React.ReactElement<any>;
|
||||
const key = index;
|
||||
const expanded = (this.state.activeItems.indexOf(key) !== -1) && (!child.props.disabled);
|
||||
|
||||
return React.cloneElement(child, {
|
||||
disabled: child.props.disabled,
|
||||
accordion: accordion,
|
||||
expanded: expanded,
|
||||
key: `accordion__item-${key}`,
|
||||
onClick: this.handleClick.bind(this, key),
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
public render() {
|
||||
const { className } = this.props;
|
||||
return (
|
||||
<div className={className}>
|
||||
{this.renderItems()}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,70 @@
|
|||
import * as React from 'react';
|
||||
import { IAccordionItemTitleProps } from './AccordionItemTitle';
|
||||
import { IAccordionItemBodyProps } from './AccordionItemBody';
|
||||
|
||||
export interface IAccordionItemProps {
|
||||
accordion?: boolean;
|
||||
onClick?: () => void;
|
||||
expanded?: boolean;
|
||||
children?: JSX.Element[];
|
||||
className?: string;
|
||||
hideBodyClassName?: string;
|
||||
id?:string;
|
||||
}
|
||||
|
||||
|
||||
export default class AccordionItem extends React.Component<IAccordionItemProps, {}> {
|
||||
public static defaultProps = {
|
||||
accordion: true,
|
||||
expanded: false,
|
||||
onClick: () => {},
|
||||
className: 'accordion__item',
|
||||
hideBodyClassName: null,
|
||||
};
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.renderChildren = this.renderChildren.bind(this);
|
||||
}
|
||||
public renderChildren() {
|
||||
const { accordion, expanded, onClick, children } = this.props;
|
||||
const itemUuid = this.props.id;
|
||||
|
||||
return React.Children.map(children, (item) => {
|
||||
|
||||
|
||||
var child = item as React.ReactElement<any>;
|
||||
if (child.props.accordionElementName === 'AccordionItemTitle') {
|
||||
const itemProps : IAccordionItemTitleProps = {};
|
||||
itemProps.expanded = expanded;
|
||||
itemProps.key = 'title';
|
||||
itemProps.id = `accordion__title-${itemUuid}`;
|
||||
itemProps.ariaControls = `accordion__body-${itemUuid}`;
|
||||
itemProps.onClick = onClick;
|
||||
itemProps.role = accordion ? 'tab' : 'button';
|
||||
|
||||
return React.cloneElement(child, itemProps);
|
||||
} else if (child.props.accordionElementName === 'AccordionItemBody') {
|
||||
const itemProps : IAccordionItemBodyProps = {};
|
||||
itemProps.expanded = expanded;
|
||||
itemProps.key = 'body';
|
||||
itemProps.id = `accordion__body-${itemUuid}`;
|
||||
itemProps.role = accordion ? 'tabpanel' : '';
|
||||
|
||||
return React.cloneElement(child, itemProps);
|
||||
}
|
||||
|
||||
return item;
|
||||
});
|
||||
}
|
||||
|
||||
public render() {
|
||||
const { expanded, className } = this.props;
|
||||
|
||||
return (
|
||||
<div className={className}>
|
||||
{this.renderChildren()}
|
||||
</div>
|
||||
);
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,59 @@
|
|||
import * as React from 'react';
|
||||
|
||||
|
||||
export interface IAccordionItemBodyProps {
|
||||
id?: string;
|
||||
expanded?: boolean;
|
||||
ariaControls?: string;
|
||||
children?: JSX.Element|JSX.Element[];
|
||||
className?: string;
|
||||
hideBodyClassName?: string;
|
||||
role?: string;
|
||||
key?: string;
|
||||
}
|
||||
|
||||
export default class AccordionItemBody extends React.Component<IAccordionItemBodyProps, {}> {
|
||||
public static defaultProps = {
|
||||
id: '',
|
||||
expanded: false,
|
||||
className: 'accordion__body',
|
||||
hideBodyClassName: 'accordion__body--hidden',
|
||||
role: '',
|
||||
accordionElementName: 'AccordionItemBody',
|
||||
};
|
||||
constructor(props) {
|
||||
super(props);
|
||||
|
||||
}
|
||||
public render() {
|
||||
const { id, expanded, children, className, hideBodyClassName, role } = this.props;
|
||||
const ariaHidden = !expanded;
|
||||
if(expanded)
|
||||
{
|
||||
return (
|
||||
<div // eslint-disable-line jsx-a11y/no-static-element-interactions
|
||||
id={id}
|
||||
className={className}
|
||||
aria-hidden={ariaHidden}
|
||||
role={role}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (
|
||||
<div // eslint-disable-line jsx-a11y/no-static-element-interactions
|
||||
id={id}
|
||||
className={hideBodyClassName}
|
||||
aria-hidden={ariaHidden}
|
||||
role={role}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,56 @@
|
|||
import * as React from 'react';
|
||||
|
||||
|
||||
export interface IAccordionItemTitleProps {
|
||||
id?: string;
|
||||
expanded?: boolean;
|
||||
onClick?: () => void;
|
||||
ariaControls?: string;
|
||||
children?: JSX.Element|JSX.Element[];
|
||||
className?: string;
|
||||
hideBodyClassName?: string;
|
||||
role?: string;
|
||||
key?: string;
|
||||
accordionElementName?: string;
|
||||
}
|
||||
|
||||
export default class AccordionItemTitle extends React.Component<IAccordionItemTitleProps, {}> {
|
||||
public static defaultProps = {
|
||||
id: '',
|
||||
expanded: false,
|
||||
onClick: () => {},
|
||||
ariaControls: '',
|
||||
className: 'accordion__title',
|
||||
hideBodyClassName: null,
|
||||
role: '',
|
||||
accordionElementName: 'AccordionItemTitle',
|
||||
};
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.handleKeyPress = this.handleKeyPress.bind(this);
|
||||
}
|
||||
public handleKeyPress(evt) {
|
||||
const { onClick } = this.props;
|
||||
if (evt.charCode === 13 || evt.charCode === 32) {
|
||||
onClick();
|
||||
}
|
||||
}
|
||||
public render() {
|
||||
const { id, expanded, ariaControls, onClick, children, className, role, hideBodyClassName } = this.props;
|
||||
|
||||
return (
|
||||
<div // eslint-disable-line jsx-a11y/no-static-element-interactions
|
||||
id={id}
|
||||
aria-expanded={expanded}
|
||||
aria-controls={ariaControls}
|
||||
className={className}
|
||||
onClick={onClick}
|
||||
role={role}
|
||||
tabIndex={0}
|
||||
onKeyPress={this.handleKeyPress}
|
||||
>
|
||||
{children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,11 @@
|
|||
import Accordion from './Accordion';
|
||||
import AccordionItem from './AccordionItem';
|
||||
import AccordionItemTitle from './AccordionItemTitle';
|
||||
import AccordionItemBody from './AccordionItemBody';
|
||||
|
||||
export {
|
||||
Accordion,
|
||||
AccordionItem,
|
||||
AccordionItemTitle,
|
||||
AccordionItemBody,
|
||||
};
|
|
@ -0,0 +1,50 @@
|
|||
import * as React from 'react';
|
||||
|
||||
export interface ITabContentProps {
|
||||
for: string|number;
|
||||
visibleStyle?: object;
|
||||
isVisible?: boolean;
|
||||
renderActiveTabContentOnly?: boolean;
|
||||
disableInlineStyles?: boolean;
|
||||
className?: string;
|
||||
visibleClassName?: string;
|
||||
style?: string;
|
||||
displayName?: string;
|
||||
itemKey?:string;
|
||||
}
|
||||
|
||||
|
||||
export const styles = {
|
||||
hidden: {
|
||||
display: 'none',
|
||||
},
|
||||
};
|
||||
|
||||
export default class TabContent extends React.Component<ITabContentProps, {}> {
|
||||
public static defaultProps = {
|
||||
displayName: 'TabContent'
|
||||
};
|
||||
|
||||
public canRenderChildren() {
|
||||
return this.props.isVisible || !this.props.renderActiveTabContentOnly;
|
||||
}
|
||||
|
||||
public render() {
|
||||
const visibleStyle = this.props.visibleStyle || {};
|
||||
const displayStyle = this.props.isVisible ? visibleStyle : styles.hidden;
|
||||
const disableInlineStyles = this.props.disableInlineStyles;
|
||||
const className = this.props.className;
|
||||
const visibleClassName =
|
||||
this.props.visibleClassName;
|
||||
const style = this.props.style;
|
||||
|
||||
return (
|
||||
<div
|
||||
className={className}
|
||||
style={{...displayStyle } }
|
||||
>
|
||||
{this.canRenderChildren() && this.props.children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,117 @@
|
|||
import * as React from 'react';
|
||||
|
||||
export interface ITabLinkProps {
|
||||
id?:string;
|
||||
to: string|number;
|
||||
handleSelect?: (to,namespace) => void;
|
||||
isActive?: boolean;
|
||||
namespace?: string;
|
||||
activeStyle?: object;
|
||||
disableInlineStyles?: boolean;
|
||||
className?: string;
|
||||
activeClassName?: string;
|
||||
style?: object;
|
||||
onClick?: (any) => void;
|
||||
displayName?: string;
|
||||
|
||||
}
|
||||
|
||||
|
||||
export const defaultActiveStyle = {
|
||||
fontWeight: 'bold',
|
||||
};
|
||||
|
||||
export default class TabLink extends React.Component<ITabLinkProps, {}> {
|
||||
public static defaultProps = {
|
||||
displayName: 'TabLink'
|
||||
};
|
||||
public handleClick = e => {
|
||||
|
||||
this.props.handleSelect(this.props.to, this.props.namespace);
|
||||
if(this.props.onClick)
|
||||
{
|
||||
this.props.onClick(e);
|
||||
}
|
||||
else
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
public handleKeyPress = e => {
|
||||
if (e.key === ' ' || e.key === 'Enter') {
|
||||
e.preventDefault();
|
||||
|
||||
this.handleClick(e);
|
||||
}
|
||||
if(e.key === 'Tab')
|
||||
{
|
||||
this.handleClick(e);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public render() {
|
||||
const {
|
||||
id,
|
||||
to,
|
||||
handleSelect,
|
||||
isActive,
|
||||
namespace,
|
||||
activeStyle,
|
||||
disableInlineStyles,
|
||||
className,
|
||||
activeClassName,
|
||||
style,
|
||||
displayName,
|
||||
...passedProps
|
||||
} = this.props;
|
||||
|
||||
const _className = className;
|
||||
const _activeClassName = activeClassName;
|
||||
|
||||
const _style = {
|
||||
...style,
|
||||
...((isActive && (activeStyle || defaultActiveStyle)) || {}),
|
||||
};
|
||||
|
||||
if(isActive)
|
||||
{
|
||||
return (
|
||||
<div
|
||||
id={id}
|
||||
className={_activeClassName}
|
||||
style={_style}
|
||||
tabIndex={0}
|
||||
{...passedProps}
|
||||
onKeyPress={this.handleKeyPress}
|
||||
onKeyDown={this.handleKeyPress}
|
||||
onClick={this.handleClick}
|
||||
>
|
||||
{this.props.children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
else
|
||||
{
|
||||
return (
|
||||
<div
|
||||
id={id}
|
||||
className={_className}
|
||||
style={_style}
|
||||
tabIndex={0}
|
||||
{...passedProps}
|
||||
onKeyPress={this.handleKeyPress}
|
||||
onKeyDown={this.handleKeyPress}
|
||||
onClick={this.handleClick}
|
||||
|
||||
>
|
||||
{this.props.children}
|
||||
</div>
|
||||
);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
|
@ -0,0 +1,165 @@
|
|||
import * as React from 'react';
|
||||
|
||||
export interface ITabsProps {
|
||||
name?: string;
|
||||
handleSelect?: (any) => void;
|
||||
selectedTab?: string;
|
||||
activeLinkStyle?: object;
|
||||
visibleTabStyle?: object;
|
||||
disableInlineStyles?: boolean;
|
||||
renderActiveTabContentOnly?: boolean;
|
||||
className?: string;
|
||||
style?:object;
|
||||
displayName?:string;
|
||||
}
|
||||
export interface ITabsState {
|
||||
selectedTab: any;
|
||||
}
|
||||
|
||||
export default class Tabs extends React.Component<ITabsProps, ITabsState> {
|
||||
public defaultTab;
|
||||
|
||||
constructor(props) {
|
||||
super(props);
|
||||
this.state = {
|
||||
selectedTab: this.props.selectedTab,
|
||||
};
|
||||
this.findDefault(this.props.children);
|
||||
this.handleFocus = this.handleFocus.bind(this);
|
||||
}
|
||||
public handleSelect = tab => {
|
||||
this.setState({
|
||||
selectedTab: tab,
|
||||
});
|
||||
}
|
||||
|
||||
public handleFocus(evt) {
|
||||
|
||||
if(evt.target.id === '')
|
||||
{
|
||||
evt.target.children[0].children[0].focus();
|
||||
evt.target.children[0].children[0].click();
|
||||
|
||||
|
||||
}
|
||||
else
|
||||
{
|
||||
evt.target.click();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
public findDefault(children) {
|
||||
/* if (this.defaultTab !== undefined) {
|
||||
return this.defaultTab;
|
||||
}*/
|
||||
|
||||
let firstLink;
|
||||
let firstDefaultLink;
|
||||
|
||||
const traverse = child => {
|
||||
|
||||
if (!child || !child.props || firstDefaultLink) {
|
||||
return;
|
||||
}
|
||||
/* if (child.type.displayName === 'TabLink') {
|
||||
firstLink = firstLink || child.props.to;
|
||||
firstDefaultLink =
|
||||
firstDefaultLink || (child.props.default && child.props.to);
|
||||
}*/
|
||||
|
||||
React.Children.forEach(child.props.children, traverse);
|
||||
};
|
||||
|
||||
React.Children.forEach(children, traverse);
|
||||
|
||||
this.defaultTab = firstDefaultLink || firstLink;
|
||||
return this.defaultTab;
|
||||
}
|
||||
|
||||
public transformChildren(
|
||||
children,
|
||||
{
|
||||
handleSelect,
|
||||
selectedTab,
|
||||
activeLinkStyle,
|
||||
visibleTabStyle,
|
||||
disableInlineStyles,
|
||||
name,
|
||||
},
|
||||
) {
|
||||
/* if (typeof children !== 'object') {
|
||||
return children;
|
||||
}*/
|
||||
|
||||
return React.Children.map(children, (child, index) => {
|
||||
let childitem = child as React.ReactElement<any>;
|
||||
/* if (!childitem) {
|
||||
return childitem;
|
||||
}*/
|
||||
if (childitem.props.displayName === 'TabLink') {
|
||||
return React.cloneElement(childitem, {
|
||||
handleSelect,
|
||||
isActive: childitem.props.to === this.state.selectedTab,
|
||||
activeStyle: activeLinkStyle,
|
||||
disableInlineStyles,
|
||||
namespace: name,
|
||||
});
|
||||
}
|
||||
if (childitem.props.displayName === 'TabContent') {
|
||||
return React.cloneElement(childitem, {
|
||||
isVisible: childitem.props.for === this.state.selectedTab,
|
||||
visibleStyle: visibleTabStyle,
|
||||
disableInlineStyles,
|
||||
renderActiveTabContentOnly: this.props.renderActiveTabContentOnly,
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
return React.cloneElement(
|
||||
childitem,
|
||||
{},
|
||||
this.transformChildren(childitem.props && childitem.props.children, {
|
||||
handleSelect,
|
||||
selectedTab,
|
||||
activeLinkStyle,
|
||||
visibleTabStyle,
|
||||
disableInlineStyles,
|
||||
name,
|
||||
}),
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
public render() {
|
||||
const {
|
||||
handleSelect: handleSelectProp,
|
||||
selectedTab: selectedTabProp,
|
||||
activeLinkStyle,
|
||||
visibleTabStyle,
|
||||
disableInlineStyles,
|
||||
name,
|
||||
renderActiveTabContentOnly, // eslint-disable-line
|
||||
...divProps
|
||||
} = this.props;
|
||||
const handleSelect = handleSelectProp || this.handleSelect;
|
||||
const selectedTab = this.state.selectedTab ;
|
||||
|
||||
const children = this.transformChildren(this.props.children, {
|
||||
handleSelect,
|
||||
selectedTab,
|
||||
activeLinkStyle,
|
||||
visibleTabStyle,
|
||||
disableInlineStyles,
|
||||
name: name,
|
||||
});
|
||||
|
||||
return <div {...divProps} tabIndex={0} onFocus={this.handleFocus} ref="tabs">{children}</div>;
|
||||
}
|
||||
}
|
|
@ -0,0 +1,9 @@
|
|||
import Tabs from './Tabs';
|
||||
import TabLink from './TabLink';
|
||||
import TabContent from './TabContent';
|
||||
|
||||
export {
|
||||
Tabs,
|
||||
TabLink,
|
||||
TabContent
|
||||
};
|
10
samples/react-accordion-with-richtext/src/webparts/tabAccordion/loc/en-us.js
vendored
Normal file
10
samples/react-accordion-with-richtext/src/webparts/tabAccordion/loc/en-us.js
vendored
Normal file
|
@ -0,0 +1,10 @@
|
|||
define([], function() {
|
||||
return {
|
||||
"PropertyPaneDescription": "Customize your Tab Accordion",
|
||||
"BasicGroupName": "Tabs",
|
||||
"TitleFieldLabel": "Title",
|
||||
"ManageAccordion": "Manage Tabs",
|
||||
"Type": "Type",
|
||||
"Tabs": "Tabs",
|
||||
}
|
||||
});
|
13
samples/react-accordion-with-richtext/src/webparts/tabAccordion/loc/mystrings.d.ts
vendored
Normal file
13
samples/react-accordion-with-richtext/src/webparts/tabAccordion/loc/mystrings.d.ts
vendored
Normal file
|
@ -0,0 +1,13 @@
|
|||
declare interface ITabAccordionWebPartStrings {
|
||||
PropertyPaneDescription: string;
|
||||
BasicGroupName: string;
|
||||
TitleFieldLabel: string;
|
||||
ManageAccordion: string;
|
||||
Accordion: string;
|
||||
Type: string;
|
||||
}
|
||||
|
||||
declare module 'TabAccordionWebPartStrings' {
|
||||
const strings: ITabAccordionWebPartStrings;
|
||||
export = strings;
|
||||
}
|
Binary file not shown.
After Width: | Height: | Size: 10 KiB |
Binary file not shown.
After Width: | Height: | Size: 542 B |
|
@ -0,0 +1,35 @@
|
|||
{
|
||||
"extends": "./node_modules/@microsoft/rush-stack-compiler-3.9/includes/tsconfig-web.json",
|
||||
"compilerOptions": {
|
||||
"target": "es5",
|
||||
"forceConsistentCasingInFileNames": true,
|
||||
"module": "esnext",
|
||||
"moduleResolution": "node",
|
||||
"jsx": "react",
|
||||
"declaration": true,
|
||||
"sourceMap": true,
|
||||
"experimentalDecorators": true,
|
||||
"skipLibCheck": true,
|
||||
"outDir": "lib",
|
||||
"inlineSources": false,
|
||||
"strictNullChecks": false,
|
||||
"noUnusedLocals": false,
|
||||
"typeRoots": [
|
||||
"./node_modules/@types",
|
||||
"./node_modules/@microsoft"
|
||||
],
|
||||
"types": [
|
||||
"webpack-env"
|
||||
],
|
||||
"lib": [
|
||||
"es5",
|
||||
"dom",
|
||||
"es2015.collection",
|
||||
"es2015.promise"
|
||||
]
|
||||
},
|
||||
"include": [
|
||||
"src/**/*.ts",
|
||||
"src/**/*.tsx"
|
||||
]
|
||||
}
|
|
@ -0,0 +1,29 @@
|
|||
{
|
||||
"extends": "./node_modules/@microsoft/sp-tslint-rules/base-tslint.json",
|
||||
"rules": {
|
||||
"class-name": false,
|
||||
"export-name": false,
|
||||
"forin": false,
|
||||
"label-position": false,
|
||||
"member-access": true,
|
||||
"no-arg": false,
|
||||
"no-console": false,
|
||||
"no-construct": false,
|
||||
"no-duplicate-variable": true,
|
||||
"no-eval": false,
|
||||
"no-function-expression": true,
|
||||
"no-internal-module": true,
|
||||
"no-shadowed-variable": true,
|
||||
"no-switch-case-fall-through": true,
|
||||
"no-unnecessary-semicolons": true,
|
||||
"no-unused-expression": true,
|
||||
"no-with-statement": true,
|
||||
"semicolon": true,
|
||||
"trailing-comma": false,
|
||||
"typedef": false,
|
||||
"typedef-whitespace": false,
|
||||
"use-named-parameter": true,
|
||||
"variable-name": false,
|
||||
"whitespace": false
|
||||
}
|
||||
}
|
|
@ -3723,9 +3723,9 @@
|
|||
"dev": true
|
||||
},
|
||||
"async": {
|
||||
"version": "2.6.3",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz",
|
||||
"integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==",
|
||||
"version": "2.6.4",
|
||||
"resolved": "https://registry.npmjs.org/async/-/async-2.6.4.tgz",
|
||||
"integrity": "sha512-mzo5dfJYwAn29PeiJ0zvwTo04zj8HDJj0Mn8TD7sno7q12prdbnasKJHhkm2c1LgrhlJ0teaea8860oxi51mGA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"lodash": "^4.17.14"
|
||||
|
@ -8609,22 +8609,35 @@
|
|||
}
|
||||
},
|
||||
"handlebars": {
|
||||
"version": "4.7.2",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.2.tgz",
|
||||
"integrity": "sha512-4PwqDL2laXtTWZghzzCtunQUTLbo31pcCJrd/B/9JP8XbhVzpS5ZXuKqlOzsd1rtcaLo4KqAn8nl8mkknS4MHw==",
|
||||
"version": "4.7.7",
|
||||
"resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.7.tgz",
|
||||
"integrity": "sha512-aAcXm5OAfE/8IXkcZvCepKU3VzW1/39Fb5ZuqMtgI/hT8X2YgoMvBY5dLhq/cpOvw7Lk1nK/UF71aLG/ZnVYRA==",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "^1.2.5",
|
||||
"neo-async": "^2.6.0",
|
||||
"optimist": "^0.6.1",
|
||||
"source-map": "^0.6.1",
|
||||
"uglify-js": "^3.1.4"
|
||||
"uglify-js": "^3.1.4",
|
||||
"wordwrap": "^1.0.0"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "1.2.6",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.6.tgz",
|
||||
"integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==",
|
||||
"dev": true
|
||||
},
|
||||
"source-map": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz",
|
||||
"integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "1.0.0",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz",
|
||||
"integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
|
@ -13162,24 +13175,6 @@
|
|||
"is-wsl": "^1.1.0"
|
||||
}
|
||||
},
|
||||
"optimist": {
|
||||
"version": "0.6.1",
|
||||
"resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz",
|
||||
"integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=",
|
||||
"dev": true,
|
||||
"requires": {
|
||||
"minimist": "~0.0.1",
|
||||
"wordwrap": "~0.0.2"
|
||||
},
|
||||
"dependencies": {
|
||||
"minimist": {
|
||||
"version": "0.0.10",
|
||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz",
|
||||
"integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=",
|
||||
"dev": true
|
||||
}
|
||||
}
|
||||
},
|
||||
"optionator": {
|
||||
"version": "0.8.3",
|
||||
"resolved": "https://registry.npmjs.org/optionator/-/optionator-0.8.3.tgz",
|
||||
|
@ -17353,12 +17348,6 @@
|
|||
"integrity": "sha512-Hz/mrNwitNRh/HUAtM/VT/5VH+ygD6DV7mYKZAtHOrbs8U7lvPS6xf7EJKMF0uW1KJCl0H701g3ZGus+muE5vQ==",
|
||||
"dev": true
|
||||
},
|
||||
"wordwrap": {
|
||||
"version": "0.0.3",
|
||||
"resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz",
|
||||
"integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=",
|
||||
"dev": true
|
||||
},
|
||||
"worker-farm": {
|
||||
"version": "1.7.0",
|
||||
"resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz",
|
||||
|
|
|
@ -0,0 +1,39 @@
|
|||
// For more information on how to run this SPFx project in a VS Code Remote Container, please visit https://aka.ms/spfx-devcontainer
|
||||
{
|
||||
"name": "SPFx 1.14.0",
|
||||
"image": "docker.io/m365pnp/spfx:1.14.0",
|
||||
// Set *default* container specific settings.json values on container create.
|
||||
"settings": {},
|
||||
// Add the IDs of extensions you want installed when the container is created.
|
||||
"extensions": [
|
||||
"editorconfig.editorconfig",
|
||||
"dbaeumer.vscode-eslint"
|
||||
],
|
||||
// Use 'forwardPorts' to make a list of ports inside the container available locally.
|
||||
"forwardPorts": [
|
||||
4321,
|
||||
35729
|
||||
],
|
||||
"portsAttributes": {
|
||||
"4321": {
|
||||
"protocol": "https",
|
||||
"label": "Manifest",
|
||||
"onAutoForward": "silent",
|
||||
"requireLocalPort": true
|
||||
},
|
||||
// Not needed for SPFx>= 1.12.1
|
||||
// "5432": {
|
||||
// "protocol": "https",
|
||||
// "label": "Workbench",
|
||||
// "onAutoForward": "silent"
|
||||
// },
|
||||
"35729": {
|
||||
"protocol": "https",
|
||||
"label": "LiveReload",
|
||||
"onAutoForward": "silent",
|
||||
"requireLocalPort": true
|
||||
}
|
||||
},
|
||||
"postCreateCommand": "bash .devcontainer/spfx-startup.sh",
|
||||
"remoteUser": "node"
|
||||
}
|
|
@ -0,0 +1,33 @@
|
|||
echo
|
||||
echo -e "\e[1;94mInstalling Node dependencies\e[0m"
|
||||
npm install
|
||||
|
||||
## commands to create dev certificate and copy it to the root folder of the project
|
||||
echo
|
||||
echo -e "\e[1;94mGenerating dev certificate\e[0m"
|
||||
gulp trust-dev-cert
|
||||
|
||||
# Convert the generated PEM certificate to a CER certificate
|
||||
openssl x509 -inform PEM -in ~/.rushstack/rushstack-serve.pem -outform DER -out ./spfx-dev-cert.cer
|
||||
|
||||
# Copy the PEM ecrtificate for non-Windows hosts
|
||||
cp ~/.rushstack/rushstack-serve.pem ./spfx-dev-cert.pem
|
||||
|
||||
## add *.cer to .gitignore to prevent certificates from being saved in repo
|
||||
if ! grep -Fxq '*.cer' ./.gitignore
|
||||
then
|
||||
echo "# .CER Certificates" >> .gitignore
|
||||
echo "*.cer" >> .gitignore
|
||||
fi
|
||||
|
||||
## add *.pem to .gitignore to prevent certificates from being saved in repo
|
||||
if ! grep -Fxq '*.pem' ./.gitignore
|
||||
then
|
||||
echo "# .PEM Certificates" >> .gitignore
|
||||
echo "*.pem" >> .gitignore
|
||||
fi
|
||||
|
||||
echo
|
||||
echo -e "\e[1;92mReady!\e[0m"
|
||||
|
||||
echo -e "\n\e[1;94m**********\nOptional: if you plan on using gulp serve, don't forget to add the container certificate to your local machine. Please visit https://aka.ms/spfx-devcontainer for more information\n**********"
|
|
@ -0,0 +1,37 @@
|
|||
# Logs
|
||||
logs
|
||||
*.log
|
||||
npm-debug.log*
|
||||
|
||||
# Dependency directories
|
||||
node_modules
|
||||
|
||||
# Build generated files
|
||||
dist
|
||||
lib
|
||||
release
|
||||
solution
|
||||
temp
|
||||
*.sppkg
|
||||
|
||||
# Coverage directory used by tools like istanbul
|
||||
coverage
|
||||
|
||||
# OSX
|
||||
.DS_Store
|
||||
|
||||
# Visual Studio files
|
||||
.ntvs_analysis.dat
|
||||
.vs
|
||||
bin
|
||||
obj
|
||||
|
||||
# Resx Generated Code
|
||||
*.resx.ts
|
||||
|
||||
# Styles Generated Code
|
||||
*.scss.ts
|
||||
# .CER Certificates
|
||||
*.cer
|
||||
# .PEM Certificates
|
||||
*.pem
|
|
@ -0,0 +1,16 @@
|
|||
!dist
|
||||
config
|
||||
|
||||
gulpfile.js
|
||||
|
||||
release
|
||||
src
|
||||
temp
|
||||
|
||||
tsconfig.json
|
||||
tslint.json
|
||||
|
||||
*.log
|
||||
|
||||
.yo-rc.json
|
||||
.vscode
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"@microsoft/generator-sharepoint": {
|
||||
"plusBeta": false,
|
||||
"isCreatingSolution": true,
|
||||
"version": "1.14.0",
|
||||
"libraryName": "react-adaptive-card-host-control",
|
||||
"libraryId": "f829f44a-9afb-4ec6-b1a3-bc4e22b43d30",
|
||||
"environment": "spo",
|
||||
"packageManager": "npm",
|
||||
"solutionName": "react-adaptive-card-host-control",
|
||||
"solutionShortDescription": "react-adaptive-card-host-control description",
|
||||
"skipFeatureDeployment": true,
|
||||
"isDomainIsolated": false,
|
||||
"componentType": "webpart"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,93 @@
|
|||
# Adaptive Card Host control
|
||||
|
||||
## Summary
|
||||
|
||||
This web part provides an example of how to use the "AdaptiveCardHost" component present in the PnP React Controls library.
|
||||
|
||||
For more information about the component, please see the related page here: [https://pnp.github.io/sp-dev-fx-controls-react/controls/AdaptiveCardHost/](https://pnp.github.io/sp-dev-fx-controls-react/controls/AdaptiveCardHost/)
|
||||
|
||||
### Web Part in action
|
||||
|
||||
![picture of the web part in action](assets/AdaptiveCardHost.gif)
|
||||
|
||||
#### Web Part in action as Teams Tab
|
||||
|
||||
![picture of the web part in action as Teams Tab](assets/AdaptiveCardHostTeams.gif)
|
||||
|
||||
## Compatibility
|
||||
|
||||
![SPFx 1.14](https://img.shields.io/badge/SPFx-1.14-green.svg)
|
||||
![Node.js v14 | v12](https://img.shields.io/badge/Node.js-v14%20%7C%20v12-green.svg)
|
||||
![Compatible with SharePoint Online](https://img.shields.io/badge/SharePoint%20Online-Compatible-green.svg)
|
||||
![Does not work with SharePoint 2019](https://img.shields.io/badge/SharePoint%20Server%202019-Incompatible-red.svg "SharePoint Server 2019 requires SPFx 1.4.1 or lower")
|
||||
![Does not work with SharePoint 2016 (Feature Pack 2)](https://img.shields.io/badge/SharePoint%20Server%202016%20(Feature%20Pack%202)-Incompatible-red.svg "SharePoint Server 2016 Feature Pack 2 requires SPFx 1.1")
|
||||
![Local Workbench Unsupported](https://img.shields.io/badge/Local%20Workbench-Unsupported-red.svg "Local workbench is no longer available as of SPFx 1.13 and above")
|
||||
![Hosted Workbench Compatible](https://img.shields.io/badge/Hosted%20Workbench-Compatible-green.svg)
|
||||
![Compatible with Remote Containers](https://img.shields.io/badge/Remote%20Containers-Compatible-green.svg)
|
||||
|
||||
## Applies to
|
||||
|
||||
- [SharePoint Framework](https://aka.ms/spfx)
|
||||
- [Microsoft 365 tenant](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
|
||||
|
||||
> Get your own free development tenant by subscribing to [Microsoft 365 developer program](http://aka.ms/o365devprogram)
|
||||
|
||||
## Solution
|
||||
|
||||
Solution|Author(s)
|
||||
--------|---------
|
||||
react-adaptive-card-host-control | [Fabio Franzini](https://www.linkedin.com/in/fabiofranzini/) ([@franzinifabio](https://twitter.com/franzinifabio)), Apvee Solutions
|
||||
|
||||
## Version history
|
||||
|
||||
Version|Date|Comments
|
||||
-------|----|--------
|
||||
1.0|March 9, 2022|Initial release
|
||||
|
||||
## Minimal Path to Awesome
|
||||
|
||||
- Clone this repository (or [download this solution as a .ZIP file](https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-adaptive-card-host-control) then unzip it)
|
||||
- From your command line, change your current directory to the directory containing this sample (`react-adaptive-card-host-control`, located under `samples`)
|
||||
- `npm install`
|
||||
- `gulp serve`
|
||||
|
||||
> This sample can also be opened with [VS Code Remote Development](https://code.visualstudio.com/docs/remote/remote-overview). Visit <https://aka.ms/spfx-devcontainer> for further instructions.
|
||||
|
||||
|
||||
## Features
|
||||
|
||||
This web part illustrates the following concepts:
|
||||
|
||||
- how to use the PnP Adaptive Card Host component
|
||||
|
||||
## References
|
||||
|
||||
- [AdaptiveCardHost Component](https://pnp.github.io/sp-dev-fx-controls-react/controls/AdaptiveCardHost/)
|
||||
- [Getting started with SharePoint Framework](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/set-up-your-developer-tenant)
|
||||
- [Building for Microsoft teams](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/build-for-teams-overview)
|
||||
- [Use Microsoft Graph in your solution](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/using-microsoft-graph-apis)
|
||||
- [Publish SharePoint Framework applications to the Marketplace](https://docs.microsoft.com/en-us/sharepoint/dev/spfx/publish-to-marketplace-overview)
|
||||
- [Microsoft 365 Patterns and Practices](https://aka.ms/m365pnp) - Guidance, tooling, samples and open-source controls for your Microsoft 365 development
|
||||
|
||||
## Help
|
||||
|
||||
We do not support samples, but this community is always willing to help, and we want to improve these samples. We use GitHub to track issues, which makes it easy for community members to volunteer their time and help resolve issues.
|
||||
|
||||
If you're having issues building the solution, please run [spfx doctor](https://pnp.github.io/cli-microsoft365/cmd/spfx/spfx-doctor/) from within the solution folder to diagnose incompatibility issues with your environment.
|
||||
|
||||
You can try looking at [issues related to this sample](https://github.com/pnp/sp-dev-fx-webparts/issues?q=label%3A%22sample%3A%20react-adaptive-card-host-control%22) to see if anybody else is having the same issues.
|
||||
|
||||
You can also try looking at [discussions related to this sample](https://github.com/pnp/sp-dev-fx-webparts/discussions?discussions_q=react-adaptive-card-host-control) and see what the community is saying.
|
||||
|
||||
If you encounter any issues while using this sample, [create a new issue](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Abug-suspected%2Csample%3A%20react-adaptive-card-host-control&template=bug-report.yml&sample=react-adaptive-card-host-control&authors=@fabiofranzini&title=react-adaptive-card-host-control%20-%20).
|
||||
|
||||
For questions regarding this sample, [create a new question](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aquestion%2Csample%3A%20react-adaptive-card-host-control&template=question.yml&sample=react-adaptive-card-host-control&authors=@fabiofranzini&title=react-adaptive-card-host-control%20-%20).
|
||||
|
||||
Finally, if you have an idea for improvement, [make a suggestion](https://github.com/pnp/sp-dev-fx-webparts/issues/new?assignees=&labels=Needs%3A+Triage+%3Amag%3A%2Ctype%3Aenhancement%2Csample%3A%20react-adaptive-card-host-control&template=suggestion.yml&sample=react-adaptive-card-host-control&authors=@fabiofranzini&title=react-adaptive-card-host-control%20-%20).
|
||||
|
||||
## Disclaimer
|
||||
|
||||
**THIS CODE IS PROVIDED *AS IS* WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING ANY IMPLIED WARRANTIES OF FITNESS FOR A PARTICULAR PURPOSE, MERCHANTABILITY, OR NON-INFRINGEMENT.**
|
||||
|
||||
|
||||
<img src="https://pnptelemetry.azurewebsites.net/sp-dev-fx-webparts/samples/react-adaptive-card-host-control" />
|
Binary file not shown.
After Width: | Height: | Size: 5.2 MiB |
Binary file not shown.
After Width: | Height: | Size: 17 MiB |
|
@ -0,0 +1,56 @@
|
|||
[
|
||||
{
|
||||
"name": "pnp-sp-dev-spfx-web-parts-react-adaptive-card-host-control",
|
||||
"source": "pnp",
|
||||
"title": "Adaptive Card Host control",
|
||||
"shortDescription": "This web part provides an example of how to use the AdaptiveCardHost component present in the PnP React Controls library.",
|
||||
"url": "https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-adaptive-card-host-control",
|
||||
"downloadUrl": "https://pnp.github.io/download-partial/?url=https://github.com/pnp/sp-dev-fx-webparts/tree/main/samples/react-adaptive-card-host-control",
|
||||
"longDescription": [
|
||||
"This web part provides an example of how to use the AdaptiveCardHost component present in the PnP React Controls library."
|
||||
],
|
||||
"creationDateTime": "2022-03-09",
|
||||
"updateDateTime": "2022-03-09",
|
||||
"products": [
|
||||
"SharePoint"
|
||||
],
|
||||
"metadata": [
|
||||
{
|
||||
"key": "CLIENT-SIDE-DEV",
|
||||
"value": "React"
|
||||
},
|
||||
{
|
||||
"key": "SPFX-VERSION",
|
||||
"value": "1.14"
|
||||
}
|
||||
],
|
||||
"thumbnails": [
|
||||
{
|
||||
"type": "image",
|
||||
"order": 100,
|
||||
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-adaptive-card-host-control/assets/AdaptiveCardHost.gif",
|
||||
"alt": "Web Part Preview"
|
||||
},
|
||||
{
|
||||
"type": "image",
|
||||
"order": 101,
|
||||
"url": "https://github.com/pnp/sp-dev-fx-webparts/raw/main/samples/react-adaptive-card-host-control/assets/AdaptiveCardHostTeams.gif",
|
||||
"alt": "Web Part Preview"
|
||||
}
|
||||
],
|
||||
"authors": [
|
||||
{
|
||||
"gitHubAccount": "fabiofranzini",
|
||||
"pictureUrl": "https://github.com/fabiofranzini.png",
|
||||
"name": "Fabio Franzini"
|
||||
}
|
||||
],
|
||||
"references": [
|
||||
{
|
||||
"name": "Build your first SharePoint client-side web part",
|
||||
"description": "Client-side web parts are client-side components that run in the context of a SharePoint page. Client-side web parts can be deployed to SharePoint environments that support the SharePoint Framework. You can also use modern JavaScript web frameworks, tools, and libraries to build them.",
|
||||
"url": "https://docs.microsoft.com/en-us/sharepoint/dev/spfx/web-parts/get-started/build-a-hello-world-web-part"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
|
@ -0,0 +1,19 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/config.2.0.schema.json",
|
||||
"version": "2.0",
|
||||
"bundles": {
|
||||
"adaptive-card-host-demo-web-part": {
|
||||
"components": [
|
||||
{
|
||||
"entrypoint": "./lib/webparts/adaptiveCardHostDemo/AdaptiveCardHostDemoWebPart.js",
|
||||
"manifest": "./src/webparts/adaptiveCardHostDemo/AdaptiveCardHostDemoWebPart.manifest.json"
|
||||
}
|
||||
]
|
||||
}
|
||||
},
|
||||
"externals": {},
|
||||
"localizedResources": {
|
||||
"AdaptiveCardHostDemoWebPartStrings": "lib/webparts/adaptiveCardHostDemo/loc/{locale}.js",
|
||||
"ControlStrings": "node_modules/@pnp/spfx-controls-react/lib/loc/{locale}.js"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,7 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/deploy-azure-storage.schema.json",
|
||||
"workingDir": "./release/assets/",
|
||||
"account": "<!-- STORAGE ACCOUNT NAME -->",
|
||||
"container": "react-adaptive-card-host-control",
|
||||
"accessKey": "<!-- ACCESS KEY -->"
|
||||
}
|
|
@ -0,0 +1,40 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/package-solution.schema.json",
|
||||
"solution": {
|
||||
"name": "react-adaptive-card-host-control-client-side-solution",
|
||||
"id": "f829f44a-9afb-4ec6-b1a3-bc4e22b43d30",
|
||||
"version": "1.0.0.0",
|
||||
"includeClientSideAssets": true,
|
||||
"skipFeatureDeployment": true,
|
||||
"isDomainIsolated": false,
|
||||
"developer": {
|
||||
"name": "",
|
||||
"websiteUrl": "",
|
||||
"privacyUrl": "",
|
||||
"termsOfUseUrl": "",
|
||||
"mpnId": "Undefined-1.14.0"
|
||||
},
|
||||
"metadata": {
|
||||
"shortDescription": {
|
||||
"default": "react-adaptive-card-host-control description"
|
||||
},
|
||||
"longDescription": {
|
||||
"default": "react-adaptive-card-host-control description"
|
||||
},
|
||||
"screenshotPaths": [],
|
||||
"videoUrl": "",
|
||||
"categories": []
|
||||
},
|
||||
"features": [
|
||||
{
|
||||
"title": "react-adaptive-card-host-control Feature",
|
||||
"description": "The feature that activates elements of the react-adaptive-card-host-control solution.",
|
||||
"id": "23b4b6b5-f9c5-4fcd-b389-2bc97502b60b",
|
||||
"version": "1.0.0.0"
|
||||
}
|
||||
]
|
||||
},
|
||||
"paths": {
|
||||
"zippedPackage": "solution/react-adaptive-card-host-control.sppkg"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,6 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/core-build/serve.schema.json",
|
||||
"port": 4321,
|
||||
"https": true,
|
||||
"initialPage": "https://enter-your-SharePoint-site/_layouts/workbench.aspx"
|
||||
}
|
|
@ -0,0 +1,4 @@
|
|||
{
|
||||
"$schema": "https://developer.microsoft.com/json-schemas/spfx-build/write-manifests.schema.json",
|
||||
"cdnBasePath": "<!-- PATH TO CDN -->"
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
'use strict';
|
||||
|
||||
const build = require('@microsoft/sp-build-web');
|
||||
|
||||
build.addSuppression(`Warning - [sass] The local CSS class 'ms-Grid' is not camelCase and will not be type-safe.`);
|
||||
|
||||
var getTasks = build.rig.getTasks;
|
||||
build.rig.getTasks = function () {
|
||||
var result = getTasks.call(build.rig);
|
||||
|
||||
result.set('serve', result.get('serve-deprecated'));
|
||||
|
||||
return result;
|
||||
};
|
||||
|
||||
build.initialize(require('gulp'));
|
File diff suppressed because it is too large
Load Diff
|
@ -0,0 +1,34 @@
|
|||
{
|
||||
"name": "react-adaptive-card-host-control",
|
||||
"version": "0.0.1",
|
||||
"private": true,
|
||||
"main": "lib/index.js",
|
||||
"scripts": {
|
||||
"build": "gulp bundle",
|
||||
"clean": "gulp clean",
|
||||
"test": "gulp test"
|
||||
},
|
||||
"dependencies": {
|
||||
"@microsoft/sp-core-library": "1.14.0",
|
||||
"@microsoft/sp-lodash-subset": "1.14.0",
|
||||
"@microsoft/sp-office-ui-fabric-core": "1.14.0",
|
||||
"@microsoft/sp-property-pane": "1.14.0",
|
||||
"@microsoft/sp-webpart-base": "1.14.0",
|
||||
"@pnp/spfx-controls-react": "3.6.0",
|
||||
"adaptivecards": "^2.10.0",
|
||||
"office-ui-fabric-react": "7.174.1",
|
||||
"react": "16.13.1",
|
||||
"react-dom": "16.13.1"
|
||||
},
|
||||
"devDependencies": {
|
||||
"@types/react": "16.9.51",
|
||||
"@types/react-dom": "16.9.8",
|
||||
"@microsoft/sp-build-web": "1.14.0",
|
||||
"@microsoft/sp-tslint-rules": "1.14.0",
|
||||
"@microsoft/sp-module-interfaces": "1.14.0",
|
||||
"@microsoft/rush-stack-compiler-3.9": "0.4.47",
|
||||
"gulp": "~4.0.2",
|
||||
"ajv": "~5.2.2",
|
||||
"@types/webpack-env": "1.13.1"
|
||||
}
|
||||
}
|
|
@ -0,0 +1 @@
|
|||
// A file is required to be in the root of the /src directory by the TypeScript compiler
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"title": "Publish Adaptive Card Schema",
|
||||
"description": "Now that we have defined the main rules and features of the format, we need to produce a schema and publish it to GitHub. The schema will be the starting point of our reference documentation.",
|
||||
"creator": {
|
||||
"name": "Matt Hidinger",
|
||||
"profileImage": "https://pbs.twimg.com/profile_images/3647943215/d7f12830b3c17a5a9e4afcc370e3a37e_400x400.jpeg"
|
||||
},
|
||||
"createdUtc": "2017-02-14T06:08:39Z",
|
||||
"viewUrl": "https://adaptivecards.io",
|
||||
"properties": [
|
||||
{ "key": "Board", "value": "Adaptive Cards" },
|
||||
{ "key": "List", "value": "Backlog" },
|
||||
{ "key": "Assigned to", "value": "Matt Hidinger" },
|
||||
{ "key": "Due date", "value": "Not set" }
|
||||
]
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "Medium",
|
||||
"weight": "Bolder",
|
||||
"text": "${title}",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"style": "Person",
|
||||
"url": "${creator.profileImage}",
|
||||
"size": "Small"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "${creator.name}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "Created {{DATE(${string(createdUtc)}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${description}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "FactSet",
|
||||
"facts": [
|
||||
{
|
||||
"$data": "${properties}",
|
||||
"title": "${key}:",
|
||||
"value": "${value}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.ShowCard",
|
||||
"title": "Set due date",
|
||||
"card": {
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Input.Date",
|
||||
"id": "dueDate"
|
||||
},
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "comment",
|
||||
"placeholder": "Add a comment",
|
||||
"isMultiline": true
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "OK"
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.OpenUrl",
|
||||
"title": "View",
|
||||
"url": "${viewUrl}"
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.0"
|
||||
}
|
|
@ -0,0 +1,16 @@
|
|||
{
|
||||
"title": "Publish Adaptive Card Schema",
|
||||
"description": "Now that we have defined the main rules and features of the format, we need to produce a schema and publish it to GitHub. The schema will be the starting point of our reference documentation.",
|
||||
"creator": {
|
||||
"name": "Matt Hidinger",
|
||||
"profileImage": "https://pbs.twimg.com/profile_images/3647943215/d7f12830b3c17a5a9e4afcc370e3a37e_400x400.jpeg"
|
||||
},
|
||||
"createdUtc": "2017-02-14T06:08:39Z",
|
||||
"viewUrl": "https://adaptivecards.io",
|
||||
"properties": [
|
||||
{ "key": "Board", "value": "Adaptive Cards" },
|
||||
{ "key": "List", "value": "Backlog" },
|
||||
{ "key": "Assigned to", "value": "Matt Hidinger" },
|
||||
{ "key": "Due date", "value": "Not set" }
|
||||
]
|
||||
}
|
|
@ -0,0 +1,99 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "medium",
|
||||
"weight": "bolder",
|
||||
"text": "${title}",
|
||||
"style": "heading"
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"style": "person",
|
||||
"url": "${creator.profileImage}",
|
||||
"size": "small"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "bolder",
|
||||
"text": "${creator.name}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "none",
|
||||
"text": "Created {{DATE(${string(createdUtc)}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${description}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "FactSet",
|
||||
"facts": [
|
||||
{
|
||||
"$data": "${properties}",
|
||||
"title": "${key}:",
|
||||
"value": "${value}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.ShowCard",
|
||||
"title": "Set due date",
|
||||
"card": {
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Input.Date",
|
||||
"label": "Enter the due date",
|
||||
"id": "dueDate"
|
||||
},
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "comment",
|
||||
"isMultiline": true,
|
||||
"label": "Add a comment"
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "OK"
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.OpenUrl",
|
||||
"title": "View",
|
||||
"url": "${viewUrl}"
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.0"
|
||||
}
|
|
@ -0,0 +1,90 @@
|
|||
{
|
||||
"@odata.context": "https://outlook.office.com/api/beta/$metadata#Me/Events/$entity",
|
||||
"@odata.id": "https://outlook.office.com/api/beta/Users('ddfcd489-628b-40d7-b48b-57002df800e5@1717622f-1d94-4d0c-9d74-709fad664b77')/Events('AAMkAGI2TG93AAA=')",
|
||||
"@odata.etag": "W/\"nfZyf7VcrEKLNoU37KWlkQAAA0x48w==\"",
|
||||
"Id": "AAMkAGI2TG93AAA=",
|
||||
"ChangeKey": "nfZyf7VcrEKLNoU37KWlkQAAA0x48w==",
|
||||
"Categories": [],
|
||||
"CreatedDateTime": "2014-10-19T23:13:47.3959685Z",
|
||||
"LastModifiedDateTime": "2014-10-19T23:13:47.6772234Z",
|
||||
"Subject": "Contoso Campaign Status Meeting",
|
||||
"BodyPreview": "Setting up some time to review the budget and planning on the Contoso Project",
|
||||
"Body": {
|
||||
"ContentType": "HTML",
|
||||
"Content": "<html>\r\n<head>\r\n<meta http-equiv=\"Content-Type\" content=\"text/html; charset=utf-8\">\r\n</head>\r\n<body>\r\nSetting up some time to review the budget and planning on the Contoso Project\r\n</body>\r\n</html>\r\n"
|
||||
},
|
||||
"Importance": "Normal",
|
||||
"HasAttachments": false,
|
||||
"Start": {
|
||||
"DateTime": "2014-10-13T21:00:00",
|
||||
"TimeZone": "Pacific Standard Time"
|
||||
},
|
||||
"End": {
|
||||
"DateTime": "2014-10-13T22:00:00",
|
||||
"TimeZone": "Pacific Standard Time"
|
||||
},
|
||||
"Location": {
|
||||
"DisplayName": "Conf Room Bravern-2/9050",
|
||||
"Address": null
|
||||
},
|
||||
"ShowAs": "Busy",
|
||||
"IsAllDay": false,
|
||||
"IsCancelled": false,
|
||||
"IsOrganizer": true,
|
||||
"ResponseRequested": true,
|
||||
"Type": "SeriesMaster",
|
||||
"SeriesMasterId": null,
|
||||
"Attendees": [
|
||||
{
|
||||
"EmailAddress": {
|
||||
"Address": "janets@a830edad9050849NDA1.onmicrosoft.com",
|
||||
"Name": "Janet Schorr"
|
||||
},
|
||||
"Status": {
|
||||
"Response": "None",
|
||||
"Time": "0001-01-01T00:00:00Z"
|
||||
},
|
||||
"Type": "Required"
|
||||
},
|
||||
{
|
||||
"EmailAddress": {
|
||||
"Address": "pavelb@a830edad9050849NDA1.onmicrosoft.com",
|
||||
"Name": "Pavel Bansky"
|
||||
},
|
||||
"Status": {
|
||||
"Response": "None",
|
||||
"Time": "0001-01-01T00:00:00Z"
|
||||
},
|
||||
"Type": "Required"
|
||||
}
|
||||
],
|
||||
"Recurrence": {
|
||||
"Pattern": {
|
||||
"Type": "Weekly",
|
||||
"Interval": 1,
|
||||
"Month": 0,
|
||||
"Index": "First",
|
||||
"FirstDayOfWeek": "Sunday",
|
||||
"DayOfMonth": 0,
|
||||
"DaysOfWeek": [
|
||||
"Monday"
|
||||
]
|
||||
},
|
||||
"RecurrenceTimeZone": "Pacific Standard Time",
|
||||
"Range": {
|
||||
"Type": "NoEnd",
|
||||
"StartDate": "2014-10-13",
|
||||
"EndDate": "2014-11-13",
|
||||
"NumberOfOccurrences": 0
|
||||
}
|
||||
},
|
||||
"OriginalEndTimeZone": "Pacific Standard Time",
|
||||
"OriginalStartTimeZone": "Pacific Standard Time",
|
||||
"Organizer": {
|
||||
"EmailAddress": {
|
||||
"Address": "alexd@a830edad9050849NDA1.onmicrosoft.com",
|
||||
"Name": "Alex D"
|
||||
},
|
||||
"OnlineMeetingUrl": null
|
||||
}
|
||||
}
|
|
@ -0,0 +1,429 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"horizontalAlignment": "Center",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"horizontalAlignment": "Center",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/LocationGreen_A.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**Redmond**",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "8a - 12:30p",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Large",
|
||||
"separator": true,
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"horizontalAlignment": "Center",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/LocationBlue_B.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**Bellevue**",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "12:30p - 3p",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Large",
|
||||
"separator": true,
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"horizontalAlignment": "Center",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/LocationRed_C.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**Seattle**",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "8p",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"horizontalAlignment": "Left",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/Conflict.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "None",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "2:00 PM",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "1hr",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "110px"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"backgroundImage": {
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/SmallVerticalLineGray.png",
|
||||
"fillMode": "RepeatVertically",
|
||||
"horizontalAlignment": "Center"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"horizontalAlignment": "Center",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/CircleGreen_coffee.png"
|
||||
}
|
||||
],
|
||||
"width": "auto",
|
||||
"spacing": "None"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**${Subject}**",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "None",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/location_gray.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${Location.DisplayName}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ImageSet",
|
||||
"spacing": "Small",
|
||||
"imageSize": "Small",
|
||||
"images": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/person_w1.png",
|
||||
"size": "Small"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/person_m1.png",
|
||||
"size": "Small"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/person_w2.png",
|
||||
"size": "Small"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "Small",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/power_point.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**Contoso Brand Guidelines** shared by **Susan Metters**",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": 40
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "None",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "110px"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"backgroundImage": {
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/SmallVerticalLineGray.png",
|
||||
"fillMode": "RepeatVertically",
|
||||
"horizontalAlignment": "Center"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"horizontalAlignment": "Center",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/Gray_Dot.png"
|
||||
}
|
||||
],
|
||||
"width": "auto",
|
||||
"spacing": "None"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/car.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "about 45 minutes",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": 40
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "None",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "8:00 PM",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "None",
|
||||
"text": "1hr",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "110px"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"backgroundImage": {
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/SmallVerticalLineGray.png",
|
||||
"fillMode": "RepeatVertically",
|
||||
"horizontalAlignment": "Center"
|
||||
},
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"horizontalAlignment": "Center",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/CircleBlue_flight.png"
|
||||
}
|
||||
],
|
||||
"width": "auto",
|
||||
"spacing": "None"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "**Alaska Airlines AS1021 flight to Chicago**",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "None",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/location_gray.png"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "Seattle Tacoma International Airport (17801 International Blvd, Seattle, WA, United States)",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "https://messagecardplayground.azurewebsites.net/assets/SeaTacMap.png",
|
||||
"size": "Stretch"
|
||||
}
|
||||
],
|
||||
"width": 40
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.0"
|
||||
}
|
|
@ -0,0 +1,5 @@
|
|||
{
|
||||
"ApplicationInfo": {
|
||||
"title": "Application Login"
|
||||
}
|
||||
}
|
|
@ -0,0 +1,47 @@
|
|||
{
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"type": "AdaptiveCard",
|
||||
"version": "1.5",
|
||||
"body": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "Medium",
|
||||
"weight": "Bolder",
|
||||
"text": " ${ApplicationInfo.title}",
|
||||
"horizontalAlignment": "Center",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "Username",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"style": "text",
|
||||
"id": "UserVal",
|
||||
"isRequired": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "Password",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "PassVal",
|
||||
"style": "password",
|
||||
"isRequired": true
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Login",
|
||||
"data": {
|
||||
"id": "LoginVal"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"3007572097704000\"",
|
||||
"id": "_6sp3gdjcksmab9kc4rgq1aldjelm8chhcgp66phocg_20191105T150000Z",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=XzZzcDNnZGoxNjBxamdiYjRja3NtYWI5a2M0cmplYjlwNjhyM2diOXA2Z3FtOGNoaGNncDY2cGhvY2dfMjA2xO1UwMDAuZ0Bt",
|
||||
"created": "2016-12-29T06:35:05.000Z",
|
||||
"updated": "2018-04-24T14:04:50.184Z",
|
||||
"summary": "Adaptive Card design session",
|
||||
"location": "Conf Room 112/3377 (10)",
|
||||
"creator": {
|
||||
"email": "sundance@outlook.com",
|
||||
"displayName": "John Doe",
|
||||
"self": true
|
||||
},
|
||||
"organizer": {
|
||||
"email": "sundance@outlook.com",
|
||||
"displayName": "John Doe",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2019-11-05T12:30:00-08:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2019-11-05T13:30:00-08:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"recurringEventId": "_6sp3gdj160qjgbb4cksmab9kc4rjeb9p68r3gb9p6gqm8chhcgp66phocg",
|
||||
"originalStartTime": {
|
||||
"dateTime": "12:30",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"visibility": "private",
|
||||
"iCalUID": "7286a058-de9e-4a77-9268-945d21d2cf8d",
|
||||
"sequence": 4,
|
||||
"reminders": {
|
||||
"useDefault": false,
|
||||
"overrides": [
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "5"
|
||||
},
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "15"
|
||||
},
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "30"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,62 @@
|
|||
{
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"type": "AdaptiveCard",
|
||||
"version": "1.0",
|
||||
"speak": "<s>Your meeting about \"Adaptive Card design session\"<break strength='weak'/> is starting at ${formatDateTime(start.dateTime, 'HH:mm')}pm</s><s>Do you want to snooze <break strength='weak'/> or do you want to send a late notification to the attendees?</s>",
|
||||
"body": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${summary}",
|
||||
"size": "Large",
|
||||
"weight": "Bolder",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": " ${location} ",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${formatDateTime(start.dateTime, 'HH:mm')} - ${formatDateTime(end.dateTime, 'hh:mm')}",
|
||||
"isSubtle": true,
|
||||
"spacing": "None",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "Snooze for",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Input.ChoiceSet",
|
||||
"id": "snooze",
|
||||
"value": "${reminders.overrides[0].minutes}",
|
||||
"choices": [
|
||||
{
|
||||
"$data": "${reminders.overrides}",
|
||||
"title": "${minutes} minutes",
|
||||
"value": "${minutes}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Snooze",
|
||||
"data": {
|
||||
"x": "snooze"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "I'll be late",
|
||||
"data": {
|
||||
"x": "late"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,54 @@
|
|||
{
|
||||
"kind": "calendar#event",
|
||||
"etag": "\"3007572097704000\"",
|
||||
"id": "_6sp3gdjcksmab9kc4rgq1aldjelm8chhcgp66phocg_20191105T150000Z",
|
||||
"status": "confirmed",
|
||||
"htmlLink": "https://www.google.com/calendar/event?eid=XzZzcDNnZGoxNjBxamdiYjRja3NtYWI5a2M0cmplYjlwNjhyM2diOXA2Z3FtOGNoaGNncDY2cGhvY2dfMjA2xO1UwMDAuZ0Bt",
|
||||
"created": "2016-12-29T06:35:05.000Z",
|
||||
"updated": "2018-04-24T14:04:50.184Z",
|
||||
"summary": "Adaptive Card design session",
|
||||
"location": "Conf Room 112/3377 (10)",
|
||||
"creator": {
|
||||
"email": "sundance@outlook.com",
|
||||
"displayName": "John Doe",
|
||||
"self": true
|
||||
},
|
||||
"organizer": {
|
||||
"email": "sundance@outlook.com",
|
||||
"displayName": "John Doe",
|
||||
"self": true
|
||||
},
|
||||
"start": {
|
||||
"dateTime": "2019-11-05T12:30:00-08:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"end": {
|
||||
"dateTime": "2019-11-05T13:30:00-08:00",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"recurringEventId": "_6sp3gdj160qjgbb4cksmab9kc4rjeb9p68r3gb9p6gqm8chhcgp66phocg",
|
||||
"originalStartTime": {
|
||||
"dateTime": "12:30",
|
||||
"timeZone": "America/Los_Angeles"
|
||||
},
|
||||
"visibility": "private",
|
||||
"iCalUID": "7286a058-de9e-4a77-9268-945d21d2cf8d",
|
||||
"sequence": 4,
|
||||
"reminders": {
|
||||
"useDefault": false,
|
||||
"overrides": [
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "5"
|
||||
},
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "15"
|
||||
},
|
||||
{
|
||||
"method": "popup",
|
||||
"minutes": "30"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
|
@ -0,0 +1,55 @@
|
|||
{
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"type": "AdaptiveCard",
|
||||
"version": "1.0",
|
||||
"speak": "<s>Your meeting about \"Adaptive Card design session\"<break strength='weak'/> is starting at ${formatDateTime(start.dateTime, 'HH:mm')}pm</s><s>Do you want to snooze <break strength='weak'/> or do you want to send a late notification to the attendees?</s>",
|
||||
"body": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${summary}",
|
||||
"size": "Large",
|
||||
"weight": "Bolder",
|
||||
"style": "heading"
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": " ${location} ",
|
||||
"isSubtle": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${formatDateTime(start.dateTime, 'HH:mm')} - ${formatDateTime(end.dateTime, 'hh:mm')}",
|
||||
"isSubtle": true,
|
||||
"spacing": "None"
|
||||
},
|
||||
{
|
||||
"type": "Input.ChoiceSet",
|
||||
"id": "snooze",
|
||||
"label": "Snooze for",
|
||||
"value": "${reminders.overrides[0].minutes}",
|
||||
"choices": [
|
||||
{
|
||||
"$data": "${reminders.overrides}",
|
||||
"title": "${minutes} minutes",
|
||||
"value": "${minutes}"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Snooze",
|
||||
"data": {
|
||||
"x": "snooze"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "I'll be late",
|
||||
"data": {
|
||||
"x": "late"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,291 @@
|
|||
{
|
||||
"code": "ER-13052",
|
||||
"message": "success",
|
||||
"created_by_name" : "Matt Hidinger",
|
||||
"created_date" : "2019-07-15T18:33:12+0800",
|
||||
"submitted_date": "2019-04-14T18:33:12+0800",
|
||||
"creater_email" : "matt@contoso.com",
|
||||
"status" : "Pending",
|
||||
"status_url" : "https://adaptivecards.io/content/pending.png",
|
||||
"approver": "Thomas",
|
||||
"purpose" : "Trip to UAE",
|
||||
"approval_date" : "2019-07-15T22:33:12+0800",
|
||||
"approver" : "Thomas",
|
||||
"approver_email" : "thomas@contoso.com",
|
||||
"other_submitter" : "David",
|
||||
"other_submitter_email" : "david@contoso.com",
|
||||
|
||||
"expenses": [
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"approver" : "Thomas",
|
||||
"date": "2017-02-21",
|
||||
"description": "Air Travel Expense",
|
||||
"created_by": "636965431200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 300,
|
||||
"total_without_tax": 300,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": true,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "approved",
|
||||
"created_time": "2019-06-19T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": "Leg 1 on Tue, Jun 19th, 2019 at 6:00 AM."
|
||||
},
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": "Leg 2 on Tue, Jun 19th, 2019 at 7:15 PM."
|
||||
}
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
},
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"date": "2019-06-19",
|
||||
"description": "Auto Mobile Expense",
|
||||
"created_by": "636965431200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 100,
|
||||
"total_without_tax": 100,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": true,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "submitted",
|
||||
"created_time": "2019-06-19T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": " Contoso Car Rentrals, Tues 6/19 at 7:00 AM"
|
||||
}
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
},
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"date": "2019-06-21",
|
||||
"description": "Excess Baggage Cost",
|
||||
"created_by": "636967159200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 50.38,
|
||||
"total_without_tax": 4.3,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": false,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "submitted",
|
||||
"created_time": "2019-06-21T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,511 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "Large",
|
||||
"weight": "Bolder",
|
||||
"text": "**EXPENSE APPROVAL**",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "${status_url}",
|
||||
"altText": "${status}",
|
||||
"height": "30px"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "ExtraLarge",
|
||||
"text": "${purpose}",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.OpenUrl",
|
||||
"title": "EXPORT AS PDF",
|
||||
"url": "https://adaptivecards.io"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "Small",
|
||||
"size": "Small",
|
||||
"weight": "Bolder",
|
||||
"text": "[${code}](https://adaptivecards.io)",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "FactSet",
|
||||
"spacing": "Large",
|
||||
"facts": [
|
||||
{
|
||||
"title": "Submitted By",
|
||||
"value": "**${created_by_name}** ${creater_email}"
|
||||
},
|
||||
{
|
||||
"title": "Duration",
|
||||
"value": "${formatTicks(min(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')} - ${formatTicks(max(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted On",
|
||||
"value": "${formatDateTime(submitted_date, 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Reimbursable Amount",
|
||||
"value": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}"
|
||||
},
|
||||
{
|
||||
"title": "Awaiting approval from",
|
||||
"value": "**${approver}** ${approver_email}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted to",
|
||||
"value": "**${other_submitter}** ${other_submitter_email}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"spacing": "Large",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "DATE",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Large",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "CATEGORY",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "AMOUNT",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"$data": "${expenses}",
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${formatDateTime(created_time, 'MM-dd')}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Medium",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${description}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(total, 2)}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Small",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"targetElements": [
|
||||
"cardContent${$index}",
|
||||
"chevronDown${$index}",
|
||||
"chevronUp${$index}"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "Center",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronDown${$index}",
|
||||
"url": "https://adaptivecards.io/content/down.png",
|
||||
"width": "20px",
|
||||
"altText": "${description} $${total} collapsed"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronUp${$index}",
|
||||
"url": "https://adaptivecards.io/content/up.png",
|
||||
"width": "20px",
|
||||
"altText": "${description} $${total} expanded",
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent${$index}",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"$data": "${custom_fields}",
|
||||
"type": "TextBlock",
|
||||
"text": "* ${value}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "comment${$index}",
|
||||
"placeholder": "Add your comment here."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "comment",
|
||||
"lineItem": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "Large",
|
||||
"separator": true,
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Total Expense Amount \t",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Non-reimbursable Amount",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Advance Amount",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, x.total)), 2)}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) $${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, 0, x.total))), 2)} \t",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) 0.00 \t",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Amount to be Reimbursed",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"targetElements": [
|
||||
"cardContent4",
|
||||
"showHistory",
|
||||
"hideHistory"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "Center",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "showHistory",
|
||||
"horizontalAlignment": "Right",
|
||||
"color": "Accent",
|
||||
"text": "Show history",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "hideHistory",
|
||||
"horizontalAlignment": "Right",
|
||||
"color": "Accent",
|
||||
"text": "Hide history",
|
||||
"wrap": true,
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent4",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense submitted by **${created_by_name}** on {{DATE(${formatDateTime(created_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense ${expenses[0].status} by **${expenses[0].approver}** on {{DATE(${formatDateTime(approval_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Approve",
|
||||
"style": "positive",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "approve"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.ShowCard",
|
||||
"title": "Reject",
|
||||
"style": "destructive",
|
||||
"card": {
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "RejectCommentID",
|
||||
"placeholder": "Please specify an appropriate reason for rejection.",
|
||||
"isMultiline": true
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "reject"
|
||||
}
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.2",
|
||||
"fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
|
||||
}
|
|
@ -0,0 +1,291 @@
|
|||
{
|
||||
"code": "ER-13052",
|
||||
"message": "success",
|
||||
"created_by_name" : "Matt Hidinger",
|
||||
"created_date" : "2019-07-15T18:33:12+0800",
|
||||
"submitted_date": "2019-04-14T18:33:12+0800",
|
||||
"creater_email" : "matt@contoso.com",
|
||||
"status" : "Pending",
|
||||
"status_url" : "https://adaptivecards.io/content/pending.png",
|
||||
"approver": "Thomas",
|
||||
"purpose" : "Trip to UAE",
|
||||
"approval_date" : "2019-07-15T22:33:12+0800",
|
||||
"approver" : "Thomas",
|
||||
"approver_email" : "thomas@contoso.com",
|
||||
"other_submitter" : "David",
|
||||
"other_submitter_email" : "david@contoso.com",
|
||||
|
||||
"expenses": [
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"approver" : "Thomas",
|
||||
"date": "2017-02-21",
|
||||
"description": "Air Travel Expense",
|
||||
"created_by": "636965431200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 300,
|
||||
"total_without_tax": 300,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": true,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "approved",
|
||||
"created_time": "2019-06-19T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": "Leg 1 on Tue, Jun 19th, 2019 at 6:00 AM."
|
||||
},
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": "Leg 2 on Tue, Jun 19th, 2019 at 7:15 PM."
|
||||
}
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
},
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"date": "2019-06-19",
|
||||
"description": "Auto Mobile Expense",
|
||||
"created_by": "636965431200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 100,
|
||||
"total_without_tax": 100,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": true,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "submitted",
|
||||
"created_time": "2019-06-19T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
{
|
||||
"customfield_id": "16367000000277001",
|
||||
"label": "Other Name",
|
||||
"value": " Contoso Car Rentrals, Tues 6/19 at 7:00 AM"
|
||||
}
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
},
|
||||
{
|
||||
"expense_id": "16367000000083065",
|
||||
"date": "2019-06-21",
|
||||
"description": "Excess Baggage Cost",
|
||||
"created_by": "636967159200000000",
|
||||
"created_by_name": "PATRICIA",
|
||||
"employee_number": "E001",
|
||||
"currency_id": "16367000000000097",
|
||||
"currency_code": "USD",
|
||||
"paid_through_account_id": "16367000000036003",
|
||||
"paid_through_account_name": "Employee Reimbursements",
|
||||
"bcy_total": 13900.79,
|
||||
"bcy_subtotal": 13900.79,
|
||||
"total": 50.38,
|
||||
"total_without_tax": 4.3,
|
||||
"is_billable": true,
|
||||
"is_reimbursable": false,
|
||||
"reference_number": "DD145",
|
||||
"due_days": "Due in 15 days",
|
||||
"merchant_id": "16367000000074027",
|
||||
"merchant_name": "ABS Solutions",
|
||||
"status": "submitted",
|
||||
"created_time": "2019-06-21T18:33:12+0800",
|
||||
"last_modified_time": "2017-02-21T18:42:46+0530",
|
||||
"receipt_name": "receipt1.jpg",
|
||||
"report_id": "16367000000083075",
|
||||
"mileage_type": "non_mileage",
|
||||
"report_name": "Purchase",
|
||||
"is_receipt_only": false,
|
||||
"distance": 0,
|
||||
"per_diem_rate": 0,
|
||||
"per_diem_days": 0,
|
||||
"per_diem_id": "",
|
||||
"per_diem_name": "",
|
||||
"expense_type": "non_mileage",
|
||||
"location": "Washington",
|
||||
"receipt_type": "jpg",
|
||||
"policy_violated": false,
|
||||
"comments_count": 0,
|
||||
"report_status": "submitted",
|
||||
"price_precision": 2,
|
||||
"mileage_rate": 0,
|
||||
"mileage_unit": "km",
|
||||
"receipt_status": "processed",
|
||||
"is_uncategorized": false,
|
||||
"is_expired": false,
|
||||
"gl_code": "LG001",
|
||||
"exchange_rate": 66.943366,
|
||||
"start_reading": "",
|
||||
"end_reading": "",
|
||||
"payment_mode": "Check",
|
||||
"customer_id": "27927000000075081",
|
||||
"customer_name": "ACME Corp.",
|
||||
"custom_fields": [
|
||||
],
|
||||
"project_id": "27927000001243001",
|
||||
"project_name": "Coffee Research",
|
||||
"transaction_description": "",
|
||||
"tax_id": "16367000000086001",
|
||||
"tax_name": "Sales Tax",
|
||||
"tax_percentage": 2,
|
||||
"amount": 207.65,
|
||||
"is_inclusive_tax": false,
|
||||
"vehicle_type": "Bike",
|
||||
"vehicle_id": "17456000000078029",
|
||||
"fuel_type": "lpg",
|
||||
"engine_capacity_range": "between_1401cc_and_1600cc",
|
||||
"is_personal": false,
|
||||
"policy_id": "16367000000092011",
|
||||
"policy_name": "LIC",
|
||||
"documents": [
|
||||
{
|
||||
"file_name": "receipt1.jpg",
|
||||
"file_size_formatted": "71.8 KB",
|
||||
"attachment_order": 1,
|
||||
"document_id": "16367000000083071"
|
||||
}
|
||||
],
|
||||
"reimbursement_reference": "",
|
||||
"reimbursement_date": "",
|
||||
"reimbursement_paid_through_account_id": "",
|
||||
"reimbursement_paid_through_account_name": "",
|
||||
"reimbursement_currency_id": "",
|
||||
"reimbursement_currency_code": ""
|
||||
}
|
||||
]
|
||||
}
|
|
@ -0,0 +1,505 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "large",
|
||||
"weight": "bolder",
|
||||
"text": "**EXPENSE APPROVAL**",
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "${status_url}",
|
||||
"altText": "${status}",
|
||||
"height": "30px"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "ExtraLarge",
|
||||
"text": "${purpose}",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.OpenUrl",
|
||||
"title": "EXPORT AS PDF",
|
||||
"url": "https://adaptivecards.io"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "small",
|
||||
"size": "small",
|
||||
"weight": "bolder",
|
||||
"text": "[${code}](https://adaptivecards.io)"
|
||||
},
|
||||
{
|
||||
"type": "FactSet",
|
||||
"spacing": "large",
|
||||
"facts": [
|
||||
{
|
||||
"title": "Submitted By",
|
||||
"value": "**${created_by_name}** ${creater_email}"
|
||||
},
|
||||
{
|
||||
"title": "Duration",
|
||||
"value": "${formatTicks(min(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')} - ${formatTicks(max(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted On",
|
||||
"value": "${formatDateTime(submitted_date, 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Reimbursable Amount",
|
||||
"value": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}"
|
||||
},
|
||||
{
|
||||
"title": "Awaiting approval from",
|
||||
"value": "**${approver}** ${approver_email}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted to",
|
||||
"value": "**${other_submitter}** ${other_submitter_email}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"spacing": "large",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "bolder",
|
||||
"text": "DATE"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "large",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "bolder",
|
||||
"text": "CATEGORY"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "bolder",
|
||||
"text": "AMOUNT"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"$data": "${expenses}",
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${formatDateTime(created_time, 'MM-dd')}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "medium",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${description}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(total, 2)}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "small",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"title": "expand",
|
||||
"targetElements": [
|
||||
"cardContent${$index}",
|
||||
"chevronDown${$index}",
|
||||
"chevronUp${$index}"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "center",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronDown${$index}",
|
||||
"url": "https://adaptivecards.io/content/down.png",
|
||||
"width": "20px",
|
||||
"altText": "Details collapsed"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronUp${$index}",
|
||||
"url": "https://adaptivecards.io/content/up.png",
|
||||
"width": "20px",
|
||||
"altText": "Details expanded",
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent${$index}",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"$data": "${custom_fields}",
|
||||
"type": "TextBlock",
|
||||
"text": "* ${value}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "comment${$index}",
|
||||
"label": "Add your comment here"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "comment",
|
||||
"lineItem": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "large",
|
||||
"separator": true,
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "right",
|
||||
"text": "Total Expense Amount \t",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "right",
|
||||
"text": "Non-reimbursable Amount",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "right",
|
||||
"text": "Advance Amount",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, x.total)), 2)}"
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) $${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, 0, x.total))), 2)} \t"
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) 0.00 \t"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "right",
|
||||
"text": "Amount to be Reimbursed",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "bolder",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"targetElements": [
|
||||
"cardContent4",
|
||||
"showHistory",
|
||||
"hideHistory"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "Center",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "showHistory",
|
||||
"horizontalAlignment": "right",
|
||||
"color": "accent",
|
||||
"text": "Show history",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "hideHistory",
|
||||
"horizontalAlignment": "right",
|
||||
"color": "accent",
|
||||
"text": "Hide history",
|
||||
"wrap": true,
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent4",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense submitted by **${created_by_name}** on {{DATE(${formatDateTime(created_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense ${expenses[0].status} by **${expenses[0].approver}** on {{DATE(${formatDateTime(approval_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Approve",
|
||||
"style": "positive",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "approve"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.ShowCard",
|
||||
"title": "Reject",
|
||||
"style": "destructive",
|
||||
"card": {
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "RejectCommentID",
|
||||
"label": "Please specify an appropriate reason for rejection",
|
||||
"isMultiline": true,
|
||||
"isRequired": true,
|
||||
"errorMessage": "A reason for rejection is necessary"
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "reject"
|
||||
}
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.2",
|
||||
"fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
|
||||
}
|
|
@ -0,0 +1,566 @@
|
|||
{
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "Large",
|
||||
"weight": "Bolder",
|
||||
"text": "**EXPENSE APPROVAL**",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"url": "${status_url}",
|
||||
"altText": "${status}",
|
||||
"height": "30px"
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"size": "ExtraLarge",
|
||||
"text": "${purpose}",
|
||||
"wrap": true,
|
||||
"style": "heading"
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.OpenUrl",
|
||||
"title": "EXPORT AS PDF",
|
||||
"url": "https://adaptivecards.io"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"spacing": "Small",
|
||||
"size": "Small",
|
||||
"weight": "Bolder",
|
||||
"text": "[${code}](https://adaptivecards.io)",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "FactSet",
|
||||
"spacing": "Large",
|
||||
"facts": [
|
||||
{
|
||||
"title": "Submitted By",
|
||||
"value": "**${created_by_name}** ${creater_email}"
|
||||
},
|
||||
{
|
||||
"title": "Duration",
|
||||
"value": "${formatTicks(min(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')} - ${formatTicks(max(select(expenses, x, int(x.created_by))), 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted On",
|
||||
"value": "${formatDateTime(submitted_date, 'yyyy-MM-dd')}"
|
||||
},
|
||||
{
|
||||
"title": "Reimbursable Amount",
|
||||
"value": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}"
|
||||
},
|
||||
{
|
||||
"title": "Awaiting approval from",
|
||||
"value": "**${approver}** ${approver_email}"
|
||||
},
|
||||
{
|
||||
"title": "Submitted to",
|
||||
"value": "**${other_submitter}** ${other_submitter_email}"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"spacing": "Large",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "DATE",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Large",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "CATEGORY",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "AMOUNT",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"$data": "${expenses}",
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${formatDateTime(created_time, 'MM-dd')}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Medium",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "${description}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(total, 2)}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"spacing": "Small",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"targetElements": [
|
||||
"cardContent${$index}",
|
||||
"chevronDown${$index}",
|
||||
"chevronUp${$index}"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "Center",
|
||||
"items": [
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronDown${$index}",
|
||||
"url": "https://adaptivecards.io/content/down.png",
|
||||
"width": "20px",
|
||||
"altText": "${description} $${total} collapsed"
|
||||
},
|
||||
{
|
||||
"type": "Image",
|
||||
"id": "chevronUp${$index}",
|
||||
"url": "https://adaptivecards.io/content/up.png",
|
||||
"width": "20px",
|
||||
"altText": "${description} $${total} expanded",
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent${$index}",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"$data": "${custom_fields}",
|
||||
"type": "TextBlock",
|
||||
"text": "* ${value}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "comment${$index}",
|
||||
"placeholder": "Add your comment here."
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "comment",
|
||||
"lineItem": 1
|
||||
}
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"spacing": "Large",
|
||||
"separator": true,
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Total Expense Amount \t",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Non-reimbursable Amount",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Advance Amount",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, x.total)), 2)}",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) $${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, 0, x.total))), 2)} \t",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "(-) 0.00 \t",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"horizontalAlignment": "Right",
|
||||
"text": "Amount to be Reimbursed",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "stretch"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"weight": "Bolder",
|
||||
"text": "$${formatNumber(sum(select(expenses, x, if(x.is_reimbursable, x.total, 0))), 2)}",
|
||||
"wrap": true
|
||||
}
|
||||
],
|
||||
"width": "auto"
|
||||
},
|
||||
{
|
||||
"type": "Column",
|
||||
"width": "auto"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"bleed": true
|
||||
},
|
||||
{
|
||||
"type": "ColumnSet",
|
||||
"columns": [
|
||||
{
|
||||
"type": "Column",
|
||||
"selectAction": {
|
||||
"type": "Action.ToggleVisibility",
|
||||
"targetElements": [
|
||||
"cardContent4",
|
||||
"showHistory",
|
||||
"hideHistory"
|
||||
]
|
||||
},
|
||||
"verticalContentAlignment": "Center",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "showHistory",
|
||||
"horizontalAlignment": "Right",
|
||||
"color": "Accent",
|
||||
"text": "Show history",
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"id": "hideHistory",
|
||||
"horizontalAlignment": "Right",
|
||||
"color": "Accent",
|
||||
"text": "Hide history",
|
||||
"wrap": true,
|
||||
"isVisible": false
|
||||
}
|
||||
],
|
||||
"width": 1
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"id": "cardContent4",
|
||||
"isVisible": false,
|
||||
"items": [
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense submitted by **${created_by_name}** on {{DATE(${formatDateTime(created_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
},
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "* Expense ${expenses[0].status} by **${expenses[0].approver}** on {{DATE(${formatDateTime(approval_date, 'yyyy-MM-ddTHH:mm:ssZ')}, SHORT)}}",
|
||||
"isSubtle": true,
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"items": [
|
||||
{
|
||||
"type": "ActionSet",
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Approve",
|
||||
"style": "positive",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "approve"
|
||||
}
|
||||
},
|
||||
{
|
||||
"type": "Action.ShowCard",
|
||||
"title": "Reject",
|
||||
"style": "destructive",
|
||||
"card": {
|
||||
"type": "AdaptiveCard",
|
||||
"body": [
|
||||
{
|
||||
"type": "Input.Text",
|
||||
"id": "RejectCommentID",
|
||||
"placeholder": "Please specify an appropriate reason for rejection.",
|
||||
"isMultiline": true
|
||||
}
|
||||
],
|
||||
"actions": [
|
||||
{
|
||||
"type": "Action.Submit",
|
||||
"title": "Send",
|
||||
"data": {
|
||||
"id": "_qkQW8dJlUeLVi7ZMEzYVw",
|
||||
"action": "reject"
|
||||
}
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json"
|
||||
}
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "emphasis",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "New TextBlock",
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "accent",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "New TextBlock",
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "good",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "New TextBlock",
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "attention",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "New TextBlock",
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"type": "Container",
|
||||
"style": "warning",
|
||||
"items": [
|
||||
{
|
||||
"type": "TextBlock",
|
||||
"text": "New TextBlock",
|
||||
"wrap": true
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"$schema": "http://adaptivecards.io/schemas/adaptive-card.json",
|
||||
"version": "1.5",
|
||||
"fallbackText": "This card requires Adaptive Cards v1.2 support to be rendered properly."
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue