diff --git a/browserslist b/.browserslistrc similarity index 100% rename from browserslist rename to .browserslistrc diff --git a/.firebase/hosting.ZGlzdC9pTWF0dC1GRQ.cache b/.firebase/hosting.ZGlzdC9pTWF0dC1GRQ.cache deleted file mode 100644 index 835bb3921d42bb38b8ba8f0c1322b044114f3a00..0000000000000000000000000000000000000000 --- a/.firebase/hosting.ZGlzdC9pTWF0dC1GRQ.cache +++ /dev/null @@ -1,125 +0,0 @@ -index.html,1619566465743,9c204e38e3326520aa78ee05f4d286a0c098a4f3b360c0cc8d4ac6a9d4a1adbf -runtime-es5.0811dcefd377500b5b1a.js,1619566444247,c4aa0a348c0dcf9c6af4b7b3f066d0599bcec97472ed96ab232c8dceb70607cb -3rdpartylicenses.txt,1619566444062,bde49fd938476806b63b2047ae0f4e3102e044519f485131bff88bb552c43184 -runtime-es2015.0811dcefd377500b5b1a.js,1619566444247,c4aa0a348c0dcf9c6af4b7b3f066d0599bcec97472ed96ab232c8dceb70607cb -polyfills-es2015.999c0558d72d5d965bdc.js,1619566444245,6462a7254f98b12a0a557a76574e1a6186eeb0ecc920c43a94af151e92030d33 -assets/avatar5.png,1619566465573,efb175cff26b23d52d3f137694cddb256f3463c54cdaeca9b065799be5770b17 -assets/avatar6.jpeg,1619566465573,3b142b6b71fb1146c8ede93d37bc90e8b95049f34a404b7ced7df5d208cc0881 -assets/heart.jpeg,1619566465635,0f0c0d3cc55b13191a6577f0507f82d5946fdd5ded604bf9d7511ef6b64a8994 -assets/profile.png,1619566465647,6613152bb9be7276ad32970047ad254dcade34e40b3be1facc349615aafab96c -assets/thumbsdown.png,1619566465722,c49935db83faccd5cc24ab8031c563bfcbb922211bd30ba5bbb6a96df2b52186 -assets/thumbsup.png,1619566465723,19d7aaa422d58bc4b607c990df8ee1bd84652c128c6673590bae2d90b371a31e -assets/undraw_file_sync_ot38.svg,1619566465723,807231164779f0ee7db5d9f185eb4c005c3a916e111c1fd52c8dd6633bc5bf26 -assets/Dialog _ Angular Material_files/angular-white-transparent.svg,1619566465612,78c61233bcfad61df8dfac1d5eb661ce426ae24e475517c46c15edecefe43156 -assets/Dialog _ Angular Material_files/github-circle-white-transparent.svg,1619566465612,4f7840e2ac1981d1c42b85f2693ab7581ff3491c9fbfb8a6c3b59383a618f5c3 -assets/Dialog _ Angular Material_files/angular-material-logo.svg,1619566465611,d26032573293f3958d8a7047093ac11146476aec7e152523b63e246182b23e79 -favicon.ico,1619566465452,4c5be5ff59c3e06c8137e20e9b0e2c3511274e879c2c81686c6e916396747dea -assets/heart.webp,1619566465636,382139bad505817b8dece5f68cf3464539a3d49d9f50de036c94ebff80fa62e7 -assets/dwayne.jpeg,1619566465634,65ca06886688d3b8fcdce32a27810154d7fb189795f5be3dcc2ce78a47e10ed2 -assets/login.png,1619566465641,f12b5881ee9b572efe28106abcca24a6d8f80d570f9d224a29863ad03d1343a9 -assets/profile.jpg,1619566465646,5f5066bc1db8a6986b1c15e60c39ac1b06ca6c5cc59042fd14b1ec37018256eb -assets/sad.png,1619566465720,6ef738e88d62bf448797543c38fc6b7c58e7dc42268672431eb730c463cdeb3a -assets/vcu.jpg,1619566465724,f304ce2e514fbb1f5e04fcae86d03b7886052b9d8ee90092803a2da6eb461cbf -assets/Dialog _ Angular Material_files/analytics.js,1619566465611,b6c3e89dbc4ae5f7670c5d467b728dbc72b103b95161d2b2d900f6faa95ed795 -assets/avatar3.png,1619566465571,62f6a76e4760a60ad8cc97540c0011640befa9b4d7e49fabdcc27e2e3aa648b0 -assets/angry.png,1619566465567,31986dff31f1d9ee1ae2f4ebed314617212f0e6797a1a189a823379c88df777b -assets/avatar4.jpeg,1619566465573,72a9588b4be28866ebf069b8e94132abf7e1bcedab43f00df37879e79a3ae6f5 -assets/image5.jpeg,1619566465640,f27d0bc890563193621332cf2825db91bbddc0ebb526091107a65f18f33fa408 -assets/image1.jpeg,1619566465637,0cc8ad4c7dc26e96d48adafd38f5cecfebe7c965d98bf31893608ad40c80595a -assets/neutral.png,1619566465642,b2aa35a8f08a6cfad6d00115ee5bbe604b0b1ebd92d499389f8c5242ed40d328 -assets/image3.jpeg,1619566465639,70bc25d0f060c250af3be04e66c8f43f330cd7ad9263965ba36be2d5501bbf7a -assets/image4.jpeg,1619566465639,bb9f3a0a922f1e45720081c59891de86f1d35c646b2fbbf80da2e0dab9c8eec3 -assets/image2.jpeg,1619566465638,ea0fb5f11c81b27e11c44e4f12abac8b85040e620a39480e6e7c925e7493e4a8 -assets/Dialog _ Angular Material_files/19-es2015.0c5f52a4920c2f68bc61.js,1619566465607,f2d4cae5cc79fb842aeeadb54ee3f7c8de3a69538db9a39e92e23dc2688a37be -assets/vcu.png,1619566465725,d5f2c3d215a4d01ad6c10e9fa2d9c0384f0ba7b4d39a6abf769ddfbf362cb4ec -assets/Dialog _ Angular Material.html,1619566465626,e82dbef9f38cf2cb68edbd006984502e4011b7902a29e9db14aa3122a8a9f2f0 -assets/Dialog _ Angular Material_files/runtime-es2015.d9512bb9b9af89dc72c3.js,1619566465624,9777c58e472e853cec636bc511cd68dad0e5812e4dcc0bd5634b44712afa700e -assets/Dialog _ Angular Material_files/polyfills-es2015.a386bbc6323a5b442fbd.js,1619566465622,2a8e60148326cc939d853b5485965f807048cbf742134133c4777b758f96b3a4 -assets/Dialog _ Angular Material_files/runtime-es5.d9512bb9b9af89dc72c3.js,1619566465624,38a1a215149f42b58c356a55f327f8a064cf2acbc762894db508b96cab956540 -polyfills-es5.7499fbdfd3f497786540.js,1619566444246,d2f411ca743b85843a35564ebc39e67201c1ebffc09c23dd252f004bcae99ab3 -assets/React App_files/0.82f0d5361beae9c72e8b.hot-update.js,1619566465648,7b21f38c6e6c88fa244142b1fa8da5de58268a1c9d5917b3f49a3c989ec29fb4 -assets/React App_files/0.ad6825b41b914ba94f0e.hot-update.js,1619566465648,02fe73dd7f064a2d093edfebda59b89e61bb3b335f9f9e3b91f2108c2f39585d -assets/React App_files/MAP_Logo.png,1619566465716,2735f6dd4d6a1aca8294cc67c88c90facd0f4ce8250c06b80e6ca8e1cf0ca407 -styles.383387bd9e52cb02597b.css,1619566444062,a48a0070e693f2c3d16c360fa35db7be2e2d2801dfa716165fda7c03752c171c -assets/React App_files/main.82f0d5361beae9c72e8b.hot-update.js,1619566465712,80eeb2532db517ae2b69436acd2e8dba24073750718f2469e5345c9557766f84 -assets/React App_files/bundle.js,1619566465709,58a5ba17d088fbdd49c522649777d616b9f331e9d6f6600a3ccb9f8d44ba56cf -assets/avatar1.jpeg,1619566465568,8d6c15aa682f8c490e651202b3300e839bc39bef3e63d879072434fa9eed3097 -assets/avatar2.jpeg,1619566465569,df0354bdcdbb27a81cd10caac6869d757c5505e8cfb861abbc3e63a6bd347664 -assets/Dialog _ Angular Material_files/styles.493a04a9409b84c0877a.css,1619566465625,61d36be56d70157f2d364f6954762e4f76190b1d44a8418893ef7fdad8ba63cf -assets/React App_files/main.5819cd3da409a86626bc.hot-update.js,1619566465711,b5f2189a77ad36a2ba706bcfaed62f45c5f2da9cdec3a32054841dab6033d6d7 -assets/React App_files/main.340343b8f6b030d63ec4.hot-update.js,1619566465710,827d30b4e78093d5fe72b4adee88649570e530f473a5a54a1c4cb01e24551883 -assets/React App.html,1619566465720,c11c200bf6871d74896467bb088a03a7972a61949db0b52c9b7e0a68c95191df -assets/cards/10D.png,1619566465574,44be553f2180e52a9bb397459511cd972c833bbfcfcb29d350d44451fa2e65ea -assets/React App_files/main.7960ef61d6d33762cb1b.hot-update.js,1619566465712,0e60b2e0a6170773e453af3bb43a27686bdd2f2b9c7dde1577b771ea35252266 -assets/cards/10S.png,1619566465575,32d1d999f7b04cae4d60eb0bb38379b52fe41f49a945aaf589018eb017785955 -assets/cards/2C.png,1619566465576,cc78e15b92ab49b0492acb0e60f780cad2cdf955a2eb06828636aef01c4d9575 -assets/Dialog _ Angular Material_files/63-es2015.155a83bc40104b8129a8.js,1619566465610,7623d8d84dadf899143bb5fa6c6ef2367fb40de1945a0e79e254445f676f88b6 -assets/cards/2D.png,1619566465576,572bc72f1f165d77a4d869e44085661c320f91e585592a798cedb94a508ce6d2 -assets/cards/2H.png,1619566465576,904065ebb97049be564c0abbbca3d30ecedd5b55856a315871c2216001e58de6 -assets/React App_files/main.ad6825b41b914ba94f0e.hot-update.js,1619566465712,8af2298ce6160795b0ba49ab09f193ad484817a5ef49c93201acfaf02360f4c8 -assets/cards/2S.png,1619566465576,ef8742259a3b06e4d5fad4afae1046455ede824864b1e28ba5a88b0d3d49d328 -assets/cards/3C.png,1619566465576,b71c690f590f671f5bc6ce3765882fd0834a6d07ef6c523727a1f5e25a2b59cc -assets/React App_files/main.dda04f44d0baf5b81211.hot-update.js,1619566465715,7b6231d4a480e4c1f07282ae7643eaab41ecc118d2d846495f11b84f6b771bd0 -assets/cards/10C.png,1619566465574,ee66b5d88d9aaaf9c2aeb408f85f0f4bee60c75ce30eae8602c19c946ca900e8 -assets/cards/3D.png,1619566465576,fc31233e022a5445a7cbe538b618137ed4b031b1a8d7af8c655a97b8334aae01 -assets/cards/3H.png,1619566465577,964211f8344e8c78ec7204134a5c9f0a7ae782d0e36c868b9fc39ec431a89393 -assets/React App_files/main.e21411f6a5fdfb30d0e1.hot-update.js,1619566465716,a82fd46130500addc3369609950cd7c0af7a46f710e9e6929bafef8109d9dba5 -assets/cards/3S.png,1619566465577,f2842de3b960099dcd7354b3c9bafad7facbcfe095849a0b1047cc0e521336c6 -assets/cards/4C.png,1619566465577,44c4a0bd79bd71a4cdfe3c2fb8b3b382c9447acbada5169dc20aa663255394b6 -assets/cards/10H.png,1619566465574,1e08d1f2a1603ebc82aa35cd6ff6e6c4ddacf34966ed4e5d322984761a9cc7f4 -assets/cards/4D.png,1619566465577,cd59b4dd17fe2fdc5eb847e63b77a4a760283558380c731b44630d5c81966bb7 -assets/cards/4H.png,1619566465577,1e3f1b919fe9530e4ef28c9e2753a52e0cb931fcb5be336cb6755b6c5c5e1663 -assets/cards/4S.png,1619566465578,21295f30a0c5d0c905f48ebe3ecdb860d43683ef7f072155e88683b634b59895 -assets/cards/5C.png,1619566465578,711649186604c4995fd80971bc55a7c1733fdebbc939a8b28ff2a5587872c9f8 -assets/cards/5D.png,1619566465579,eedcf4c36ab2b1e36d0bd193a67904d5ea6372a27bcb6932167639d722d111fa -assets/cards/5H.png,1619566465579,3acc10984d67bf7f7b7f42897d09cba1d040389df2708272cec1e210252eff20 -assets/cards/5S.png,1619566465580,77c367745ef03b1763c633bc976d82c218cd8d8e3718303ba4306f493a007a3a -assets/cards/6C.png,1619566465580,8c8b390edc5f9ca86cc3c0a781ad4afbf0ae40278c7b53b64bfe0bdd8caee7b3 -assets/Dialog _ Angular Material_files/polyfills-es5.7090a86ce65986d9d1e9.js,1619566465623,213cede4974a68beeea5d386b84fc3f0af5f61fb19c00042fc55a018f52399fe -assets/cards/6D.png,1619566465580,619c96ec2da58399b3a39440730eed46a3481a4c771b01aaa64219d563f03039 -assets/cards/6H.png,1619566465580,11ffc406c250077c470f688fe093baa74f971cd79b460faeef6bc1e96c38a59e -assets/cards/6S.png,1619566465582,d9a3cdcc1ef984557bcc12cc8db0d2f1b85434f9c06c309d391e57ee0b145fd7 -assets/Old Dominion University Mail - Bank Wire transfer details.pdf,1619566465645,403e7ca1f288633ac37cf0f4375282c8938fdf2c232226913cb85920f97419a5 -assets/cards/7D.png,1619566465582,8d916b5cd77bcb99a3c4ae3f41b00c52f327671d9f07c60423992fa4fab4beae -assets/cards/7H.png,1619566465585,345b576a15a7c17fdb87b79d96e7d95706ff43b03c9ec078c0304cc0a298535b -assets/cards/7S.png,1619566465585,c666c441086f2a7e29e743d02f433270bbe2b99d057bd5b46dc1534a6c7a1afe -assets/consent.pdf,1619566465603,03d5e2c9faded485487eb2ef16cf52842bde03a37e38f7a21c3eeabc247d1a2b -assets/cards/8D.png,1619566465586,e6cd1f342b05699614813f85461bee56170b16b9daefdb0038c3456ca8210037 -assets/cards/8S.png,1619566465586,dac3cf4b606b005b29171274c1eccc85458cb8208908d29279757c0d055628f9 -assets/cards/8H.png,1619566465586,c0e1afe0805f0b4bfcb923969278cb1430ac0566a3295c4b688a13aeee5fe808 -assets/cards/9D.png,1619566465588,3622bfbfa490e3f38c2d74dedd2178453d4a2db2fd4484f5c42e01e94b61e9a4 -assets/cards/7C.png,1619566465582,7c2b384c7e2915f4b00f4eb23618c10ef892b4256cff50bd8d622fe4ae793f68 -assets/cards/9H.png,1619566465588,3d030c351fe5cff4bc881557ee2396ff11291af729cc856468648ea50bb31b82 -assets/cards/9S.png,1619566465588,d17a5d5ca5163bc46980e974fc9ac39821aa42a4662d6dd28557049ea5a7ef8f -assets/cards/AC.png,1619566465588,9f41b907b9f92103926e9ff9ac751563c33cc2279448ab44a2817a8d97e78ec4 -assets/cards/AD.png,1619566465589,ddf620d428437dedb995c5da9427a60b4399f52a5ba70f42f1da0dc5c9122a35 -assets/cards/AH.png,1619566465589,63ccaf0b8552df758f6a8b51e927150a4703e23f128d4fe6367a8d25650656e6 -assets/cards/AS.png,1619566465589,f5af69b8bd613050be42f1e2c9d9f28c2c19d2425a5fefa3f2f79134c6c8ab7e -assets/cards/8C.png,1619566465586,35e3c15ba587f8f1ab575be4f9a5444258b27e6c5bbe4798548b6577b62b4784 -assets/cards/9C.png,1619566465587,5c512df5571f9b318f3e8c0bb1efca85f222c5b598a8e6199a1ee2ca50aa66f2 -assets/cards/BACKY.png,1619566465590,fd44f126aa31519c504f96b2db425dd465c324f21861fb8464db3a394debb1f4 -assets/cards/BLANK.png,1619566465592,e06bc02a80a832ddc35a1767a9cc46c74c52830d5a8b7c438a8b6f055d0505c4 -assets/smile.png,1619566465722,a4e86596e2161ed9429c44cdd9c092ed47a9fe266d21021538ef8ceba59adb6a -assets/cards/JC.png,1619566465593,b06a96575d1611d68798ae62096293b444cfb5bb4b3add96f6598ea58d449072 -assets/cards/JD.png,1619566465594,dfb7b192d78c867003cd239bff5c692c9fefb94f960a28349adbc1f6447b08fc -assets/cards/JH.png,1619566465594,03a245d4f0238a264f0d9f3908940d921e4a4a9dd98d42e993da2985b48c1a60 -assets/cards/KC.png,1619566465596,7c63cdf6337429cdcbd1199237c77d0ae3a98cae8732e2bc3c55e8c991fd73df -assets/cards/JS.png,1619566465595,e64e6dd7cb6f4dc498de2d4f2dc052af2728f04812d8b4ce2f566ac5725d88e7 -assets/diverse.png,1619566465628,bcb3e8c140259b557e68d791194118f610fc9677955c306bf98a196eda0311fa -assets/cards/KD.png,1619566465596,f74307fb03180e1642e45b86950cc44289305d8fbf08e1f68888561a11a50930 -assets/cards/KH.png,1619566465597,5d5e4db6e789bf4472351b384780591160b5f53e3b9e3b30d777fddbea3d7c71 -assets/cards/KS.png,1619566465597,8aa4fa9855603758d0b1f378e0805b4e32c1d4b6f8f0b9c47255e711f92ae921 -assets/cards/QC.png,1619566465598,d3523f805952fe2ba39e7d8c7370d0a4588627c8ca2226daa33fc1213847b818 -assets/cards/QS.png,1619566465601,e25ff53ff9e465577dabf241c1fe84d16e84545b21afba403e9c6fc7ff28285d -assets/cards/QD.png,1619566465599,566262894c1b411c1c1855860cc586107dd4e63404b30a43e271bfb218fabe8c -assets/cards/QH.png,1619566465600,4516cf2124c804a9625cd501e42c520ce6cdf1af42ecf7a05deb3b3751d48042 -scripts.433b6c81a25f32f05dde.js,1619566444062,4934be4e2358efb803789cacf525a4e0a2d14fa3478ba881f3beb8af63cb5f87 -assets/React App_files/saved_resource.html,1619566465718,d9201b65538fef9907a73449e8aee236aed38da01a9e6e30a396ab3d1b3054eb -assets/Dialog _ Angular Material_files/main-es2015.dfa1a0a75f1547d10045.js,1619566465615,d285437a7ac440c37330025495d5ca238dcbd98693ac736525b9cb4a2e4a16d7 -assets/React App_files/main.chunk.js,1619566465715,c3b99fc074722b9e2b0e6f6bc1e442897e542094aaa982a7808fc988ef39bda6 -assets/Dialog _ Angular Material_files/main-es5.dfa1a0a75f1547d10045.js,1619566465620,0d1e62e11a5003541f14ab5ee01cde6f44f361996975e8a3f73c881c5a8c2c7f -assets/culture.png,1619566465605,fa89efb9a8213efec8151e6b3f5a2be3bafb9c28351d65a04be23a6d807b6920 -assets/diversity.png,1619566465631,ee0c68a8aa513e3b99ba26f3a6bbbb2b0e680e915c9e8e21022449cb882b21d0 -main-es2015.8bb21dcfd05d3d3773c5.js,1619566465152,d212812fab40d63f5564629b93e01691ac0651fca01eafdb0e8442b9a5fc5d97 -main-es5.8bb21dcfd05d3d3773c5.js,1619566461516,40bdb520c4921fc9c3a7f69a2fd40117a5e18de5ca6d966a6d66cc902649a3f9 -assets/React App_files/0.chunk.js,1619566465669,64e79770aa5784013389629b62ea45c1d15488ee63ecdfd04295fee9f94de924 diff --git a/.firebaserc b/.firebaserc deleted file mode 100644 index f93005c775581e47e3f9f6ae5ded4945539c32bd..0000000000000000000000000000000000000000 --- a/.firebaserc +++ /dev/null @@ -1,11 +0,0 @@ -{ - "targets": { - "cpcdp-vcu": { - "hosting": { - "iMatt-FE": [ - "cpcdp-vcu" - ] - } - } - } -} \ No newline at end of file diff --git a/.gitignore b/.gitignore index 86d943a9b2e8f3bb69fbe37fd8363962646b1d92..53a8849eeaa4654abb8225efbb7a139dce209e95 100644 --- a/.gitignore +++ b/.gitignore @@ -32,6 +32,7 @@ speed-measure-plugin*.json .history/* # misc +/.angular/cache /.sass-cache /connect.lock /coverage diff --git a/.prettierrc.json b/.prettierrc.json new file mode 100644 index 0000000000000000000000000000000000000000..6e269455b38067e2bb296401125db7bbe6d74969 --- /dev/null +++ b/.prettierrc.json @@ -0,0 +1,7 @@ +{ + "trailingComma": "es5", + "tabWidth": 2, + "semi": true, + "singleQuote": false, + "printWidth": 120 +} diff --git a/.vscode/settings.json b/.vscode/settings.json new file mode 100644 index 0000000000000000000000000000000000000000..144107d65b7efc9ab17b6f42edb23e6b6ea3cfc7 --- /dev/null +++ b/.vscode/settings.json @@ -0,0 +1,7 @@ +{ + "files.autoSave": "afterDelay", + "editor.defaultFormatter": "esbenp.prettier-vscode", + "editor.codeActionsOnSave": { + "source.organizeImports": true + } +} diff --git a/angular.json b/angular.json index 687c23a83a86847fcef042cb168bb2926c86ed66..9b5cc7148b96ebc8f65a03d9663d083268a9d6f6 100644 --- a/angular.json +++ b/angular.json @@ -19,18 +19,13 @@ "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.app.json", "aot": true, - "assets": [ - "src/favicon.ico", - "src/assets" - ], + "assets": ["src/favicon.ico", "src/assets"], "styles": [ "src/styles.css", "./node_modules/bootstrap/dist/css/bootstrap.min.css", "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css" ], - "scripts": [ - "node_modules/apexcharts/dist/apexcharts.min.js" - ] + "scripts": ["node_modules/apexcharts/dist/apexcharts.min.js"] }, "configurations": { "production": { @@ -43,7 +38,6 @@ "optimization": true, "outputHashing": "all", "sourceMap": false, - "extractCss": true, "namedChunks": false, "extractLicenses": true, "vendorChunk": false, @@ -87,30 +81,11 @@ "polyfills": "src/polyfills.ts", "tsConfig": "tsconfig.spec.json", "karmaConfig": "karma.conf.js", - "assets": [ - "src/favicon.ico", - "src/assets" - ], - "styles": [ - "src/styles.css", - "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css" - ], + "assets": ["src/favicon.ico", "src/assets"], + "styles": ["src/styles.css", "./node_modules/@angular/material/prebuilt-themes/indigo-pink.css"], "scripts": [] } }, - "lint": { - "builder": "@angular-devkit/build-angular:tslint", - "options": { - "tsConfig": [ - "tsconfig.app.json", - "tsconfig.spec.json", - "e2e/tsconfig.json" - ], - "exclude": [ - "**/node_modules/**" - ] - } - }, "e2e": { "builder": "@angular-devkit/build-angular:protractor", "options": { @@ -130,8 +105,7 @@ } } }, - "defaultProject": "iMatt-FE", "cli": { "analytics": "14348ac1-8da5-4252-9e0c-b861a78c6b1a" } -} \ No newline at end of file +} diff --git a/e2e/tsconfig.json b/e2e/tsconfig.json index 39b800f789619f0fb8063aba2e05bd5a57850e57..c92199cfd63f1b4f2d57843891fadec9089b3373 100644 --- a/e2e/tsconfig.json +++ b/e2e/tsconfig.json @@ -3,7 +3,7 @@ "compilerOptions": { "outDir": "../out-tsc/e2e", "module": "commonjs", - "target": "es5", + "target": "es2018", "types": [ "jasmine", "jasminewd2", diff --git a/firebase.json b/firebase.json deleted file mode 100644 index fb330b90fd690c24b90ae70ed6e97d29bab07e0a..0000000000000000000000000000000000000000 --- a/firebase.json +++ /dev/null @@ -1,28 +0,0 @@ -{ - "hosting": [ - { - "target": "iMatt-FE", - "public": "dist/iMatt-FE", - "ignore": [ - "**/.*" - ], - "headers": [ - { - "source": "**", - "headers": [ - { - "key": "Cache-Control", - "value":"no-cache, no-store, must-revalidate" - } - ] - } - ], - "rewrites": [ - { - "source": "**", - "destination": "/index.html" - } - ] - } - ] -} \ No newline at end of file diff --git a/package-lock.json b/package-lock.json index 8087ef1b5b738e8a6bf90915388ccc039b73b50c..decd5073cbabe2f9215bb918fa1ff92a1d6c1800 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,30232 +1,5872 @@ { "name": "i-matt-fe", "version": "0.0.0", - "lockfileVersion": 2, + "lockfileVersion": 1, "requires": true, - "packages": { - "": { - "name": "i-matt-fe", - "version": "0.0.0", - "dependencies": { - "@angular/animations": "~9.0.7", - "@angular/cdk": "^11.1.0", - "@angular/common": "~9.0.7", - "@angular/compiler": "~9.0.7", - "@angular/core": "~9.0.7", - "@angular/fire": "^6.1.4", - "@angular/forms": "~9.0.7", - "@angular/material": "^11.1.0", - "@angular/platform-browser": "~9.0.7", - "@angular/platform-browser-dynamic": "~9.0.7", - "@angular/router": "~9.0.7", - "angular-walkthrough": "^0.8.2", - "apexcharts": "^3.24.0", - "bootstrap": "^4.6.0", - "firebase": "^7.0 || ^8.0", - "lottie-web": "^5.7.6", - "ng-apexcharts": "^1.5.7", - "ng-waveform": "^0.2.1", - "ng2-pdf-viewer": "^6.4.1", - "ngx-countdown": "^11.0.1", - "ngx-lottie": "^6.4.0", - "ngx-walkthrough": "^0.3.2", - "recordrtc": "^5.6.1", - "rxjs": "~6.5.4", - "sweetalert2": "^10.13.3", - "tslib": "^1.14.1", - "wavesurfer": "^1.3.4", - "zone.js": "~0.10.2" - }, - "devDependencies": { - "@angular-devkit/architect": ">= 0.900 < 0.1200", - "@angular-devkit/build-angular": "~0.900.7", - "@angular/cli": "~9.0.7", - "@angular/compiler-cli": "~9.0.7", - "@angular/language-service": "~9.0.7", - "@types/jasmine": "~3.5.0", - "@types/jasminewd2": "~2.0.3", - "@types/node": "^12.11.1", - "codelyzer": "^5.1.2", - "firebase-tools": "^8.0.0", - "fuzzy": "^0.1.3", - "inquirer": "^6.2.2", - "inquirer-autocomplete-prompt": "^1.0.1", - "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "~4.3.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~2.1.0", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.4.2", - "open": "^7.0.3", - "protractor": "~5.4.3", - "ts-node": "~8.3.0", - "tslint": "~5.18.0", - "typescript": "~3.7.5" - } - }, - "node_modules/@angular-devkit/architect": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.900.7.tgz", - "integrity": "sha512-hfiTVYc72kzbXrzK4tea6jnTDnSKpE1D+vEptBXN2tdXEVNEAQI5Qm5L1zVDtt16UdqoUTUypIgUc9jcNH1mUQ==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "9.0.7", - "rxjs": "6.5.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/architect/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-angular": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.900.7.tgz", - "integrity": "sha512-Yv2y3OEaYEd0fE0pKvtqBpmkQYs9xJws7thHnJYCwIfYO55RfolYsXkJgAXke/4NPLrD3EsIDqoPxF7l+uw2/Q==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/build-optimizer": "0.900.7", - "@angular-devkit/build-webpack": "0.900.7", - "@angular-devkit/core": "9.0.7", - "@babel/core": "7.7.7", - "@babel/generator": "7.7.7", - "@babel/preset-env": "7.7.7", - "@ngtools/webpack": "9.0.7", - "ajv": "6.10.2", - "autoprefixer": "9.7.1", - "babel-loader": "8.0.6", - "browserslist": "^4.9.1", - "cacache": "13.0.1", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.0", - "copy-webpack-plugin": "5.1.1", - "core-js": "3.6.4", - "coverage-istanbul-loader": "2.0.3", - "cssnano": "4.1.10", - "file-loader": "4.2.0", - "find-cache-dir": "3.0.0", - "glob": "7.1.5", - "jest-worker": "24.9.0", - "karma-source-map-support": "1.4.0", - "less": "3.10.3", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.3", - "loader-utils": "1.2.3", - "magic-string": "0.25.4", - "mini-css-extract-plugin": "0.8.0", - "minimatch": "3.0.4", - "open": "7.0.0", - "parse5": "4.0.0", - "postcss": "7.0.21", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "3.1.0", - "regenerator-runtime": "0.13.3", - "rimraf": "3.0.0", - "rollup": "1.25.2", - "rxjs": "6.5.3", - "sass": "1.23.3", - "sass-loader": "8.0.0", - "semver": "6.3.0", - "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.16", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.0.0", - "stylus": "0.54.7", - "stylus-loader": "3.0.2", - "terser": "4.5.1", - "terser-webpack-plugin": "2.3.3", - "tree-kill": "1.2.2", - "webpack": "4.41.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.9.0", - "webpack-merge": "4.2.2", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.3.4", - "worker-plugin": "3.2.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/open": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", - "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", - "dev": true, - "dependencies": { - "is-wsl": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular-devkit/build-angular/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/build-optimizer": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.900.7.tgz", - "integrity": "sha512-gxin2oPNMN+PYo82At2JP1Q+uxnvwyDFWA1Wl+Ufuc5zHGhjKqxdQjkdMF7OT0ihtmkllN+t/NTB7rcx/Sx9Wg==", - "dev": true, - "dependencies": { - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "tslib": "1.10.0", - "typescript": "3.6.4", - "webpack-sources": "1.4.3" - }, - "bin": { - "build-optimizer": "src/build-optimizer/cli.js" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "node_modules/@angular-devkit/build-optimizer/node_modules/typescript": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", - "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/@angular-devkit/build-webpack": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.900.7.tgz", - "integrity": "sha512-Nwwqjo1ZpHFLavN+nXOmuBgGjhoMBZGelDCvHtiQlQ9N6i7k9cKnP7eU5pY7jbalBguS+gWg5wJIGnbqk1K9Rg==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/core": "9.0.7", - "rxjs": "6.5.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/build-webpack/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.0.7.tgz", - "integrity": "sha512-tMrz36sM1xrwvFf9Qm59GwALscVlMP7rQBjtd0fIR/QbsiOAIX4AQbV+vN6Vtwnzo5NIRZY1IXJUhesWms+h5w==", - "dev": true, - "dependencies": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.4", - "rxjs": "6.5.3", - "source-map": "0.7.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/core/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular-devkit/schematics": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.0.7.tgz", - "integrity": "sha512-ryPC+l24f3gX5DFMTLkDM/q2Kp6LPzBn6400k7j4qVdb1cIrZx+JUQd7F4iAksTTkX15EQPanptQXeztUrl9Ng==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "9.0.7", - "ora": "4.0.2", - "rxjs": "6.5.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular-devkit/schematics/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@angular/animations": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.0.7.tgz", - "integrity": "sha512-74gY7onajmmnksy5E0/32bFv3B9NuWxV64kqD15YjGrh8AWe1BHt5enQI+rJ2tO8m2DKnwZsctis6k0Kcy+YKQ==" - }, - "node_modules/@angular/cdk": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.1.0.tgz", - "integrity": "sha512-yFEHtdp0o/xGnYebrU/PQqWVIlB7SaP3cSviq/LTv/h2EINn3PzU/Zhdhg0k0fk09BrKoS+o8AVIddduIdDpYw==", - "dependencies": { - "tslib": "^2.0.0" - }, - "optionalDependencies": { - "parse5": "^5.0.0" - } - }, - "node_modules/@angular/cdk/node_modules/parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "optional": true - }, - "node_modules/@angular/cdk/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/@angular/cli": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.0.7.tgz", - "integrity": "sha512-/9CUNSSVyTtTNUADZ/VXJDEdhineMN/rfd35w6VsHiob49tKkeOTggaoiSne3RY4VCTqlo7GGf4KhhVXEMGnDQ==", - "dev": true, - "dependencies": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7", - "@schematics/angular": "9.0.7", - "@schematics/update": "0.900.7", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "^4.1.1", - "ini": "1.3.5", - "inquirer": "7.0.0", - "npm-package-arg": "6.1.1", - "npm-pick-manifest": "3.0.2", - "open": "7.0.0", - "pacote": "9.5.8", - "read-package-tree": "5.3.1", - "rimraf": "3.0.0", - "semver": "6.3.0", - "symbol-observable": "1.2.0", - "universal-analytics": "^0.4.20", - "uuid": "^3.3.2" - }, - "bin": { - "ng": "bin/ng" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@angular/cli/node_modules/ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/cli/node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular/cli/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/cli/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular/cli/node_modules/inquirer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", - "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@angular/cli/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "node_modules/@angular/cli/node_modules/open": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", - "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", - "dev": true, - "dependencies": { - "is-wsl": "^2.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/string-width/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/string-width/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/@angular/cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/cli/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/@angular/common": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.0.7.tgz", - "integrity": "sha512-B58YgxZva1DBaeayOBsaUOOkoyR+GRibuNC3gfOMm2vXeW9eCNX+jvDtw767GnKm2yGzIq8wB3x6GHojN00dPw==" - }, - "node_modules/@angular/compiler": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.7.tgz", - "integrity": "sha512-hFpkuGpzxpK5h59LHHAjTFWsY6DCXZwgJFqvCuTPxWi/srvLGZRXrpC6Z1SlgHI9xxXaPfoa4uWw2VfA3BnqEg==" - }, - "node_modules/@angular/compiler-cli": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.0.7.tgz", - "integrity": "sha512-+RXghex63v0Vi8vpQtDpWiqpAAnrTaN3bHT5fntRenq5+Ok5vL1MJ1mzbTmBXs2tuwTqNlwMm2AlZB7G/xcDMQ==", - "dev": true, - "dependencies": { - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "yargs": "13.1.0" - }, - "bin": { - "ivy-ngcc": "ngcc/main-ivy-ngcc.js", - "ng-xi18n": "src/extract_i18n.js", - "ngc": "src/main.js", - "ngcc": "ngcc/main-ngcc.js" - }, - "engines": { - "node": ">=10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true, - "engines": { - "node": "6.* || 8.* || >= 10.*" - } - }, - "node_modules/@angular/compiler-cli/node_modules/require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "dev": true - }, - "node_modules/@angular/compiler-cli/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@angular/compiler-cli/node_modules/yargs": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", - "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - }, - "node_modules/@angular/compiler-cli/node_modules/yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/@angular/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.7.tgz", - "integrity": "sha512-E9XZH5Dl+9MWG3MDC6wrKllhA8Rljpz66HOIeqKv2fHPed8kzuJZU3WJWLtbhDAXFwtGTyTZ4c82ZLSmqwTorg==" - }, - "node_modules/@angular/fire": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-6.1.4.tgz", - "integrity": "sha512-5u305XnBC041JMrAtczLa0bdprxw7RkXy4kgcRCisPI8maGuiN4XzlwNYX+plCHZCo4R0motxQom//tPTA2edQ==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/common": "^9.0.0 || ^10.0.0 || ^11.0.0", - "@angular/core": "^9.0.0 || ^10.0.0 || ^11.0.0", - "@angular/platform-browser": "^9.0.0 || ^10.0.0 || ^11.0.0", - "@angular/platform-browser-dynamic": "^9.0.0 || ^10.0.0 || ^11.0.0", - "firebase": "^7.0 || ^8.0", - "rxjs": "^6.5.3" - } - }, - "node_modules/@angular/fire/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/@angular/forms": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.0.7.tgz", - "integrity": "sha512-PaHAmjMJDtg/3aGCPuq5BCRC1eZ/DBCpva9f7NrA1kqk0LcLdebm0v2uHwTOBtiz/VEgPvxiS4tXC4rjvUtfEg==" - }, - "node_modules/@angular/language-service": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.0.7.tgz", - "integrity": "sha512-IZG1kvw48JyFRy7bfMHqBixWrEHZmXmkP5DWsi5Tw6KusaczkMghI20BevCkodPcajXWHAUHNKyp1tlE3OnH0w==", - "dev": true - }, - "node_modules/@angular/material": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.1.0.tgz", - "integrity": "sha512-k7KpU8T32mmi1vaU27SSZ/gwO2YpxEUCTSzAOZNK8YugAXC+A5xPYLcNU8dlzBP4EW7XBkeSSnUacpI199YcyQ==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/@angular/material/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/@angular/platform-browser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.0.7.tgz", - "integrity": "sha512-Por8omrEiSV2U/K2mm/Kuv+2R2rJkbAZ3ctEM6CWj9Y4Gz2akjOCxmEgWhhBeqdigcC3T1v707f52osf9jWBkg==" - }, - "node_modules/@angular/platform-browser-dynamic": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.7.tgz", - "integrity": "sha512-jwpyd93ofcRtchbayKD5v4GN4Lc7vbPe6dMUiwfnVnVAql0bOD/3YRI7w5qJ0Xx0sgQT+9Xo6jTXYnyUsZpEww==" - }, - "node_modules/@angular/router": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.0.7.tgz", - "integrity": "sha512-uKru9F/Zju//gg6INl54abnlpLdEUUO/GpCfMk4zqu8LCZGNFta6OY7VT+9DK9Vdrh/XUD70oE9WoelcRwwTYA==" - }, - "node_modules/@apidevtools/json-schema-ref-parser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", - "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", - "dev": true, - "dependencies": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "node_modules/@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "dependencies": { - "@babel/highlight": "^7.10.4" - } - }, - "node_modules/@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/@babel/core/node_modules/json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "json5": "lib/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@babel/core/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/core/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/generator/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "dependencies": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "node_modules/@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "dependencies": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.10" - } - }, - "node_modules/@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "node_modules/@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "dependencies": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.1" - } - }, - "node_modules/@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11" - } - }, - "node_modules/@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "node_modules/@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "node_modules/@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "dependencies": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "node_modules/@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "node_modules/@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true, - "bin": { - "parser": "bin/babel-parser.js" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "node_modules/@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "node_modules/@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "node_modules/@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "dependencies": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "node_modules/@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "dependencies": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "dependencies": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "dependencies": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "node_modules/@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "dependencies": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "dependencies": { - "regenerator-transform": "^0.14.2" - } - }, - "node_modules/@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "node_modules/@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "dependencies": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "dependencies": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "node_modules/@babel/preset-env": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", - "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", - "dev": true, - "dependencies": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.7", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.7", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.6.0", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - } - }, - "node_modules/@babel/preset-env/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "dependencies": { - "regenerator-runtime": "^0.13.4" - } - }, - "node_modules/@babel/runtime/node_modules/regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - }, - "node_modules/@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "node_modules/@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - } - }, - "node_modules/@babel/traverse/node_modules/@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "dependencies": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "node_modules/@babel/traverse/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, - "dependencies": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "node_modules/@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "dependencies": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "node_modules/@firebase/analytics": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.2.tgz", - "integrity": "sha512-4Ceov+rPfOEPIdbjlpTim/wbcUUneIesHag4UOzvmFsRRXqbxLwQpyZQWEbTSriUeU8uTKj9yOW32hsskV9Klg==", - "dependencies": { - "@firebase/analytics-types": "0.4.0", - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/analytics-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.4.0.tgz", - "integrity": "sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA==" - }, - "node_modules/@firebase/app": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.14.tgz", - "integrity": "sha512-ZQKuiJ+fzr4tULgWoXbW+AZVTGsejOkSrlQ+zx78WiGKIubpFJLklnP3S0oYr/1nHzr4vaKuM4G8IL1Wv/+MpQ==", - "dependencies": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.21", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" - } - }, - "node_modules/@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==" - }, - "node_modules/@firebase/auth": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.3.tgz", - "integrity": "sha512-0U+SJrh9K8vDv+lvWPYU9cAQBRPt8fpm3cK7yRZAwnN4jbcqfg+KBaddrDn28aIQYX+n4TrLiZ9TMJXPJfUYhQ==", - "dependencies": { - "@firebase/auth-types": "0.10.1" - }, - "peerDependencies": { - "@firebase/app": "0.x" - } - }, - "node_modules/@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "0.x" - } - }, - "node_modules/@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "0.x" - } - }, - "node_modules/@firebase/component": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.21.tgz", - "integrity": "sha512-kd5sVmCLB95EK81Pj+yDTea8pzN2qo/1yr0ua9yVi6UgMzm6zAeih73iVUkaat96MAHy26yosMufkvd3zC4IKg==", - "dependencies": { - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/database": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.2.tgz", - "integrity": "sha512-pNvgKUNCdKvZxTLBt8Mg1iFbDOkACUHvfXs1tqLYASa9AvBZA64W4qH/uv6nXWlt+iXmknAKcJ+s9AOQ/hDPCw==", - "dependencies": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.21", - "@firebase/database-types": "0.6.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/database-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.6.1.tgz", - "integrity": "sha512-JtL3FUbWG+bM59iYuphfx9WOu2Mzf0OZNaqWiQ7lJR8wBe7bS9rIm9jlBFtksB7xcya1lZSQPA/GAy2jIlMIkA==", - "dependencies": { - "@firebase/app-types": "0.6.1" - } - }, - "node_modules/@firebase/database/node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/@firebase/firestore": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.1.5.tgz", - "integrity": "sha512-y680BvGOBw8MUvls5aVxTyougSedwHSDEoWZ4htZ9FJGnlI/jk5LhmmrJ4ELk0vmK9sbloHn2kFSkMaoUVDeZQ==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/firestore-types": "2.1.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "@firebase/webchannel-wrapper": "0.4.1", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "node-fetch": "2.6.1", - "tslib": "^1.11.1" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/firestore-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.1.0.tgz", - "integrity": "sha512-jietErBWihMvJkqqEquQy5GgoEwzHnMXXC/TsVoe9FPysXm1/AeJS12taS7ZYvenAtyvL/AEJyKrRKRh4adcJQ==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/functions": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.1.tgz", - "integrity": "sha512-xNCAY3cLlVWE8Azf+/84OjnaXMoyUstJ3vwVRG0ie22QhsdQuPa1tXTiPX4Tmm+Hbbd/Aw0A/7dkEnuW+zYzaQ==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/functions-types": "0.4.0", - "@firebase/messaging-types": "0.5.0", - "node-fetch": "2.6.1", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/functions-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz", - "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==" - }, - "node_modules/@firebase/installations": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.19.tgz", - "integrity": "sha512-QqAQzosKVVqIx7oMt5ujF4NsIXgtlTnej4JXGJ8sQQuJoMnt3T+PFQRHbr7uOfVaBiHYhEaXCcmmhfKUHwKftw==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.4", - "idb": "3.0.2", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" - }, - "node_modules/@firebase/messaging": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.3.tgz", - "integrity": "sha512-63nOP2SmQJrj9jrhV3K96L5MRKS6AqmFVLX1XbGk6K6lz38ZC4LIoCcHxzUBXY7fCAuZvNmh/YB3pE8B2mTs8A==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/messaging-types": "0.5.0", - "@firebase/util": "0.3.4", - "idb": "3.0.2", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/messaging-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz", - "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==", - "peerDependencies": { - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/performance": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.5.tgz", - "integrity": "sha512-oenEOaV/UzvV8XPi8afYQ71RzyrHoBesqOyXqb1TOg7dpU+i+UJ5PS8K64DytKUHTxQl+UJFcuxNpsoy9BpWzw==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==" - }, - "node_modules/@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "dependencies": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" - } - }, - "node_modules/@firebase/polyfill/node_modules/core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", - "hasInstallScript": true, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/core-js" - } - }, - "node_modules/@firebase/remote-config": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.30.tgz", - "integrity": "sha512-LAfLDcp1AN0V/7AkxBuTKy+Qnq9fKYKxbA5clrXRNVzJbTVnF5eFGsaUOlkes0ESG6lbqKy5ZcDgdl73zBIhAA==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" - }, - "node_modules/@firebase/storage": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.2.tgz", - "integrity": "sha512-87CrvKrf8kijVekRBmUs8htsNz7N5X/pDhv3BvJBqw8K65GsUolpyjx0f4QJRkCRUYmh3MSkpa5P08lpVbC6nQ==", - "dependencies": { - "@firebase/component": "0.1.21", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - }, - "peerDependencies": { - "@firebase/app": "0.x", - "@firebase/app-types": "0.x" - } - }, - "node_modules/@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "peerDependencies": { - "@firebase/app-types": "0.x", - "@firebase/util": "0.x" - } - }, - "node_modules/@firebase/util": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.4.tgz", - "integrity": "sha512-VwjJUE2Vgr2UMfH63ZtIX9Hd7x+6gayi6RUXaTqEYxSbf/JmehLmAEYSuxS/NckfzAXWeGnKclvnXVibDgpjQQ==", - "dependencies": { - "tslib": "^1.11.1" - } - }, - "node_modules/@firebase/webchannel-wrapper": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.4.1.tgz", - "integrity": "sha512-0yPjzuzGMkW1GkrC8yWsiN7vt1OzkMIi9HgxRmKREZl2wnNPOKo/yScTjXf/O57HM8dltqxPF6jlNLFVtc2qdw==" - }, - "node_modules/@google-cloud/paginator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-2.0.3.tgz", - "integrity": "sha512-kp/pkb2p/p0d8/SKUu4mOq8+HGwF8NPzHWkj+VKrIPQPyMRw8deZtrO/OcSiy9C/7bpfU5Txah5ltUNfPkgEXg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.0", - "extend": "^3.0.2" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/paginator/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@google-cloud/precise-date": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-1.0.3.tgz", - "integrity": "sha512-wWnDGh9y3cJHLuVEY8t6un78vizzMWsS7oIWKeFtPj+Ndy+dXvHW0HTx29ZUhen+tswSlQYlwFubvuRP5kKdzQ==", - "dev": true, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/projectify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-1.0.4.tgz", - "integrity": "sha512-ZdzQUN02eRsmTKfBj9FDL0KNDIFNjBn/d6tHQmA/+FImH5DO6ZV8E7FzxMgAUiVAUq41RFAkb25p1oHOZ8psfg==", - "dev": true, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/promisify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-1.0.4.tgz", - "integrity": "sha512-VccZDcOql77obTnFh0TbNED/6ZbbmHDf8UMNnzO1d5g9V0Htfm4k5cllY8P1tJsRKC3zWYGRLaViiupcgVjBoQ==", - "dev": true, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-1.7.3.tgz", - "integrity": "sha512-v+KdeaOS17WtHnsDf2bPGxKDT9HIRPYo3n+WsAEmvAzDHnh8q65mFcuYoQxuy2iRhmN/1ql2a0UU2tAAL7XZ8Q==", - "dev": true, - "dependencies": { - "@google-cloud/paginator": "^2.0.0", - "@google-cloud/precise-date": "^1.0.0", - "@google-cloud/projectify": "^1.0.0", - "@google-cloud/promisify": "^1.0.0", - "@types/duplexify": "^3.6.0", - "@types/long": "^4.0.0", - "arrify": "^2.0.0", - "async-each": "^1.0.1", - "extend": "^3.0.2", - "google-auth-library": "^5.5.0", - "google-gax": "^1.14.2", - "is-stream-ended": "^0.1.4", - "lodash.snakecase": "^4.1.1", - "p-defer": "^3.0.0", - "protobufjs": "^6.8.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/@grpc/grpc-js": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.0.5.tgz", - "integrity": "sha512-Hm+xOiqAhcpT9RYM8lc15dbQD7aQurM7ZU8ulmulepiPlN7iwBXXwP3vSBUimoFoApRqz7pSIisXU8pZaCB4og==", - "dev": true, - "dependencies": { - "semver": "^6.2.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - }, - "peerDependencies": { - "google-auth-library": "5.x || 6.x" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/google-gax": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.15.3.tgz", - "integrity": "sha512-3JKJCRumNm3x2EksUTw4P1Rad43FTpqrtW9jzpf3xSMYXx+ogaqTM1vGo7VixHB4xkAyATXVIa3OcNSh8H9zsQ==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "~1.0.3", - "@grpc/proto-loader": "^0.5.1", - "@types/fs-extra": "^8.0.1", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^3.6.0", - "google-auth-library": "^5.0.0", - "is-stream-ended": "^0.1.4", - "lodash.at": "^4.6.0", - "lodash.has": "^4.5.2", - "node-fetch": "^2.6.0", - "protobufjs": "^6.8.9", - "retry-request": "^4.0.0", - "semver": "^6.0.0", - "walkdir": "^0.4.0" - }, - "bin": { - "compileProtos": "build/tools/compileProtos.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", - "dev": true, - "dependencies": { - "node-forge": "^0.9.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/@google-cloud/pubsub/node_modules/p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@grpc/grpc-js": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.6.tgz", - "integrity": "sha512-wfYwFy7CvVEmBKzeDX1kQQYrv5NBpe8Z+VwXipFvqof3lCXKch7k+4T3grKtptaH5GQ5KP9iKwPr9hMDSynIUw==", - "dependencies": { - "@types/node": ">=12.12.47", - "google-auth-library": "^6.1.1", - "semver": "^6.2.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/@grpc/proto-loader": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.6.tgz", - "integrity": "sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==", - "dependencies": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "node_modules/@ngtools/webpack": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.0.7.tgz", - "integrity": "sha512-MvoMaErkjESefoIrbt8F2RpKDr9KavwvH4v3hwSAKooVNFdFKNsjJ7m3gCQehumEfsYFq2mrEK2sTW4/CpFlMQ==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "9.0.7", - "enhanced-resolve": "4.1.1", - "rxjs": "6.5.3", - "webpack-sources": "1.4.3" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@ngtools/webpack/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "node_modules/@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "node_modules/@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "node_modules/@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "node_modules/@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "dependencies": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "node_modules/@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "node_modules/@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "node_modules/@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "node_modules/@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "node_modules/@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "node_modules/@schematics/angular": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.0.7.tgz", - "integrity": "sha512-3UCeexYx/YVo3kboyPZ8KgqBTduMA18AAm3s2yrC0qj41fBFVVZAZLa74uouTf4RYVgy9kR7J3uv6VLxrJPOnQ==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/update": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.900.7.tgz", - "integrity": "sha512-e9tX2DGNYfj/k9mVICpQt2bWIYyD92dlsip7LzPeZGt+R9zCp5w19uBLa8Z00OgEGzFR1krhRvkQE5OxkkAnVw==", - "dev": true, - "dependencies": { - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "npm-package-arg": "^7.0.0", - "pacote": "9.5.8", - "rxjs": "6.5.3", - "semver": "6.3.0", - "semver-intersect": "1.4.0" - }, - "engines": { - "node": ">= 10.13.0", - "npm": ">= 6.11.0", - "yarn": ">= 1.13.0" - } - }, - "node_modules/@schematics/update/node_modules/npm-package-arg": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", - "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", - "dev": true, - "dependencies": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/@schematics/update/node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/@schematics/update/node_modules/rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "dependencies": { - "defer-to-connect": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/@types/duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", - "dev": true - }, - "node_modules/@types/fs-extra": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", - "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", - "dev": true, - "dependencies": { - "@types/node": "*" - } - }, - "node_modules/@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "dependencies": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "node_modules/@types/jasmine": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", - "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", - "dev": true - }, - "node_modules/@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", - "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", - "dev": true, - "dependencies": { - "@types/jasmine": "*" - } - }, - "node_modules/@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "node_modules/@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "node_modules/@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "node_modules/@types/node": { - "version": "12.19.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", - "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" - }, - "node_modules/@types/pdfjs-dist": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/pdfjs-dist/-/pdfjs-dist-2.1.7.tgz", - "integrity": "sha512-nQIwcPUhkAIyn7x9NS0lR/qxYfd5unRtfGkMjvpgF4Sh28IXftRymaNmFKTTdejDNY25NDGSIyjwj/BRwAPexg==" - }, - "node_modules/@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "node_modules/@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", - "dev": true - }, - "node_modules/@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "node_modules/@types/webpack-sources": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "dev": true, - "dependencies": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - } - }, - "node_modules/@types/webpack-sources/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "node_modules/@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "dependencies": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "node_modules/@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "node_modules/@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "node_modules/@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "node_modules/@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "dependencies": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "node_modules/@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "dependencies": { - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "node_modules/@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "node_modules/@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "node_modules/@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "node_modules/@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "node_modules/@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "node_modules/abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "node_modules/abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "dependencies": { - "event-target-shim": "^5.0.0" - }, - "engines": { - "node": ">=6.5" - } - }, - "node_modules/accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "dependencies": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true, - "engines": { - "node": ">=0.3.0" - } - }, - "node_modules/after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "node_modules/agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dev": true, - "dependencies": { - "humanize-ms": "^1.2.1" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "dependencies": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "node_modules/ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "node_modules/alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "node_modules/angular-walkthrough": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/angular-walkthrough/-/angular-walkthrough-0.8.2.tgz", - "integrity": "sha512-UoxFGFO1k99JP4LlS6aah0jD27389MmalGKKudM2b6cUl8ZLf6WK5oe+prsEBf/PNc3mnDSjHVVDLoH0V4cDtQ==", - "dependencies": { - "tslib": "^1.9.0" - } - }, - "node_modules/ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "dependencies": { - "string-width": "^3.0.0" - } - }, - "node_modules/ansi-align/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "node_modules/ansi-align/node_modules/string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "dependencies": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-align/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansi-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true, - "engines": [ - "node >= 0.8.0" - ], - "bin": { - "ansi-html": "bin/ansi-html" - } - }, - "node_modules/ansi-regex": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", - "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ansi-styles": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, - "node_modules/anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "dependencies": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/apexcharts": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.24.0.tgz", - "integrity": "sha512-iT6czJCIVrmAtrcO90MZTQCvC+xi6R6Acf0jNH/d40FVTtCfcqECuKIh5iAMyOTtgUb7+fQ8rbadH2bm1kbL9Q==", - "dependencies": { - "svg.draggable.js": "^2.2.2", - "svg.easing.js": "^2.0.0", - "svg.filter.js": "^2.0.2", - "svg.pathmorphing.js": "^0.1.3", - "svg.resize.js": "^1.4.3", - "svg.select.js": "^3.0.1" - }, - "funding": { - "url": "https://github.com/apexcharts/apexcharts.js?sponsor=1" - } - }, - "node_modules/app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", - "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", - "dev": true, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "dependencies": { - "default-require-extensions": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "node_modules/archiver": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "dependencies": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/archiver/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "dependencies": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "node_modules/arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "node_modules/argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "dependencies": { - "sprintf-js": "~1.0.2" - } - }, - "node_modules/aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "node_modules/arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "node_modules/array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "dependencies": { - "array-uniq": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "node_modules/arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/as-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz", - "integrity": "sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc=", - "dev": true - }, - "node_modules/asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "node_modules/asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "dependencies": { - "safer-buffer": "~2.1.0" - } - }, - "node_modules/asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/asn1.js/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "util": "0.10.3" - } - }, - "node_modules/assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/assert/node_modules/inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "node_modules/assert/node_modules/util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "dependencies": { - "inherits": "2.0.1" - } - }, - "node_modules/assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "node_modules/async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.14" - } - }, - "node_modules/async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "node_modules/async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "node_modules/asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "node_modules/atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true, - "bin": { - "atob": "bin/atob.js" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/autoprefixer": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.1.tgz", - "integrity": "sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw==", - "dev": true, - "dependencies": { - "browserslist": "^4.7.2", - "caniuse-lite": "^1.0.30001006", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.21", - "postcss-value-parser": "^4.0.2" - }, - "bin": { - "autoprefixer": "bin/autoprefixer" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "node_modules/axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "dependencies": { - "ast-types-flow": "0.0.7" - } - }, - "node_modules/babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", - "dev": true, - "dependencies": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - }, - "engines": { - "node": ">= 6.9" - } - }, - "node_modules/babel-loader/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "dependencies": { - "object.assign": "^4.1.0" - } - }, - "node_modules/backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "node_modules/balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "node_modules/base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "dependencies": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "node_modules/base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/basic-auth-connect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", - "dev": true - }, - "node_modules/batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "node_modules/bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "dependencies": { - "tweetnacl": "^0.14.3" - } - }, - "node_modules/better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "dependencies": { - "callsite": "1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==", - "engines": { - "node": "*" - } - }, - "node_modules/binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "dependencies": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "dependencies": { - "file-uri-to-path": "1.0.0" - } - }, - "node_modules/bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "dependencies": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - } - }, - "node_modules/bl/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/bl/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true - }, - "node_modules/blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "node_modules/blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "blocking-proxy": "built/lib/bin.js" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "node_modules/bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "node_modules/body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/body-parser/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/body-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/body-parser/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "dependencies": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "node_modules/boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "node_modules/bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - }, - "node_modules/boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "dependencies": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/boxen/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/boxen/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/boxen/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/boxen/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/boxen/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "dependencies": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "node_modules/braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "dependencies": { - "fill-range": "^7.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "node_modules/browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "dependencies": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "dependencies": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "node_modules/browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "dependencies": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "node_modules/browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "dependencies": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/browserify-sign/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/browserify-sign/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "dependencies": { - "pako": "~1.0.5" - } - }, - "node_modules/browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "dependencies": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - }, - "bin": { - "browserslist": "cli.js" - }, - "engines": { - "node": "^6 || ^7 || ^8 || ^9 || ^10 || ^11 || ^12 || >=13.7" - } - }, - "node_modules/browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - } - }, - "node_modules/buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "dependencies": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "node_modules/buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "dependencies": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "node_modules/buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "node_modules/buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "node_modules/buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "node_modules/buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "node_modules/buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "node_modules/buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "node_modules/buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true, - "engines": { - "node": ">=0.2.0" - } - }, - "node_modules/builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "node_modules/builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "node_modules/bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "dependencies": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/cacache/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "dependencies": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "dependencies": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cacheable-request/node_modules/http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "node_modules/cacheable-request/node_modules/lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cacheable-request/node_modules/normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "node_modules/call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "node_modules/caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "dependencies": { - "callsites": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "dependencies": { - "caller-callsite": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "node_modules/caniuse-lite": { - "version": "1.0.30001179", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz", - "integrity": "sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA==", - "dev": true - }, - "node_modules/canonical-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", - "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", - "dev": true - }, - "node_modules/cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dev": true, - "dependencies": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - }, - "bin": { - "cdl": "bin/cdl.js" - } - }, - "node_modules/caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "node_modules/chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "dependencies": { - "traverse": ">=0.3.0 <0.4" - }, - "engines": { - "node": "*" - } - }, - "node_modules/chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "dependencies": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true - }, - "node_modules/chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", - "dev": true, - "dependencies": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" - }, - "engines": { - "node": ">= 8.10.0" - }, - "optionalDependencies": { - "fsevents": "~2.3.1" - } - }, - "node_modules/chokidar/node_modules/glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "node_modules/chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "node_modules/cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/circular-dependency-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/cjson": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz", - "integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=", - "dev": true, - "dependencies": { - "json-parse-helpfulerror": "^1.0.3" - }, - "engines": { - "node": ">= 0.3.0" - } - }, - "node_modules/class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/class-utils/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true, - "engines": { - "node": ">=6" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/cli-color": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", - "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", - "dev": true, - "dependencies": { - "ansi-regex": "^2.1.1", - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.14", - "timers-ext": "^0.1.5" - } - }, - "node_modules/cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "dependencies": { - "restore-cursor": "^3.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/cli-table": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz", - "integrity": "sha512-1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "string-width": "^4.2.0" - }, - "engines": { - "node": ">= 10.0.0" - } - }, - "node_modules/cli-table/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/cli-table/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/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 - }, - "node_modules/cliui": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "dependencies": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - } - }, - "node_modules/cliui/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/cliui/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - } - }, - "node_modules/coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "dependencies": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", - "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", - "dev": true, - "dependencies": { - "app-root-path": "^2.2.1", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2" - } - }, - "node_modules/codelyzer/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/codelyzer/node_modules/sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", - "dev": true - }, - "node_modules/collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "dependencies": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "node_modules/color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "dependencies": { - "color-name": "1.1.3" - } - }, - "node_modules/color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "node_modules/color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "dev": true, - "dependencies": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "node_modules/colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "node_modules/colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "dev": true, - "dependencies": { - "color": "3.0.x", - "text-hex": "1.0.x" - } - }, - "node_modules/colorspace/node_modules/color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", - "dev": true, - "dependencies": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" - } - }, - "node_modules/combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "dependencies": { - "delayed-stream": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "node_modules/commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "node_modules/compare-semver": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz", - "integrity": "sha1-fAp5onu4C2xplERfgpWCWdPQIVM=", - "dev": true, - "dependencies": { - "semver": "^5.0.1" - } - }, - "node_modules/compare-semver/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "node_modules/component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "node_modules/component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "node_modules/component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "node_modules/compress-commons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", - "dev": true, - "dependencies": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "dependencies": { - "mime-db": ">= 1.43.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", - "dev": true, - "dependencies": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/compression/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/compression/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "node_modules/concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "engines": [ - "node >= 0.8" - ], - "dependencies": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "node_modules/configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/configstore/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/connect/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/connect/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "node_modules/console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "node_modules/constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "node_modules/content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "dependencies": { - "safe-buffer": "5.1.2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.1" - } - }, - "node_modules/cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "node_modules/copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" - } - }, - "node_modules/copy-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/copy-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==", - "dev": true, - "dependencies": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/copy-webpack-plugin/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/copy-webpack-plugin/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true - }, - "node_modules/core-js-compat": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz", - "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==", - "dev": true, - "dependencies": { - "browserslist": "^4.16.1", - "semver": "7.0.0" - } - }, - "node_modules/core-js-compat/node_modules/semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true, - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "node_modules/cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, - "dependencies": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/coverage-istanbul-loader": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", - "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", - "dev": true, - "dependencies": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.0", - "loader-utils": "^1.2.3", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.6.1" - } - }, - "node_modules/coverage-istanbul-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/coverage-istanbul-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/coverage-istanbul-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "dependencies": { - "buffer": "^5.1.0" - } - }, - "node_modules/crc/node_modules/buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "funding": [ - { - "type": "github", - "url": "https://github.com/sponsors/feross" - }, - { - "type": "patreon", - "url": "https://www.patreon.com/feross" - }, - { - "type": "consulting", - "url": "https://feross.org/support" - } - ], - "dependencies": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "node_modules/crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "dev": true, - "dependencies": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/crc32-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - } - }, - "node_modules/create-ecdh/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "node_modules/create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "dependencies": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "node_modules/cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.5" - }, - "bin": { - "cross-env": "dist/bin/cross-env.js", - "cross-env-shell": "dist/bin/cross-env-shell.js" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "dependencies": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "engines": { - "node": ">=4.8" - } - }, - "node_modules/cross-spawn/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "dependencies": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - }, - "engines": { - "node": "*" - } - }, - "node_modules/crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - } - }, - "node_modules/css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - }, - "engines": { - "node": ">4" - } - }, - "node_modules/css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "dependencies": { - "css": "^2.0.0" - } - }, - "node_modules/css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "dependencies": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "node_modules/css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "node_modules/css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "node_modules/css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/css-tree/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/css/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "dependencies": { - "through": "X.X.X" - } - }, - "node_modules/cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true, - "bin": { - "cssesc": "bin/cssesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "dependencies": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", - "dev": true, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, - "dependencies": { - "css-tree": "^1.1.2" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", - "dev": true, - "dependencies": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/csso/node_modules/mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true - }, - "node_modules/csso/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/csv-streamify": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz", - "integrity": "sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho=", - "dev": true, - "dependencies": { - "through2": "2.0.1" - }, - "bin": { - "csv-streamify": "cli.js" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/csv-streamify/node_modules/process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true - }, - "node_modules/csv-streamify/node_modules/readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/csv-streamify/node_modules/string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true - }, - "node_modules/csv-streamify/node_modules/through2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", - "dev": true, - "dependencies": { - "readable-stream": "~2.0.0", - "xtend": "~4.0.0" - } - }, - "node_modules/custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "node_modules/cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "node_modules/d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, - "dependencies": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" - } - }, - "node_modules/damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "node_modules/dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", - "dependencies": { - "ms": "2.1.2" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, - "dependencies": { - "mimic-response": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", - "dev": true, - "dependencies": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" - } - }, - "node_modules/deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/deep-freeze": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", - "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", - "dev": true - }, - "node_modules/deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true - }, - "node_modules/default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", - "dev": true, - "dependencies": { - "strip-bom": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", - "dev": true, - "dependencies": { - "clone": "^1.0.2" - } - }, - "node_modules/defaults/node_modules/clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "node_modules/define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, - "dependencies": { - "object-keys": "^1.0.12" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/define-property/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", - "dev": true, - "dependencies": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/globby/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/del/node_modules/p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/del/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", - "dev": true, - "optional": true - }, - "node_modules/depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", - "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true - }, - "node_modules/detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true - }, - "node_modules/dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", - "dev": true, - "dependencies": { - "asap": "^2.0.0", - "wrappy": "1" - } - }, - "node_modules/di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "node_modules/diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" - } - }, - "node_modules/diffie-hellman/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", - "dev": true, - "dependencies": { - "path-type": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", - "dev": true - }, - "node_modules/dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", - "dev": true, - "dependencies": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", - "dev": true, - "dependencies": { - "buffer-indexof": "^1.0.0" - } - }, - "node_modules/dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, - "dependencies": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" - } - }, - "node_modules/dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", - "dev": true, - "dependencies": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - } - }, - "node_modules/dom-serializer/node_modules/domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "dev": true - }, - "node_modules/dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==", - "engines": { - "node": "*" - } - }, - "node_modules/domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", - "dev": true, - "engines": { - "node": ">=0.4", - "npm": ">=1.2" - } - }, - "node_modules/domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true - }, - "node_modules/domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", - "dev": true, - "dependencies": { - "dom-serializer": "0", - "domelementtype": "1" - } - }, - "node_modules/dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, - "dependencies": { - "is-obj": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.2" - } - }, - "node_modules/duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true - }, - "node_modules/duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", - "dev": true, - "dependencies": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" - } - }, - "node_modules/ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", - "dependencies": { - "safe-buffer": "^5.0.1" - } - }, - "node_modules/ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "node_modules/electron-to-chromium": { - "version": "1.3.644", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", - "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==", - "dev": true - }, - "node_modules/elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", - "dev": true, - "dependencies": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - } - }, - "node_modules/elliptic/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "node_modules/emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "node_modules/encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", - "dev": true, - "dependencies": { - "iconv-lite": "^0.6.2" - } - }, - "node_modules/encoding/node_modules/iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", - "dev": true, - "dependencies": { - "once": "^1.4.0" - } - }, - "node_modules/engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" - } - }, - "node_modules/engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - } - }, - "node_modules/engine.io-client/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/engine.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/engine.io-client/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", - "dev": true, - "dependencies": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" - } - }, - "node_modules/engine.io/node_modules/cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/engine.io/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/engine.io/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/engine.io/node_modules/ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - }, - "node_modules/enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "node_modules/entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "node_modules/env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", - "dev": true, - "optional": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true - }, - "node_modules/errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", - "dev": true, - "dependencies": { - "prr": "~1.0.1" - }, - "bin": { - "errno": "cli.js" - } - }, - "node_modules/error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", - "dev": true, - "dependencies": { - "is-arrayish": "^0.2.1" - } - }, - "node_modules/es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", - "dev": true, - "dependencies": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", - "dev": true, - "dependencies": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" - } - }, - "node_modules/es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "node_modules/es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", - "dev": true, - "dependencies": { - "es6-promise": "^4.0.3" - } - }, - "node_modules/es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "ext": "^1.1.2" - } - }, - "node_modules/es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" - } - }, - "node_modules/escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "node_modules/escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", - "dev": true, - "dependencies": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true, - "bin": { - "esparse": "bin/esparse.js", - "esvalidate": "bin/esvalidate.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", - "dev": true, - "dependencies": { - "estraverse": "^5.2.0" - }, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/esrecurse/node_modules/estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", - "dev": true, - "dependencies": { - "d": "1", - "es5-ext": "~0.10.14" - } - }, - "node_modules/event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==", - "engines": { - "node": ">=6" - } - }, - "node_modules/eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true - }, - "node_modules/events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true, - "engines": { - "node": ">=0.8.x" - } - }, - "node_modules/events-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz", - "integrity": "sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==", - "dev": true - }, - "node_modules/eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", - "dev": true, - "dependencies": { - "original": "^1.0.0" - }, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", - "dev": true, - "dependencies": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "dependencies": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/exegesis": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz", - "integrity": "sha512-e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==", - "dev": true, - "dependencies": { - "@apidevtools/json-schema-ref-parser": "^9.0.3", - "ajv": "^6.12.2", - "body-parser": "^1.18.3", - "content-type": "^1.0.4", - "deep-freeze": "0.0.1", - "events-listener": "^1.1.0", - "glob": "^7.1.3", - "json-ptr": "^1.3.1", - "json-schema-traverse": "^0.4.1", - "lodash": "^4.17.11", - "openapi3-ts": "^1.2.0", - "promise-breaker": "^5.0.0", - "pump": "^3.0.0", - "qs": "^6.6.0", - "raw-body": "^2.3.3", - "semver": "^7.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">5.0.0" - } - }, - "node_modules/exegesis-express": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz", - "integrity": "sha512-NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==", - "dev": true, - "dependencies": { - "exegesis": "^2.0.0" - }, - "engines": { - "node": ">=6.0.0", - "npm": ">5.0.0" - } - }, - "node_modules/exegesis/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - }, - "funding": { - "type": "github", - "url": "https://github.com/sponsors/epoberezkin" - } - }, - "node_modules/exegesis/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/exegesis/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/exegesis/node_modules/qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true, - "engines": { - "node": ">=0.6" - }, - "funding": { - "url": "https://github.com/sponsors/ljharb" - } - }, - "node_modules/exegesis/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/exit-code": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz", - "integrity": "sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ=", - "dev": true - }, - "node_modules/expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", - "dev": true, - "dependencies": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/expand-brackets/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/expand-brackets/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", - "dev": true, - "dependencies": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" - }, - "engines": { - "node": ">= 0.10.0" - } - }, - "node_modules/express/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/express/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/express/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/express/node_modules/qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", - "dev": true, - "dependencies": { - "type": "^2.0.0" - } - }, - "node_modules/ext/node_modules/type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - }, - "node_modules/extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" - }, - "node_modules/extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", - "dev": true, - "dependencies": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extend-shallow/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", - "dev": true, - "dependencies": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "dependencies": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extglob/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true, - "engines": [ - "node >=0.6.0" - ] - }, - "node_modules/fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true - }, - "node_modules/fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true - }, - "node_modules/fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true - }, - "node_modules/fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" - }, - "node_modules/fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", - "dev": true, - "dependencies": { - "punycode": "^1.3.2" - } - }, - "node_modules/fast-url-parser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "node_modules/faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", - "dev": true - }, - "node_modules/figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true - }, - "node_modules/figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/file-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", - "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", - "dev": true, - "dependencies": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.0" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/file-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/file-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/file-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", - "dev": true, - "optional": true - }, - "node_modules/fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", - "dev": true, - "dependencies": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" - } - }, - "node_modules/filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", - "dev": true, - "dependencies": { - "to-regex-range": "^5.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/finalhandler/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/finalhandler/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/find-cache-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", - "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.0", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-cache-dir/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", - "dev": true, - "dependencies": { - "locate-path": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/firebase": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.2.6.tgz", - "integrity": "sha512-UHBAA8r7oIdbdafTGo3ED8wL9r/vdSgllN0yBzJMCyxk16DtL0oQnXRXwTU7FSc2c3JrvTUX9jtMFjtKjOUNMQ==", - "dependencies": { - "@firebase/analytics": "0.6.2", - "@firebase/app": "0.6.14", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.16.3", - "@firebase/database": "0.9.2", - "@firebase/firestore": "2.1.5", - "@firebase/functions": "0.6.1", - "@firebase/installations": "0.4.19", - "@firebase/messaging": "0.7.3", - "@firebase/performance": "0.4.5", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.30", - "@firebase/storage": "0.4.2", - "@firebase/util": "0.3.4" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/firebase-tools": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-8.20.0.tgz", - "integrity": "sha512-FovOHkPEvdT31EqxDzjJkaJIYLrc+0GZwQ3ixT1WI3yF3o4TG8MCVo+QidmcNqyX0XZnI3/5sF3dpxXQ/HzaVw==", - "dev": true, - "dependencies": { - "@google-cloud/pubsub": "^1.7.0", - "abort-controller": "^3.0.0", - "archiver": "^3.0.0", - "body-parser": "^1.19.0", - "chokidar": "^3.0.2", - "cjson": "^0.3.1", - "cli-color": "^1.2.0", - "cli-table": "^0.3.1", - "commander": "^4.0.1", - "configstore": "^5.0.1", - "cross-env": "^5.1.3", - "cross-spawn": "^7.0.1", - "csv-streamify": "^3.0.4", - "dotenv": "^6.1.0", - "exegesis-express": "^2.0.0", - "exit-code": "^1.0.2", - "express": "^4.16.4", - "filesize": "^3.1.3", - "fs-extra": "^0.23.1", - "glob": "^7.1.2", - "google-auth-library": "^5.5.0", - "google-gax": "~1.12.0", - "inquirer": "~6.3.1", - "js-yaml": "^3.13.1", - "jsonschema": "^1.0.2", - "JSONStream": "^1.2.1", - "jsonwebtoken": "^8.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.19", - "marked": "^0.7.0", - "marked-terminal": "^3.3.0", - "minimatch": "^3.0.4", - "morgan": "^1.10.0", - "node-fetch": "^2.6.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "plist": "^3.0.1", - "portfinder": "^1.0.23", - "progress": "^2.0.3", - "request": "^2.87.0", - "rimraf": "^3.0.0", - "semver": "^5.7.1", - "superstatic": "^7.1.0", - "tar": "^4.3.0", - "tcp-port-used": "^1.0.1", - "tmp": "0.0.33", - "triple-beam": "^1.3.0", - "tweetsodium": "0.0.5", - "universal-analytics": "^0.4.16", - "unzipper": "^0.10.10", - "update-notifier": "^4.1.0", - "uuid": "^3.0.0", - "winston": "^3.0.0", - "ws": "^7.2.3" - }, - "bin": { - "firebase": "lib/bin/firebase.js" - }, - "engines": { - "node": ">= 8.6.0" - } - }, - "node_modules/firebase-tools/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/firebase-tools/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/firebase-tools/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/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, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true, - "engines": { - "node": ">= 6" - } - }, - "node_modules/firebase-tools/node_modules/cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "dependencies": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/firebase-tools/node_modules/fs-extra": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", - "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - } - }, - "node_modules/firebase-tools/node_modules/fs-extra/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/firebase-tools/node_modules/gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/firebase-tools/node_modules/gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/firebase-tools/node_modules/google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/firebase-tools/node_modules/google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", - "dev": true, - "dependencies": { - "node-forge": "^0.9.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/firebase-tools/node_modules/gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/firebase-tools/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/firebase-tools/node_modules/inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "dev": true, - "dependencies": { - "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.11", - "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" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/firebase-tools/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/firebase-tools/node_modules/jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "optionalDependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/firebase-tools/node_modules/log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/firebase-tools/node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/firebase-tools/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/firebase-tools/node_modules/path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/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, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/firebase-tools/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/firebase-tools/node_modules/shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, - "dependencies": { - "shebang-regex": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/firebase-tools/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/firebase-tools/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/firebase-tools/node_modules/ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "dev": true, - "engines": { - "node": ">=8.3.0" - }, - "peerDependencies": { - "bufferutil": "^4.0.1", - "utf-8-validate": "^5.0.2" - }, - "peerDependenciesMeta": { - "bufferutil": { - "optional": true - }, - "utf-8-validate": { - "optional": true - } - } - }, - "node_modules/flat-arguments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz", - "integrity": "sha1-m6p4Ct8FAfKC1ybJxqA426ROp28=", - "dev": true, - "dependencies": { - "array-flatten": "^1.0.0", - "as-array": "^1.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isobject": "^3.0.0" - } - }, - "node_modules/flat-arguments/node_modules/array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "node_modules/flat-arguments/node_modules/as-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz", - "integrity": "sha1-KKbu6qVynx9OyiBH316d4avaDtE=", - "dev": true, - "dependencies": { - "lodash.isarguments": "2.4.x", - "lodash.isobject": "^2.4.1", - "lodash.values": "^2.4.1" - } - }, - "node_modules/flat-arguments/node_modules/as-array/node_modules/lodash.isarguments": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz", - "integrity": "sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo=", - "dev": true - }, - "node_modules/flat-arguments/node_modules/as-array/node_modules/lodash.isobject": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", - "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", - "dev": true, - "dependencies": { - "lodash._objecttypes": "~2.4.1" - } - }, - "node_modules/flat-arguments/node_modules/lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true - }, - "node_modules/flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "node_modules/flush-write-stream": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" - } - }, - "node_modules/fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true - }, - "node_modules/follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/for-in": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", - "dev": true, - "dependencies": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" - }, - "engines": { - "node": ">= 0.12" - } - }, - "node_modules/forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", - "dev": true, - "dependencies": { - "map-cache": "^0.2.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" - } - }, - "node_modules/fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", - "dev": true - }, - "node_modules/fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "node_modules/fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" - } - }, - "node_modules/fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", - "dev": true - }, - "node_modules/fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "dev": true, - "optional": true, - "os": [ - "darwin" - ], - "engines": { - "node": "^8.16.0 || ^10.6.0 || >=11.0.0" - } - }, - "node_modules/fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/fstream/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true - }, - "node_modules/fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", - "dev": true, - "optional": true, - "dependencies": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" - } - }, - "node_modules/gauge/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "optional": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gauge/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "optional": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/gaxios": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz", - "integrity": "sha512-vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==", - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/gaxios/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/gaxios/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/gaxios/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "engines": { - "node": ">=8" - } - }, - "node_modules/gcp-metadata": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", - "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", - "dependencies": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", - "dev": true - }, - "node_modules/get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "node_modules/get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "node_modules/get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "dependencies": { - "pump": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0" - } - }, - "node_modules/glob": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", - "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", - "dev": true, - "dependencies": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" - }, - "engines": { - "node": "*" - } - }, - "node_modules/glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", - "dev": true, - "dependencies": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" - } - }, - "node_modules/glob-parent/node_modules/is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/glob-slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", - "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", - "dev": true - }, - "node_modules/glob-slasher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz", - "integrity": "sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44=", - "dev": true, - "dependencies": { - "glob-slash": "^1.0.0", - "lodash.isobject": "^2.4.1", - "toxic": "^1.0.0" - } - }, - "node_modules/global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", - "dev": true, - "dependencies": { - "ini": "1.3.7" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/global-dirs/node_modules/ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", - "dev": true - }, - "node_modules/globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/globby/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/google-auth-library": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", - "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-auth-library/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "engines": { - "node": ">=8" - } - }, - "node_modules/google-auth-library/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/google-gax": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.12.0.tgz", - "integrity": "sha512-BeeoxVO6y9K20gUsexUwptutd0PfrTItrA02JWwwstlBIOAcvgFp86MHWufQsnrkPVhxBjHXq65aIkSejtJjDg==", - "dev": true, - "dependencies": { - "@grpc/grpc-js": "^0.6.12", - "@grpc/proto-loader": "^0.5.1", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^3.6.0", - "google-auth-library": "^5.0.0", - "is-stream-ended": "^0.1.4", - "lodash.at": "^4.6.0", - "lodash.has": "^4.5.2", - "node-fetch": "^2.6.0", - "protobufjs": "^6.8.8", - "retry-request": "^4.0.0", - "semver": "^6.0.0", - "walkdir": "^0.4.0" - }, - "bin": { - "compileProtos": "build/tools/compileProtos.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/@grpc/grpc-js": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.6.18.tgz", - "integrity": "sha512-uAzv/tM8qpbf1vpx1xPMfcUMzbfdqJtdCYAqY/LsLeQQlnTb4vApylojr+wlCyr7bZeg3AFfHvtihnNOQQt/nA==", - "dev": true, - "dependencies": { - "semver": "^6.2.0" - }, - "engines": { - "node": "^8.13.0 || >=10.10.0" - } - }, - "node_modules/google-gax/node_modules/agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "dependencies": { - "debug": "4" - }, - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/google-gax/node_modules/arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/google-gax/node_modules/gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "dependencies": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "dependencies": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", - "dev": true, - "dependencies": { - "node-forge": "^0.9.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "dependencies": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/google-gax/node_modules/https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "dependencies": { - "agent-base": "6", - "debug": "4" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/google-gax/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/google-gax/node_modules/json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/google-gax/node_modules/mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/google-gax/node_modules/node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/google-p12-pem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", - "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", - "dependencies": { - "node-forge": "^0.10.0" - }, - "bin": { - "gp12-pem": "build/src/bin/gp12-pem.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", - "dev": true, - "dependencies": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" - }, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", - "dev": true - }, - "node_modules/gtoken": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", - "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", - "dependencies": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", - "dev": true - }, - "node_modules/har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "dependencies": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/har-validator/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/har-validator/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "dependencies": { - "function-bind": "^1.1.1" - }, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-binary2": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "dependencies": { - "isarray": "2.0.1" - } - }, - "node_modules/has-binary2/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", - "dev": true - }, - "node_modules/has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", - "dev": true, - "optional": true - }, - "node_modules/has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", - "dev": true, - "dependencies": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-values/node_modules/kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/hash-base/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/hash-base/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" - } - }, - "node_modules/hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", - "dev": true - }, - "node_modules/hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", - "dev": true, - "dependencies": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" - } - }, - "node_modules/home-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz", - "integrity": "sha1-KRfrRL3JByztqUJXlUOEfjAX/k4=", - "dev": true - }, - "node_modules/hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", - "dev": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hosted-git-info/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" - } - }, - "node_modules/hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", - "dev": true - }, - "node_modules/hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", - "dev": true - }, - "node_modules/html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", - "dev": true - }, - "node_modules/html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", - "dev": true - }, - "node_modules/html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", - "dev": true - }, - "node_modules/http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", - "dev": true - }, - "node_modules/http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", - "dev": true - }, - "node_modules/http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/http-errors/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, - "node_modules/http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", - "dev": true, - "dependencies": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" - }, - "engines": { - "node": ">=8.0.0" - } - }, - "node_modules/http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", - "dev": true, - "dependencies": { - "agent-base": "4", - "debug": "3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/http-proxy-agent/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/http-proxy-agent/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", - "dev": true, - "dependencies": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", - "dev": true, - "dependencies": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" - }, - "engines": { - "node": ">=0.8", - "npm": ">=1.3.7" - } - }, - "node_modules/https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", - "dev": true - }, - "node_modules/https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", - "dev": true, - "dependencies": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "engines": { - "node": ">= 4.5.0" - } - }, - "node_modules/https-proxy-agent/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", - "dev": true, - "dependencies": { - "ms": "^2.0.0" - } - }, - "node_modules/iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", - "dev": true, - "dependencies": { - "safer-buffer": ">= 2.1.2 < 3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==" - }, - "node_modules/ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "node_modules/iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "node_modules/ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "node_modules/ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", - "dev": true, - "dependencies": { - "minimatch": "^3.0.4" - } - }, - "node_modules/image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true, - "bin": { - "image-size": "bin/image-size.js" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", - "dev": true - }, - "node_modules/import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", - "dev": true, - "dependencies": { - "import-from": "^2.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", - "dev": true, - "dependencies": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", - "dev": true, - "dependencies": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" - }, - "bin": { - "import-local-fixture": "fixtures/cli.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", - "dev": true, - "engines": { - "node": ">=0.8.19" - } - }, - "node_modules/indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", - "dev": true - }, - "node_modules/indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", - "dev": true - }, - "node_modules/infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", - "dev": true - }, - "node_modules/inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", - "dev": true, - "dependencies": { - "once": "^1.3.0", - "wrappy": "1" - } - }, - "node_modules/inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", - "dev": true - }, - "node_modules/ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/inquirer": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.5.2.tgz", - "integrity": "sha512-cntlB5ghuB0iuO65Ovoi8ogLHiWGs/5yNrtUcKjFhSSiVeAIVpD7koaSU9RM8mpXw5YDi9RdYXGQMaOURB7ycQ==", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.3.0.tgz", - "integrity": "sha512-zvAc+A6SZdcN+earG5SsBu1RnQdtBS4o8wZ/OqJiCfL34cfOx+twVRq7wumYix6Rkdjn1N2nVCcO3wHqKqgdGg==", - "dev": true, - "dependencies": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" - }, - "engines": { - "node": ">=10" - }, - "peerDependencies": { - "inquirer": "^5.0.0 || ^6.0.0 || ^7.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "dependencies": { - "type-fest": "^0.11.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=10" - }, - "funding": { - "url": "https://github.com/chalk/chalk?sponsor=1" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "dependencies": { - "escape-string-regexp": "^1.0.5" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/inquirer-autocomplete-prompt/node_modules/type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "restore-cursor": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/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, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/onetime": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-2.0.1.tgz", - "integrity": "sha1-BnQoIw/WdEOyeUsiu6UotoZ5YtQ=", - "dev": true, - "dependencies": { - "mimic-fn": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/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, - "dependencies": { - "onetime": "^2.0.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/inquirer/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/inquirer/node_modules/strip-ansi/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/install-artifact-from-github": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz", - "integrity": "sha512-3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA==", - "dev": true, - "optional": true, - "bin": { - "install-from-cache": "bin/install-from-cache.js", - "save-to-github-cache": "bin/save-to-github-cache.js" - } - }, - "node_modules/internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", - "dev": true, - "dependencies": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, - "dependencies": { - "loose-envify": "^1.0.0" - } - }, - "node_modules/invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", - "dev": true - }, - "node_modules/ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", - "dev": true, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-accessor-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", - "dev": true - }, - "node_modules/is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", - "dev": true, - "dependencies": { - "binary-extensions": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", - "dev": true - }, - "node_modules/is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", - "dev": true, - "dependencies": { - "ci-info": "^2.0.0" - }, - "bin": { - "is-ci": "bin.js" - } - }, - "node_modules/is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", - "dev": true, - "dependencies": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" - } - }, - "node_modules/is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", - "dev": true, - "dependencies": { - "has": "^1.0.3" - } - }, - "node_modules/is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-data-descriptor/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-descriptor/node_modules/kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-directory": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true, - "bin": { - "is-docker": "cli.js" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", - "dev": true, - "dependencies": { - "is-extglob": "^2.1.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", - "dev": true, - "dependencies": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/is-installed-globally/node_modules/is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-interactive": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/is-obj": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.2" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true - }, - "node_modules/is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "node_modules/is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", - "dev": true - }, - "node_modules/is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", - "dev": true, - "dependencies": { - "html-comment-regex": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", - "dev": true, - "dependencies": { - "has-symbols": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/is-typedarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "node_modules/is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", - "dev": true - }, - "node_modules/is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "node_modules/is2": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz", - "integrity": "sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==", - "dev": true, - "dependencies": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" - }, - "engines": { - "node": ">=v0.10.0" - } - }, - "node_modules/is2/node_modules/ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true - }, - "node_modules/isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", - "dev": true, - "dependencies": { - "buffer-alloc": "^1.2.0" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "node_modules/isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", - "dev": true - }, - "node_modules/istanbul-api": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.7.tgz", - "integrity": "sha512-LYTOa2UrYFyJ/aSczZi/6lBykVMjCCvUmT64gOe+jPZFy4w6FYfPGqFT2IiQ2BxVHHDOvCD7qrIXb0EOh4uGWw==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "compare-versions": "^3.4.0", - "fileset": "^2.0.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.5", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "minimatch": "^3.0.4", - "once": "^1.4.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-api/node_modules/istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", - "dev": true, - "dependencies": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-coverage": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", - "dev": true, - "dependencies": { - "append-transform": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "dependencies": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", - "dev": true, - "dependencies": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-report/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/istanbul-lib-source-maps/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", - "dev": true, - "dependencies": { - "html-escaper": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "dependencies": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "bin": { - "jasmine": "bin/jasmine.js" - } - }, - "node_modules/jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", - "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", - "dev": true - }, - "node_modules/jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", - "dev": true, - "dependencies": { - "colors": "1.1.2" - } - }, - "node_modules/jasmine/node_modules/jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - }, - "node_modules/jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", - "dev": true, - "engines": { - "node": ">= 6.9.x" - } - }, - "node_modules/jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", - "dev": true, - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/jest-worker/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true - }, - "node_modules/join-path": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz", - "integrity": "sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU=", - "dev": true, - "dependencies": { - "as-array": "^2.0.0", - "url-join": "0.0.1", - "valid-url": "^1" - } - }, - "node_modules/js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", - "dev": true - }, - "node_modules/js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", - "dev": true, - "dependencies": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" - }, - "bin": { - "js-yaml": "bin/js-yaml.js" - } - }, - "node_modules/jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "node_modules/jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", - "dependencies": { - "bignumber.js": "^9.0.0" - } - }, - "node_modules/json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "node_modules/json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "node_modules/json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "node_modules/json-parse-helpfulerror": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", - "dev": true, - "dependencies": { - "jju": "^1.1.0" - } - }, - "node_modules/json-ptr": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.3.2.tgz", - "integrity": "sha512-tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==", - "dev": true, - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/json-ptr/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", - "dev": true - }, - "node_modules/json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true - }, - "node_modules/json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", - "dev": true - }, - "node_modules/json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", - "dev": true - }, - "node_modules/json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", - "dev": true - }, - "node_modules/json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", - "dev": true, - "dependencies": { - "minimist": "^1.2.0" - }, - "bin": { - "json5": "lib/cli.js" - } - }, - "node_modules/jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.6" - } - }, - "node_modules/jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", - "dev": true, - "engines": [ - "node >= 0.2.0" - ] - }, - "node_modules/jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", - "dev": true, - "dependencies": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" - }, - "bin": { - "JSONStream": "bin.js" - }, - "engines": { - "node": "*" - } - }, - "node_modules/jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", - "dev": true, - "dependencies": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=4", - "npm": ">=1.4.28" - } - }, - "node_modules/jsonwebtoken/node_modules/jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", - "dev": true, - "dependencies": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jsonwebtoken/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "node_modules/jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "dev": true, - "dependencies": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "node_modules/jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "dependencies": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "dependencies": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } - }, - "node_modules/karma": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-4.3.0.tgz", - "integrity": "sha512-NSPViHOt+RW38oJklvYxQC4BSQsv737oQlr/r06pCM+slDOr4myuI1ivkRmp+3dVpJDfZt2DmaPJ2wkx+ZZuMQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", - "core-js": "^3.1.3", - "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "2.1.1", - "source-map": "^0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" - }, - "bin": { - "karma": "bin/karma" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "dependencies": { - "which": "^1.2.1" - } - }, - "node_modules/karma-coverage-istanbul-reporter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", - "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", - "dev": true, - "dependencies": { - "istanbul-api": "^2.1.6", - "minimatch": "^3.0.4" - } - }, - "node_modules/karma-jasmine": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", - "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", - "dev": true, - "dependencies": { - "jasmine-core": "^3.3" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/karma-jasmine-html-reporter": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", - "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", - "dev": true - }, - "node_modules/karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", - "dev": true, - "dependencies": { - "source-map-support": "^0.5.5" - } - }, - "node_modules/karma/node_modules/mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/karma/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/karma/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", - "dev": true, - "dependencies": { - "json-buffer": "3.0.0" - } - }, - "node_modules/killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "node_modules/kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", - "dev": true - }, - "node_modules/latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", - "dev": true, - "dependencies": { - "package-json": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", - "dev": true, - "dependencies": { - "readable-stream": "^2.0.5" - }, - "engines": { - "node": ">= 0.6.3" - } - }, - "node_modules/lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", - "dev": true, - "dependencies": { - "invert-kv": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/less": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz", - "integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==", - "dev": true, - "dependencies": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "request": "^2.83.0" - }, - "bin": { - "lessc": "bin/lessc" - }, - "engines": { - "node": ">=6" - }, - "optionalDependencies": { - "image-size": "~0.5.0", - "promise": "^7.1.1", - "source-map": "~0.6.0" - } - }, - "node_modules/less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", - "dev": true, - "dependencies": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" - }, - "engines": { - "node": ">= 4.8.0" - } - }, - "node_modules/less/node_modules/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, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/license-webpack-plugin": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.3.tgz", - "integrity": "sha512-vTSY5r9HOq4sxR2BIxdIXWKI+9n3b+DoQkhKHedB3TdSxTfXUDRxKXdAj5iejR+qNXprXsxvEu9W+zOhgGIkAw==", - "dev": true, - "dependencies": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" - } - }, - "node_modules/lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", - "dev": true, - "dependencies": { - "immediate": "~3.0.5" - } - }, - "node_modules/listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "node_modules/loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", - "dev": true, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", - "dev": true, - "dependencies": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", - "dev": true, - "dependencies": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "node_modules/lodash._isnative": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", - "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", - "dev": true - }, - "node_modules/lodash._objecttypes": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", - "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", - "dev": true - }, - "node_modules/lodash._shimkeys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", - "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", - "dev": true, - "dependencies": { - "lodash._objecttypes": "~2.4.1" - } - }, - "node_modules/lodash.at": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.at/-/lodash.at-4.6.0.tgz", - "integrity": "sha1-k83OZk8KGZTqM9181A4jr9EbD/g=", - "dev": true - }, - "node_modules/lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "node_modules/lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "node_modules/lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", - "dev": true - }, - "node_modules/lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", - "dev": true - }, - "node_modules/lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", - "dev": true - }, - "node_modules/lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=", - "dev": true - }, - "node_modules/lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", - "dev": true - }, - "node_modules/lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", - "dev": true - }, - "node_modules/lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", - "dev": true - }, - "node_modules/lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", - "dev": true - }, - "node_modules/lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", - "dev": true - }, - "node_modules/lodash.isobject": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", - "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", - "dev": true, - "dependencies": { - "lodash._objecttypes": "~2.4.1" - } - }, - "node_modules/lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true - }, - "node_modules/lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true - }, - "node_modules/lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", - "dev": true, - "dependencies": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" - } - }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", - "dev": true - }, - "node_modules/lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", - "dev": true - }, - "node_modules/lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", - "dev": true - }, - "node_modules/lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", - "dev": true - }, - "node_modules/lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", - "dev": true - }, - "node_modules/lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", - "dev": true - }, - "node_modules/lodash.values": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", - "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", - "dev": true, - "dependencies": { - "lodash.keys": "~2.4.1" - } - }, - "node_modules/log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", - "dev": true, - "dependencies": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", - "dev": true, - "dependencies": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - } - }, - "node_modules/logform/node_modules/colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true, - "engines": { - "node": ">=0.1.90" - } - }, - "node_modules/loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "node_modules/loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", - "dev": true, - "dependencies": { - "js-tokens": "^3.0.0 || ^4.0.0" - }, - "bin": { - "loose-envify": "cli.js" - } - }, - "node_modules/lottie-web": { - "version": "5.7.6", - "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.7.6.tgz", - "integrity": "sha512-qn/KYMI4QQvFDhtoxs0RPkn9uZKhDB9keE5BKgbJlSRfNEZpRiDlwBE9ibYz4nPhbyE+NUlt8IRIVR7g5OSX3w==" - }, - "node_modules/lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", - "dev": true, - "dependencies": { - "yallist": "^3.0.2" - } - }, - "node_modules/lru-cache/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.2" - } - }, - "node_modules/magic-string": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz", - "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==", - "dev": true, - "dependencies": { - "sourcemap-codec": "^1.4.4" - } - }, - "node_modules/make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", - "dev": true, - "dependencies": { - "pify": "^4.0.1", - "semver": "^5.6.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/make-dir/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "node_modules/make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dev": true, - "dependencies": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/make-fetch-happen/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/make-fetch-happen/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", - "dev": true - }, - "node_modules/map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", - "dev": true, - "dependencies": { - "p-defer": "^1.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "dependencies": { - "object-visit": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", - "dev": true, - "bin": { - "marked": "bin/marked" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/marked-terminal": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz", - "integrity": "sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==", - "dev": true, - "dependencies": { - "ansi-escapes": "^3.1.0", - "cardinal": "^2.1.1", - "chalk": "^2.4.1", - "cli-table": "^0.3.1", - "node-emoji": "^1.4.1", - "supports-hyperlinks": "^1.0.1" - }, - "peerDependencies": { - "marked": "^0.4.0 || ^0.5.0 || ^0.6.0 || ^0.7.0" - } - }, - "node_modules/md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", - "dev": true - }, - "node_modules/media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", - "dev": true, - "dependencies": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", - "dev": true, - "dependencies": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - } - }, - "node_modules/memoizee/node_modules/next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - }, - "node_modules/memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - }, - "engines": { - "node": ">=4.3.0 <5.0.0 || >=5.10" - } - }, - "node_modules/merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true - }, - "node_modules/merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", - "dev": true, - "dependencies": { - "source-map": "^0.6.1" - } - }, - "node_modules/merge-source-map/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true - }, - "node_modules/methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/braces/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/fill-range/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/is-number/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/micromatch/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/miller-rabin": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", - "dev": true, - "dependencies": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" - }, - "bin": { - "miller-rabin": "bin/miller-rabin" - } - }, - "node_modules/miller-rabin/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "dependencies": { - "mime-db": "1.45.0" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/mini-css-extract-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", - "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/mini-css-extract-plugin/node_modules/normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", - "dev": true, - "dependencies": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", - "dev": true - }, - "node_modules/minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", - "dev": true - }, - "node_modules/minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", - "dev": true, - "dependencies": { - "brace-expansion": "^1.1.7" - }, - "engines": { - "node": "*" - } - }, - "node_modules/minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", - "dev": true - }, - "node_modules/minipass": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "dependencies": { - "minipass": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", - "dev": true, - "dependencies": { - "minipass": "^2.9.0" - } - }, - "node_modules/minizlib/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/minizlib/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", - "dev": true, - "dependencies": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", - "dev": true, - "dependencies": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mixin-deep/node_modules/is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "dependencies": { - "is-plain-object": "^2.0.4" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", - "dev": true, - "dependencies": { - "minimist": "^1.2.5" - }, - "bin": { - "mkdirp": "bin/cmd.js" - } - }, - "node_modules/morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", - "dev": true, - "dependencies": { - "basic-auth": "~2.0.1", - "debug": "2.6.9", - "depd": "~2.0.0", - "on-finished": "~2.3.0", - "on-headers": "~1.0.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/morgan/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/morgan/node_modules/depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/morgan/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" - } - }, - "node_modules/move-concurrently/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" - }, - "node_modules/multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", - "dev": true, - "dependencies": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" - }, - "bin": { - "multicast-dns": "cli.js" - } - }, - "node_modules/multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", - "dev": true - }, - "node_modules/mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", - "dev": true - }, - "node_modules/nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", - "dev": true, - "optional": true - }, - "node_modules/nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", - "dev": true, - "dependencies": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/nash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/nash/-/nash-3.0.0.tgz", - "integrity": "sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==", - "dev": true, - "dependencies": { - "async": "^1.3.0", - "flat-arguments": "^1.0.0", - "lodash": "^4.17.5", - "minimist": "^1.1.0" - } - }, - "node_modules/nash/node_modules/async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", - "dev": true - }, - "node_modules/negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", - "dev": true - }, - "node_modules/next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", - "dev": true - }, - "node_modules/ng-apexcharts": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.7.tgz", - "integrity": "sha512-7swEdaoXIZ1E6zfUpFfIJYNerPGBz47XRCa0ReyFGbj785LJPAOlTeo7t8CRzMI/ACKhHD/Y1IQatlwQkI2shg==", - "dependencies": { - "tslib": "^1.10.0" - }, - "peerDependencies": { - "@angular/common": ">=9.0.0 <11.0.0", - "@angular/core": ">=9.0.0 <11.0.0", - "apexcharts": "^3.19.2", - "rxjs": "^6.5.5" - } - }, - "node_modules/ng-waveform": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ng-waveform/-/ng-waveform-0.2.1.tgz", - "integrity": "sha512-pGaxEro60TrvnrKJYj8i8Mq4arY/kU8wl7XYUwX+LOzGjrwsWL/5jnQAnW1bHQzrs4LmoDRybjj77nQH0WdS8A==", - "dependencies": { - "tslib": "^1.9.0" - }, - "peerDependencies": { - "@angular/common": "^8.2.14", - "@angular/core": "^8.2.14" - } - }, - "node_modules/ng2-pdf-viewer": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-6.4.1.tgz", - "integrity": "sha512-A8R9SGa2bu4n+mtagGX8DqBrVAbuROrEgcAOQwCdciYTLAq9EFGEB8TCQZpjvYVaFTNwjKWTMTjFQVEorjbLeQ==", - "dependencies": { - "@types/pdfjs-dist": "~2.1.7", - "pdfjs-dist": "~2.5.207", - "tslib": "^1.10.0" - } - }, - "node_modules/ngx-countdown": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-11.0.1.tgz", - "integrity": "sha512-0qGSM+GSj/vQBJNy0rwPIsLFhm6Ley3tDtJPo+qJO0LqHq3zW5cTi5Pcf2YqypnxywLraJ4DX3WzhWMCDsDZkA==", - "dependencies": { - "tslib": "^2.0.0" - } - }, - "node_modules/ngx-countdown/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/ngx-lottie": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ngx-lottie/-/ngx-lottie-6.4.0.tgz", - "integrity": "sha512-RuXljkSOpZyt/NLL2X89gNMIxvGrj/D1rRN4qrOrAZHdREeGAIapqvrldJpQDeiThkHeNfyWfmnDavhJfP/DHA==", - "dependencies": { - "tslib": "^2.0.0" - }, - "peerDependencies": { - "@angular/core": ">=8.0.0", - "lottie-web": ">=5.4.0", - "rxjs": ">=6.0.0" - } - }, - "node_modules/ngx-lottie/node_modules/tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - }, - "node_modules/ngx-walkthrough": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ngx-walkthrough/-/ngx-walkthrough-0.3.2.tgz", - "integrity": "sha512-fRfMJEngKuPS9b+6qH0e3FylpJy/ejoG2whySZWzKGxhbPFs4cPje3J7QZHQDYSK725GR+Dw/s0z/U43c6ZJnw==", - "dependencies": { - "tslib": "^1.7.1" - } - }, - "node_modules/nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", - "dev": true - }, - "node_modules/node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", - "dev": true, - "dependencies": { - "lodash.toarray": "^4.4.0" - } - }, - "node_modules/node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==", - "engines": { - "node": "4.x || >=6.0.0" - } - }, - "node_modules/node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", - "dev": true, - "dependencies": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==", - "engines": { - "node": ">= 6.0.0" - } - }, - "node_modules/node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", - "dev": true, - "optional": true, - "dependencies": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" - }, - "bin": { - "node-gyp": "bin/node-gyp.js" - }, - "engines": { - "node": ">= 10.12.0" - } - }, - "node_modules/node-gyp/node_modules/chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "optional": true, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "dependencies": { - "yallist": "^4.0.0" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "optional": true, - "dependencies": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-gyp/node_modules/mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true, - "bin": { - "mkdirp": "bin/cmd.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - }, - "funding": { - "url": "https://github.com/sponsors/isaacs" - } - }, - "node_modules/node-gyp/node_modules/semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "optional": true, - "dependencies": { - "lru-cache": "^6.0.0" - }, - "bin": { - "semver": "bin/semver.js" - }, - "engines": { - "node": ">=10" - } - }, - "node_modules/node-gyp/node_modules/tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "dev": true, - "optional": true, - "dependencies": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - }, - "engines": { - "node": ">= 10" - } - }, - "node_modules/node-gyp/node_modules/which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, - "optional": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "node-which": "bin/node-which" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "dependencies": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - } - }, - "node_modules/node-libs-browser/node_modules/punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - }, - "node_modules/node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", - "dev": true - }, - "node_modules/nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", - "dev": true, - "optional": true, - "dependencies": { - "abbrev": "1" - }, - "bin": { - "nopt": "bin/nopt.js" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" - } - }, - "node_modules/normalize-package-data/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/normalize-package-data/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", - "dev": true, - "dependencies": { - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", - "dev": true - }, - "node_modules/npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", - "dev": true, - "dependencies": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - } - }, - "node_modules/npm-package-arg/node_modules/hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "node_modules/npm-package-arg/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", - "dev": true, - "dependencies": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } - }, - "node_modules/npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - } - }, - "node_modules/npm-pick-manifest/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" - } - }, - "node_modules/npm-registry-fetch/node_modules/safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - }, - "node_modules/npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "dependencies": { - "path-key": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "dependencies": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "node_modules/nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "dependencies": { - "boolbase": "~1.0.0" - } - }, - "node_modules/num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", - "dev": true - }, - "node_modules/number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", - "dev": true - }, - "node_modules/object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, - "dependencies": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-copy/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", - "dev": true - }, - "node_modules/object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", - "dev": true, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", - "dev": true, - "dependencies": { - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/object.getownpropertydescriptors": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", - "dev": true, - "dependencies": { - "isobject": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", - "dev": true - }, - "node_modules/on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "dependencies": { - "ee-first": "1.1.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", - "dev": true, - "dependencies": { - "wrappy": "1" - } - }, - "node_modules/one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", - "dev": true, - "dependencies": { - "fn.name": "1.x.x" - } - }, - "node_modules/onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", - "dev": true, - "dependencies": { - "mimic-fn": "^2.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/open": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", - "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", - "dev": true, - "dependencies": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/openapi3-ts": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz", - "integrity": "sha512-8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==", - "dev": true - }, - "node_modules/opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", - "dev": true, - "dependencies": { - "is-wsl": "^1.1.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/opn/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", - "dev": true, - "dependencies": { - "minimist": "~0.0.1", - "wordwrap": "~0.0.2" - } - }, - "node_modules/optimist/node_modules/minimist": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-0.0.10.tgz", - "integrity": "sha1-3j+YVD2/lggr5IrRoMfNqDYwHc8=", - "dev": true - }, - "node_modules/ora": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.2.tgz", - "integrity": "sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ora/node_modules/ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/ora/node_modules/strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "dependencies": { - "ansi-regex": "^4.1.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "dependencies": { - "url-parse": "^1.4.3" - } - }, - "node_modules/os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "node_modules/os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", - "dev": true, - "dependencies": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "dependencies": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } - }, - "node_modules/p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "dependencies": { - "p-try": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-locate": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "dependencies": { - "p-limit": "^2.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "dependencies": { - "aggregate-error": "^3.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", - "dev": true, - "dependencies": { - "retry": "^0.12.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", - "dev": true, - "dependencies": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/pacote": { - "version": "9.5.8", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.8.tgz", - "integrity": "sha512-0Tl8Oi/K0Lo4MZmH0/6IsT3gpGf9eEAznLXEQPKgPq7FscnbUOyopnVpwXlnQdIbCUaojWy1Wd7VMyqfVsRrIw==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" - } - }, - "node_modules/pacote/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/pacote/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/pacote/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/pacote/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/pacote/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/pacote/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "node_modules/parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", - "dev": true, - "dependencies": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" - } - }, - "node_modules/parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", - "dev": true, - "dependencies": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" - } - }, - "node_modules/parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", - "dev": true, - "dependencies": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "node_modules/parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", - "dev": true, - "dependencies": { - "better-assert": "~1.0.0" - } - }, - "node_modules/parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "node_modules/path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "node_modules/path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "node_modules/path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", - "dev": true - }, - "node_modules/path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", - "dev": true - }, - "node_modules/path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", - "dev": true, - "dependencies": { - "pify": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/path-type/node_modules/pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", - "dev": true, - "dependencies": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/pdfjs-dist": { - "version": "2.5.207", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.5.207.tgz", - "integrity": "sha512-xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==" - }, - "node_modules/performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true - }, - "node_modules/picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", - "dev": true, - "engines": { - "node": ">=8.6" - } - }, - "node_modules/pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", - "dev": true, - "dependencies": { - "pinkie": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "dependencies": { - "find-up": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", - "dev": true, - "dependencies": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/plist/node_modules/xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" - }, - "engines": { - "node": ">= 0.12.0" - } - }, - "node_modules/portfinder/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" - } - }, - "node_modules/postcss-calc/node_modules/postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", - "dev": true, - "dependencies": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-calc/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss-calc/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-colormin/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-convert-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", - "dev": true, - "dependencies": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/postcss-import/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "dependencies": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "dependencies": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-longhand/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-merge-rules/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-font-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-gradients/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-params/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-minify-selectors/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-display-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-positions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-repeat-style/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", - "dev": true, - "dependencies": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-string/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-timing-functions/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-unicode/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, - "dependencies": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-url/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, - "dependencies": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-normalize-whitespace/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, - "dependencies": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-ordered-values/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, - "dependencies": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-reduce-transforms/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", - "dev": true, - "dependencies": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", - "dev": true, - "dependencies": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-svgo/node_modules/postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - }, - "node_modules/postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", - "dev": true, - "dependencies": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true - }, - "node_modules/postcss/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/postcss/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true, - "engines": { - "node": ">= 0.6.0" - } - }, - "node_modules/process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", - "dev": true - }, - "node_modules/progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", - "dev": true, - "optional": true, - "dependencies": { - "asap": "~2.0.3" - } - }, - "node_modules/promise-breaker": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", - "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==", - "dev": true - }, - "node_modules/promise-inflight": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", - "dev": true - }, - "node_modules/promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==" - }, - "node_modules/promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", - "dev": true, - "dependencies": { - "err-code": "^1.0.0", - "retry": "^0.10.0" - }, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/promise-retry/node_modules/retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/protobufjs": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", - "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", - "hasInstallScript": true, - "dependencies": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": "^13.7.0", - "long": "^4.0.0" - }, - "bin": { - "pbjs": "bin/pbjs", - "pbts": "bin/pbts" - } - }, - "node_modules/protobufjs/node_modules/@types/node": { - "version": "13.13.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.41.tgz", - "integrity": "sha512-qLT9IvHiXJfdrje9VmsLzun7cQ65obsBTmtU3EOnCSLFOoSHx1hpiRHoBnpdbyFqnzqdUUIv81JcEJQCB8un9g==" - }, - "node_modules/protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", - "dev": true, - "dependencies": { - "genfun": "^5.0.0" - } - }, - "node_modules/protractor": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", - "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", - "dev": true, - "dependencies": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6", - "yargs": "^12.0.5" - }, - "bin": { - "protractor": "bin/protractor", - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/protractor/node_modules/@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "node_modules/protractor/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", - "dev": true, - "dependencies": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", - "dev": true, - "dependencies": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", - "dev": true, - "dependencies": { - "is-path-inside": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "dependencies": { - "path-is-inside": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/protractor/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/protractor/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/protractor/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/protractor/node_modules/source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", - "dev": true, - "dependencies": { - "source-map": "^0.5.6" - } - }, - "node_modules/protractor/node_modules/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, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/protractor/node_modules/webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", - "dev": true, - "dependencies": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" - }, - "bin": { - "webdriver-manager": "bin/webdriver-manager" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "dependencies": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - }, - "engines": { - "node": ">= 0.10" - } - }, - "node_modules/prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "node_modules/pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "node_modules/psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "node_modules/public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", - "dev": true, - "dependencies": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "node_modules/public-encrypt/node_modules/bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - }, - "node_modules/pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", - "dev": true, - "dependencies": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - } - }, - "node_modules/pumpify/node_modules/pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "node_modules/punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "dependencies": { - "escape-goat": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", - "dev": true, - "engines": { - "node": ">=0.6.0", - "teleport": ">=0.2.0" - } - }, - "node_modules/qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", - "dev": true, - "engines": { - "node": ">=0.9" - } - }, - "node_modules/qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", - "dev": true, - "dependencies": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true, - "engines": { - "node": ">=0.4.x" - } - }, - "node_modules/querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", - "dev": true - }, - "node_modules/randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.0" - } - }, - "node_modules/randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", - "dev": true, - "dependencies": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" - } - }, - "node_modules/range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, - "dependencies": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-body/node_modules/bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/raw-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0", - "schema-utils": "^2.0.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/raw-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/raw-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/raw-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "dependencies": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - }, - "bin": { - "rc": "cli.js" - } - }, - "node_modules/re2": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz", - "integrity": "sha512-AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "dependencies": { - "install-artifact-from-github": "^1.2.0", - "nan": "^2.14.2", - "node-gyp": "^7.1.2" - } - }, - "node_modules/read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "dependencies": { - "pify": "^2.3.0" - } - }, - "node_modules/read-cache/node_modules/pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "dependencies": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "node_modules/read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "dependencies": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } - }, - "node_modules/readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", - "dev": true, - "dependencies": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" - } - }, - "node_modules/readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", - "dev": true, - "dependencies": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" - } - }, - "node_modules/readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", - "dev": true, - "dependencies": { - "picomatch": "^2.2.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/recordrtc": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/recordrtc/-/recordrtc-5.6.1.tgz", - "integrity": "sha512-UU7Fd9IIuz60TPq4GgL1qtgo2mzEZWzPxEraNe32eo4/ndjKmuj715HB7W1k63G09teM1dXJYubPEmLkQ/lq5Q==" - }, - "node_modules/redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", - "dev": true, - "dependencies": { - "esprima": "~4.0.0" - } - }, - "node_modules/reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "node_modules/regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", - "dev": true - }, - "node_modules/regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", - "dev": true - }, - "node_modules/regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", - "dev": true, - "dependencies": { - "@babel/runtime": "^7.8.4" - } - }, - "node_modules/regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "dependencies": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", - "dev": true, - "dependencies": { - "rc": "^1.2.8" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "node_modules/regjsparser": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", - "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", - "dev": true, - "dependencies": { - "jsesc": "~0.5.0" - }, - "bin": { - "regjsparser": "bin/parser" - } - }, - "node_modules/regjsparser/node_modules/jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true, - "bin": { - "jsesc": "bin/jsesc" - } - }, - "node_modules/remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", - "dev": true - }, - "node_modules/repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", - "dev": true, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "dependencies": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", - "dev": true - }, - "node_modules/requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", - "dev": true - }, - "node_modules/resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, - "dependencies": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" - } - }, - "node_modules/resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "dependencies": { - "resolve-from": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", - "dev": true - }, - "node_modules/responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", - "dev": true, - "dependencies": { - "lowercase-keys": "^1.0.0" - } - }, - "node_modules/restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", - "dev": true, - "dependencies": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true, - "engines": { - "node": ">=0.12" - } - }, - "node_modules/retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true, - "engines": { - "node": ">= 4" - } - }, - "node_modules/retry-request": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", - "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", - "dev": true, - "dependencies": { - "debug": "^4.1.1" - }, - "engines": { - "node": ">=8.10.0" - } - }, - "node_modules/rfdc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz", - "integrity": "sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA==", - "dev": true - }, - "node_modules/rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "node_modules/rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "node_modules/rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", - "dev": true, - "dependencies": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" - } - }, - "node_modules/rollup": { - "version": "1.25.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz", - "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==", - "dev": true, - "dependencies": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" - }, - "bin": { - "rollup": "dist/bin/rollup" - } - }, - "node_modules/router": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/router/-/router-1.3.5.tgz", - "integrity": "sha512-kozCJZUhuSJ5VcLhSb3F8fsmGXy+8HaDbKCAerR1G6tq3mnMZFMuSohbFvGv1c5oMFipijDjRZuuN/Sq5nMf3g==", - "dev": true, - "dependencies": { - "array-flatten": "3.0.0", - "debug": "2.6.9", - "methods": "~1.1.2", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "setprototypeof": "1.2.0", - "utils-merge": "1.0.1" - }, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/router/node_modules/array-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", - "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", - "dev": true - }, - "node_modules/router/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/router/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/router/node_modules/setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - }, - "node_modules/rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true, - "engines": { - "node": "6.* || >= 7.*" - } - }, - "node_modules/run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true, - "engines": { - "node": ">=0.12.0" - } - }, - "node_modules/run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", - "dev": true, - "dependencies": { - "aproba": "^1.1.1" - } - }, - "node_modules/rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", - "dependencies": { - "tslib": "^1.9.0" - }, - "engines": { - "npm": ">=2.0.0" - } - }, - "node_modules/safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "node_modules/safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", - "dev": true, - "dependencies": { - "ret": "~0.1.10" - } - }, - "node_modules/safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "node_modules/sass": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.23.3.tgz", - "integrity": "sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog==", - "dev": true, - "dependencies": { - "chokidar": ">=2.0.0 <4.0.0" - }, - "bin": { - "sass": "sass.js" - }, - "engines": { - "node": ">=8.9.0" - } - }, - "node_modules/sass-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz", - "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==", - "dev": true, - "dependencies": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.1.0", - "semver": "^6.3.0" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/sass-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/sass-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/sass-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", - "dev": true, - "dependencies": { - "https-proxy-agent": "^2.2.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "node_modules/schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", - "dev": true, - "dependencies": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" - }, - "engines": { - "node": ">= 4" - } - }, - "node_modules/select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "node_modules/selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", - "dev": true, - "dependencies": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/selenium-webdriver/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/selenium-webdriver/node_modules/tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.1" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", - "dev": true, - "dependencies": { - "node-forge": "^0.10.0" - } - }, - "node_modules/semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", - "bin": { - "semver": "bin/semver.js" - } - }, - "node_modules/semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", - "dev": true, - "dependencies": { - "semver": "^6.3.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", - "dev": true, - "dependencies": { - "semver": "^5.3.0" - } - }, - "node_modules/semver-dsl/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/semver-intersect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", - "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", - "dev": true, - "dependencies": { - "semver": "^5.0.0" - } - }, - "node_modules/semver-intersect/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", - "dev": true, - "dependencies": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/send/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/send/node_modules/debug/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/send/node_modules/ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - }, - "node_modules/serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "node_modules/serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", - "dev": true, - "dependencies": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/serve-index/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/serve-index/node_modules/http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", - "dev": true, - "dependencies": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/serve-index/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/serve-index/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/serve-index/node_modules/setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true - }, - "node_modules/serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "dependencies": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", - "dev": true - }, - "node_modules/set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/set-value/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true - }, - "node_modules/setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", - "dev": true - }, - "node_modules/sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", - "dev": true, - "dependencies": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - }, - "bin": { - "sha.js": "bin.js" - } - }, - "node_modules/shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", - "dev": true, - "dependencies": { - "shebang-regex": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", - "dev": true - }, - "node_modules/simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", - "dev": true, - "dependencies": { - "is-arrayish": "^0.3.1" - } - }, - "node_modules/simple-swizzle/node_modules/is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", - "dev": true - }, - "node_modules/slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", - "dev": true, - "dependencies": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "dependencies": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "dependencies": { - "is-descriptor": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "dependencies": { - "kind-of": "^6.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-node/node_modules/is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "dependencies": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "dependencies": { - "kind-of": "^3.2.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon-util/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/snapdragon/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/snapdragon/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/snapdragon/node_modules/source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "dev": true, - "dependencies": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - } - }, - "node_modules/socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "node_modules/socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "dependencies": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - } - }, - "node_modules/socket.io-client/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/socket.io-client/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-client/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "dev": true, - "dependencies": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - } - }, - "node_modules/socket.io-parser/node_modules/component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io-parser/node_modules/isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "node_modules/socket.io-parser/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/socket.io/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/socket.io/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "dependencies": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "node_modules/sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "dependencies": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - } - }, - "node_modules/sockjs-client/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/sockjs-client/node_modules/faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "dependencies": { - "websocket-driver": ">=0.5.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "dependencies": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - }, - "engines": { - "node": ">= 6.0.0", - "npm": ">= 3.0.0" - } - }, - "node_modules/socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "dev": true, - "dependencies": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/socks-proxy-agent/node_modules/agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", - "dev": true, - "dependencies": { - "es6-promisify": "^5.0.0" - }, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", - "dev": true, - "dependencies": { - "is-plain-obj": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", - "dev": true - }, - "node_modules/source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", - "dev": true, - "engines": { - "node": ">= 8" - } - }, - "node_modules/source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", - "dev": true, - "dependencies": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "dependencies": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "node_modules/source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, - "dependencies": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - } - }, - "node_modules/source-map-support/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", - "dev": true - }, - "node_modules/sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", - "dev": true - }, - "node_modules/spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "dependencies": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", - "dev": true - }, - "node_modules/spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", - "dev": true, - "dependencies": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" - } - }, - "node_modules/spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", - "dev": true - }, - "node_modules/spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", - "dev": true, - "dependencies": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" - } - }, - "node_modules/spdy-transport/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/speed-measure-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", - "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", - "dev": true, - "dependencies": { - "chalk": "^2.0.1" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", - "dev": true, - "dependencies": { - "extend-shallow": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "node_modules/sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", - "dev": true, - "dependencies": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" - }, - "engines": { - "node": ">= 8" - } - }, - "node_modules/stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", - "dev": true - }, - "node_modules/stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", - "dev": true, - "dependencies": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/static-extend/node_modules/define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "dependencies": { - "is-descriptor": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", - "dev": true, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", - "dev": true, - "dependencies": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" - } - }, - "node_modules/stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", - "dev": true, - "dependencies": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" - } - }, - "node_modules/stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", - "dev": true, - "dependencies": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" - } - }, - "node_modules/stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", - "dev": true - }, - "node_modules/streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", - "dev": true, - "dependencies": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" - }, - "engines": { - "node": ">=6.0" - } - }, - "node_modules/streamroller/node_modules/debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "dependencies": { - "ms": "^2.1.1" - } - }, - "node_modules/streamroller/node_modules/fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "dependencies": { - "safe-buffer": "~5.1.0" - } - }, - "node_modules/string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", - "dev": true, - "dependencies": { - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, - "dependencies": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/string-width/node_modules/strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "dependencies": { - "ansi-regex": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", - "dev": true, - "dependencies": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "node_modules/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, - "dependencies": { - "ansi-regex": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/style-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", - "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", - "dev": true, - "dependencies": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.1" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/style-loader/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/style-loader/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/style-loader/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", - "dev": true, - "dependencies": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" - }, - "engines": { - "node": ">=6.9.0" - } - }, - "node_modules/stylehacks/node_modules/postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", - "dev": true, - "dependencies": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/stylus": { - "version": "0.54.7", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz", - "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==", - "dev": true, - "dependencies": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.3", - "mkdirp": "~0.5.x", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.0.0", - "source-map": "^0.7.3" - }, - "bin": { - "stylus": "bin/stylus" - }, - "engines": { - "node": "*" - } - }, - "node_modules/stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "dependencies": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "node_modules/stylus/node_modules/debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "dependencies": { - "ms": "2.0.0" - } - }, - "node_modules/stylus/node_modules/ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "node_modules/superstatic": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz", - "integrity": "sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==", - "dev": true, - "dependencies": { - "basic-auth-connect": "^1.0.0", - "chalk": "^1.1.3", - "compare-semver": "^1.0.0", - "compression": "^1.7.0", - "connect": "^3.6.2", - "destroy": "^1.0.4", - "fast-url-parser": "^1.1.3", - "fs-extra": "^8.1.0", - "glob-slasher": "^1.0.1", - "home-dir": "^1.0.0", - "is-url": "^1.2.2", - "join-path": "^1.1.1", - "lodash": "^4.17.19", - "mime-types": "^2.1.16", - "minimatch": "^3.0.4", - "morgan": "^1.8.2", - "nash": "^3.0.0", - "on-finished": "^2.2.0", - "on-headers": "^1.0.0", - "path-to-regexp": "^1.8.0", - "router": "^1.3.1", - "rsvp": "^4.8.5", - "string-length": "^1.0.0", - "update-notifier": "^4.1.1" - }, - "bin": { - "superstatic": "bin/server" - }, - "engines": { - "node": ">= 8.6.0" - }, - "optionalDependencies": { - "re2": "^1.15.8" - } - }, - "node_modules/superstatic/node_modules/ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstatic/node_modules/chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", - "dev": true, - "dependencies": { - "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" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/superstatic/node_modules/fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - }, - "engines": { - "node": ">=6 <7 || >=8" - } - }, - "node_modules/superstatic/node_modules/isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "node_modules/superstatic/node_modules/path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "dependencies": { - "isarray": "0.0.1" - } - }, - "node_modules/superstatic/node_modules/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, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", - "dev": true, - "dependencies": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/supports-hyperlinks/node_modules/has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/svg.draggable.js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", - "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", - "dependencies": { - "svg.js": "^2.0.1" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.easing.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", - "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", - "dependencies": { - "svg.js": ">=2.3.x" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.filter.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", - "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", - "dependencies": { - "svg.js": "^2.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" - }, - "node_modules/svg.pathmorphing.js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", - "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", - "dependencies": { - "svg.js": "^2.4.0" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.resize.js": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", - "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", - "dependencies": { - "svg.js": "^2.6.5", - "svg.select.js": "^2.1.2" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.resize.js/node_modules/svg.select.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", - "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", - "dependencies": { - "svg.js": "^2.2.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svg.select.js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", - "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", - "dependencies": { - "svg.js": "^2.6.5" - }, - "engines": { - "node": ">= 0.8.0" - } - }, - "node_modules/svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", - "dev": true, - "dependencies": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" - }, - "bin": { - "svgo": "bin/svgo" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/sweetalert2": { - "version": "10.13.3", - "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-10.13.3.tgz", - "integrity": "sha512-kSvTkXvc59+vPf9CfZ/wc/uvFkccxoOMLK1aUibN0mXU4hbYg/NylBTlmfvuUjJQ5SWL3X6s8w7AG5croH8U1w==" - }, - "node_modules/symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", - "dev": true, - "dependencies": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" - }, - "engines": { - "node": ">=4.5" - } - }, - "node_modules/tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", - "dev": true, - "dependencies": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/tar-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/tar/node_modules/fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", - "dev": true, - "dependencies": { - "minipass": "^2.6.0" - } - }, - "node_modules/tar/node_modules/minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", - "dev": true, - "dependencies": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" - } - }, - "node_modules/tar/node_modules/yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - }, - "node_modules/tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", - "dev": true, - "dependencies": { - "debug": "4.3.1", - "is2": "^2.0.6" - } - }, - "node_modules/term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/terser": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.5.1.tgz", - "integrity": "sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ==", - "dev": true, - "dependencies": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" - }, - "bin": { - "terser": "bin/terser" - }, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/terser-webpack-plugin": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.3.tgz", - "integrity": "sha512-gWHkaGzGYjmDoYxksFZynWTzvXOAjQ5dd7xuTMYlv4zpWlLSb6v0QLSZjELzP5dMs1ox30O1BIPs9dgqlMHuLQ==", - "dev": true, - "dependencies": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.2.0", - "jest-worker": "^25.1.0", - "p-limit": "^2.2.2", - "schema-utils": "^2.6.4", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.4.3", - "webpack-sources": "^1.4.3" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", - "dev": true, - "dependencies": { - "fast-deep-equal": "^3.1.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "node_modules/terser-webpack-plugin/node_modules/fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "node_modules/terser-webpack-plugin/node_modules/find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "dependencies": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "dependencies": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - }, - "engines": { - "node": ">= 8.3" - } - }, - "node_modules/terser-webpack-plugin/node_modules/locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "dependencies": { - "p-locate": "^4.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "dependencies": { - "semver": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "dependencies": { - "p-limit": "^2.2.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "dependencies": { - "find-up": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser-webpack-plugin/node_modules/schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "dependencies": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - }, - "engines": { - "node": ">= 8.9.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/terser-webpack-plugin/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/terser/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", - "dev": true - }, - "node_modules/through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", - "dev": true - }, - "node_modules/through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", - "dev": true, - "dependencies": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" - } - }, - "node_modules/thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "node_modules/timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", - "dev": true, - "dependencies": { - "setimmediate": "^1.0.4" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", - "dev": true, - "dependencies": { - "es5-ext": "~0.10.46", - "next-tick": "1" - } - }, - "node_modules/timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", - "dev": true - }, - "node_modules/tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", - "dev": true, - "dependencies": { - "os-tmpdir": "~1.0.2" - }, - "engines": { - "node": ">=0.6.0" - } - }, - "node_modules/to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "node_modules/to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "node_modules/to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-object-path/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", - "dev": true, - "dependencies": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", - "dev": true, - "dependencies": { - "is-number": "^7.0.0" - }, - "engines": { - "node": ">=8.0" - } - }, - "node_modules/toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", - "dev": true, - "engines": { - "node": ">=0.6" - } - }, - "node_modules/tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", - "dev": true, - "dependencies": { - "psl": "^1.1.28", - "punycode": "^2.1.1" - }, - "engines": { - "node": ">=0.8" - } - }, - "node_modules/toxic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz", - "integrity": "sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==", - "dev": true, - "dependencies": { - "lodash": "^4.17.10" - } - }, - "node_modules/traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true, - "engines": { - "node": "*" - } - }, - "node_modules/tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true, - "bin": { - "tree-kill": "cli.js" - } - }, - "node_modules/triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", - "dev": true - }, - "node_modules/ts-node": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", - "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", - "dev": true, - "dependencies": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - }, - "bin": { - "ts-node": "dist/bin.js" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "node_modules/tslint": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", - "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", - "dev": true, - "dependencies": { - "@babel/code-frame": "^7.0.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.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" - }, - "bin": { - "tslint": "bin/tslint" - }, - "engines": { - "node": ">=4.8.0" - } - }, - "node_modules/tslint/node_modules/diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true, - "engines": { - "node": ">=0.3.1" - } - }, - "node_modules/tslint/node_modules/semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true, - "bin": { - "semver": "bin/semver" - } - }, - "node_modules/tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", - "dev": true, - "dependencies": { - "tslib": "^1.8.1" - } - }, - "node_modules/tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "node_modules/tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", - "dev": true, - "dependencies": { - "safe-buffer": "^5.0.1" - }, - "engines": { - "node": "*" - } - }, - "node_modules/tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", - "dev": true - }, - "node_modules/tweetsodium": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz", - "integrity": "sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==", - "dev": true, - "dependencies": { - "blakejs": "^1.1.0", - "tweetnacl": "^1.0.1" - } - }, - "node_modules/tweetsodium/node_modules/tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true - }, - "node_modules/type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "node_modules/type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", - "dev": true, - "dependencies": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" - }, - "engines": { - "node": ">= 0.6" - } - }, - "node_modules/typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "node_modules/typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, - "dependencies": { - "is-typedarray": "^1.0.0" - } - }, - "node_modules/typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", - "dev": true, - "bin": { - "tsc": "bin/tsc", - "tsserver": "bin/tsserver" - }, - "engines": { - "node": ">=4.2.0" - } - }, - "node_modules/ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "node_modules/unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, - "dependencies": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, - "dependencies": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "node_modules/uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "node_modules/unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, - "dependencies": { - "unique-slug": "^2.0.0" - } - }, - "node_modules/unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4" - } - }, - "node_modules/unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, - "dependencies": { - "crypto-random-string": "^2.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/universal-analytics": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", - "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", - "dev": true, - "dependencies": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" - } - }, - "node_modules/universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true, - "engines": { - "node": ">= 4.0.0" - } - }, - "node_modules/unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", - "dev": true - }, - "node_modules/unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", - "dev": true, - "dependencies": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", - "dev": true, - "dependencies": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-value/node_modules/isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "dependencies": { - "isarray": "1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unset-value/node_modules/has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", - "dev": true, - "dependencies": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - } - }, - "node_modules/unzipper/node_modules/bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - }, - "node_modules/upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true, - "engines": { - "node": ">=4", - "yarn": "*" - } - }, - "node_modules/update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "dependencies": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/yeoman/update-notifier?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "dependencies": { - "color-convert": "^2.0.1" - }, - "engines": { - "node": ">=8" - }, - "funding": { - "url": "https://github.com/chalk/ansi-styles?sponsor=1" - } - }, - "node_modules/update-notifier/node_modules/chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "dependencies": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "dependencies": { - "color-name": "~1.1.4" - }, - "engines": { - "node": ">=7.0.0" - } - }, - "node_modules/update-notifier/node_modules/color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "node_modules/update-notifier/node_modules/has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/update-notifier/node_modules/supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "dependencies": { - "has-flag": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", - "dev": true, - "dependencies": { - "punycode": "^2.1.0" - } - }, - "node_modules/urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", - "dev": true - }, - "node_modules/url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", - "dev": true, - "dependencies": { - "punycode": "1.3.2", - "querystring": "0.2.0" - } - }, - "node_modules/url-join": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", - "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", - "dev": true - }, - "node_modules/url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", - "dev": true, - "dependencies": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" - } - }, - "node_modules/url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", - "dev": true, - "dependencies": { - "prepend-http": "^2.0.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/url-parse-lax/node_modules/prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/url/node_modules/punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - }, - "node_modules/use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", - "dev": true, - "dependencies": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" - } - }, - "node_modules/useragent/node_modules/lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "dependencies": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } - }, - "node_modules/useragent/node_modules/yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", - "dev": true - }, - "node_modules/util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", - "dev": true, - "dependencies": { - "inherits": "2.0.3" - } - }, - "node_modules/util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "node_modules/util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", - "dev": true, - "dependencies": { - "object.getownpropertydescriptors": "^2.0.3" - } - }, - "node_modules/util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", - "dev": true, - "dependencies": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - } - }, - "node_modules/util.promisify/node_modules/es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "dependencies": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - }, - "engines": { - "node": ">= 0.4" - } - }, - "node_modules/util/node_modules/inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "node_modules/utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", - "dev": true, - "engines": { - "node": ">= 0.4.0" - } - }, - "node_modules/uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", - "dev": true, - "bin": { - "uuid": "bin/uuid" - } - }, - "node_modules/valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", - "dev": true - }, - "node_modules/validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "dependencies": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } - }, - "node_modules/validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", - "dev": true, - "dependencies": { - "builtins": "^1.0.3" - } - }, - "node_modules/vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", - "dev": true, - "engines": { - "node": ">= 0.8" - } - }, - "node_modules/vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", - "dev": true - }, - "node_modules/verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", - "dev": true, - "engines": [ - "node >=0.6.0" - ], - "dependencies": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" - } - }, - "node_modules/vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "node_modules/void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", - "dev": true, - "engines": { - "node": ">=6.0.0" - } - }, - "node_modules/watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, - "dependencies": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0" - }, - "optionalDependencies": { - "watchpack-chokidar2": "^2.0.1" - } - }, - "node_modules/watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", - "dev": true, - "optional": true, - "dependencies": { - "chokidar": "^2.1.8" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "node_modules/watchpack-chokidar2/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/watchpack-chokidar2/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/watchpack-chokidar2/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wavesurfer": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/wavesurfer/-/wavesurfer-1.3.4.tgz", - "integrity": "sha1-F5CKvSDaEajbRgxaF2Z5Yh1Rm/o=", - "deprecated": "Not_Official_Version_Correct_package_name_wavesurfer.js" - }, - "node_modules/wbuf": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/wbuf/-/wbuf-1.7.3.tgz", - "integrity": "sha512-O84QOnr0icsbFGLS0O3bI5FswxzRr8/gHwWkDlQFskhSPryQXvrTMxjxGP4+iWYoauLoBvfDpkrOauZ+0iZpDA==", - "dev": true, - "dependencies": { - "minimalistic-assert": "^1.0.0" - } - }, - "node_modules/wcwidth": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/wcwidth/-/wcwidth-1.0.1.tgz", - "integrity": "sha1-8LDc+RW8X/FSivrbLA4XtTLaL+g=", - "dev": true, - "dependencies": { - "defaults": "^1.0.3" - } - }, - "node_modules/webdriver-js-extender": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", - "integrity": "sha512-lcUKrjbBfCK6MNsh7xaY2UAUmZwe+/ib03AjVOpFobX4O7+83BUveSrLfU0Qsyb1DaKJdQRbuU+kM9aZ6QUhiQ==", - "dev": true, - "dependencies": { - "@types/selenium-webdriver": "^3.0.0", - "selenium-webdriver": "^3.0.1" - }, - "engines": { - "node": ">=6.9.x" - } - }, - "node_modules/webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", - "dev": true, - "dependencies": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", - "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" - }, - "bin": { - "webpack": "bin/webpack.js" - }, - "engines": { - "node": ">=6.11.5" - } - }, - "node_modules/webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "dependencies": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-dev-middleware/node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/webpack-dev-middleware/node_modules/mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true, - "bin": { - "mime": "cli.js" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/webpack-dev-server": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", - "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", - "dev": true, - "dependencies": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.4", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" - }, - "bin": { - "webpack-dev-server": "bin/webpack-dev-server.js" - }, - "engines": { - "node": ">= 6.11.5" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "dependencies": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - } - }, - "node_modules/webpack-dev-server/node_modules/anymatch/node_modules/normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "dependencies": { - "remove-trailing-separator": "^1.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "dependencies": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "dependencies": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - }, - "optionalDependencies": { - "fsevents": "^1.2.7" - } - }, - "node_modules/webpack-dev-server/node_modules/extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "dependencies": { - "is-extendable": "^0.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "dependencies": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "hasInstallScript": true, - "optional": true, - "os": [ - "darwin" - ], - "dependencies": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - }, - "engines": { - "node": ">= 4.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/webpack-dev-server/node_modules/is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "dependencies": { - "binary-extensions": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "dependencies": { - "kind-of": "^3.0.2" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "dependencies": { - "is-buffer": "^1.1.5" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-dev-server/node_modules/readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "dependencies": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - }, - "engines": { - "node": ">=0.10" - } - }, - "node_modules/webpack-dev-server/node_modules/supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "dependencies": { - "has-flag": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack-dev-server/node_modules/to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "dependencies": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "dependencies": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", - "dev": true, - "dependencies": { - "lodash": "^4.17.15" - } - }, - "node_modules/webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "dependencies": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - } - }, - "node_modules/webpack-sources/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack-subresource-integrity": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.4.tgz", - "integrity": "sha512-6XbGYzjh30cGQT/NsC+9IAkJP8IL7/t47sbwR5DLSsamiD56Rwv4/+hsgEHsviPvrEFZ0JRAQtCRN3UsR2Pw9g==", - "dev": true, - "dependencies": { - "webpack-sources": "^1.3.0" - }, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", - "dev": true, - "bin": { - "acorn": "bin/acorn" - }, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/webpack/node_modules/cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "dependencies": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "node_modules/webpack/node_modules/find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "dependencies": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - }, - "engines": { - "node": ">=6" - } - }, - "node_modules/webpack/node_modules/is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true, - "engines": { - "node": ">=4" - } - }, - "node_modules/webpack/node_modules/memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", - "dev": true, - "dependencies": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } - }, - "node_modules/webpack/node_modules/rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "dependencies": { - "glob": "^7.1.3" - }, - "bin": { - "rimraf": "bin.js" - } - }, - "node_modules/webpack/node_modules/serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", - "dev": true, - "dependencies": { - "randombytes": "^2.1.0" - } - }, - "node_modules/webpack/node_modules/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, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/webpack/node_modules/ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "dependencies": { - "figgy-pudding": "^3.5.1" - } - }, - "node_modules/webpack/node_modules/terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", - "dev": true, - "dependencies": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" - }, - "engines": { - "node": ">= 6.9.0" - } - }, - "node_modules/websocket-driver": { - "version": "0.7.4", - "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", - "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", - "dependencies": { - "http-parser-js": ">=0.5.1", - "safe-buffer": ">=5.1.0", - "websocket-extensions": ">=0.1.1" - }, - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/websocket-extensions": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", - "engines": { - "node": ">=0.8.0" - } - }, - "node_modules/whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "node_modules/when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", - "dev": true - }, - "node_modules/which": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", - "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", - "dev": true, - "dependencies": { - "isexe": "^2.0.0" - }, - "bin": { - "which": "bin/which" - } - }, - "node_modules/which-module": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/which-module/-/which-module-2.0.0.tgz", - "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", - "dev": true - }, - "node_modules/wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "dependencies": { - "string-width": "^1.0.2 || 2" - } - }, - "node_modules/widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", - "dev": true, - "dependencies": { - "string-width": "^4.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "dependencies": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/widest-line/node_modules/strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "dependencies": { - "ansi-regex": "^5.0.0" - }, - "engines": { - "node": ">=8" - } - }, - "node_modules/winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "dev": true, - "dependencies": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dev": true, - "dependencies": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - }, - "engines": { - "node": ">= 6.4.0" - } - }, - "node_modules/winston/node_modules/async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true - }, - "node_modules/winston/node_modules/is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/winston/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/wordwrap": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-0.0.3.tgz", - "integrity": "sha1-o9XabNXAvAAI03I0u68b7WMFkQc=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/worker-farm": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/worker-farm/-/worker-farm-1.7.0.tgz", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "dependencies": { - "errno": "~0.1.7" - } - }, - "node_modules/worker-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", - "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", - "dev": true, - "dependencies": { - "loader-utils": "^1.1.0" - } - }, - "node_modules/wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "dependencies": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", - "dev": true, - "dependencies": { - "number-is-nan": "^1.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrap-ansi/node_modules/string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", - "dev": true, - "dependencies": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" - }, - "engines": { - "node": ">=0.10.0" - } - }, - "node_modules/wrappy": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "node_modules/write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "dependencies": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } - }, - "node_modules/ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "dependencies": { - "async-limiter": "~1.0.0" - } - }, - "node_modules/xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", - "dev": true, - "engines": { - "node": ">=8" - } - }, - "node_modules/xml2js": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/xml2js/-/xml2js-0.4.23.tgz", - "integrity": "sha512-ySPiMjM0+pLDftHgXY4By0uswI3SPKLDw/i3UXbnO8M/p28zqexCUoPmQFrYD+/1BzhGJSs2i1ERWKJAtiLrug==", - "dev": true, - "dependencies": { - "sax": ">=0.6.0", - "xmlbuilder": "~11.0.0" - }, - "engines": { - "node": ">=4.0.0" - } - }, - "node_modules/xmlbuilder": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-11.0.1.tgz", - "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", - "dev": true, - "engines": { - "node": ">=4.0" - } - }, - "node_modules/xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "dev": true, - "engines": { - "node": ">=0.1" - } - }, - "node_modules/xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=", - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true, - "engines": { - "node": ">=0.4.0" - } - }, - "node_modules/xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true, - "engines": { - "node": ">=0.4" - } - }, - "node_modules/y18n": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", - "integrity": "sha512-wNcy4NvjMYL8gogWWYAO7ZFWFfHcbdbE57tZO8e4cbpj8tfUcwrwqSl3ad8HxpYWCdXcJUCeKKZS62Av1affwQ==", - "dev": true - }, - "node_modules/yallist": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" - }, - "node_modules/yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", - "dev": true, - "dependencies": { - "cliui": "^4.0.0", - "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", - "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", - "set-blocking": "^2.0.0", - "string-width": "^2.0.0", - "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" - } - }, - "node_modules/yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", - "dev": true, - "dependencies": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - }, - "node_modules/yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, - "node_modules/yn": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", - "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", - "dev": true, - "engines": { - "node": ">=6" - } - }, - "node_modules/zip-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", - "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", - "dev": true, - "dependencies": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.1.1", - "readable-stream": "^3.4.0" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zip-stream/node_modules/readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "dependencies": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - }, - "engines": { - "node": ">= 6" - } - }, - "node_modules/zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" - } - }, - "dependencies": { - "@angular-devkit/architect": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.900.7.tgz", - "integrity": "sha512-hfiTVYc72kzbXrzK4tea6jnTDnSKpE1D+vEptBXN2tdXEVNEAQI5Qm5L1zVDtt16UdqoUTUypIgUc9jcNH1mUQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.0.7", - "rxjs": "6.5.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/build-angular": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-0.900.7.tgz", - "integrity": "sha512-Yv2y3OEaYEd0fE0pKvtqBpmkQYs9xJws7thHnJYCwIfYO55RfolYsXkJgAXke/4NPLrD3EsIDqoPxF7l+uw2/Q==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/build-optimizer": "0.900.7", - "@angular-devkit/build-webpack": "0.900.7", - "@angular-devkit/core": "9.0.7", - "@babel/core": "7.7.7", - "@babel/generator": "7.7.7", - "@babel/preset-env": "7.7.7", - "@ngtools/webpack": "9.0.7", - "ajv": "6.10.2", - "autoprefixer": "9.7.1", - "babel-loader": "8.0.6", - "browserslist": "^4.9.1", - "cacache": "13.0.1", - "caniuse-lite": "^1.0.30001032", - "circular-dependency-plugin": "5.2.0", - "copy-webpack-plugin": "5.1.1", - "core-js": "3.6.4", - "coverage-istanbul-loader": "2.0.3", - "cssnano": "4.1.10", - "file-loader": "4.2.0", - "find-cache-dir": "3.0.0", - "glob": "7.1.5", - "jest-worker": "24.9.0", - "karma-source-map-support": "1.4.0", - "less": "3.10.3", - "less-loader": "5.0.0", - "license-webpack-plugin": "2.1.3", - "loader-utils": "1.2.3", - "magic-string": "0.25.4", - "mini-css-extract-plugin": "0.8.0", - "minimatch": "3.0.4", - "open": "7.0.0", - "parse5": "4.0.0", - "postcss": "7.0.21", - "postcss-import": "12.0.1", - "postcss-loader": "3.0.0", - "raw-loader": "3.1.0", - "regenerator-runtime": "0.13.3", - "rimraf": "3.0.0", - "rollup": "1.25.2", - "rxjs": "6.5.3", - "sass": "1.23.3", - "sass-loader": "8.0.0", - "semver": "6.3.0", - "source-map": "0.7.3", - "source-map-loader": "0.2.4", - "source-map-support": "0.5.16", - "speed-measure-webpack-plugin": "1.3.1", - "style-loader": "1.0.0", - "stylus": "0.54.7", - "stylus-loader": "3.0.2", - "terser": "4.5.1", - "terser-webpack-plugin": "2.3.3", - "tree-kill": "1.2.2", - "webpack": "4.41.2", - "webpack-dev-middleware": "3.7.2", - "webpack-dev-server": "3.9.0", - "webpack-merge": "4.2.2", - "webpack-sources": "1.4.3", - "webpack-subresource-integrity": "1.3.4", - "worker-plugin": "3.2.0" - }, - "dependencies": { - "open": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", - "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", - "dev": true, - "requires": { - "is-wsl": "^2.1.0" - } - }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/build-optimizer": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-optimizer/-/build-optimizer-0.900.7.tgz", - "integrity": "sha512-gxin2oPNMN+PYo82At2JP1Q+uxnvwyDFWA1Wl+Ufuc5zHGhjKqxdQjkdMF7OT0ihtmkllN+t/NTB7rcx/Sx9Wg==", - "dev": true, - "requires": { - "loader-utils": "1.2.3", - "source-map": "0.7.3", - "tslib": "1.10.0", - "typescript": "3.6.4", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "tslib": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.10.0.tgz", - "integrity": "sha512-qOebF53frne81cf0S9B41ByenJ3/IuH8yJKngAX35CmiZySA0khhkovshKK+jGCaMnVomla7gVlIcc3EvKPbTQ==", - "dev": true - }, - "typescript": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.6.4.tgz", - "integrity": "sha512-unoCll1+l+YK4i4F8f22TaNVPRHcD9PA3yCuZ8g5e0qGqlVlJ/8FSateOLLSagn+Yg5+ZwuPkL8LFUc0Jcvksg==", - "dev": true - } - } - }, - "@angular-devkit/build-webpack": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.900.7.tgz", - "integrity": "sha512-Nwwqjo1ZpHFLavN+nXOmuBgGjhoMBZGelDCvHtiQlQ9N6i7k9cKnP7eU5pY7jbalBguS+gWg5wJIGnbqk1K9Rg==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/core": "9.0.7", - "rxjs": "6.5.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-9.0.7.tgz", - "integrity": "sha512-tMrz36sM1xrwvFf9Qm59GwALscVlMP7rQBjtd0fIR/QbsiOAIX4AQbV+vN6Vtwnzo5NIRZY1IXJUhesWms+h5w==", - "dev": true, - "requires": { - "ajv": "6.10.2", - "fast-json-stable-stringify": "2.0.0", - "magic-string": "0.25.4", - "rxjs": "6.5.3", - "source-map": "0.7.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular-devkit/schematics": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-9.0.7.tgz", - "integrity": "sha512-ryPC+l24f3gX5DFMTLkDM/q2Kp6LPzBn6400k7j4qVdb1cIrZx+JUQd7F4iAksTTkX15EQPanptQXeztUrl9Ng==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.0.7", - "ora": "4.0.2", - "rxjs": "6.5.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@angular/animations": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-9.0.7.tgz", - "integrity": "sha512-74gY7onajmmnksy5E0/32bFv3B9NuWxV64kqD15YjGrh8AWe1BHt5enQI+rJ2tO8m2DKnwZsctis6k0Kcy+YKQ==" - }, - "@angular/cdk": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-11.1.0.tgz", - "integrity": "sha512-yFEHtdp0o/xGnYebrU/PQqWVIlB7SaP3cSviq/LTv/h2EINn3PzU/Zhdhg0k0fk09BrKoS+o8AVIddduIdDpYw==", - "requires": { - "parse5": "^5.0.0", - "tslib": "^2.0.0" - }, - "dependencies": { - "parse5": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", - "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", - "optional": true - }, - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "@angular/cli": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-9.0.7.tgz", - "integrity": "sha512-/9CUNSSVyTtTNUADZ/VXJDEdhineMN/rfd35w6VsHiob49tKkeOTggaoiSne3RY4VCTqlo7GGf4KhhVXEMGnDQ==", - "dev": true, - "requires": { - "@angular-devkit/architect": "0.900.7", - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7", - "@schematics/angular": "9.0.7", - "@schematics/update": "0.900.7", - "@yarnpkg/lockfile": "1.1.0", - "ansi-colors": "4.1.1", - "debug": "^4.1.1", - "ini": "1.3.5", - "inquirer": "7.0.0", - "npm-package-arg": "6.1.1", - "npm-pick-manifest": "3.0.2", - "open": "7.0.0", - "pacote": "9.5.8", - "read-package-tree": "5.3.1", - "rimraf": "3.0.0", - "semver": "6.3.0", - "symbol-observable": "1.2.0", - "universal-analytics": "^0.4.20", - "uuid": "^3.3.2" - }, - "dependencies": { - "ansi-colors": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", - "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", - "dev": true - }, - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "inquirer": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-7.0.0.tgz", - "integrity": "sha512-rSdC7zelHdRQFkWnhsMu2+2SO41mpv2oF2zy4tMhmiLWkcKbOAs87fWAJhVXttKVwhdZvymvnuM95EyEXg2/tQ==", - "dev": true, - "requires": { - "ansi-escapes": "^4.2.1", - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-width": "^2.0.0", - "external-editor": "^3.0.3", - "figures": "^3.0.0", - "lodash": "^4.17.15", - "mute-stream": "0.0.8", - "run-async": "^2.2.0", - "rxjs": "^6.4.0", - "string-width": "^4.1.0", - "strip-ansi": "^5.1.0", - "through": "^2.3.6" - } - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "mute-stream": { - "version": "0.0.8", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", - "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", - "dev": true - }, - "open": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.0.0.tgz", - "integrity": "sha512-K6EKzYqnwQzk+/dzJAQSBORub3xlBTxMz+ntpZpH/LyCa1o6KjXhuN+2npAaI9jaSmU3R1Q8NWf4KUWcyytGsQ==", - "dev": true, - "requires": { - "is-wsl": "^2.1.0" - } - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - } - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", - "dev": true - } - } - }, - "@angular/common": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/common/-/common-9.0.7.tgz", - "integrity": "sha512-B58YgxZva1DBaeayOBsaUOOkoyR+GRibuNC3gfOMm2vXeW9eCNX+jvDtw767GnKm2yGzIq8wB3x6GHojN00dPw==" - }, - "@angular/compiler": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.7.tgz", - "integrity": "sha512-hFpkuGpzxpK5h59LHHAjTFWsY6DCXZwgJFqvCuTPxWi/srvLGZRXrpC6Z1SlgHI9xxXaPfoa4uWw2VfA3BnqEg==" - }, - "@angular/compiler-cli": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-9.0.7.tgz", - "integrity": "sha512-+RXghex63v0Vi8vpQtDpWiqpAAnrTaN3bHT5fntRenq5+Ok5vL1MJ1mzbTmBXs2tuwTqNlwMm2AlZB7G/xcDMQ==", - "dev": true, - "requires": { - "canonical-path": "1.0.0", - "chokidar": "^3.0.0", - "convert-source-map": "^1.5.1", - "dependency-graph": "^0.7.2", - "fs-extra": "4.0.2", - "magic-string": "^0.25.0", - "minimist": "^1.2.0", - "reflect-metadata": "^0.1.2", - "semver": "^6.3.0", - "source-map": "^0.6.1", - "sourcemap-codec": "^1.4.8", - "yargs": "13.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "get-caller-file": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", - "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", - "dev": true - }, - "require-main-filename": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", - "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", - "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 - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - }, - "yargs": { - "version": "13.1.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.1.0.tgz", - "integrity": "sha512-1UhJbXfzHiPqkfXNHYhiz79qM/kZqjTE8yGlEjZa85Q+3+OwcV6NRkV7XOV1W2Eom2bzILeUn55pQYffjVOLAg==", - "dev": true, - "requires": { - "cliui": "^4.0.0", - "find-up": "^3.0.0", - "get-caller-file": "^2.0.1", - "os-locale": "^3.1.0", - "require-directory": "^2.1.1", - "require-main-filename": "^2.0.0", - "set-blocking": "^2.0.0", - "string-width": "^3.0.0", - "which-module": "^2.0.0", - "y18n": "^4.0.0", - "yargs-parser": "^13.0.0" - } - }, - "yargs-parser": { - "version": "13.1.2", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", - "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", - "dev": true, - "requires": { - "camelcase": "^5.0.0", - "decamelize": "^1.2.0" - } - } - } - }, - "@angular/core": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.7.tgz", - "integrity": "sha512-E9XZH5Dl+9MWG3MDC6wrKllhA8Rljpz66HOIeqKv2fHPed8kzuJZU3WJWLtbhDAXFwtGTyTZ4c82ZLSmqwTorg==" - }, - "@angular/fire": { - "version": "6.1.4", - "resolved": "https://registry.npmjs.org/@angular/fire/-/fire-6.1.4.tgz", - "integrity": "sha512-5u305XnBC041JMrAtczLa0bdprxw7RkXy4kgcRCisPI8maGuiN4XzlwNYX+plCHZCo4R0motxQom//tPTA2edQ==", - "requires": { - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "@angular/forms": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-9.0.7.tgz", - "integrity": "sha512-PaHAmjMJDtg/3aGCPuq5BCRC1eZ/DBCpva9f7NrA1kqk0LcLdebm0v2uHwTOBtiz/VEgPvxiS4tXC4rjvUtfEg==" - }, - "@angular/language-service": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-9.0.7.tgz", - "integrity": "sha512-IZG1kvw48JyFRy7bfMHqBixWrEHZmXmkP5DWsi5Tw6KusaczkMghI20BevCkodPcajXWHAUHNKyp1tlE3OnH0w==", - "dev": true - }, - "@angular/material": { - "version": "11.1.0", - "resolved": "https://registry.npmjs.org/@angular/material/-/material-11.1.0.tgz", - "integrity": "sha512-k7KpU8T32mmi1vaU27SSZ/gwO2YpxEUCTSzAOZNK8YugAXC+A5xPYLcNU8dlzBP4EW7XBkeSSnUacpI199YcyQ==", - "requires": { - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } - } - }, - "@angular/platform-browser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-9.0.7.tgz", - "integrity": "sha512-Por8omrEiSV2U/K2mm/Kuv+2R2rJkbAZ3ctEM6CWj9Y4Gz2akjOCxmEgWhhBeqdigcC3T1v707f52osf9jWBkg==" - }, - "@angular/platform-browser-dynamic": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-9.0.7.tgz", - "integrity": "sha512-jwpyd93ofcRtchbayKD5v4GN4Lc7vbPe6dMUiwfnVnVAql0bOD/3YRI7w5qJ0Xx0sgQT+9Xo6jTXYnyUsZpEww==" - }, - "@angular/router": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@angular/router/-/router-9.0.7.tgz", - "integrity": "sha512-uKru9F/Zju//gg6INl54abnlpLdEUUO/GpCfMk4zqu8LCZGNFta6OY7VT+9DK9Vdrh/XUD70oE9WoelcRwwTYA==" - }, - "@apidevtools/json-schema-ref-parser": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@apidevtools/json-schema-ref-parser/-/json-schema-ref-parser-9.0.7.tgz", - "integrity": "sha512-QdwOGF1+eeyFh+17v2Tz626WX0nucd1iKOm6JUTUvCZdbolblCOOQCxGrQPY0f7jEhn36PiAWqZnsC2r5vmUWg==", - "dev": true, - "requires": { - "@jsdevtools/ono": "^7.1.3", - "call-me-maybe": "^1.0.1", - "js-yaml": "^3.13.1" - } - }, - "@babel/code-frame": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", - "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", - "dev": true, - "requires": { - "@babel/highlight": "^7.10.4" - } - }, - "@babel/core": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.7.7.tgz", - "integrity": "sha512-jlSjuj/7z138NLZALxVgrx13AOtqip42ATZP7+kYl53GvDV6+4dCek1mVUo8z8c8Xnw/mx2q3d9HWh3griuesQ==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.5.5", - "@babel/generator": "^7.7.7", - "@babel/helpers": "^7.7.4", - "@babel/parser": "^7.7.7", - "@babel/template": "^7.7.4", - "@babel/traverse": "^7.7.4", - "@babel/types": "^7.7.4", - "convert-source-map": "^1.7.0", - "debug": "^4.1.0", - "json5": "^2.1.0", - "lodash": "^4.17.13", - "resolve": "^1.3.2", - "semver": "^5.4.1", - "source-map": "^0.5.0" - }, - "dependencies": { - "json5": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", - "integrity": "sha512-KXPvOm8K9IJKFM0bmdn8QXh7udDh1g/giieX0NLCaMnb4hEiVFqnop2ImTXCc5e0/oHz3LTqmHGtExn5hfMkOA==", - "dev": true, - "requires": { - "minimist": "^1.2.5" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/generator": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.7.7.tgz", - "integrity": "sha512-/AOIBpHh/JU1l0ZFS4kiRCBnLi6OTHzh0RPk3h9isBxkkqELtQNFi1Vr/tiG9p1yfoUdKVwISuXWQR+hwwM4VQ==", - "dev": true, - "requires": { - "@babel/types": "^7.7.4", - "jsesc": "^2.5.1", - "lodash": "^4.17.13", - "source-map": "^0.5.0" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/helper-annotate-as-pure": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.12.10.tgz", - "integrity": "sha512-XplmVbC1n+KY6jL8/fgLVXXUauDIB+lD5+GsQEh6F6GBF1dq1qy4DP4yXWzDKcoqXB3X58t61e85Fitoww4JVQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-builder-binary-assignment-operator-visitor": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.10.4.tgz", - "integrity": "sha512-L0zGlFrGWZK4PbT8AszSfLTM5sDU1+Az/En9VrdT8/LmEiJt4zXt+Jve9DCAnQcbqDhCI+29y/L93mrDzddCcg==", - "dev": true, - "requires": { - "@babel/helper-explode-assignable-expression": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-create-regexp-features-plugin": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.7.tgz", - "integrity": "sha512-idnutvQPdpbduutvi3JVfEgcVIHooQnhvhx0Nk9isOINOIGYkZea1Pk2JlJRiUnMefrlvr0vkByATBY/mB4vjQ==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "regexpu-core": "^4.7.1" - } - }, - "@babel/helper-define-map": { - "version": "7.10.5", - "resolved": "https://registry.npmjs.org/@babel/helper-define-map/-/helper-define-map-7.10.5.tgz", - "integrity": "sha512-fMw4kgFB720aQFXSVaXr79pjjcW5puTCM16+rECJ/plGS+zByelE8l9nCpV1GibxTnFVmUuYG9U8wYfQHdzOEQ==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/types": "^7.10.5", - "lodash": "^4.17.19" - } - }, - "@babel/helper-explode-assignable-expression": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.12.1.tgz", - "integrity": "sha512-dmUwH8XmlrUpVqgtZ737tK88v07l840z9j3OEhCLwKTkjlvKpfqXVIZ0wpK3aeOxspwGrf/5AP5qLx4rO3w5rA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-function-name": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.12.11.tgz", - "integrity": "sha512-AtQKjtYNolKNi6nNNVLQ27CP6D9oFR6bq/HPYSizlzbp7uC1M59XJe8L+0uXjbIaZaUJF99ruHqVGiKXU/7ybA==", - "dev": true, - "requires": { - "@babel/helper-get-function-arity": "^7.12.10", - "@babel/template": "^7.12.7", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-get-function-arity": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-get-function-arity/-/helper-get-function-arity-7.12.10.tgz", - "integrity": "sha512-mm0n5BPjR06wh9mPQaDdXWDoll/j5UpCAPl1x8fS71GHm7HA6Ua2V4ylG1Ju8lvcTOietbPNNPaSilKj+pj+Ag==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-hoist-variables": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.10.4.tgz", - "integrity": "sha512-wljroF5PgCk2juF69kanHVs6vrLwIPNp6DLD+Lrl3hoQ3PpPPikaDRNFA+0t81NOoMt2DL6WW/mdU8k4k6ZzuA==", - "dev": true, - "requires": { - "@babel/types": "^7.10.4" - } - }, - "@babel/helper-member-expression-to-functions": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.12.7.tgz", - "integrity": "sha512-DCsuPyeWxeHgh1Dus7APn7iza42i/qXqiFPWyBDdOFtvS581JQePsc1F/nD+fHrcswhLlRc2UpYS1NwERxZhHw==", - "dev": true, - "requires": { - "@babel/types": "^7.12.7" - } - }, - "@babel/helper-module-imports": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.12.5.tgz", - "integrity": "sha512-SR713Ogqg6++uexFRORf/+nPXMmWIn80TALu0uaFb+iQIUoR7bOC7zBWyzBs5b3tBBJXuyD0cRu1F15GyzjOWA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.5" - } - }, - "@babel/helper-module-transforms": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.12.1.tgz", - "integrity": "sha512-QQzehgFAZ2bbISiCpmVGfiGux8YVFXQ0abBic2Envhej22DVXV9nCFaS5hIQbkyo1AdGb+gNME2TSh3hYJVV/w==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-simple-access": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.11.0", - "@babel/helper-validator-identifier": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.1", - "@babel/types": "^7.12.1", - "lodash": "^4.17.19" - } - }, - "@babel/helper-optimise-call-expression": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.12.10.tgz", - "integrity": "sha512-4tpbU0SrSTjjt65UMWSrUOPZTsgvPgGG4S8QSTNHacKzpS51IVWGDj0yCwyeZND/i+LSN2g/O63jEXEWm49sYQ==", - "dev": true, - "requires": { - "@babel/types": "^7.12.10" - } - }, - "@babel/helper-plugin-utils": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", - "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", - "dev": true - }, - "@babel/helper-remap-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.12.1.tgz", - "integrity": "sha512-9d0KQCRM8clMPcDwo8SevNs+/9a8yWVVmaE80FGJcEP8N1qToREmWEGnBn8BUlJhYRFz6fqxeRL1sl5Ogsed7A==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-wrap-function": "^7.10.4", - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-replace-supers": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.12.11.tgz", - "integrity": "sha512-q+w1cqmhL7R0FNzth/PLLp2N+scXEK/L2AHbXUyydxp828F4FEa5WcVoqui9vFRiHDQErj9Zof8azP32uGVTRA==", - "dev": true, - "requires": { - "@babel/helper-member-expression-to-functions": "^7.12.7", - "@babel/helper-optimise-call-expression": "^7.12.10", - "@babel/traverse": "^7.12.10", - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-simple-access": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.12.1.tgz", - "integrity": "sha512-OxBp7pMrjVewSSC8fXDFrHrBcJATOOFssZwv16F3/6Xtc138GHybBfPbm9kfiqQHKhYQrlamWILwlDCeyMFEaA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-skip-transparent-expression-wrappers": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.12.1.tgz", - "integrity": "sha512-Mf5AUuhG1/OCChOJ/HcADmvcHM42WJockombn8ATJG3OnyiSxBK/Mm5x78BQWvmtXZKHgbjdGL2kin/HOLlZGA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.1" - } - }, - "@babel/helper-split-export-declaration": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.12.11.tgz", - "integrity": "sha512-LsIVN8j48gHgwzfocYUSkO/hjYAOJqlpJEc7tGXcIm4cubjVUf8LGW6eWRyxEu7gA25q02p0rQUWoCI33HNS5g==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11" - } - }, - "@babel/helper-validator-identifier": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", - "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", - "dev": true - }, - "@babel/helper-wrap-function": { - "version": "7.12.3", - "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.12.3.tgz", - "integrity": "sha512-Cvb8IuJDln3rs6tzjW3Y8UeelAOdnpB8xtQ4sme2MSZ9wOxrbThporC0y/EtE16VAtoyEfLM404Xr1e0OOp+ow==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.10.4", - "@babel/types": "^7.10.4" - } - }, - "@babel/helpers": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.12.5.tgz", - "integrity": "sha512-lgKGMQlKqA8meJqKsW6rUnc4MdUk35Ln0ATDqdM1a/UpARODdI4j5Y5lVfUScnSNkJcdCRAaWkspykNoFg9sJA==", - "dev": true, - "requires": { - "@babel/template": "^7.10.4", - "@babel/traverse": "^7.12.5", - "@babel/types": "^7.12.5" - } - }, - "@babel/highlight": { - "version": "7.10.4", - "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", - "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.10.4", - "chalk": "^2.0.0", - "js-tokens": "^4.0.0" - } - }, - "@babel/parser": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.12.11.tgz", - "integrity": "sha512-N3UxG+uuF4CMYoNj8AhnbAcJF0PiuJ9KHuy1lQmkYsxTer/MAH9UBNHsBoAX/4s6NvlDD047No8mYVGGzLL4hg==", - "dev": true - }, - "@babel/plugin-proposal-async-generator-functions": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.12.12.tgz", - "integrity": "sha512-nrz9y0a4xmUrRq51bYkWJIO5SBZyG2ys2qinHsN0zHDHVsUaModrkpyWWWXfGqYQmOL3x9sQIcTNN/pBGpo09A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1", - "@babel/plugin-syntax-async-generators": "^7.8.0" - } - }, - "@babel/plugin-proposal-dynamic-import": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.12.1.tgz", - "integrity": "sha512-a4rhUSZFuq5W8/OO8H7BL5zspjnc1FLd9hlOxIK/f7qG4a0qsqk8uvF/ywgBA8/OmjsapjpvaEOYItfGG1qIvQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-dynamic-import": "^7.8.0" - } - }, - "@babel/plugin-proposal-json-strings": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.12.1.tgz", - "integrity": "sha512-GoLDUi6U9ZLzlSda2Df++VSqDJg3CG+dR0+iWsv6XRw1rEq+zwt4DirM9yrxW6XWaTpmai1cWJLMfM8qQJf+yw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-json-strings": "^7.8.0" - } - }, - "@babel/plugin-proposal-object-rest-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.12.1.tgz", - "integrity": "sha512-s6SowJIjzlhx8o7lsFx5zmY4At6CTtDvgNQDdPzkBQucle58A6b/TTeEBYtyDgmcXjUTM+vE8YOGHZzzbc/ioA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-object-rest-spread": "^7.8.0", - "@babel/plugin-transform-parameters": "^7.12.1" - } - }, - "@babel/plugin-proposal-optional-catch-binding": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.12.1.tgz", - "integrity": "sha512-hFvIjgprh9mMw5v42sJWLI1lzU5L2sznP805zeT6rySVRA0Y18StRhDqhSxlap0oVgItRsB6WSROp4YnJTJz0g==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.8.0" - } - }, - "@babel/plugin-proposal-unicode-property-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.12.1.tgz", - "integrity": "sha512-MYq+l+PvHuw/rKUz1at/vb6nCnQ2gmJBNaM62z0OgH7B2W1D9pvkpYtlti9bGtizNIU1K3zm4bZF9F91efVY0w==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-syntax-async-generators": { - "version": "7.8.4", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", - "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-dynamic-import": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", - "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-json-strings": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", - "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-object-rest-spread": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", - "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-optional-catch-binding": { - "version": "7.8.3", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", - "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.8.0" - } - }, - "@babel/plugin-syntax-top-level-await": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.12.1.tgz", - "integrity": "sha512-i7ooMZFS+a/Om0crxZodrTzNEPJHZrlMVGMTEpFAj6rYY/bKCddB0Dk/YxfPuYXOopuhKk/e1jV6h+WUU9XN3A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-arrow-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.12.1.tgz", - "integrity": "sha512-5QB50qyN44fzzz4/qxDPQMBCTHgxg3n0xRBLJUmBlLoU/sFvxVWGZF/ZUfMVDQuJUKXaBhbupxIzIfZ6Fwk/0A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-async-to-generator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.12.1.tgz", - "integrity": "sha512-SDtqoEcarK1DFlRJ1hHRY5HvJUj5kX4qmtpMAm2QnhOlyuMC4TMdCRgW6WXpv93rZeYNeLP22y8Aq2dbcDRM1A==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-remap-async-to-generator": "^7.12.1" - } - }, - "@babel/plugin-transform-block-scoped-functions": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.12.1.tgz", - "integrity": "sha512-5OpxfuYnSgPalRpo8EWGPzIYf0lHBWORCkj5M0oLBwHdlux9Ri36QqGW3/LR13RSVOAoUUMzoPI/jpE4ABcHoA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-block-scoping": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.12.12.tgz", - "integrity": "sha512-VOEPQ/ExOVqbukuP7BYJtI5ZxxsmegTwzZ04j1aF0dkSypGo9XpDHuOrABsJu+ie+penpSJheDJ11x1BEZNiyQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-classes": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.12.1.tgz", - "integrity": "sha512-/74xkA7bVdzQTBeSUhLLJgYIcxw/dpEpCdRDiHgPJ3Mv6uC11UhjpOhl72CgqbBCmt1qtssCyB2xnJm1+PFjog==", - "dev": true, - "requires": { - "@babel/helper-annotate-as-pure": "^7.10.4", - "@babel/helper-define-map": "^7.10.4", - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-optimise-call-expression": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1", - "@babel/helper-split-export-declaration": "^7.10.4", - "globals": "^11.1.0" - } - }, - "@babel/plugin-transform-computed-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.12.1.tgz", - "integrity": "sha512-vVUOYpPWB7BkgUWPo4C44mUQHpTZXakEqFjbv8rQMg7TC6S6ZhGZ3otQcRH6u7+adSlE5i0sp63eMC/XGffrzg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-destructuring": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.12.1.tgz", - "integrity": "sha512-fRMYFKuzi/rSiYb2uRLiUENJOKq4Gnl+6qOv5f8z0TZXg3llUwUhsNNwrwaT/6dUhJTzNpBr+CUvEWBtfNY1cw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-dotall-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", - "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-duplicate-keys": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.12.1.tgz", - "integrity": "sha512-iRght0T0HztAb/CazveUpUQrZY+aGKKaWXMJ4uf9YJtqxSUe09j3wteztCUDRHs+SRAL7yMuFqUsLoAKKzgXjw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-exponentiation-operator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.12.1.tgz", - "integrity": "sha512-7tqwy2bv48q+c1EHbXK0Zx3KXd2RVQp6OC7PbwFNt/dPTAV3Lu5sWtWuAj8owr5wqtWnqHfl2/mJlUmqkChKug==", - "dev": true, - "requires": { - "@babel/helper-builder-binary-assignment-operator-visitor": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-for-of": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.12.1.tgz", - "integrity": "sha512-Zaeq10naAsuHo7heQvyV0ptj4dlZJwZgNAtBYBnu5nNKJoW62m0zKcIEyVECrUKErkUkg6ajMy4ZfnVZciSBhg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-function-name": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.12.1.tgz", - "integrity": "sha512-JF3UgJUILoFrFMEnOJLJkRHSk6LUSXLmEFsA23aR2O5CSLUxbeUX1IZ1YQ7Sn0aXb601Ncwjx73a+FVqgcljVw==", - "dev": true, - "requires": { - "@babel/helper-function-name": "^7.10.4", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.12.1.tgz", - "integrity": "sha512-+PxVGA+2Ag6uGgL0A5f+9rklOnnMccwEBzwYFL3EUaKuiyVnUipyXncFcfjSkbimLrODoqki1U9XxZzTvfN7IQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-member-expression-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.12.1.tgz", - "integrity": "sha512-1sxePl6z9ad0gFMB9KqmYofk34flq62aqMt9NqliS/7hPEpURUCMbyHXrMPlo282iY7nAvUB1aQd5mg79UD9Jg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-modules-amd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.12.1.tgz", - "integrity": "sha512-tDW8hMkzad5oDtzsB70HIQQRBiTKrhfgwC/KkJeGsaNFTdWhKNt/BiE8c5yj19XiGyrxpbkOfH87qkNg1YGlOQ==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-commonjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.12.1.tgz", - "integrity": "sha512-dY789wq6l0uLY8py9c1B48V8mVL5gZh/+PQ5ZPrylPYsnAvnEMjqsUXkuoDVPeVK+0VyGar+D08107LzDQ6pag==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-simple-access": "^7.12.1", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-systemjs": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.12.1.tgz", - "integrity": "sha512-Hn7cVvOavVh8yvW6fLwveFqSnd7rbQN3zJvoPNyNaQSvgfKmDBO9U1YL9+PCXGRlZD9tNdWTy5ACKqMuzyn32Q==", - "dev": true, - "requires": { - "@babel/helper-hoist-variables": "^7.10.4", - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-validator-identifier": "^7.10.4", - "babel-plugin-dynamic-import-node": "^2.3.3" - } - }, - "@babel/plugin-transform-modules-umd": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.12.1.tgz", - "integrity": "sha512-aEIubCS0KHKM0zUos5fIoQm+AZUMt1ZvMpqz0/H5qAQ7vWylr9+PLYurT+Ic7ID/bKLd4q8hDovaG3Zch2uz5Q==", - "dev": true, - "requires": { - "@babel/helper-module-transforms": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-named-capturing-groups-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.12.1.tgz", - "integrity": "sha512-tB43uQ62RHcoDp9v2Nsf+dSM8sbNodbEicbQNA53zHz8pWUhsgHSJCGpt7daXxRydjb0KnfmB+ChXOv3oADp1Q==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1" - } - }, - "@babel/plugin-transform-new-target": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.12.1.tgz", - "integrity": "sha512-+eW/VLcUL5L9IvJH7rT1sT0CzkdUTvPrXC2PXTn/7z7tXLBuKvezYbGdxD5WMRoyvyaujOq2fWoKl869heKjhw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-object-super": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.12.1.tgz", - "integrity": "sha512-AvypiGJH9hsquNUn+RXVcBdeE3KHPZexWRdimhuV59cSoOt5kFBmqlByorAeUlGG2CJWd0U+4ZtNKga/TB0cAw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-replace-supers": "^7.12.1" - } - }, - "@babel/plugin-transform-parameters": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.12.1.tgz", - "integrity": "sha512-xq9C5EQhdPK23ZeCdMxl8bbRnAgHFrw5EOC3KJUsSylZqdkCaFEXxGSBuTSObOpiiHHNyb82es8M1QYgfQGfNg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-property-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.12.1.tgz", - "integrity": "sha512-6MTCR/mZ1MQS+AwZLplX4cEySjCpnIF26ToWo942nqn8hXSm7McaHQNeGx/pt7suI1TWOWMfa/NgBhiqSnX0cQ==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-regenerator": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.12.1.tgz", - "integrity": "sha512-gYrHqs5itw6i4PflFX3OdBPMQdPbF4bj2REIUxlMRUFk0/ZOAIpDFuViuxPjUL7YC8UPnf+XG7/utJvqXdPKng==", - "dev": true, - "requires": { - "regenerator-transform": "^0.14.2" - } - }, - "@babel/plugin-transform-reserved-words": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.12.1.tgz", - "integrity": "sha512-pOnUfhyPKvZpVyBHhSBoX8vfA09b7r00Pmm1sH+29ae2hMTKVmSp4Ztsr8KBKjLjx17H0eJqaRC3bR2iThM54A==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-shorthand-properties": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.12.1.tgz", - "integrity": "sha512-GFZS3c/MhX1OusqB1MZ1ct2xRzX5ppQh2JU1h2Pnfk88HtFTM+TWQqJNfwkmxtPQtb/s1tk87oENfXJlx7rSDw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-spread": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.12.1.tgz", - "integrity": "sha512-vuLp8CP0BE18zVYjsEBZ5xoCecMK6LBMMxYzJnh01rxQRvhNhH1csMMmBfNo5tGpGO+NhdSNW2mzIvBu3K1fng==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4", - "@babel/helper-skip-transparent-expression-wrappers": "^7.12.1" - } - }, - "@babel/plugin-transform-sticky-regex": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.12.7.tgz", - "integrity": "sha512-VEiqZL5N/QvDbdjfYQBhruN0HYjSPjC4XkeqW4ny/jNtH9gcbgaqBIXYEZCNnESMAGs0/K/R7oFGMhOyu/eIxg==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-template-literals": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.12.1.tgz", - "integrity": "sha512-b4Zx3KHi+taXB1dVRBhVJtEPi9h1THCeKmae2qP0YdUHIFhVjtpqqNfxeVAa1xeHVhAy4SbHxEwx5cltAu5apw==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-typeof-symbol": { - "version": "7.12.10", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.12.10.tgz", - "integrity": "sha512-JQ6H8Rnsogh//ijxspCjc21YPd3VLVoYtAwv3zQmqAt8YGYUtdo5usNhdl4b9/Vir2kPFZl6n1h0PfUz4hJhaA==", - "dev": true, - "requires": { - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/plugin-transform-unicode-regex": { - "version": "7.12.1", - "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.12.1.tgz", - "integrity": "sha512-SqH4ClNngh/zGwHZOOQMTD+e8FGWexILV+ePMyiDJttAWRh5dhDL8rcl5lSgU3Huiq6Zn6pWTMvdPAb21Dwdyg==", - "dev": true, - "requires": { - "@babel/helper-create-regexp-features-plugin": "^7.12.1", - "@babel/helper-plugin-utils": "^7.10.4" - } - }, - "@babel/preset-env": { - "version": "7.7.7", - "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.7.7.tgz", - "integrity": "sha512-pCu0hrSSDVI7kCVUOdcMNQEbOPJ52E+LrQ14sN8uL2ALfSqePZQlKrOy+tM4uhEdYlCHi4imr8Zz2cZe9oSdIg==", - "dev": true, - "requires": { - "@babel/helper-module-imports": "^7.7.4", - "@babel/helper-plugin-utils": "^7.0.0", - "@babel/plugin-proposal-async-generator-functions": "^7.7.4", - "@babel/plugin-proposal-dynamic-import": "^7.7.4", - "@babel/plugin-proposal-json-strings": "^7.7.4", - "@babel/plugin-proposal-object-rest-spread": "^7.7.7", - "@babel/plugin-proposal-optional-catch-binding": "^7.7.4", - "@babel/plugin-proposal-unicode-property-regex": "^7.7.7", - "@babel/plugin-syntax-async-generators": "^7.7.4", - "@babel/plugin-syntax-dynamic-import": "^7.7.4", - "@babel/plugin-syntax-json-strings": "^7.7.4", - "@babel/plugin-syntax-object-rest-spread": "^7.7.4", - "@babel/plugin-syntax-optional-catch-binding": "^7.7.4", - "@babel/plugin-syntax-top-level-await": "^7.7.4", - "@babel/plugin-transform-arrow-functions": "^7.7.4", - "@babel/plugin-transform-async-to-generator": "^7.7.4", - "@babel/plugin-transform-block-scoped-functions": "^7.7.4", - "@babel/plugin-transform-block-scoping": "^7.7.4", - "@babel/plugin-transform-classes": "^7.7.4", - "@babel/plugin-transform-computed-properties": "^7.7.4", - "@babel/plugin-transform-destructuring": "^7.7.4", - "@babel/plugin-transform-dotall-regex": "^7.7.7", - "@babel/plugin-transform-duplicate-keys": "^7.7.4", - "@babel/plugin-transform-exponentiation-operator": "^7.7.4", - "@babel/plugin-transform-for-of": "^7.7.4", - "@babel/plugin-transform-function-name": "^7.7.4", - "@babel/plugin-transform-literals": "^7.7.4", - "@babel/plugin-transform-member-expression-literals": "^7.7.4", - "@babel/plugin-transform-modules-amd": "^7.7.5", - "@babel/plugin-transform-modules-commonjs": "^7.7.5", - "@babel/plugin-transform-modules-systemjs": "^7.7.4", - "@babel/plugin-transform-modules-umd": "^7.7.4", - "@babel/plugin-transform-named-capturing-groups-regex": "^7.7.4", - "@babel/plugin-transform-new-target": "^7.7.4", - "@babel/plugin-transform-object-super": "^7.7.4", - "@babel/plugin-transform-parameters": "^7.7.7", - "@babel/plugin-transform-property-literals": "^7.7.4", - "@babel/plugin-transform-regenerator": "^7.7.5", - "@babel/plugin-transform-reserved-words": "^7.7.4", - "@babel/plugin-transform-shorthand-properties": "^7.7.4", - "@babel/plugin-transform-spread": "^7.7.4", - "@babel/plugin-transform-sticky-regex": "^7.7.4", - "@babel/plugin-transform-template-literals": "^7.7.4", - "@babel/plugin-transform-typeof-symbol": "^7.7.4", - "@babel/plugin-transform-unicode-regex": "^7.7.4", - "@babel/types": "^7.7.4", - "browserslist": "^4.6.0", - "core-js-compat": "^3.6.0", - "invariant": "^2.2.2", - "js-levenshtein": "^1.1.3", - "semver": "^5.5.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "@babel/runtime": { - "version": "7.12.5", - "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.12.5.tgz", - "integrity": "sha512-plcc+hbExy3McchJCEQG3knOsuh3HH+Prx1P6cLIkET/0dLuQDEnrT+s27Axgc9bqfsmNUNHfscgMUdBpC9xfg==", - "dev": true, - "requires": { - "regenerator-runtime": "^0.13.4" - }, - "dependencies": { - "regenerator-runtime": { - "version": "0.13.7", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.7.tgz", - "integrity": "sha512-a54FxoJDIr27pgf7IgeQGxmqUNYrcV338lf/6gH456HZ/PhX+5BcwHXG9ajESmwe6WRO0tAzRUrRmNONWgkrew==", - "dev": true - } - } - }, - "@babel/template": { - "version": "7.12.7", - "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.12.7.tgz", - "integrity": "sha512-GkDzmHS6GV7ZeXfJZ0tLRBhZcMcY0/Lnb+eEbXDBfCAcZCjrZKe6p3J4we/D24O9Y8enxWAg1cWwof59yLh2ow==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.10.4", - "@babel/parser": "^7.12.7", - "@babel/types": "^7.12.7" - } - }, - "@babel/traverse": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.12.12.tgz", - "integrity": "sha512-s88i0X0lPy45RrLM8b9mz8RPH5FqO9G9p7ti59cToE44xFm1Q+Pjh5Gq4SXBbtb88X7Uy7pexeqRIQDDMNkL0w==", - "dev": true, - "requires": { - "@babel/code-frame": "^7.12.11", - "@babel/generator": "^7.12.11", - "@babel/helper-function-name": "^7.12.11", - "@babel/helper-split-export-declaration": "^7.12.11", - "@babel/parser": "^7.12.11", - "@babel/types": "^7.12.12", - "debug": "^4.1.0", - "globals": "^11.1.0", - "lodash": "^4.17.19" - }, - "dependencies": { - "@babel/generator": { - "version": "7.12.11", - "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.12.11.tgz", - "integrity": "sha512-Ggg6WPOJtSi8yYQvLVjG8F/TlpWDlKx0OpS4Kt+xMQPs5OaGYWy+v1A+1TvxI6sAMGZpKWWoAQ1DaeQbImlItA==", - "dev": true, - "requires": { - "@babel/types": "^7.12.11", - "jsesc": "^2.5.1", - "source-map": "^0.5.0" - } - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "@babel/types": { - "version": "7.12.12", - "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.12.tgz", - "integrity": "sha512-lnIX7piTxOH22xE7fDXDbSHg9MM1/6ORnafpJmov5rs0kX5g4BZxeXNJLXsMRiO0U5Rb8/FvMS6xlTnTHvxonQ==", - "dev": true, - "requires": { - "@babel/helper-validator-identifier": "^7.12.11", - "lodash": "^4.17.19", - "to-fast-properties": "^2.0.0" - } - }, - "@dabh/diagnostics": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/@dabh/diagnostics/-/diagnostics-2.0.2.tgz", - "integrity": "sha512-+A1YivoVDNNVCdfozHSR8v/jyuuLTMXwjWuxPFlFlUapXoGc+Gj9mDlTDDfrwl7rXCl2tNZ0kE8sIBO6YOn96Q==", - "dev": true, - "requires": { - "colorspace": "1.1.x", - "enabled": "2.0.x", - "kuler": "^2.0.0" - } - }, - "@firebase/analytics": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/@firebase/analytics/-/analytics-0.6.2.tgz", - "integrity": "sha512-4Ceov+rPfOEPIdbjlpTim/wbcUUneIesHag4UOzvmFsRRXqbxLwQpyZQWEbTSriUeU8uTKj9yOW32hsskV9Klg==", - "requires": { - "@firebase/analytics-types": "0.4.0", - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "@firebase/analytics-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/analytics-types/-/analytics-types-0.4.0.tgz", - "integrity": "sha512-Jj2xW+8+8XPfWGkv9HPv/uR+Qrmq37NPYT352wf7MvE9LrstpLVmFg3LqG6MCRr5miLAom5sen2gZ+iOhVDeRA==" - }, - "@firebase/app": { - "version": "0.6.14", - "resolved": "https://registry.npmjs.org/@firebase/app/-/app-0.6.14.tgz", - "integrity": "sha512-ZQKuiJ+fzr4tULgWoXbW+AZVTGsejOkSrlQ+zx78WiGKIubpFJLklnP3S0oYr/1nHzr4vaKuM4G8IL1Wv/+MpQ==", - "requires": { - "@firebase/app-types": "0.6.1", - "@firebase/component": "0.1.21", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "dom-storage": "2.1.0", - "tslib": "^1.11.1", - "xmlhttprequest": "1.8.0" - } - }, - "@firebase/app-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/app-types/-/app-types-0.6.1.tgz", - "integrity": "sha512-L/ZnJRAq7F++utfuoTKX4CLBG5YR7tFO3PLzG1/oXXKEezJ0kRL3CMRoueBEmTCzVb/6SIs2Qlaw++uDgi5Xyg==" - }, - "@firebase/auth": { - "version": "0.16.3", - "resolved": "https://registry.npmjs.org/@firebase/auth/-/auth-0.16.3.tgz", - "integrity": "sha512-0U+SJrh9K8vDv+lvWPYU9cAQBRPt8fpm3cK7yRZAwnN4jbcqfg+KBaddrDn28aIQYX+n4TrLiZ9TMJXPJfUYhQ==", - "requires": { - "@firebase/auth-types": "0.10.1" - } - }, - "@firebase/auth-interop-types": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/@firebase/auth-interop-types/-/auth-interop-types-0.1.5.tgz", - "integrity": "sha512-88h74TMQ6wXChPA6h9Q3E1Jg6TkTHep2+k63OWg3s0ozyGVMeY+TTOti7PFPzq5RhszQPQOoCi59es4MaRvgCw==", - "requires": {} - }, - "@firebase/auth-types": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/@firebase/auth-types/-/auth-types-0.10.1.tgz", - "integrity": "sha512-/+gBHb1O9x/YlG7inXfxff/6X3BPZt4zgBv4kql6HEmdzNQCodIRlEYnI+/da+lN+dha7PjaFH7C7ewMmfV7rw==", - "requires": {} - }, - "@firebase/component": { - "version": "0.1.21", - "resolved": "https://registry.npmjs.org/@firebase/component/-/component-0.1.21.tgz", - "integrity": "sha512-kd5sVmCLB95EK81Pj+yDTea8pzN2qo/1yr0ua9yVi6UgMzm6zAeih73iVUkaat96MAHy26yosMufkvd3zC4IKg==", - "requires": { - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "@firebase/database": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/@firebase/database/-/database-0.9.2.tgz", - "integrity": "sha512-pNvgKUNCdKvZxTLBt8Mg1iFbDOkACUHvfXs1tqLYASa9AvBZA64W4qH/uv6nXWlt+iXmknAKcJ+s9AOQ/hDPCw==", - "requires": { - "@firebase/auth-interop-types": "0.1.5", - "@firebase/component": "0.1.21", - "@firebase/database-types": "0.6.1", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "faye-websocket": "0.11.3", - "tslib": "^1.11.1" - }, - "dependencies": { - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "@firebase/database-types": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/database-types/-/database-types-0.6.1.tgz", - "integrity": "sha512-JtL3FUbWG+bM59iYuphfx9WOu2Mzf0OZNaqWiQ7lJR8wBe7bS9rIm9jlBFtksB7xcya1lZSQPA/GAy2jIlMIkA==", - "requires": { - "@firebase/app-types": "0.6.1" - } - }, - "@firebase/firestore": { - "version": "2.1.5", - "resolved": "https://registry.npmjs.org/@firebase/firestore/-/firestore-2.1.5.tgz", - "integrity": "sha512-y680BvGOBw8MUvls5aVxTyougSedwHSDEoWZ4htZ9FJGnlI/jk5LhmmrJ4ELk0vmK9sbloHn2kFSkMaoUVDeZQ==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/firestore-types": "2.1.0", - "@firebase/logger": "0.2.6", - "@firebase/util": "0.3.4", - "@firebase/webchannel-wrapper": "0.4.1", - "@grpc/grpc-js": "^1.0.0", - "@grpc/proto-loader": "^0.5.0", - "node-fetch": "2.6.1", - "tslib": "^1.11.1" - } - }, - "@firebase/firestore-types": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/@firebase/firestore-types/-/firestore-types-2.1.0.tgz", - "integrity": "sha512-jietErBWihMvJkqqEquQy5GgoEwzHnMXXC/TsVoe9FPysXm1/AeJS12taS7ZYvenAtyvL/AEJyKrRKRh4adcJQ==", - "requires": {} - }, - "@firebase/functions": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/@firebase/functions/-/functions-0.6.1.tgz", - "integrity": "sha512-xNCAY3cLlVWE8Azf+/84OjnaXMoyUstJ3vwVRG0ie22QhsdQuPa1tXTiPX4Tmm+Hbbd/Aw0A/7dkEnuW+zYzaQ==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/functions-types": "0.4.0", - "@firebase/messaging-types": "0.5.0", - "node-fetch": "2.6.1", - "tslib": "^1.11.1" - } - }, - "@firebase/functions-types": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/@firebase/functions-types/-/functions-types-0.4.0.tgz", - "integrity": "sha512-3KElyO3887HNxtxNF1ytGFrNmqD+hheqjwmT3sI09FaDCuaxGbOnsXAXH2eQ049XRXw9YQpHMgYws/aUNgXVyQ==" - }, - "@firebase/installations": { - "version": "0.4.19", - "resolved": "https://registry.npmjs.org/@firebase/installations/-/installations-0.4.19.tgz", - "integrity": "sha512-QqAQzosKVVqIx7oMt5ujF4NsIXgtlTnej4JXGJ8sQQuJoMnt3T+PFQRHbr7uOfVaBiHYhEaXCcmmhfKUHwKftw==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/installations-types": "0.3.4", - "@firebase/util": "0.3.4", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/installations-types": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/installations-types/-/installations-types-0.3.4.tgz", - "integrity": "sha512-RfePJFovmdIXb6rYwtngyxuEcWnOrzdZd9m7xAW0gRxDIjBT20n3BOhjpmgRWXo/DAxRmS7bRjWAyTHY9cqN7Q==", - "requires": {} - }, - "@firebase/logger": { - "version": "0.2.6", - "resolved": "https://registry.npmjs.org/@firebase/logger/-/logger-0.2.6.tgz", - "integrity": "sha512-KIxcUvW/cRGWlzK9Vd2KB864HlUnCfdTH0taHE0sXW5Xl7+W68suaeau1oKNEqmc3l45azkd4NzXTCWZRZdXrw==" - }, - "@firebase/messaging": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/@firebase/messaging/-/messaging-0.7.3.tgz", - "integrity": "sha512-63nOP2SmQJrj9jrhV3K96L5MRKS6AqmFVLX1XbGk6K6lz38ZC4LIoCcHxzUBXY7fCAuZvNmh/YB3pE8B2mTs8A==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/messaging-types": "0.5.0", - "@firebase/util": "0.3.4", - "idb": "3.0.2", - "tslib": "^1.11.1" - } - }, - "@firebase/messaging-types": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/@firebase/messaging-types/-/messaging-types-0.5.0.tgz", - "integrity": "sha512-QaaBswrU6umJYb/ZYvjR5JDSslCGOH6D9P136PhabFAHLTR4TWjsaACvbBXuvwrfCXu10DtcjMxqfhdNIB1Xfg==", - "requires": {} - }, - "@firebase/performance": { - "version": "0.4.5", - "resolved": "https://registry.npmjs.org/@firebase/performance/-/performance-0.4.5.tgz", - "integrity": "sha512-oenEOaV/UzvV8XPi8afYQ71RzyrHoBesqOyXqb1TOg7dpU+i+UJ5PS8K64DytKUHTxQl+UJFcuxNpsoy9BpWzw==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/performance-types": "0.0.13", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "@firebase/performance-types": { - "version": "0.0.13", - "resolved": "https://registry.npmjs.org/@firebase/performance-types/-/performance-types-0.0.13.tgz", - "integrity": "sha512-6fZfIGjQpwo9S5OzMpPyqgYAUZcFzZxHFqOyNtorDIgNXq33nlldTL/vtaUZA8iT9TT5cJlCrF/jthKU7X21EA==" - }, - "@firebase/polyfill": { - "version": "0.3.36", - "resolved": "https://registry.npmjs.org/@firebase/polyfill/-/polyfill-0.3.36.tgz", - "integrity": "sha512-zMM9oSJgY6cT2jx3Ce9LYqb0eIpDE52meIzd/oe/y70F+v9u1LDqk5kUF5mf16zovGBWMNFmgzlsh6Wj0OsFtg==", - "requires": { - "core-js": "3.6.5", - "promise-polyfill": "8.1.3", - "whatwg-fetch": "2.0.4" - }, - "dependencies": { - "core-js": { - "version": "3.6.5", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", - "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==" - } - } - }, - "@firebase/remote-config": { - "version": "0.1.30", - "resolved": "https://registry.npmjs.org/@firebase/remote-config/-/remote-config-0.1.30.tgz", - "integrity": "sha512-LAfLDcp1AN0V/7AkxBuTKy+Qnq9fKYKxbA5clrXRNVzJbTVnF5eFGsaUOlkes0ESG6lbqKy5ZcDgdl73zBIhAA==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/installations": "0.4.19", - "@firebase/logger": "0.2.6", - "@firebase/remote-config-types": "0.1.9", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "@firebase/remote-config-types": { - "version": "0.1.9", - "resolved": "https://registry.npmjs.org/@firebase/remote-config-types/-/remote-config-types-0.1.9.tgz", - "integrity": "sha512-G96qnF3RYGbZsTRut7NBX0sxyczxt1uyCgXQuH/eAfUCngxjEGcZQnBdy6mvSdqdJh5mC31rWPO4v9/s7HwtzA==" - }, - "@firebase/storage": { - "version": "0.4.2", - "resolved": "https://registry.npmjs.org/@firebase/storage/-/storage-0.4.2.tgz", - "integrity": "sha512-87CrvKrf8kijVekRBmUs8htsNz7N5X/pDhv3BvJBqw8K65GsUolpyjx0f4QJRkCRUYmh3MSkpa5P08lpVbC6nQ==", - "requires": { - "@firebase/component": "0.1.21", - "@firebase/storage-types": "0.3.13", - "@firebase/util": "0.3.4", - "tslib": "^1.11.1" - } - }, - "@firebase/storage-types": { - "version": "0.3.13", - "resolved": "https://registry.npmjs.org/@firebase/storage-types/-/storage-types-0.3.13.tgz", - "integrity": "sha512-pL7b8d5kMNCCL0w9hF7pr16POyKkb3imOW7w0qYrhBnbyJTdVxMWZhb0HxCFyQWC0w3EiIFFmxoz8NTFZDEFog==", - "requires": {} - }, - "@firebase/util": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/@firebase/util/-/util-0.3.4.tgz", - "integrity": "sha512-VwjJUE2Vgr2UMfH63ZtIX9Hd7x+6gayi6RUXaTqEYxSbf/JmehLmAEYSuxS/NckfzAXWeGnKclvnXVibDgpjQQ==", - "requires": { - "tslib": "^1.11.1" - } - }, - "@firebase/webchannel-wrapper": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/@firebase/webchannel-wrapper/-/webchannel-wrapper-0.4.1.tgz", - "integrity": "sha512-0yPjzuzGMkW1GkrC8yWsiN7vt1OzkMIi9HgxRmKREZl2wnNPOKo/yScTjXf/O57HM8dltqxPF6jlNLFVtc2qdw==" - }, - "@google-cloud/paginator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/paginator/-/paginator-2.0.3.tgz", - "integrity": "sha512-kp/pkb2p/p0d8/SKUu4mOq8+HGwF8NPzHWkj+VKrIPQPyMRw8deZtrO/OcSiy9C/7bpfU5Txah5ltUNfPkgEXg==", - "dev": true, - "requires": { - "arrify": "^2.0.0", - "extend": "^3.0.2" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - } - } - }, - "@google-cloud/precise-date": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/@google-cloud/precise-date/-/precise-date-1.0.3.tgz", - "integrity": "sha512-wWnDGh9y3cJHLuVEY8t6un78vizzMWsS7oIWKeFtPj+Ndy+dXvHW0HTx29ZUhen+tswSlQYlwFubvuRP5kKdzQ==", - "dev": true - }, - "@google-cloud/projectify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/projectify/-/projectify-1.0.4.tgz", - "integrity": "sha512-ZdzQUN02eRsmTKfBj9FDL0KNDIFNjBn/d6tHQmA/+FImH5DO6ZV8E7FzxMgAUiVAUq41RFAkb25p1oHOZ8psfg==", - "dev": true - }, - "@google-cloud/promisify": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/@google-cloud/promisify/-/promisify-1.0.4.tgz", - "integrity": "sha512-VccZDcOql77obTnFh0TbNED/6ZbbmHDf8UMNnzO1d5g9V0Htfm4k5cllY8P1tJsRKC3zWYGRLaViiupcgVjBoQ==", - "dev": true - }, - "@google-cloud/pubsub": { - "version": "1.7.3", - "resolved": "https://registry.npmjs.org/@google-cloud/pubsub/-/pubsub-1.7.3.tgz", - "integrity": "sha512-v+KdeaOS17WtHnsDf2bPGxKDT9HIRPYo3n+WsAEmvAzDHnh8q65mFcuYoQxuy2iRhmN/1ql2a0UU2tAAL7XZ8Q==", - "dev": true, - "requires": { - "@google-cloud/paginator": "^2.0.0", - "@google-cloud/precise-date": "^1.0.0", - "@google-cloud/projectify": "^1.0.0", - "@google-cloud/promisify": "^1.0.0", - "@types/duplexify": "^3.6.0", - "@types/long": "^4.0.0", - "arrify": "^2.0.0", - "async-each": "^1.0.1", - "extend": "^3.0.2", - "google-auth-library": "^5.5.0", - "google-gax": "^1.14.2", - "is-stream-ended": "^0.1.4", - "lodash.snakecase": "^4.1.1", - "p-defer": "^3.0.0", - "protobufjs": "^6.8.1" - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.0.5.tgz", - "integrity": "sha512-Hm+xOiqAhcpT9RYM8lc15dbQD7aQurM7ZU8ulmulepiPlN7iwBXXwP3vSBUimoFoApRqz7pSIisXU8pZaCB4og==", - "dev": true, - "requires": { - "semver": "^6.2.0" - } - }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "dev": true - }, - "gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - } - }, - "gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - } - }, - "google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - } - }, - "google-gax": { - "version": "1.15.3", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.15.3.tgz", - "integrity": "sha512-3JKJCRumNm3x2EksUTw4P1Rad43FTpqrtW9jzpf3xSMYXx+ogaqTM1vGo7VixHB4xkAyATXVIa3OcNSh8H9zsQ==", - "dev": true, - "requires": { - "@grpc/grpc-js": "~1.0.3", - "@grpc/proto-loader": "^0.5.1", - "@types/fs-extra": "^8.0.1", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^3.6.0", - "google-auth-library": "^5.0.0", - "is-stream-ended": "^0.1.4", - "lodash.at": "^4.6.0", - "lodash.has": "^4.5.2", - "node-fetch": "^2.6.0", - "protobufjs": "^6.8.9", - "retry-request": "^4.0.0", - "semver": "^6.0.0", - "walkdir": "^0.4.0" - } - }, - "google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", - "dev": true, - "requires": { - "node-forge": "^0.9.0" - } - }, - "gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true - }, - "node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true - }, - "p-defer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-3.0.0.tgz", - "integrity": "sha512-ugZxsxmtTln604yeYd29EGrNhazN2lywetzpKhfmQjW/VJmhpDmWbiX+h0zL8V91R0UXkhb3KtPmyq9PZw3aYw==", - "dev": true - } - } - }, - "@grpc/grpc-js": { - "version": "1.2.6", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-1.2.6.tgz", - "integrity": "sha512-wfYwFy7CvVEmBKzeDX1kQQYrv5NBpe8Z+VwXipFvqof3lCXKch7k+4T3grKtptaH5GQ5KP9iKwPr9hMDSynIUw==", - "requires": { - "@types/node": ">=12.12.47", - "google-auth-library": "^6.1.1", - "semver": "^6.2.0" - } - }, - "@grpc/proto-loader": { - "version": "0.5.6", - "resolved": "https://registry.npmjs.org/@grpc/proto-loader/-/proto-loader-0.5.6.tgz", - "integrity": "sha512-DT14xgw3PSzPxwS13auTEwxhMMOoz33DPUKNtmYK/QYbBSpLXJy78FGGs5yVoxVobEqPm4iW9MOIoz0A3bLTRQ==", - "requires": { - "lodash.camelcase": "^4.3.0", - "protobufjs": "^6.8.6" - } - }, - "@istanbuljs/schema": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.2.tgz", - "integrity": "sha512-tsAQNx32a8CoFhjhijUIhI4kccIAgmGhy8LZMZgGfmXcpMbPRUqn5LWmgRttILi6yeGmBJd2xsPkFMs0PzgPCw==", - "dev": true - }, - "@jsdevtools/ono": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@jsdevtools/ono/-/ono-7.1.3.tgz", - "integrity": "sha512-4JQNk+3mVzK3xh2rqd6RB4J46qUR19azEHBneZyTZM+c456qOrbbM/5xcR8huNCCcbVt7+UmizG6GuUvPvKUYg==", - "dev": true - }, - "@ngtools/webpack": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-9.0.7.tgz", - "integrity": "sha512-MvoMaErkjESefoIrbt8F2RpKDr9KavwvH4v3hwSAKooVNFdFKNsjJ7m3gCQehumEfsYFq2mrEK2sTW4/CpFlMQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.0.7", - "enhanced-resolve": "4.1.1", - "rxjs": "6.5.3", - "webpack-sources": "1.4.3" - }, - "dependencies": { - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@protobufjs/aspromise": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/aspromise/-/aspromise-1.1.2.tgz", - "integrity": "sha1-m4sMxmPWaafY9vXQiToU00jzD78=" - }, - "@protobufjs/base64": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/base64/-/base64-1.1.2.tgz", - "integrity": "sha512-AZkcAA5vnN/v4PDqKyMR5lx7hZttPDgClv83E//FMNhR2TMcLUhfRUBHCmSl0oi9zMgDDqRUJkSxO3wm85+XLg==" - }, - "@protobufjs/codegen": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/@protobufjs/codegen/-/codegen-2.0.4.tgz", - "integrity": "sha512-YyFaikqM5sH0ziFZCN3xDC7zeGaB/d0IUb9CATugHWbd1FRFwWwt4ld4OYMPWu5a3Xe01mGAULCdqhMlPl29Jg==" - }, - "@protobufjs/eventemitter": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/eventemitter/-/eventemitter-1.1.0.tgz", - "integrity": "sha1-NVy8mLr61ZePntCV85diHx0Ga3A=" - }, - "@protobufjs/fetch": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/fetch/-/fetch-1.1.0.tgz", - "integrity": "sha1-upn7WYYUr2VwDBYZ/wbUVLDYTEU=", - "requires": { - "@protobufjs/aspromise": "^1.1.1", - "@protobufjs/inquire": "^1.1.0" - } - }, - "@protobufjs/float": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/@protobufjs/float/-/float-1.0.2.tgz", - "integrity": "sha1-Xp4avctz/Ap8uLKR33jIy9l7h9E=" - }, - "@protobufjs/inquire": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/inquire/-/inquire-1.1.0.tgz", - "integrity": "sha1-/yAOPnzyQp4tyvwRQIKOjMY48Ik=" - }, - "@protobufjs/path": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@protobufjs/path/-/path-1.1.2.tgz", - "integrity": "sha1-bMKyDFya1q0NzP0hynZz2Nf79o0=" - }, - "@protobufjs/pool": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/pool/-/pool-1.1.0.tgz", - "integrity": "sha1-Cf0V8tbTq/qbZbw2ZQbWrXhG/1Q=" - }, - "@protobufjs/utf8": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@protobufjs/utf8/-/utf8-1.1.0.tgz", - "integrity": "sha1-p3c2C1s5oaLlEG+OhY8v0tBgxXA=" - }, - "@schematics/angular": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-9.0.7.tgz", - "integrity": "sha512-3UCeexYx/YVo3kboyPZ8KgqBTduMA18AAm3s2yrC0qj41fBFVVZAZLa74uouTf4RYVgy9kR7J3uv6VLxrJPOnQ==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7" - } - }, - "@schematics/update": { - "version": "0.900.7", - "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.900.7.tgz", - "integrity": "sha512-e9tX2DGNYfj/k9mVICpQt2bWIYyD92dlsip7LzPeZGt+R9zCp5w19uBLa8Z00OgEGzFR1krhRvkQE5OxkkAnVw==", - "dev": true, - "requires": { - "@angular-devkit/core": "9.0.7", - "@angular-devkit/schematics": "9.0.7", - "@yarnpkg/lockfile": "1.1.0", - "ini": "1.3.5", - "npm-package-arg": "^7.0.0", - "pacote": "9.5.8", - "rxjs": "6.5.3", - "semver": "6.3.0", - "semver-intersect": "1.4.0" - }, - "dependencies": { - "npm-package-arg": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-7.0.0.tgz", - "integrity": "sha512-xXxr8y5U0kl8dVkz2oK7yZjPBvqM2fwaO5l3Yg13p03v8+E3qQcD0JNhHzjL1vyGgxcKkD0cco+NLR72iuPk3g==", - "dev": true, - "requires": { - "hosted-git-info": "^3.0.2", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "rxjs": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.3.tgz", - "integrity": "sha512-wuYsAYYFdWTAnAaPoKGNhfpWwKZbJW+HgAJ+mImp+Epl7BG8oNWBCTyRM8gba9k4lk8BgWdoYm21Mo/RYhhbgA==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - } - } - }, - "@sindresorhus/is": { - "version": "0.14.0", - "resolved": "https://registry.npmjs.org/@sindresorhus/is/-/is-0.14.0.tgz", - "integrity": "sha512-9NET910DNaIPngYnLLPeg+Ogzqsi9uM4mSboU5y6p8S5DzMTVEsJZrawi+BoDNUVBa2DhJqQYUFvMDfgU062LQ==", - "dev": true - }, - "@szmarczak/http-timer": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/@szmarczak/http-timer/-/http-timer-1.1.2.tgz", - "integrity": "sha512-XIB2XbzHTN6ieIjfIMV9hlVcfPU26s2vafYWQcZHWXHOxiaRZYEDKEwdl129Zyg50+foYV2jCgtrqSA6qNuNSA==", - "dev": true, - "requires": { - "defer-to-connect": "^1.0.1" - } - }, - "@types/duplexify": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/@types/duplexify/-/duplexify-3.6.0.tgz", - "integrity": "sha512-5zOA53RUlzN74bvrSGwjudssD9F3a797sDZQkiYpUOxW+WHaXTCPz4/d5Dgi6FKnOqZ2CpaTo0DhgIfsXAOE/A==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/estree": { - "version": "0.0.46", - "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.46.tgz", - "integrity": "sha512-laIjwTQaD+5DukBZaygQ79K1Z0jb1bPEMRrkXSLjtCcZm+abyp5YbrqpSLzD42FwWW6gK/aS4NYpJ804nG2brg==", - "dev": true - }, - "@types/fs-extra": { - "version": "8.1.1", - "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.1.tgz", - "integrity": "sha512-TcUlBem321DFQzBNuz8p0CLLKp0VvF/XH9E4KHNmgwyp4E3AfgI5cjiIVZWlbfThBop2qxFIh4+LeY6hVWWZ2w==", - "dev": true, - "requires": { - "@types/node": "*" - } - }, - "@types/glob": { - "version": "7.1.3", - "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.3.tgz", - "integrity": "sha512-SEYeGAIQIQX8NN6LDKprLjbrd5dARM5EXsd8GI/A5l0apYI1fGMWgPHSe4ZKL4eozlAyI+doUE9XbYS4xCkQ1w==", - "dev": true, - "requires": { - "@types/minimatch": "*", - "@types/node": "*" - } - }, - "@types/jasmine": { - "version": "3.5.14", - "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-3.5.14.tgz", - "integrity": "sha512-Fkgk536sHPqcOtd+Ow+WiUNuk0TSo/BntKkF8wSvcd6M2FvPjeXcUE6Oz/bwDZiUZEaXLslAgw00Q94Pnx6T4w==", - "dev": true - }, - "@types/jasminewd2": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.8.tgz", - "integrity": "sha512-d9p31r7Nxk0ZH0U39PTH0hiDlJ+qNVGjlt1ucOoTUptxb2v+Y5VMnsxfwN+i3hK4yQnqBi3FMmoMFcd1JHDxdg==", - "dev": true, - "requires": { - "@types/jasmine": "*" - } - }, - "@types/json-schema": { - "version": "7.0.7", - "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.7.tgz", - "integrity": "sha512-cxWFQVseBm6O9Gbw1IWb8r6OS4OhSt3hPZLkFApLjM8TEXROBuQGLAH2i2gZpcXdLBIrpXuTDhH7Vbm1iXmNGA==", - "dev": true - }, - "@types/long": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/@types/long/-/long-4.0.1.tgz", - "integrity": "sha512-5tXH6Bx/kNGd3MgffdmP4dy2Z+G4eaXw0SE81Tq3BNadtnMR5/ySMzX4SLEzHJzSmPNn4HIdpQsBvXMUykr58w==" - }, - "@types/minimatch": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/@types/minimatch/-/minimatch-3.0.3.tgz", - "integrity": "sha512-tHq6qdbT9U1IRSGf14CL0pUlULksvY9OZ+5eEgl1N7t+OA3tGvNpxJCzuKQlsNgCVwbAs670L1vcVQi8j9HjnA==", - "dev": true - }, - "@types/node": { - "version": "12.19.15", - "resolved": "https://registry.npmjs.org/@types/node/-/node-12.19.15.tgz", - "integrity": "sha512-lowukE3GUI+VSYSu6VcBXl14d61Rp5hA1D+61r16qnwC0lYNSqdxcvRh0pswejorHfS+HgwBasM8jLXz0/aOsw==" - }, - "@types/pdfjs-dist": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/@types/pdfjs-dist/-/pdfjs-dist-2.1.7.tgz", - "integrity": "sha512-nQIwcPUhkAIyn7x9NS0lR/qxYfd5unRtfGkMjvpgF4Sh28IXftRymaNmFKTTdejDNY25NDGSIyjwj/BRwAPexg==" - }, - "@types/q": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/@types/q/-/q-1.5.4.tgz", - "integrity": "sha512-1HcDas8SEj4z1Wc696tH56G8OlRaH/sqZOynNNB+HF0WOeXPaxTtbYzJY2oEfiUxjSKjhCKr+MvR7dCHcEelug==", - "dev": true - }, - "@types/selenium-webdriver": { - "version": "3.0.17", - "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.17.tgz", - "integrity": "sha512-tGomyEuzSC1H28y2zlW6XPCaDaXFaD6soTdb4GNdmte2qfHtrKqhy0ZFs4r/1hpazCfEZqeTSRLvSasmEx89uw==", - "dev": true - }, - "@types/source-list-map": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/@types/source-list-map/-/source-list-map-0.1.2.tgz", - "integrity": "sha512-K5K+yml8LTo9bWJI/rECfIPrGgxdpeNbj+d53lwN4QjW1MCwlkhUms+gtdzigTeUyBr09+u8BwOIY3MXvHdcsA==", - "dev": true - }, - "@types/webpack-sources": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/@types/webpack-sources/-/webpack-sources-0.1.8.tgz", - "integrity": "sha512-JHB2/xZlXOjzjBB6fMOpH1eQAfsrpqVVIbneE0Rok16WXwFaznaI5vfg75U5WgGJm7V9W1c4xeRQDjX/zwvghA==", - "dev": true, - "requires": { - "@types/node": "*", - "@types/source-list-map": "*", - "source-map": "^0.6.1" - }, - "dependencies": { - "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 - } - } - }, - "@webassemblyjs/ast": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.8.5.tgz", - "integrity": "sha512-aJMfngIZ65+t71C3y2nBBg5FFG0Okt9m0XEgWZ7Ywgn1oMAT8cNwx00Uv1cQyHtidq0Xn94R4TAywO+LCQ+ZAQ==", - "dev": true, - "requires": { - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5" - } - }, - "@webassemblyjs/floating-point-hex-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.8.5.tgz", - "integrity": "sha512-9p+79WHru1oqBh9ewP9zW95E3XAo+90oth7S5Re3eQnECGq59ly1Ri5tsIipKGpiStHsUYmY3zMLqtk3gTcOtQ==", - "dev": true - }, - "@webassemblyjs/helper-api-error": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.8.5.tgz", - "integrity": "sha512-Za/tnzsvnqdaSPOUXHyKJ2XI7PDX64kWtURyGiJJZKVEdFOsdKUCPTNEVFZq3zJ2R0G5wc2PZ5gvdTRFgm81zA==", - "dev": true - }, - "@webassemblyjs/helper-buffer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.8.5.tgz", - "integrity": "sha512-Ri2R8nOS0U6G49Q86goFIPNgjyl6+oE1abW1pS84BuhP1Qcr5JqMwRFT3Ah3ADDDYGEgGs1iyb1DGX+kAi/c/Q==", - "dev": true - }, - "@webassemblyjs/helper-code-frame": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-code-frame/-/helper-code-frame-1.8.5.tgz", - "integrity": "sha512-VQAadSubZIhNpH46IR3yWO4kZZjMxN1opDrzePLdVKAZ+DFjkGD/rf4v1jap744uPVU6yjL/smZbRIIJTOUnKQ==", - "dev": true, - "requires": { - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/helper-fsm": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-fsm/-/helper-fsm-1.8.5.tgz", - "integrity": "sha512-kRuX/saORcg8se/ft6Q2UbRpZwP4y7YrWsLXPbbmtepKr22i8Z4O3V5QE9DbZK908dh5Xya4Un57SDIKwB9eow==", - "dev": true - }, - "@webassemblyjs/helper-module-context": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-module-context/-/helper-module-context-1.8.5.tgz", - "integrity": "sha512-/O1B236mN7UNEU4t9X7Pj38i4VoU8CcMHyy3l2cV/kIF4U5KoHXDVqcDuOs1ltkac90IM4vZdHc52t1x8Yfs3g==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "mamacro": "^0.0.3" - } - }, - "@webassemblyjs/helper-wasm-bytecode": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.8.5.tgz", - "integrity": "sha512-Cu4YMYG3Ddl72CbmpjU/wbP6SACcOPVbHN1dI4VJNJVgFwaKf1ppeFJrwydOG3NDHxVGuCfPlLZNyEdIYlQ6QQ==", - "dev": true - }, - "@webassemblyjs/helper-wasm-section": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.8.5.tgz", - "integrity": "sha512-VV083zwR+VTrIWWtgIUpqfvVdK4ff38loRmrdDBgBT8ADXYsEZ5mPQ4Nde90N3UYatHdYoDIFb7oHzMncI02tA==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5" - } - }, - "@webassemblyjs/ieee754": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.8.5.tgz", - "integrity": "sha512-aaCvQYrvKbY/n6wKHb/ylAJr27GglahUO89CcGXMItrOBqRarUMxWLJgxm9PJNuKULwN5n1csT9bYoMeZOGF3g==", - "dev": true, - "requires": { - "@xtuc/ieee754": "^1.2.0" - } - }, - "@webassemblyjs/leb128": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.8.5.tgz", - "integrity": "sha512-plYUuUwleLIziknvlP8VpTgO4kqNaH57Y3JnNa6DLpu/sGcP6hbVdfdX5aHAV716pQBKrfuU26BJK29qY37J7A==", - "dev": true, - "requires": { - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/utf8": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.8.5.tgz", - "integrity": "sha512-U7zgftmQriw37tfD934UNInokz6yTmn29inT2cAetAsaU9YeVCveWEwhKL1Mg4yS7q//NGdzy79nlXh3bT8Kjw==", - "dev": true - }, - "@webassemblyjs/wasm-edit": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.8.5.tgz", - "integrity": "sha512-A41EMy8MWw5yvqj7MQzkDjU29K7UJq1VrX2vWLzfpRHt3ISftOXqrtojn7nlPsZ9Ijhp5NwuODuycSvfAO/26Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/helper-wasm-section": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-opt": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "@webassemblyjs/wast-printer": "1.8.5" - } - }, - "@webassemblyjs/wasm-gen": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.8.5.tgz", - "integrity": "sha512-BCZBT0LURC0CXDzj5FXSc2FPTsxwp3nWcqXQdOZE4U7h7i8FqtFK5Egia6f9raQLpEKT1VL7zr4r3+QX6zArWg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wasm-opt": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.8.5.tgz", - "integrity": "sha512-HKo2mO/Uh9A6ojzu7cjslGaHaUU14LdLbGEKqTR7PBKwT6LdPtLLh9fPY33rmr5wcOMrsWDbbdCHq4hQUdd37Q==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-buffer": "1.8.5", - "@webassemblyjs/wasm-gen": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5" - } - }, - "@webassemblyjs/wasm-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.8.5.tgz", - "integrity": "sha512-pi0SYE9T6tfcMkthwcgCpL0cM9nRYr6/6fjgDtL6q/ZqKHdMWvxitRi5JcZ7RI4SNJJYnYNaWy5UUrHQy998lw==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-wasm-bytecode": "1.8.5", - "@webassemblyjs/ieee754": "1.8.5", - "@webassemblyjs/leb128": "1.8.5", - "@webassemblyjs/utf8": "1.8.5" - } - }, - "@webassemblyjs/wast-parser": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-parser/-/wast-parser-1.8.5.tgz", - "integrity": "sha512-daXC1FyKWHF1i11obK086QRlsMsY4+tIOKgBqI1lxAnkp9xe9YMcgOxm9kLe+ttjs5aWV2KKE1TWJCN57/Btsg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/floating-point-hex-parser": "1.8.5", - "@webassemblyjs/helper-api-error": "1.8.5", - "@webassemblyjs/helper-code-frame": "1.8.5", - "@webassemblyjs/helper-fsm": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@webassemblyjs/wast-printer": { - "version": "1.8.5", - "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.8.5.tgz", - "integrity": "sha512-w0U0pD4EhlnvRyeJzBqaVSJAo9w/ce7/WPogeXLzGkO6hzhr4GnQIZ4W4uUt5b9ooAaXPtnXlj0gzsXEOUNYMg==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/wast-parser": "1.8.5", - "@xtuc/long": "4.2.2" - } - }, - "@xtuc/ieee754": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", - "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", - "dev": true - }, - "@xtuc/long": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", - "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", - "dev": true - }, - "@yarnpkg/lockfile": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", - "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", - "dev": true - }, - "abbrev": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", - "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", - "dev": true, - "optional": true - }, - "abort-controller": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/abort-controller/-/abort-controller-3.0.0.tgz", - "integrity": "sha512-h8lQ8tacZYnR3vNQTgibj+tODHI5/+l06Au2Pcriv/Gmet0eaj4TwWH41sO9wnHDiQsEj19q0drzdWdeAHtweg==", - "requires": { - "event-target-shim": "^5.0.0" - } - }, - "accepts": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", - "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", - "dev": true, - "requires": { - "mime-types": "~2.1.24", - "negotiator": "0.6.2" - } - }, - "acorn": { - "version": "7.4.1", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-7.4.1.tgz", - "integrity": "sha512-nQyp0o1/mNdbTO1PO6kHkwSrmgZ0MT/jCCpNiwbUjGoRN4dlBhqJtoQuCnEOKzgTVwg0ZWiCoQy6SxMebQVh8A==", - "dev": true - }, - "adm-zip": { - "version": "0.4.16", - "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", - "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", - "dev": true - }, - "after": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/after/-/after-0.8.2.tgz", - "integrity": "sha1-/ts5T58OAqqXaOcCvaI7UF+ufh8=", - "dev": true - }, - "agent-base": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", - "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", - "dev": true, - "requires": { - "es6-promisify": "^5.0.0" - } - }, - "agentkeepalive": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-3.5.2.tgz", - "integrity": "sha512-e0L/HNe6qkQ7H19kTlRRqUibEAwDK5AFk6y3PtMsuut2VAH6+Q4xZml1tNDJD7kSAyqmbG/K08K5WEJYtUrSlQ==", - "dev": true, - "requires": { - "humanize-ms": "^1.2.1" - } - }, - "aggregate-error": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", - "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", - "dev": true, - "requires": { - "clean-stack": "^2.0.0", - "indent-string": "^4.0.0" - } - }, - "ajv": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", - "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", - "dev": true, - "requires": { - "fast-deep-equal": "^2.0.1", - "fast-json-stable-stringify": "^2.0.0", - "json-schema-traverse": "^0.4.1", - "uri-js": "^4.2.2" - } - }, - "ajv-errors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/ajv-errors/-/ajv-errors-1.0.1.tgz", - "integrity": "sha512-DCRfO/4nQ+89p/RK43i8Ezd41EqdGIU4ld7nGF8OQ14oc/we5rEntLCUa7+jrn3nn83BosfwZA0wb4pon2o8iQ==", - "dev": true - }, - "ajv-keywords": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", - "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", - "dev": true - }, - "alphanum-sort": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/alphanum-sort/-/alphanum-sort-1.0.2.tgz", - "integrity": "sha1-l6ERlkmyEa0zaR2fn0hqjsn74KM=", - "dev": true - }, - "angular-walkthrough": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/angular-walkthrough/-/angular-walkthrough-0.8.2.tgz", - "integrity": "sha512-UoxFGFO1k99JP4LlS6aah0jD27389MmalGKKudM2b6cUl8ZLf6WK5oe+prsEBf/PNc3mnDSjHVVDLoH0V4cDtQ==", - "requires": { - "tslib": "^1.9.0" - } - }, - "ansi-align": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-align/-/ansi-align-3.0.0.tgz", - "integrity": "sha512-ZpClVKqXN3RGBmKibdfWzqCY4lnjEuoNzU5T0oEFpfd/z5qJHVarukridD4juLO2FXMiwUQxr9WqQtaYa8XRYw==", - "dev": true, - "requires": { - "string-width": "^3.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "emoji-regex": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", - "integrity": "sha512-CwBLREIQ7LvYFB0WyRvwhq5N5qPhc6PMjD6bYggFlI5YyDgl+0vxq5VHbMOFqLg7hfWzmu8T5Z1QofhmTIhItA==", - "dev": true - }, - "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", - "dev": true, - "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, - "requires": { - "ansi-regex": "^4.1.0" - } - } - } - }, - "ansi-colors": { - "version": "3.2.4", - "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-3.2.4.tgz", - "integrity": "sha512-hHUXGagefjN2iRrID63xckIvotOXOojhQKWIPUZ4mNUZ9nLZW+7FMNoE1lOkEhNWYsx/7ysGIuJYCiMAA9FnrA==", - "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-html": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ansi-html/-/ansi-html-0.0.7.tgz", - "integrity": "sha1-gTWEAhliqenm/QOflA0S9WynhZ4=", - "dev": true - }, - "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": "3.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", - "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", - "dev": true, - "requires": { - "color-convert": "^1.9.0" - } - }, - "ansicolors": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ansicolors/-/ansicolors-0.3.2.tgz", - "integrity": "sha1-ZlWX3oap/+Oqm/vmyuXG6kJrSXk=", - "dev": true - }, - "anymatch": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", - "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", - "dev": true, - "requires": { - "normalize-path": "^3.0.0", - "picomatch": "^2.0.4" - } - }, - "apexcharts": { - "version": "3.24.0", - "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.24.0.tgz", - "integrity": "sha512-iT6czJCIVrmAtrcO90MZTQCvC+xi6R6Acf0jNH/d40FVTtCfcqECuKIh5iAMyOTtgUb7+fQ8rbadH2bm1kbL9Q==", - "requires": { - "svg.draggable.js": "^2.2.2", - "svg.easing.js": "^2.0.0", - "svg.filter.js": "^2.0.2", - "svg.pathmorphing.js": "^0.1.3", - "svg.resize.js": "^1.4.3", - "svg.select.js": "^3.0.1" - } - }, - "app-root-path": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-2.2.1.tgz", - "integrity": "sha512-91IFKeKk7FjfmezPKkwtaRvSpnUc4gDwPAjA1YZ9Gn0q0PPeW+vbeUsZuyDwjI7+QTHhcLen2v25fi/AmhvbJA==", - "dev": true - }, - "append-transform": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", - "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", - "dev": true, - "requires": { - "default-require-extensions": "^2.0.0" - } - }, - "aproba": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", - "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", - "dev": true - }, - "archiver": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/archiver/-/archiver-3.1.1.tgz", - "integrity": "sha512-5Hxxcig7gw5Jod/8Gq0OneVgLYET+oNHcxgWItq4TbhOzRLKNAFUb9edAftiMKXvXfCB0vbGrJdZDNq0dWMsxg==", - "dev": true, - "requires": { - "archiver-utils": "^2.1.0", - "async": "^2.6.3", - "buffer-crc32": "^0.2.1", - "glob": "^7.1.4", - "readable-stream": "^3.4.0", - "tar-stream": "^2.1.0", - "zip-stream": "^2.1.2" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "archiver-utils": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/archiver-utils/-/archiver-utils-2.1.0.tgz", - "integrity": "sha512-bEL/yUb/fNNiNTuUz979Z0Yg5L+LzLxGJz8x79lYmR54fmTIb6ob/hNQgkQnIUDWIFjZVQwl9Xs356I6BAMHfw==", - "dev": true, - "requires": { - "glob": "^7.1.4", - "graceful-fs": "^4.2.0", - "lazystream": "^1.0.0", - "lodash.defaults": "^4.2.0", - "lodash.difference": "^4.5.0", - "lodash.flatten": "^4.4.0", - "lodash.isplainobject": "^4.0.6", - "lodash.union": "^4.6.0", - "normalize-path": "^3.0.0", - "readable-stream": "^2.0.0" - } - }, - "are-we-there-yet": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-1.1.5.tgz", - "integrity": "sha512-5hYdAkZlcG8tOLujVDTgCT+uPX0VnpAH28gWsLfzpXYm7wP6mp5Q/gYyR7YQ0cKVJcXJnl3j2kpBan13PtQf6w==", - "dev": true, - "optional": true, - "requires": { - "delegates": "^1.0.0", - "readable-stream": "^2.0.6" - } - }, - "arg": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", - "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", - "dev": true - }, - "argparse": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", - "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", - "dev": true, - "requires": { - "sprintf-js": "~1.0.2" - } - }, - "aria-query": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", - "integrity": "sha1-ZbP8wcoRVajJrmTW7uKX8V1RM8w=", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7", - "commander": "^2.11.0" - } - }, - "arr-diff": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/arr-diff/-/arr-diff-4.0.0.tgz", - "integrity": "sha1-1kYQdP6/7HHn4VI1dhoyml3HxSA=", - "dev": true - }, - "arr-flatten": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/arr-flatten/-/arr-flatten-1.1.0.tgz", - "integrity": "sha512-L3hKV5R/p5o81R7O02IGnwpDmkp6E982XhtbuwSe3O4qOtMMMtodicASA1Cny2U+aCXcNpml+m4dPsvsJ3jatg==", - "dev": true - }, - "arr-union": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/arr-union/-/arr-union-3.1.0.tgz", - "integrity": "sha1-45sJrqne+Gao8gbiiK9jkZuuOcQ=", - "dev": true - }, - "array-flatten": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", - "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", - "dev": true - }, - "array-union": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", - "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", - "dev": true, - "requires": { - "array-uniq": "^1.0.1" - } - }, - "array-uniq": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", - "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", - "dev": true - }, - "array-unique": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/array-unique/-/array-unique-0.3.2.tgz", - "integrity": "sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=", - "dev": true - }, - "arraybuffer.slice": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/arraybuffer.slice/-/arraybuffer.slice-0.0.7.tgz", - "integrity": "sha512-wGUIVQXuehL5TCqQun8OW81jGzAWycqzFF8lFp+GOM5BXLYj3bKNsYC4daB7n6XjCqxQA/qgTJ+8ANR3acjrog==", - "dev": true - }, - "arrify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", - "integrity": "sha1-iYUI2iIm84DfkEcoRWhJwVAaSw0=", - "dev": true - }, - "as-array": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/as-array/-/as-array-2.0.0.tgz", - "integrity": "sha1-TwSAXYf4/OjlEbwhCPjl46KH1Uc=", - "dev": true - }, - "asap": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", - "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", - "dev": true - }, - "asn1": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", - "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", - "dev": true, - "requires": { - "safer-buffer": "~2.1.0" - } - }, - "asn1.js": { - "version": "5.4.1", - "resolved": "https://registry.npmjs.org/asn1.js/-/asn1.js-5.4.1.tgz", - "integrity": "sha512-+I//4cYPccV8LdmBLiX8CYvf9Sp3vQsrqu2QNXRcrbiWvcx/UdlFiqUJJzxRQxgsZmvhXhn4cSKeSmoFjVdupA==", - "dev": true, - "requires": { - "bn.js": "^4.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "safer-buffer": "^2.1.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "assert": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/assert/-/assert-1.5.0.tgz", - "integrity": "sha512-EDsgawzwoun2CZkCgtxJbv392v4nbk9XDD06zI+kQYoBM/3RBWLlEyJARDOmhAAosBjWACEkKL6S+lIZtcAubA==", - "dev": true, - "requires": { - "object-assign": "^4.1.1", - "util": "0.10.3" - }, - "dependencies": { - "inherits": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.1.tgz", - "integrity": "sha1-sX0I0ya0Qj5Wjv9xn5GwscvfafE=", - "dev": true - }, - "util": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/util/-/util-0.10.3.tgz", - "integrity": "sha1-evsa/lCAUkZInj23/g7TeTNqwPk=", - "dev": true, - "requires": { - "inherits": "2.0.1" - } - } - } - }, - "assert-plus": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", - "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", - "dev": true - }, - "assign-symbols": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/assign-symbols/-/assign-symbols-1.0.0.tgz", - "integrity": "sha1-WWZ/QfrdTyDMvCu5a41Pf3jsA2c=", - "dev": true - }, - "ast-types-flow": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", - "integrity": "sha1-9wtzXGvKGlycItmCw+Oef+ujva0=", - "dev": true - }, - "async": { - "version": "2.6.3", - "resolved": "https://registry.npmjs.org/async/-/async-2.6.3.tgz", - "integrity": "sha512-zflvls11DCy+dQWzTW2dzuilv8Z5X/pjfmZOWba6TNIVDm+2UDaJmXSOXlasHKfNBs8oo3M0aT50fDEWfKZjXg==", - "dev": true, - "requires": { - "lodash": "^4.17.14" - } - }, - "async-each": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/async-each/-/async-each-1.0.3.tgz", - "integrity": "sha512-z/WhQ5FPySLdvREByI2vZiTWwCnF0moMJ1hK9YQwDTHKh6I7/uSckMetoRGb5UBZPC1z0jlw+n/XCgjeH7y1AQ==", - "dev": true - }, - "async-limiter": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz", - "integrity": "sha512-csOlWGAcRFJaI6m+F2WKdnMKr4HhdhFVBk0H/QbJFMCr+uO2kwohwXQPxw/9OCxp05r5ghVBFSyioixx3gfkNQ==", - "dev": true - }, - "asynckit": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", - "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", - "dev": true - }, - "atob": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", - "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", - "dev": true - }, - "autoprefixer": { - "version": "9.7.1", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-9.7.1.tgz", - "integrity": "sha512-w3b5y1PXWlhYulevrTJ0lizkQ5CyqfeU6BIRDbuhsMupstHQOeb1Ur80tcB1zxSu7AwyY/qCQ7Vvqklh31ZBFw==", - "dev": true, - "requires": { - "browserslist": "^4.7.2", - "caniuse-lite": "^1.0.30001006", - "chalk": "^2.4.2", - "normalize-range": "^0.1.2", - "num2fraction": "^1.2.2", - "postcss": "^7.0.21", - "postcss-value-parser": "^4.0.2" - } - }, - "aws-sign2": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", - "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", - "dev": true - }, - "aws4": { - "version": "1.11.0", - "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", - "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", - "dev": true - }, - "axobject-query": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", - "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", - "dev": true, - "requires": { - "ast-types-flow": "0.0.7" - } - }, - "babel-loader": { - "version": "8.0.6", - "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.6.tgz", - "integrity": "sha512-4BmWKtBOBm13uoUwd08UwjZlaw3O9GWf456R9j+5YykFZ6LUIjIKLc0zEZf+hauxPOJs96C8k6FvYD09vWzhYw==", - "dev": true, - "requires": { - "find-cache-dir": "^2.0.0", - "loader-utils": "^1.0.2", - "mkdirp": "^0.5.1", - "pify": "^4.0.1" - }, - "dependencies": { - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" - } - } - } - }, - "babel-plugin-dynamic-import-node": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", - "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", - "dev": true, - "requires": { - "object.assign": "^4.1.0" - } - }, - "backo2": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/backo2/-/backo2-1.0.2.tgz", - "integrity": "sha1-MasayLEpNjRj41s+u2n038+6eUc=", - "dev": true - }, - "balanced-match": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", - "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=", - "dev": true - }, - "base": { - "version": "0.11.2", - "resolved": "https://registry.npmjs.org/base/-/base-0.11.2.tgz", - "integrity": "sha512-5T6P4xPgpp0YDFvSWwEZ4NoE3aM4QBQXDzmVbraCkFj8zHM+mba8SyqB5DbZWyR7mYHo6Y7BdQo3MoA4m0TeQg==", - "dev": true, - "requires": { - "cache-base": "^1.0.1", - "class-utils": "^0.3.5", - "component-emitter": "^1.2.1", - "define-property": "^1.0.0", - "isobject": "^3.0.1", - "mixin-deep": "^1.2.0", - "pascalcase": "^0.1.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "base64-arraybuffer": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/base64-arraybuffer/-/base64-arraybuffer-0.1.5.tgz", - "integrity": "sha1-c5JncZI7Whl0etZmqlzUv5xunOg=", - "dev": true - }, - "base64-js": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", - "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==" - }, - "base64id": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/base64id/-/base64id-1.0.0.tgz", - "integrity": "sha1-R2iMuZu2gE8OBtPnY7HDLlfY5rY=", - "dev": true - }, - "basic-auth": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/basic-auth/-/basic-auth-2.0.1.tgz", - "integrity": "sha512-NF+epuEdnUYVlGuhaxbbq+dvJttwLnGY+YixlXlME5KpQ5W3CnXA5cVTneY3SPbPDRkcjMbifrwmFYcClgOZeg==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "basic-auth-connect": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/basic-auth-connect/-/basic-auth-connect-1.0.0.tgz", - "integrity": "sha1-/bC0OWLKe0BFanwrtI/hc9otISI=", - "dev": true - }, - "batch": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", - "integrity": "sha1-3DQxT05nkxgJP8dgJyUl+UvyXBY=", - "dev": true - }, - "bcrypt-pbkdf": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", - "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", - "dev": true, - "requires": { - "tweetnacl": "^0.14.3" - } - }, - "better-assert": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/better-assert/-/better-assert-1.0.2.tgz", - "integrity": "sha1-QIZrnhueC1W0gYlDEeaPr/rrxSI=", - "dev": true, - "requires": { - "callsite": "1.0.0" - } - }, - "big-integer": { - "version": "1.6.48", - "resolved": "https://registry.npmjs.org/big-integer/-/big-integer-1.6.48.tgz", - "integrity": "sha512-j51egjPa7/i+RdiRuJbPdJ2FIUYYPhvYLjzoYbcMMm62ooO6F94fETG4MTs46zPAF9Brs04OajboA/qTGuz78w==", - "dev": true - }, - "big.js": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", - "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", - "dev": true - }, - "bignumber.js": { - "version": "9.0.1", - "resolved": "https://registry.npmjs.org/bignumber.js/-/bignumber.js-9.0.1.tgz", - "integrity": "sha512-IdZR9mh6ahOBv/hYGiXyVuyCetmGJhtYkqLBpTStdhEGjegpPlUawydyaF3pbIOFynJTpllEs+NP+CS9jKFLjA==" - }, - "binary": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/binary/-/binary-0.3.0.tgz", - "integrity": "sha1-n2BVO8XOjDOG87VTz/R0Yq3sqnk=", - "dev": true, - "requires": { - "buffers": "~0.1.1", - "chainsaw": "~0.1.0" - } - }, - "binary-extensions": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", - "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", - "dev": true - }, - "bindings": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/bindings/-/bindings-1.5.0.tgz", - "integrity": "sha512-p2q/t/mhvuOj/UeLlV6566GD/guowlr0hHxClI0W9m7MWYkL1F0hLo+0Aexs9HSPCtR1SXQ0TD3MMKrXZajbiQ==", - "dev": true, - "optional": true, - "requires": { - "file-uri-to-path": "1.0.0" - } - }, - "bl": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", - "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", - "dev": true, - "requires": { - "buffer": "^5.5.0", - "inherits": "^2.0.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", - "dev": true, - "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" - } - }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "blakejs": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/blakejs/-/blakejs-1.1.0.tgz", - "integrity": "sha1-ad+S75U6qIylGjLfarHFShVfx6U=", - "dev": true - }, - "blob": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/blob/-/blob-0.0.5.tgz", - "integrity": "sha512-gaqbzQPqOoamawKg0LGVd7SzLgXS+JH61oWprSLH+P+abTczqJbhTR8CmJ2u9/bUYNmHTGJx/UEmn6doAvvuig==", - "dev": true - }, - "blocking-proxy": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", - "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", - "dev": true, - "requires": { - "minimist": "^1.2.0" - } - }, - "bluebird": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.7.2.tgz", - "integrity": "sha512-XpNj6GDQzdfW+r2Wnn7xiSAd7TM3jzkxGXBGTtWKuSXv1xUV+azxAm8jdWZN06QTQk+2N2XB9jRDkvbmQmcRtg==", - "dev": true - }, - "bn.js": { - "version": "5.1.3", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-5.1.3.tgz", - "integrity": "sha512-GkTiFpjFtUzU9CbMeJ5iazkCzGL3jrhzerzZIuqLABjbwRaFt33I9tUdSNryIptM+RxDet6OKm2WnLXzW51KsQ==", - "dev": true - }, - "body-parser": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", - "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", - "dev": true, - "requires": { - "bytes": "3.1.0", - "content-type": "~1.0.4", - "debug": "2.6.9", - "depd": "~1.1.2", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "on-finished": "~2.3.0", - "qs": "6.7.0", - "raw-body": "2.4.0", - "type-is": "~1.6.17" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true - } - } - }, - "bonjour": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/bonjour/-/bonjour-3.5.0.tgz", - "integrity": "sha1-jokKGD2O6aI5OzhExpGkK897yfU=", - "dev": true, - "requires": { - "array-flatten": "^2.1.0", - "deep-equal": "^1.0.1", - "dns-equal": "^1.0.0", - "dns-txt": "^2.0.2", - "multicast-dns": "^6.0.1", - "multicast-dns-service-types": "^1.1.0" - } - }, - "boolbase": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", - "integrity": "sha1-aN/1++YMUes3cl6p4+0xDcwed24=", - "dev": true - }, - "bootstrap": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-4.6.0.tgz", - "integrity": "sha512-Io55IuQY3kydzHtbGvQya3H+KorS/M9rSNyfCGCg9WZ4pyT/lCxIlpJgG1GXW/PswzC84Tr2fBYi+7+jFVQQBw==" - }, - "boxen": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", - "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", - "dev": true, - "requires": { - "ansi-align": "^3.0.0", - "camelcase": "^5.3.1", - "chalk": "^3.0.0", - "cli-boxes": "^2.2.0", - "string-width": "^4.1.0", - "term-size": "^2.1.0", - "type-fest": "^0.8.1", - "widest-line": "^3.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", - "dev": true - }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", - "dev": true, - "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" - } - }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", - "dev": true, - "requires": { - "ansi-regex": "^5.0.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - } - } - }, - "brace-expansion": { - "version": "1.1.11", - "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", - "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", - "dev": true, - "requires": { - "balanced-match": "^1.0.0", - "concat-map": "0.0.1" - } - }, - "braces": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", - "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", - "dev": true, - "requires": { - "fill-range": "^7.0.1" - } - }, - "brorand": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/brorand/-/brorand-1.1.0.tgz", - "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", - "dev": true - }, - "browserify-aes": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/browserify-aes/-/browserify-aes-1.2.0.tgz", - "integrity": "sha512-+7CHXqGuspUn/Sl5aO7Ea0xWGAtETPXNSAjHo48JfLdPWcMng33Xe4znFvQweqc/uzk5zSOI3H52CYnjCfb5hA==", - "dev": true, - "requires": { - "buffer-xor": "^1.0.3", - "cipher-base": "^1.0.0", - "create-hash": "^1.1.0", - "evp_bytestokey": "^1.0.3", - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "browserify-cipher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/browserify-cipher/-/browserify-cipher-1.0.1.tgz", - "integrity": "sha512-sPhkz0ARKbf4rRQt2hTpAHqn47X3llLkUGn+xEJzLjwY8LRs2p0v7ljvI5EyoRO/mexrNunNECisZs+gw2zz1w==", - "dev": true, - "requires": { - "browserify-aes": "^1.0.4", - "browserify-des": "^1.0.0", - "evp_bytestokey": "^1.0.0" - } - }, - "browserify-des": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/browserify-des/-/browserify-des-1.0.2.tgz", - "integrity": "sha512-BioO1xf3hFwz4kc6iBhI3ieDFompMhrMlnDFC4/0/vd5MokpuAc3R+LYbwTA9A5Yc9pq9UYPqffKpW2ObuwX5A==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "des.js": "^1.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" - } - }, - "browserify-rsa": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/browserify-rsa/-/browserify-rsa-4.1.0.tgz", - "integrity": "sha512-AdEER0Hkspgno2aR97SAf6vi0y0k8NuOpGnVH3O99rcA5Q6sh8QxcngtHuJ6uXwnfAXNM4Gn1Gb7/MV1+Ymbog==", - "dev": true, - "requires": { - "bn.js": "^5.0.0", - "randombytes": "^2.0.1" - } - }, - "browserify-sign": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/browserify-sign/-/browserify-sign-4.2.1.tgz", - "integrity": "sha512-/vrA5fguVAKKAVTNJjgSm1tRQDHUU6DbwO9IROu/0WAzC8PKhucDSh18J0RMvVeHAn5puMd+QHC2erPRNf8lmg==", - "dev": true, - "requires": { - "bn.js": "^5.1.1", - "browserify-rsa": "^4.0.1", - "create-hash": "^1.2.0", - "create-hmac": "^1.1.7", - "elliptic": "^6.5.3", - "inherits": "^2.0.4", - "parse-asn1": "^5.1.5", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } - } - }, - "browserify-zlib": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/browserify-zlib/-/browserify-zlib-0.2.0.tgz", - "integrity": "sha512-Z942RysHXmJrhqk88FmKBVq/v5tqmSkDz7p54G/MGyjMnCFFnC79XWNbg+Vta8W6Wb2qtSZTSxIGkJrRpCFEiA==", - "dev": true, - "requires": { - "pako": "~1.0.5" - } - }, - "browserslist": { - "version": "4.16.1", - "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.16.1.tgz", - "integrity": "sha512-UXhDrwqsNcpTYJBTZsbGATDxZbiVDsx6UjpmRUmtnP10pr8wAYr5LgFoEFw9ixriQH2mv/NX2SfGzE/o8GndLA==", - "dev": true, - "requires": { - "caniuse-lite": "^1.0.30001173", - "colorette": "^1.2.1", - "electron-to-chromium": "^1.3.634", - "escalade": "^3.1.1", - "node-releases": "^1.1.69" - } - }, - "browserstack": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", - "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", - "dev": true, - "requires": { - "https-proxy-agent": "^2.2.1" - } - }, - "buffer": { - "version": "4.9.2", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-4.9.2.tgz", - "integrity": "sha512-xq+q3SRMOxGivLhBNaUdC64hDTQwejJ+H0T/NB1XMtTVEwNTrfFF3gAxiyW0Bu/xWEGhjVKgUcMhCrUy2+uCWg==", - "dev": true, - "requires": { - "base64-js": "^1.0.2", - "ieee754": "^1.1.4", - "isarray": "^1.0.0" - } - }, - "buffer-alloc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/buffer-alloc/-/buffer-alloc-1.2.0.tgz", - "integrity": "sha512-CFsHQgjtW1UChdXgbyJGtnm+O/uLQeZdtbDo8mfUgYXCHSM1wgrVxXm6bSyrUuErEb+4sYVGCzASBRot7zyrow==", - "dev": true, - "requires": { - "buffer-alloc-unsafe": "^1.1.0", - "buffer-fill": "^1.0.0" - } - }, - "buffer-alloc-unsafe": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/buffer-alloc-unsafe/-/buffer-alloc-unsafe-1.1.0.tgz", - "integrity": "sha512-TEM2iMIEQdJ2yjPJoSIsldnleVaAk1oW3DBVUykyOLsEsFmEc9kn+SFFPz+gl54KQNxlDnAwCXosOS9Okx2xAg==", - "dev": true - }, - "buffer-crc32": { - "version": "0.2.13", - "resolved": "https://registry.npmjs.org/buffer-crc32/-/buffer-crc32-0.2.13.tgz", - "integrity": "sha1-DTM+PwDqxQqhRUq9MO+MKl2ackI=", - "dev": true - }, - "buffer-equal-constant-time": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/buffer-equal-constant-time/-/buffer-equal-constant-time-1.0.1.tgz", - "integrity": "sha1-+OcRMvf/5uAaXJaXpMbz5I1cyBk=" - }, - "buffer-fill": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/buffer-fill/-/buffer-fill-1.0.0.tgz", - "integrity": "sha1-+PeLdniYiO858gXNY39o5wISKyw=", - "dev": true - }, - "buffer-from": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", - "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", - "dev": true - }, - "buffer-indexof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/buffer-indexof/-/buffer-indexof-1.1.1.tgz", - "integrity": "sha512-4/rOEg86jivtPTeOUUT61jJO1Ya1TrR/OkqCSZDyq84WJh3LuuiphBYJN+fm5xufIk4XAFcEwte/8WzC8If/1g==", - "dev": true - }, - "buffer-indexof-polyfill": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/buffer-indexof-polyfill/-/buffer-indexof-polyfill-1.0.2.tgz", - "integrity": "sha512-I7wzHwA3t1/lwXQh+A5PbNvJxgfo5r3xulgpYDB5zckTu/Z9oUK9biouBKQUjEqzaz3HnAT6TYoovmE+GqSf7A==", - "dev": true - }, - "buffer-xor": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/buffer-xor/-/buffer-xor-1.0.3.tgz", - "integrity": "sha1-JuYe0UIvtw3ULm42cp7VHYVf6Nk=", - "dev": true - }, - "buffers": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/buffers/-/buffers-0.1.1.tgz", - "integrity": "sha1-skV5w77U1tOWru5tmorn9Ugqt7s=", - "dev": true - }, - "builtin-modules": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", - "integrity": "sha1-Jw8HbFpywC9bZaR9+Uxf46J4iS8=", - "dev": true - }, - "builtin-status-codes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/builtin-status-codes/-/builtin-status-codes-3.0.0.tgz", - "integrity": "sha1-hZgoeOIbmOHGZCXgPQF0eI9Wnug=", - "dev": true - }, - "builtins": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/builtins/-/builtins-1.0.3.tgz", - "integrity": "sha1-y5T662HIaWRR2zZTThQi+U8K7og=", - "dev": true - }, - "bytes": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", - "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", - "dev": true - }, - "cacache": { - "version": "13.0.1", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-13.0.1.tgz", - "integrity": "sha512-5ZvAxd05HDDU+y9BVvcqYu2LLXmPnQ0hW62h32g4xBTgL/MppR4/04NHfj/ycM2y6lmTnbw6HVi+1eN0Psba6w==", - "dev": true, - "requires": { - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "fs-minipass": "^2.0.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.2", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "minipass": "^3.0.0", - "minipass-collect": "^1.0.2", - "minipass-flush": "^1.0.5", - "minipass-pipeline": "^1.2.2", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "p-map": "^3.0.0", - "promise-inflight": "^1.0.1", - "rimraf": "^2.7.1", - "ssri": "^7.0.0", - "unique-filename": "^1.1.1" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "cache-base": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cache-base/-/cache-base-1.0.1.tgz", - "integrity": "sha512-AKcdTnFSWATd5/GCPRxr2ChwIJ85CeyrEyjRHlKxQ56d4XJMGym0uAiKn0xbLOGOl3+yRpOTi484dVCEc5AUzQ==", - "dev": true, - "requires": { - "collection-visit": "^1.0.0", - "component-emitter": "^1.2.1", - "get-value": "^2.0.6", - "has-value": "^1.0.0", - "isobject": "^3.0.1", - "set-value": "^2.0.0", - "to-object-path": "^0.3.0", - "union-value": "^1.0.0", - "unset-value": "^1.0.0" - } - }, - "cacheable-request": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/cacheable-request/-/cacheable-request-6.1.0.tgz", - "integrity": "sha512-Oj3cAGPCqOZX7Rz64Uny2GYAZNliQSqfbePrgAQ1wKAihYmCUnraBtJtKcGR4xz7wF+LoJC+ssFZvv5BgF9Igg==", - "dev": true, - "requires": { - "clone-response": "^1.0.2", - "get-stream": "^5.1.0", - "http-cache-semantics": "^4.0.0", - "keyv": "^3.0.0", - "lowercase-keys": "^2.0.0", - "normalize-url": "^4.1.0", - "responselike": "^1.0.2" - }, - "dependencies": { - "get-stream": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", - "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "http-cache-semantics": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", - "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", - "dev": true - }, - "lowercase-keys": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-2.0.0.tgz", - "integrity": "sha512-tqNXrS78oMOE73NMxK4EMLQsQowWf8jKooH9g7xPavRT706R6bkQJ6DY2Te7QukaZsulxa30wQ7bk0pm4XiHmA==", - "dev": true - }, - "normalize-url": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", - "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", - "dev": true - } - } - }, - "call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" - } - }, - "call-me-maybe": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", - "integrity": "sha1-JtII6onje1y95gJQoV8DHBak1ms=", - "dev": true - }, - "caller-callsite": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-callsite/-/caller-callsite-2.0.0.tgz", - "integrity": "sha1-hH4PzgoiN1CpoCfFSzNzGtMVQTQ=", - "dev": true, - "requires": { - "callsites": "^2.0.0" - } - }, - "caller-path": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/caller-path/-/caller-path-2.0.0.tgz", - "integrity": "sha1-Ro+DBE42mrIBD6xfBs7uFbsssfQ=", - "dev": true, - "requires": { - "caller-callsite": "^2.0.0" - } - }, - "callsite": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/callsite/-/callsite-1.0.0.tgz", - "integrity": "sha1-KAOY5dZkvXQDi28JBRU+borxvCA=", - "dev": true - }, - "callsites": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/callsites/-/callsites-2.0.0.tgz", - "integrity": "sha1-BuuE8A7qQT2oav/vrL/7Ngk7PFA=", - "dev": true - }, - "camelcase": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", - "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", - "dev": true - }, - "caniuse-api": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/caniuse-api/-/caniuse-api-3.0.0.tgz", - "integrity": "sha512-bsTwuIg/BZZK/vreVTYYbSWoe2F+71P7K5QGEX+pT250DZbfU1MQ5prOKpPR+LL6uWKK3KMwMCAS74QB3Um1uw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "caniuse-lite": "^1.0.0", - "lodash.memoize": "^4.1.2", - "lodash.uniq": "^4.5.0" - } - }, - "caniuse-lite": { - "version": "1.0.30001179", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001179.tgz", - "integrity": "sha512-blMmO0QQujuUWZKyVrD1msR4WNDAqb/UPO1Sw2WWsQ7deoM5bJiicKnWJ1Y0NS/aGINSnKPIWBMw5luX+NDUCA==", - "dev": true - }, - "canonical-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/canonical-path/-/canonical-path-1.0.0.tgz", - "integrity": "sha512-feylzsbDxi1gPZ1IjystzIQZagYYLvfKrSuygUCgf7z6x790VEzze5QEkdSV1U58RA7Hi0+v6fv4K54atOzATg==", - "dev": true - }, - "cardinal": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/cardinal/-/cardinal-2.1.1.tgz", - "integrity": "sha1-fMEFXYItISlU0HsIXeolHMe8VQU=", - "dev": true, - "requires": { - "ansicolors": "~0.3.2", - "redeyed": "~2.1.0" - } - }, - "caseless": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", - "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", - "dev": true - }, - "chainsaw": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/chainsaw/-/chainsaw-0.1.0.tgz", - "integrity": "sha1-XqtQsor+WAdNDVgpE4iCi15fvJg=", - "dev": true, - "requires": { - "traverse": ">=0.3.0 <0.4" - } - }, - "chalk": { - "version": "2.4.2", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", - "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", - "dev": true, - "requires": { - "ansi-styles": "^3.2.1", - "escape-string-regexp": "^1.0.5", - "supports-color": "^5.3.0" - } - }, - "chardet": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", - "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", - "dev": true + "dependencies": { + "@ampproject/remapping": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.0.tgz", + "integrity": "sha512-qRmjj8nj9qmLTQXXmaR1cck3UXSRMPrbsLJAasZpF+t3riI71BXed5ebIOYwQntykeZuhjsdweEc9BxH5Jc26w==", + "requires": { + "@jridgewell/gen-mapping": "^0.1.0", + "@jridgewell/trace-mapping": "^0.3.9" + } }, - "chokidar": { - "version": "3.5.1", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", - "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", + "@angular-devkit/architect": { + "version": "0.1400.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.1400.5.tgz", + "integrity": "sha512-A5sRLPK3qGJAehYtX4ayUDwxQZ02yvsrxcpf3sv492IxbF7ymdMhcxIp+0UG6wIsLvpQkpW9ekJUdKmFB6GVAw==", "dev": true, "requires": { - "anymatch": "~3.1.1", - "braces": "~3.0.2", - "fsevents": "~2.3.1", - "glob-parent": "~5.1.0", - "is-binary-path": "~2.1.0", - "is-glob": "~4.0.1", - "normalize-path": "~3.0.0", - "readdirp": "~3.5.0" + "@angular-devkit/core": "14.0.5", + "rxjs": "6.6.7" }, "dependencies": { - "glob-parent": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", - "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { - "is-glob": "^4.0.1" + "tslib": "^1.9.0" } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, - "chownr": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-1.1.4.tgz", - "integrity": "sha512-jJ0bqzaylmJtVnNgzTeSOs8DPavpbYgEr/b0YL8/2GO3xJEhInFmhKMUnEJQjZumK7KXGFhUy89PrsJWlakBVg==", - "dev": true - }, - "chrome-trace-event": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.2.tgz", - "integrity": "sha512-9e/zx1jw7B4CO+c/RXoCsfg/x1AfUBioy4owYH0bJprEYAx5hRFLRhWBqHAG57D0ZM4H7vxbP7bPe0VwhQRYDQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "ci-info": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ci-info/-/ci-info-2.0.0.tgz", - "integrity": "sha512-5tK7EtrZ0N+OLFMthtqOj4fI2Jeb88C4CAZPu25LDVUgXJ0A3Js4PMGqrn0JU1W0Mh1/Z8wZzYPxqUrXeBboCQ==", - "dev": true - }, - "cipher-base": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/cipher-base/-/cipher-base-1.0.4.tgz", - "integrity": "sha512-Kkht5ye6ZGmwv40uUDZztayT2ThLQGfnj/T71N/XzeZeo3nf8foyW7zGTsPYkEya3m5f3cAypH+qe7YOrM1U2Q==", - "dev": true, - "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" - } - }, - "circular-dependency-plugin": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/circular-dependency-plugin/-/circular-dependency-plugin-5.2.0.tgz", - "integrity": "sha512-7p4Kn/gffhQaavNfyDFg7LS5S/UT1JAjyGd4UqR2+jzoYF02eDkj0Ec3+48TsIa4zghjLY87nQHIh/ecK9qLdw==", - "dev": true - }, - "cjson": { - "version": "0.3.3", - "resolved": "https://registry.npmjs.org/cjson/-/cjson-0.3.3.tgz", - "integrity": "sha1-qS2ceG5b+bkwgGMp7gXV0yYbSvo=", - "dev": true, - "requires": { - "json-parse-helpfulerror": "^1.0.3" - } - }, - "class-utils": { - "version": "0.3.6", - "resolved": "https://registry.npmjs.org/class-utils/-/class-utils-0.3.6.tgz", - "integrity": "sha512-qOhPa/Fj7s6TY8H8esGu5QNpMMQxz79h+urzrNYN6mn+9BnxlDGf5QZ+XeCDsxSjPqsSR56XOZOJmpeurnLMeg==", - "dev": true, - "requires": { - "arr-union": "^3.1.0", - "define-property": "^0.2.5", - "isobject": "^3.0.0", - "static-extend": "^0.1.1" + "@angular-devkit/build-angular": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-angular/-/build-angular-14.0.5.tgz", + "integrity": "sha512-Yjp0KyuJz4BvvW3xGC6UzYyVhMXTr5geYQskI7pkXaoNvVVD9Su4kaxl78dZBT/GRNZmNkrB2fJ4D8OOWH/oBg==", + "dev": true, + "requires": { + "@ampproject/remapping": "2.2.0", + "@angular-devkit/architect": "0.1400.5", + "@angular-devkit/build-webpack": "0.1400.5", + "@angular-devkit/core": "14.0.5", + "@babel/core": "7.17.10", + "@babel/generator": "7.17.10", + "@babel/helper-annotate-as-pure": "7.16.7", + "@babel/plugin-proposal-async-generator-functions": "7.16.8", + "@babel/plugin-transform-async-to-generator": "7.16.8", + "@babel/plugin-transform-runtime": "7.17.10", + "@babel/preset-env": "7.17.10", + "@babel/runtime": "7.17.9", + "@babel/template": "7.16.7", + "@discoveryjs/json-ext": "0.5.7", + "@ngtools/webpack": "14.0.5", + "ansi-colors": "4.1.1", + "babel-loader": "8.2.5", + "babel-plugin-istanbul": "6.1.1", + "browserslist": "^4.9.1", + "cacache": "16.0.7", + "copy-webpack-plugin": "10.2.4", + "critters": "0.0.16", + "css-loader": "6.7.1", + "esbuild": "0.14.38", + "esbuild-wasm": "0.14.38", + "glob": "8.0.1", + "https-proxy-agent": "5.0.1", + "inquirer": "8.2.4", + "jsonc-parser": "3.0.0", + "karma-source-map-support": "1.4.0", + "less": "4.1.2", + "less-loader": "10.2.0", + "license-webpack-plugin": "4.0.2", + "loader-utils": "3.2.0", + "mini-css-extract-plugin": "2.6.0", + "minimatch": "5.0.1", + "open": "8.4.0", + "ora": "5.4.1", + "parse5-html-rewriting-stream": "6.0.1", + "piscina": "3.2.0", + "postcss": "8.4.13", + "postcss-import": "14.1.0", + "postcss-loader": "6.2.1", + "postcss-preset-env": "7.5.0", + "regenerator-runtime": "0.13.9", + "resolve-url-loader": "5.0.0", + "rxjs": "6.6.7", + "sass": "1.51.0", + "sass-loader": "12.6.0", + "semver": "7.3.7", + "source-map-loader": "3.0.1", + "source-map-support": "0.5.21", + "stylus": "0.57.0", + "stylus-loader": "6.2.0", + "terser": "5.13.1", + "text-table": "0.2.0", + "tree-kill": "1.2.2", + "tslib": "2.4.0", + "webpack": "5.72.1", + "webpack-dev-middleware": "5.3.1", + "webpack-dev-server": "4.9.0", + "webpack-merge": "5.8.0", + "webpack-subresource-integrity": "5.1.0" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "@babel/highlight": "^7.18.6" } - } - } - }, - "clean-stack": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", - "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", - "dev": true - }, - "cli-boxes": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/cli-boxes/-/cli-boxes-2.2.1.tgz", - "integrity": "sha512-y4coMcylgSCdVinjiDBuR8PCC2bLjyGTwEmPb9NHR/QaNU6EUOXcTY/s6VjGMD6ENSEaeQYHCY0GNGS5jfMwPw==", - "dev": true - }, - "cli-color": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cli-color/-/cli-color-1.4.0.tgz", - "integrity": "sha512-xu6RvQqqrWEo6MPR1eixqGPywhYBHRs653F9jfXB2Hx4jdM/3WxiNE1vppRmxtMIfl16SFYTpYlrnqH/HsK/2w==", - "dev": true, - "requires": { - "ansi-regex": "^2.1.1", - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "memoizee": "^0.4.14", - "timers-ext": "^0.1.5" - } - }, - "cli-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", - "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", - "dev": true, - "requires": { - "restore-cursor": "^3.1.0" - } - }, - "cli-spinners": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", - "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", - "dev": true - }, - "cli-table": { - "version": "0.3.4", - "resolved": "https://registry.npmjs.org/cli-table/-/cli-table-0.3.4.tgz", - "integrity": "sha512-1vinpnX/ZERcmE443i3SZTmU5DF0rPO9DrL4I2iVAllhxzCM9SzPlHnz19fsZB78htkKZvYBvj6SZ6vXnaxmTA==", - "dev": true, - "requires": { - "chalk": "^2.4.1", - "string-width": "^4.2.0" - }, - "dependencies": { + }, + "@babel/generator": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.17.10.tgz", + "integrity": "sha512-46MJZZo9y3o4kmhBVc7zW7i8dtR1oIK/sdO5NcfcZRhTGYi+KKJRtHNgsU6c4VUcJmUNV/LQdebD/9Dlv4K+Tg==", + "dev": true, + "requires": { + "@babel/types": "^7.17.10", + "@jridgewell/gen-mapping": "^0.1.0", + "jsesc": "^2.5.1" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + }, + "@babel/template": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.16.7.tgz", + "integrity": "sha512-I8j/x8kHUrbYRTUxXrrMbfCa7jxkE7tZre39x3kjr9hvI82cK1FfqLygotcWN5kdPGWcLdWMHpSBavse5tWw3w==", + "dev": true, + "requires": { + "@babel/code-frame": "^7.16.7", + "@babel/parser": "^7.16.7", + "@babel/types": "^7.16.7" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", + "dev": true, + "requires": { + "type-fest": "^0.21.3" + } + }, "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "esbuild": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild/-/esbuild-0.14.38.tgz", + "integrity": "sha512-12fzJ0fsm7gVZX1YQ1InkOE5f9Tl7cgf6JPYXRJtPIoE0zkWAbHdPHVPPaLi9tYAcEBqheGzqLn/3RdTOyBfcA==", + "dev": true, + "optional": true, + "requires": { + "esbuild-android-64": "0.14.38", + "esbuild-android-arm64": "0.14.38", + "esbuild-darwin-64": "0.14.38", + "esbuild-darwin-arm64": "0.14.38", + "esbuild-freebsd-64": "0.14.38", + "esbuild-freebsd-arm64": "0.14.38", + "esbuild-linux-32": "0.14.38", + "esbuild-linux-64": "0.14.38", + "esbuild-linux-arm": "0.14.38", + "esbuild-linux-arm64": "0.14.38", + "esbuild-linux-mips64le": "0.14.38", + "esbuild-linux-ppc64le": "0.14.38", + "esbuild-linux-riscv64": "0.14.38", + "esbuild-linux-s390x": "0.14.38", + "esbuild-netbsd-64": "0.14.38", + "esbuild-openbsd-64": "0.14.38", + "esbuild-sunos-64": "0.14.38", + "esbuild-windows-32": "0.14.38", + "esbuild-windows-64": "0.14.38", + "esbuild-windows-arm64": "0.14.38" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "glob": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.1.tgz", + "integrity": "sha512-cF7FYZZ47YzmCu7dDy50xSRRfO3ErRfrXuLZcNIuyiJEco0XSrGtuilG19L5xp3NcwTx7Gn+X6Tv3fmsUPTbow==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + }, + "dependencies": { + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + } + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minimatch": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.0.1.tgz", + "integrity": "sha512-nLDxIFRyhDblz3qMuq+SoRZED4+miJ/G+tdDrjkkkRnjAsBexeGpgjLEQ0blJy7rHhR2b93rhQY4SvyWu9v03g==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", "dev": true }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + }, + "dependencies": { + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + } + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", "dev": true }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { "emoji-regex": "^8.0.0", "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "strip-ansi": "^6.0.1" } }, "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "ansi-regex": "^5.0.1" } - } - } - }, - "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": "4.1.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-4.1.0.tgz", - "integrity": "sha512-4FG+RSG9DL7uEwRUZXZn3SS34DiDPfzP0VOiEwtUWlE+AR2EIg+hSyvrIgUUfhdgR/UkAeW2QHgeP+hWrXs7jQ==", - "dev": true, - "requires": { - "string-width": "^2.1.1", - "strip-ansi": "^4.0.0", - "wrap-ansi": "^2.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", "dev": true, "requires": { - "ansi-regex": "^3.0.0" + "has-flag": "^4.0.0" } - } - } - }, - "clone": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/clone/-/clone-2.1.2.tgz", - "integrity": "sha1-G39Ln1kfHo+DZwQBYANFoCiHQ18=", - "dev": true - }, - "clone-deep": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", - "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4", - "kind-of": "^6.0.2", - "shallow-clone": "^3.0.0" - } - }, - "clone-response": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/clone-response/-/clone-response-1.0.2.tgz", - "integrity": "sha1-0dyXOSAxTfZ/vrlCI7TuNQI56Ws=", - "dev": true, - "requires": { - "mimic-response": "^1.0.0" - } - }, - "coa": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/coa/-/coa-2.0.2.tgz", - "integrity": "sha512-q5/jG+YQnSy4nRTV4F7lPepBJZ8qBNJJDBuJdoejDyLXgmL7IEo+Le2JDZudFTFt7mrCqIRaSjws4ygRCTCAXA==", - "dev": true, - "requires": { - "@types/q": "^1.5.1", - "chalk": "^2.4.1", - "q": "^1.1.2" - } - }, - "code-point-at": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", - "integrity": "sha1-DQcLTQQ6W+ozovGkDi7bPZpMz3c=", - "dev": true - }, - "codelyzer": { - "version": "5.2.2", - "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-5.2.2.tgz", - "integrity": "sha512-jB4FZ1Sx7kZhvZVdf+N2BaKTdrrNZOL0Bj10RRfrhHrb3zEvXjJvvq298JPMJAiyiCS/v4zs1QlGU0ip7xGqeA==", - "dev": true, - "requires": { - "app-root-path": "^2.2.1", - "aria-query": "^3.0.0", - "axobject-query": "2.0.2", - "css-selector-tokenizer": "^0.7.1", - "cssauron": "^1.4.0", - "damerau-levenshtein": "^1.0.4", - "semver-dsl": "^1.0.1", - "source-map": "^0.5.7", - "sprintf-js": "^1.1.2" - }, - "dependencies": { - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true }, - "sprintf-js": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", - "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", "dev": true - } - } - }, - "collection-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/collection-visit/-/collection-visit-1.0.0.tgz", - "integrity": "sha1-S8A3PBZLwykbTTaMgpzxqApZ3KA=", - "dev": true, - "requires": { - "map-visit": "^1.0.0", - "object-visit": "^1.0.0" - } - }, - "color": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/color/-/color-3.1.3.tgz", - "integrity": "sha512-xgXAcTHa2HeFCGLE9Xs/R82hujGtu9Jd9x4NW3T34+OMs7VoPsjwzRczKHvTAHeJwWFwX5j15+MgAppE8ztObQ==", - "dev": true, - "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.4" - } - }, - "color-convert": { - "version": "1.9.3", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", - "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", - "dev": true, - "requires": { - "color-name": "1.1.3" - } - }, - "color-name": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", - "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=", - "dev": true - }, - "color-string": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.4.tgz", - "integrity": "sha512-57yF5yt8Xa3czSEW1jfQDE79Idk0+AkN/4KWad6tbdxUmAs3MvjxlWSWD4deYytcRfoZ9nhKyFl1kj5tBvidbw==", - "dev": true, - "requires": { - "color-name": "^1.0.0", - "simple-swizzle": "^0.2.2" - } - }, - "colorette": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/colorette/-/colorette-1.2.1.tgz", - "integrity": "sha512-puCDz0CzydiSYOrnXpz/PKd69zRrribezjtE9yd4zvytoRc8+RY/KJPvtPFKZS3E3wP6neGyMe0vOTlHO5L3Pw==", - "dev": true - }, - "colors": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.1.2.tgz", - "integrity": "sha1-FopHAXVran9RoSzgyXv6KMCE7WM=", - "dev": true - }, - "colorspace": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/colorspace/-/colorspace-1.1.2.tgz", - "integrity": "sha512-vt+OoIP2d76xLhjwbBaucYlNSpPsrJWPlBTtwCpQKIu6/CSMutyzX93O/Do0qzpH3YoHEes8YEFXyZ797rEhzQ==", - "dev": true, - "requires": { - "color": "3.0.x", - "text-hex": "1.0.x" - }, - "dependencies": { - "color": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/color/-/color-3.0.0.tgz", - "integrity": "sha512-jCpd5+s0s0t7p3pHQKpnJ0TpQKKdleP71LWcA0aqiljpiuAkOSUFN/dyH8ZwF0hRmFlrIuRhufds1QyEP9EB+w==", + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", "dev": true, "requires": { - "color-convert": "^1.9.1", - "color-string": "^1.5.2" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } } } }, - "combined-stream": { - "version": "1.0.8", - "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", - "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", - "dev": true, - "requires": { - "delayed-stream": "~1.0.0" - } - }, - "commander": { - "version": "2.20.3", - "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", - "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", - "dev": true - }, - "commondir": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", - "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", - "dev": true - }, - "compare-semver": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/compare-semver/-/compare-semver-1.1.0.tgz", - "integrity": "sha1-fAp5onu4C2xplERfgpWCWdPQIVM=", - "dev": true, - "requires": { - "semver": "^5.0.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "compare-versions": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.6.0.tgz", - "integrity": "sha512-W6Af2Iw1z4CB7q4uU4hv646dW9GQuBM+YpC0UvUCWSD8w90SJjp+ujJuXaEMtAXBtSqGfMPuFOVn4/+FlaqfBA==", - "dev": true - }, - "component-bind": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", - "integrity": "sha1-AMYIq33Nk4l8AAllGx06jh5zu9E=", - "dev": true - }, - "component-emitter": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", - "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", - "dev": true - }, - "component-inherit": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/component-inherit/-/component-inherit-0.0.3.tgz", - "integrity": "sha1-ZF/ErfWLcrZJ1crmUTVhnbJv8UM=", - "dev": true - }, - "compress-commons": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/compress-commons/-/compress-commons-2.1.1.tgz", - "integrity": "sha512-eVw6n7CnEMFzc3duyFVrQEuY1BlHR3rYsSztyG32ibGMW722i3C6IizEGMFmfMU+A+fALvBIwxN3czffTcdA+Q==", - "dev": true, - "requires": { - "buffer-crc32": "^0.2.13", - "crc32-stream": "^3.0.1", - "normalize-path": "^3.0.0", - "readable-stream": "^2.3.6" - } - }, - "compressible": { - "version": "2.0.18", - "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", - "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", - "dev": true, - "requires": { - "mime-db": ">= 1.43.0 < 2" - } - }, - "compression": { - "version": "1.7.4", - "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", - "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", + "@angular-devkit/build-webpack": { + "version": "0.1400.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/build-webpack/-/build-webpack-0.1400.5.tgz", + "integrity": "sha512-bg5P9e7ZqV4Vmj3eFmfZhGXxp2FICN/myvu9IpUyIaNfwsi/0S98Cc4MMH0GtoK0uy27kB5QSyWUO1rwB+npJA==", "dev": true, "requires": { - "accepts": "~1.3.5", - "bytes": "3.0.0", - "compressible": "~2.0.16", - "debug": "2.6.9", - "on-headers": "~1.0.2", - "safe-buffer": "5.1.2", - "vary": "~1.1.2" + "@angular-devkit/architect": "0.1400.5", + "rxjs": "6.6.7" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { - "ms": "2.0.0" + "tslib": "^1.9.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, - "concat-map": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", - "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", - "dev": true - }, - "concat-stream": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/concat-stream/-/concat-stream-1.6.2.tgz", - "integrity": "sha512-27HBghJxjiZtIk3Ycvn/4kbJk/1uZuJFfuPEns6LaEvpvG1f0hTea8lilrouyo9mVc2GWdcEZ8OLoGmSADlrCw==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^2.2.2", - "typedarray": "^0.0.6" - } - }, - "configstore": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", - "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", + "@angular-devkit/core": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-14.0.5.tgz", + "integrity": "sha512-/CUGi6QLwh79FvsOY7M+1LQL3asZsbQW/WBd5f1iu5y7TLNqCwo+wOb0ZXLDNPw45vYBxFajtt3ob3U7qx3jNg==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "graceful-fs": "^4.1.2", - "make-dir": "^3.0.0", - "unique-string": "^2.0.0", - "write-file-atomic": "^3.0.0", - "xdg-basedir": "^4.0.0" + "ajv": "8.11.0", + "ajv-formats": "2.1.1", + "jsonc-parser": "3.0.0", + "rxjs": "6.6.7", + "source-map": "0.7.3" }, "dependencies": { - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { - "semver": "^6.0.0" + "tslib": "^1.9.0" } + }, + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true } } }, - "connect": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", - "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", + "@angular-devkit/schematics": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-14.0.5.tgz", + "integrity": "sha512-sufxITBkn2MvgEREt9JQ3QCKHS+sue1WsVzLE+TWqG5MC/RPk0f9tQ5VoHk6ZTzDKUvOtSoc7G+n0RscQsyp5g==", "dev": true, "requires": { - "debug": "2.6.9", - "finalhandler": "1.1.2", - "parseurl": "~1.3.3", - "utils-merge": "1.0.1" + "@angular-devkit/core": "14.0.5", + "jsonc-parser": "3.0.0", + "magic-string": "0.26.1", + "ora": "5.4.1", + "rxjs": "6.6.7" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", "dev": true, "requires": { - "ms": "2.0.0" + "tslib": "^1.9.0" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, - "connect-history-api-fallback": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", - "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", - "dev": true - }, - "console-browserify": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/console-browserify/-/console-browserify-1.2.0.tgz", - "integrity": "sha512-ZMkYO/LkF17QvCPqM0gxw8yUzigAOZOSWSHg91FH6orS7vcEj5dVZTidN2fQ14yBSdg97RqhSNwLUXInd52OTA==", - "dev": true - }, - "console-control-strings": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", - "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", - "dev": true, - "optional": true - }, - "constants-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/constants-browserify/-/constants-browserify-1.0.0.tgz", - "integrity": "sha1-wguW2MYXdIqvHBYCF2DNJ/y4y3U=", - "dev": true - }, - "content-disposition": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.3.tgz", - "integrity": "sha512-ExO0774ikEObIAEV9kDo50o+79VCUdEB6n6lzKgGwupcVeRlhrj3qGAfwq8G6uBJjkqLrhT0qEYFcWng8z1z0g==", - "dev": true, - "requires": { - "safe-buffer": "5.1.2" - } - }, - "content-type": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", - "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", - "dev": true - }, - "convert-source-map": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", - "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", - "dev": true, + "@angular/animations": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-14.0.5.tgz", + "integrity": "sha512-oQy4rZIsJUHbK4CMxEgxVVOKAbX+k16Wqc9t6zPlqayvj0wQA1XdTdbXMfiZyekFgtfnjb+UPjmXa2FNe1G8NQ==", "requires": { - "safe-buffer": "~5.1.1" + "tslib": "^2.3.0" } }, - "cookie": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.0.tgz", - "integrity": "sha512-+Hp8fLp57wnUSt0tY0tHEXh4voZRDnoIrZPqlo3DPiI4y9lwg/jqx+1Om94/W6ZaPDOUbnjOt/99w66zk+l1Xg==", - "dev": true - }, - "cookie-signature": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", - "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", - "dev": true - }, - "copy-concurrently": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/copy-concurrently/-/copy-concurrently-1.0.5.tgz", - "integrity": "sha512-f2domd9fsVDFtaFcbaRZuYXwtdmnzqbADSwhSWYxYB/Q8zsdUUFMXVRwXGDMWmbEzAn1kdRrtI1T/KTFOL4X2A==", - "dev": true, + "@angular/cdk": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@angular/cdk/-/cdk-14.0.4.tgz", + "integrity": "sha512-zPM4VZadoKzTF9TZ7Yx5gJ7GtQpt62f8ofdH/BF2atG+TaNzOEFqtzogP4WuJDFAxJXOPMePobhth4YjUk0Wbw==", "requires": { - "aproba": "^1.1.1", - "fs-write-stream-atomic": "^1.0.8", - "iferr": "^0.1.5", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.0" + "parse5": "^5.0.0", + "tslib": "^2.3.0" }, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } + "parse5": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-5.1.1.tgz", + "integrity": "sha512-ugq4DFI0Ptb+WWjAdOK16+u/nHfiIrcE+sh8kZMaM0WllQKLI9rOUq6c2b7cwPkXdzfQESqvoqK6ug7U/Yyzug==", + "optional": true } } }, - "copy-descriptor": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/copy-descriptor/-/copy-descriptor-0.1.1.tgz", - "integrity": "sha1-Z29us8OZl8LuGsOpJP1hJHSPV40=", - "dev": true - }, - "copy-webpack-plugin": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-5.1.1.tgz", - "integrity": "sha512-P15M5ZC8dyCjQHWwd4Ia/dm0SgVvZJMYeykVIVYXbGyqO4dWB5oyPHp9i7wjwo5LhtlhKbiBCdS2NvM07Wlybg==", + "@angular/cli": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-14.0.5.tgz", + "integrity": "sha512-/Iqvy3vRqakHdxNi+Qo18xXQr8E1cCaKzMBnxR2wHNdlu1lyaw0p20E8LumoueXCrs+/SK6aKDvN6ek0R/q8Jg==", "dev": true, "requires": { - "cacache": "^12.0.3", - "find-cache-dir": "^2.1.0", - "glob-parent": "^3.1.0", - "globby": "^7.1.1", - "is-glob": "^4.0.1", - "loader-utils": "^1.2.3", - "minimatch": "^3.0.4", - "normalize-path": "^3.0.0", - "p-limit": "^2.2.1", - "schema-utils": "^1.0.0", - "serialize-javascript": "^2.1.2", - "webpack-log": "^2.0.0" + "@angular-devkit/architect": "0.1400.5", + "@angular-devkit/core": "14.0.5", + "@angular-devkit/schematics": "14.0.5", + "@schematics/angular": "14.0.5", + "@yarnpkg/lockfile": "1.1.0", + "ansi-colors": "4.1.1", + "debug": "4.3.4", + "ini": "3.0.0", + "inquirer": "8.2.4", + "jsonc-parser": "3.0.0", + "npm-package-arg": "9.0.2", + "npm-pick-manifest": "7.0.1", + "open": "8.4.0", + "ora": "5.4.1", + "pacote": "13.3.0", + "resolve": "1.22.0", + "semver": "7.3.7", + "symbol-observable": "4.0.0", + "uuid": "8.3.2", + "yargs": "17.4.1" }, "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "type-fest": "^0.21.3" } }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "color-convert": "^2.0.1" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", "dev": true, "requires": { - "glob": "^7.1.3" + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "cli-width": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cli-width/-/cli-width-3.0.0.tgz", + "integrity": "sha512-FxqpkPPwu1HjuN93Omfm4h8uIanXofW0RxVEW3k5RKx+mJJYSthzNhp32Kzxxy3YAEZ/Dc/EWN1vZRY0+kOhbw==", + "dev": true + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "dev": true, + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "ini": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/ini/-/ini-3.0.0.tgz", + "integrity": "sha512-TxYQaeNW/N8ymDvwAxPyRbhMBtnEwuvaTYpOQkFx1nSeusgezHniEc/l35Vo4iCq/mMiTJbpD7oYxN98hFlfmw==", + "dev": true + }, + "inquirer": { + "version": "8.2.4", + "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-8.2.4.tgz", + "integrity": "sha512-nn4F01dxU8VeKfq192IjLsxu0/OmMZ4Lg3xKAns148rCaXP6ntAoEkVYZThWjwON8AlzdZZi6oqnhNbxUG9hVg==", + "dev": true, + "requires": { + "ansi-escapes": "^4.2.1", + "chalk": "^4.1.1", + "cli-cursor": "^3.1.0", + "cli-width": "^3.0.0", + "external-editor": "^3.0.3", + "figures": "^3.0.0", + "lodash": "^4.17.21", + "mute-stream": "0.0.8", + "ora": "^5.4.1", + "run-async": "^2.4.0", + "rxjs": "^7.5.5", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0", + "through": "^2.3.6", + "wrap-ansi": "^7.0.0" + } + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "mute-stream": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.8.tgz", + "integrity": "sha512-nnbWWOkoWyUsTjKrhgD0dcz22mdkSnpYqbEjIm2nhwhuxlSkpywJmBo8h0ZqJdkp73mb90SssHkN4rsRaBAfAA==", + "dev": true + }, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", + "dev": true, + "requires": { + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" + } + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", + "dev": true + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "dev": true, + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", + "dev": true, + "requires": { + "tslib": "^2.1.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==", + "dev": true + }, + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", + "dev": true + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "17.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.4.1.tgz", + "integrity": "sha512-WSZD9jgobAg3ZKuCQZSa3g9QOJeCCqLoLAykiWgmXnDo9EPnn4RPf5qVTtzgOx66o6/oqhcA5tHtJXpG8pMt3g==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true } } }, - "core-js": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.4.tgz", - "integrity": "sha512-4paDGScNgZP2IXXilaffL9X7968RuvwlkK3xWtZRVqgd8SYNiVKRJvkFd1aqqEuPfN7E68ZHEp9hDj6lHj4Hyw==", - "dev": true - }, - "core-js-compat": { - "version": "3.8.3", - "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.8.3.tgz", - "integrity": "sha512-1sCb0wBXnBIL16pfFG1Gkvei6UzvKyTNYpiC41yrdjEv0UoJoq9E/abTMzyYJ6JpTkAj15dLjbqifIzEBDVvog==", - "dev": true, + "@angular/common": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/common/-/common-14.0.5.tgz", + "integrity": "sha512-YFRPxx3yRLjk0gPL7tm/97mi8+Pjt3q6zWCjrLkAlDjniDvgmKNWIQ1h6crZQR0Cw7yNqK0QoFXQgTw0GJIWLQ==", "requires": { - "browserslist": "^4.16.1", - "semver": "7.0.0" - }, - "dependencies": { - "semver": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", - "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", - "dev": true - } + "tslib": "^2.3.0" } }, - "core-util-is": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", - "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", - "dev": true - }, - "cosmiconfig": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-5.2.1.tgz", - "integrity": "sha512-H65gsXo1SKjf8zmrJ67eJk8aIRKV5ff2D4uKZIBZShbhGSpEmsQOPW/SKMKYhSTrqR7ufy6RP69rPogdaPh/kA==", - "dev": true, + "@angular/compiler": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-14.0.5.tgz", + "integrity": "sha512-2Fxrdd5558FFSgWU0szYMo6Lea1jzBPzn8oAcLxo/OkaHgX8tSrlmY6y3TMlSxJu8NbdKcq1CqFMrfw5mqtoDA==", "requires": { - "import-fresh": "^2.0.0", - "is-directory": "^0.3.1", - "js-yaml": "^3.13.1", - "parse-json": "^4.0.0" + "tslib": "^2.3.0" } }, - "coverage-istanbul-loader": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/coverage-istanbul-loader/-/coverage-istanbul-loader-2.0.3.tgz", - "integrity": "sha512-LiGRvyIuzVYs3M1ZYK1tF0HekjH0DJ8zFdUwAZq378EJzqOgToyb1690dp3TAUlP6Y+82uu42LRjuROVeJ54CA==", + "@angular/compiler-cli": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-14.0.5.tgz", + "integrity": "sha512-1bzojB5OoI/YLC7er+h+v1teG4Pp4jUxsFm9FmmgGaJ4gfadsPshzhZNASKoq/g7bQB7RnX0kgTGwwQImpirwQ==", "dev": true, "requires": { - "convert-source-map": "^1.7.0", - "istanbul-lib-instrument": "^4.0.0", - "loader-utils": "^1.2.3", - "merge-source-map": "^1.1.0", - "schema-utils": "^2.6.1" + "@babel/core": "^7.17.2", + "chokidar": "^3.0.0", + "convert-source-map": "^1.5.1", + "dependency-graph": "^0.11.0", + "magic-string": "^0.26.0", + "reflect-metadata": "^0.1.2", + "semver": "^7.0.0", + "sourcemap-codec": "^1.4.8", + "tslib": "^2.3.0", + "yargs": "^17.2.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "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" + "color-convert": "^2.0.1" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "yallist": "^4.0.0" } - } - } - }, - "crc": { - "version": "3.8.0", - "resolved": "https://registry.npmjs.org/crc/-/crc-3.8.0.tgz", - "integrity": "sha512-iX3mfgcTMIq3ZKLIsVFAbv7+Mc10kxabAGQb8HvjA1o3T1PIYprbakQ65d3I+2HGHt6nSKkM9PYjgoJO2KcFBQ==", - "dev": true, - "requires": { - "buffer": "^5.1.0" - }, - "dependencies": { - "buffer": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", - "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "base64-js": "^1.3.1", - "ieee754": "^1.1.13" + "lru-cache": "^6.0.0" } - } - } - }, - "crc32-stream": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/crc32-stream/-/crc32-stream-3.0.1.tgz", - "integrity": "sha512-mctvpXlbzsvK+6z8kJwSJ5crm7yBwrQMTybJzMw1O4lLGJqjlDCXY2Zw7KheiA6XBEcBmfLx1D88mjRGVJtY9w==", - "dev": true, - "requires": { - "crc": "^3.4.4", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } - } - } - }, - "create-ecdh": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/create-ecdh/-/create-ecdh-4.0.4.tgz", - "integrity": "sha512-mf+TCx8wWc9VpuxfP2ht0iSISLZnt0JgWlrOKZiNqyUZWnjIaCIVNQArMHnCZKfEYRg6IM7A+NeJoN8gf/Ws0A==", - "dev": true, - "requires": { - "bn.js": "^4.1.0", - "elliptic": "^6.5.3" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } - } - }, - "create-hash": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/create-hash/-/create-hash-1.2.0.tgz", - "integrity": "sha512-z00bCGNHDG8mHAkP7CtT1qVu+bFQUPjYq/4Iv3C3kWjTFV10zIjfSoeqXo9Asws8gwSHDGj/hl2u4OGIjapeCg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.1", - "inherits": "^2.0.1", - "md5.js": "^1.3.4", - "ripemd160": "^2.0.1", - "sha.js": "^2.4.0" - } - }, - "create-hmac": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/create-hmac/-/create-hmac-1.1.7.tgz", - "integrity": "sha512-MJG9liiZ+ogc4TzUwuvbER1JRdgvUFSB5+VR/g5h82fGaIRWMWddtKBHi7/sVhfjQZ6SehlyhvQYrcYkaUIpLg==", - "dev": true, - "requires": { - "cipher-base": "^1.0.3", - "create-hash": "^1.1.0", - "inherits": "^2.0.1", - "ripemd160": "^2.0.0", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" - } - }, - "cross-env": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/cross-env/-/cross-env-5.2.1.tgz", - "integrity": "sha512-1yHhtcfAd1r4nwQgknowuUNfIT9E8dOMMspC36g45dN+iD1blloi7xp8X/xAIDnjHWyt1uQ8PHk2fkNaym7soQ==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.5" - } - }, - "cross-spawn": { - "version": "6.0.5", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-6.0.5.tgz", - "integrity": "sha512-eTVLrBSt7fjbDygz805pMnstIs2VTBNkRm0qxZd+M7A5XDdxVRWO5MxGBXZhjY4cqLYLdtrGqRf8mBPmzwSpWQ==", - "dev": true, - "requires": { - "nice-try": "^1.0.4", - "path-key": "^2.0.1", - "semver": "^5.5.0", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } - }, - "crypto-browserify": { - "version": "3.12.0", - "resolved": "https://registry.npmjs.org/crypto-browserify/-/crypto-browserify-3.12.0.tgz", - "integrity": "sha512-fz4spIh+znjO2VjL+IdhEpRJ3YN6sMzITSBijk6FK2UvTqruSQW+/cCZTSNsMiZNvUeq0CqurF+dAbyiGOY6Wg==", - "dev": true, - "requires": { - "browserify-cipher": "^1.0.0", - "browserify-sign": "^4.0.0", - "create-ecdh": "^4.0.0", - "create-hash": "^1.1.0", - "create-hmac": "^1.1.0", - "diffie-hellman": "^5.0.0", - "inherits": "^2.0.1", - "pbkdf2": "^3.0.3", - "public-encrypt": "^4.0.0", - "randombytes": "^2.0.0", - "randomfill": "^1.0.3" - } - }, - "crypto-random-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", - "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", - "dev": true - }, - "css": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/css/-/css-2.2.4.tgz", - "integrity": "sha512-oUnjmWpy0niI3x/mPL8dVEI1l7MnG3+HHyRPHf+YFSbK+svOhXpmSOcDURUh2aOCgl2grzrOPt1nHLuCVFULLw==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "source-map": "^0.6.1", - "source-map-resolve": "^0.5.2", - "urix": "^0.1.0" - }, - "dependencies": { - "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 - } - } - }, - "css-color-names": { - "version": "0.0.4", - "resolved": "https://registry.npmjs.org/css-color-names/-/css-color-names-0.0.4.tgz", - "integrity": "sha1-gIrcLnnPhHOAabZGyyDsJ762KeA=", - "dev": true - }, - "css-declaration-sorter": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/css-declaration-sorter/-/css-declaration-sorter-4.0.1.tgz", - "integrity": "sha512-BcxQSKTSEEQUftYpBVnsH4SF05NTuBokb19/sBt6asXGKZ/6VP7PLG1CBCkFDYOnhXhPh0jMhO6xZ71oYHXHBA==", - "dev": true, - "requires": { - "postcss": "^7.0.1", - "timsort": "^0.3.0" - } - }, - "css-parse": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/css-parse/-/css-parse-2.0.0.tgz", - "integrity": "sha1-pGjuZnwW2BzPBcWMONKpfHgNv9Q=", - "dev": true, - "requires": { - "css": "^2.0.0" - } - }, - "css-select": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/css-select/-/css-select-2.1.0.tgz", - "integrity": "sha512-Dqk7LQKpwLoH3VovzZnkzegqNSuAziQyNZUcrdDM401iY+R5NkGBXGmtO05/yaXQziALuPogeG0b7UAgjnTJTQ==", - "dev": true, - "requires": { - "boolbase": "^1.0.0", - "css-what": "^3.2.1", - "domutils": "^1.7.0", - "nth-check": "^1.0.2" - } - }, - "css-select-base-adapter": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/css-select-base-adapter/-/css-select-base-adapter-0.1.1.tgz", - "integrity": "sha512-jQVeeRG70QI08vSTwf1jHxp74JoZsr2XSgETae8/xC8ovSnL2WF87GTLO86Sbwdt2lK4Umg4HnnwMO4YF3Ce7w==", - "dev": true - }, - "css-selector-tokenizer": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", - "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", - "dev": true, - "requires": { - "cssesc": "^3.0.0", - "fastparse": "^1.1.2" - } - }, - "css-tree": { - "version": "1.0.0-alpha.37", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.0.0-alpha.37.tgz", - "integrity": "sha512-DMxWJg0rnz7UgxKT0Q1HU/L9BeJI0M6ksor0OgqOnF+aRCDWg/N2641HmVyU9KVIu0OVVWOb2IpC9A+BJRnejg==", - "dev": true, - "requires": { - "mdn-data": "2.0.4", - "source-map": "^0.6.1" - }, - "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", "dev": true - } - } - }, - "css-what": { - "version": "3.4.2", - "resolved": "https://registry.npmjs.org/css-what/-/css-what-3.4.2.tgz", - "integrity": "sha512-ACUm3L0/jiZTqfzRM3Hi9Q8eZqd6IK37mMWPLz9PJxkLWllYeRf+EHUSHYEtFop2Eqytaq1FizFVh7XfBnXCDQ==", - "dev": true - }, - "cssauron": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", - "integrity": "sha1-pmAt/34EqDBtwNuaVR6S6LVmKtg=", - "dev": true, - "requires": { - "through": "X.X.X" + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" + } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==", + "dev": true + } } }, - "cssesc": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", - "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", - "dev": true - }, - "cssnano": { - "version": "4.1.10", - "resolved": "https://registry.npmjs.org/cssnano/-/cssnano-4.1.10.tgz", - "integrity": "sha512-5wny+F6H4/8RgNlaqab4ktc3e0/blKutmq8yNlBFXA//nSFFAqAngjNVRzUvCgYROULmZZUoosL/KSoZo5aUaQ==", - "dev": true, + "@angular/core": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-14.0.5.tgz", + "integrity": "sha512-4MIfFM2nD+N0/Dk8xKfKvbdS/zYRhQgdnKT6ZIIV7Y/XCfn5QAIa4+vB5BEAZpuzSsZHLVdBQQ0TkaiONLfL2Q==", "requires": { - "cosmiconfig": "^5.0.0", - "cssnano-preset-default": "^4.0.7", - "is-resolvable": "^1.0.0", - "postcss": "^7.0.0" + "tslib": "^2.3.0" } }, - "cssnano-preset-default": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/cssnano-preset-default/-/cssnano-preset-default-4.0.7.tgz", - "integrity": "sha512-x0YHHx2h6p0fCl1zY9L9roD7rnlltugGu7zXSKQx6k2rYw0Hi3IqxcoAGF7u9Q5w1nt7vK0ulxV8Lo+EvllGsA==", - "dev": true, - "requires": { - "css-declaration-sorter": "^4.0.1", - "cssnano-util-raw-cache": "^4.0.1", - "postcss": "^7.0.0", - "postcss-calc": "^7.0.1", - "postcss-colormin": "^4.0.3", - "postcss-convert-values": "^4.0.1", - "postcss-discard-comments": "^4.0.2", - "postcss-discard-duplicates": "^4.0.2", - "postcss-discard-empty": "^4.0.1", - "postcss-discard-overridden": "^4.0.1", - "postcss-merge-longhand": "^4.0.11", - "postcss-merge-rules": "^4.0.3", - "postcss-minify-font-values": "^4.0.2", - "postcss-minify-gradients": "^4.0.2", - "postcss-minify-params": "^4.0.2", - "postcss-minify-selectors": "^4.0.2", - "postcss-normalize-charset": "^4.0.1", - "postcss-normalize-display-values": "^4.0.2", - "postcss-normalize-positions": "^4.0.2", - "postcss-normalize-repeat-style": "^4.0.2", - "postcss-normalize-string": "^4.0.2", - "postcss-normalize-timing-functions": "^4.0.2", - "postcss-normalize-unicode": "^4.0.1", - "postcss-normalize-url": "^4.0.1", - "postcss-normalize-whitespace": "^4.0.2", - "postcss-ordered-values": "^4.1.2", - "postcss-reduce-initial": "^4.0.3", - "postcss-reduce-transforms": "^4.0.2", - "postcss-svgo": "^4.0.2", - "postcss-unique-selectors": "^4.0.1" - } - }, - "cssnano-util-get-arguments": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-arguments/-/cssnano-util-get-arguments-4.0.0.tgz", - "integrity": "sha1-7ToIKZ8h11dBsg87gfGU7UnMFQ8=", - "dev": true - }, - "cssnano-util-get-match": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/cssnano-util-get-match/-/cssnano-util-get-match-4.0.0.tgz", - "integrity": "sha1-wOTKB/U4a7F+xeUiULT1lhNlFW0=", - "dev": true - }, - "cssnano-util-raw-cache": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-raw-cache/-/cssnano-util-raw-cache-4.0.1.tgz", - "integrity": "sha512-qLuYtWK2b2Dy55I8ZX3ky1Z16WYsx544Q0UWViebptpwn/xDBmog2TLg4f+DBMg1rJ6JDWtn96WHbOKDWt1WQA==", - "dev": true, + "@angular/forms": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-14.0.5.tgz", + "integrity": "sha512-N1sxzaG4r0rwT3++lyYmbCUgSZaZA7E2NURvU1OFw6fay/XlI+ss1ZBFc6X0XfSa+OWxPuIBKnPmmQlP7aKOiQ==", "requires": { - "postcss": "^7.0.0" + "tslib": "^2.3.0" } }, - "cssnano-util-same-parent": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/cssnano-util-same-parent/-/cssnano-util-same-parent-4.0.1.tgz", - "integrity": "sha512-WcKx5OY+KoSIAxBW6UBBRay1U6vkYheCdjyVNDm85zt5K9mHoGOfsOsqIszfAqrQQFIIKgjh2+FDgIj/zsl21Q==", + "@angular/language-service": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-14.0.5.tgz", + "integrity": "sha512-ynPBlUKXlvMOUtv5pJ7t/dPKa7By3hCkKMziW5q6G/jwg6d0ddrQf3tAdRAjsCO6pL0yR6kQ6f/lky7+3Km4SQ==", "dev": true }, - "csso": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/csso/-/csso-4.2.0.tgz", - "integrity": "sha512-wvlcdIbf6pwKEk7vHj8/Bkc0B4ylXZruLvOgs9doS5eOsOpuodOV2zJChSpkp+pRpYQLQMeF04nr3Z68Sta9jA==", - "dev": true, + "@angular/localize": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/localize/-/localize-14.0.5.tgz", + "integrity": "sha512-TjyzlNAv5AA5kvIvy5UoOt32pv/1NPdhNena0LMR9XK+YhXbgK4ezJqj+mLPmZlqE56DChBpYGLFfHRA057mDA==", "requires": { - "css-tree": "^1.1.2" + "@babel/core": "7.18.2", + "glob": "8.0.3", + "yargs": "^17.2.1" }, "dependencies": { - "css-tree": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/css-tree/-/css-tree-1.1.2.tgz", - "integrity": "sha512-wCoWush5Aeo48GLhfHPbmvZs59Z+M7k5+B1xDnXbdWNcEF423DoFdqSWE0PM5aNk5nI5cp1q7ms36zGApY/sKQ==", - "dev": true, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "mdn-data": "2.0.14", - "source-map": "^0.6.1" + "@babel/highlight": "^7.18.6" } }, - "mdn-data": { - "version": "2.0.14", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.14.tgz", - "integrity": "sha512-dn6wd0uw5GsdswPFfsgMp5NSB0/aDe6fK94YJV/AJDYXL6HVLWBsxeq7js7Ad+mU2K9LAlwpk6kN2D5mwCPVow==", - "dev": true + "@babel/core": { + "version": "7.18.2", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.18.2.tgz", + "integrity": "sha512-A8pri1YJiC5UnkdrWcmfZTJTV85b4UXTAfImGmCfYmax4TR9Cw8sDS0MOk++Gp2mE/BefVJ5nwy5yzqNJbP/DQ==", + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.18.2", + "@babel/helper-compilation-targets": "^7.18.2", + "@babel/helper-module-transforms": "^7.18.0", + "@babel/helpers": "^7.18.2", + "@babel/parser": "^7.18.0", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.18.2", + "@babel/types": "^7.18.2", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + } }, - "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 - } - } - }, - "csv-streamify": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/csv-streamify/-/csv-streamify-3.0.4.tgz", - "integrity": "sha1-TLYUxX4/KZzKF7Y/3LStFnd39Ho=", - "dev": true, - "requires": { - "through2": "2.0.1" - }, - "dependencies": { - "process-nextick-args": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-1.0.7.tgz", - "integrity": "sha1-FQ4gt1ZZCtP5EJPyWk8q2L/zC6M=", - "dev": true + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" }, - "readable-stream": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.0.6.tgz", - "integrity": "sha1-j5A0HmilPMySh4jaz80Rs265t44=", - "dev": true, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.1", - "isarray": "~1.0.0", - "process-nextick-args": "~1.0.6", - "string_decoder": "~0.10.x", - "util-deprecate": "~1.0.1" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "string_decoder": { - "version": "0.10.31", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-0.10.31.tgz", - "integrity": "sha1-YuIDvEF2bGwoyfyEMB2rHFMQ+pQ=", - "dev": true + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==" + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "requires": { + "color-convert": "^2.0.1" + } }, - "through2": { + "brace-expansion": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.1.tgz", - "integrity": "sha1-OE51MU1J8y3hLuu4E2uOtrXVnak=", - "dev": true, + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "requires": { + "balanced-match": "^1.0.0" + } + }, + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==" + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==" + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==" + }, + "yargs": { + "version": "17.5.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-17.5.1.tgz", + "integrity": "sha512-t6YAJcxDkNX7NFYiVtKvWUz8l+PaKTLiL63mJYWR2GnHq2gjEWISzsLp9wg3aY36dY1j+gfIEL3pIF+XlJJfbA==", "requires": { - "readable-stream": "~2.0.0", - "xtend": "~4.0.0" + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.3", + "y18n": "^5.0.5", + "yargs-parser": "^21.0.0" } + }, + "yargs-parser": { + "version": "21.0.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-21.0.1.tgz", + "integrity": "sha512-9BK1jFpLzJROCI5TzwZL/TU4gqjK5xiHV/RfWLOahrjAko/e4DJkRDZQXfvqAsiZzzYhgAzbgz6lg48jcm4GLg==" } } }, - "custom-event": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", - "integrity": "sha1-XQKkaFCt8bSjF5RqOSj8y1v9BCU=", - "dev": true - }, - "cyclist": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/cyclist/-/cyclist-1.0.1.tgz", - "integrity": "sha1-WW6WmP0MgOEgOMK4LW6xs1tiJNk=", - "dev": true - }, - "d": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/d/-/d-1.0.1.tgz", - "integrity": "sha512-m62ShEObQ39CfralilEQRjH6oAMtNCV1xJyEx5LpRYUVN+EviphDgUc/F3hnYbADmkiNs67Y+3ylmlG7Lnu+FA==", - "dev": true, + "@angular/material": { + "version": "14.0.4", + "resolved": "https://registry.npmjs.org/@angular/material/-/material-14.0.4.tgz", + "integrity": "sha512-Ysz6oPbpLH7CvRR6oxQwpUImSbFqxL4+eiH0LPc7vkaOSrvGdZ/7cWhAfT6hVnw3bEY+eq5qBSMgyVUB44z4eg==", "requires": { - "es5-ext": "^0.10.50", - "type": "^1.0.1" + "tslib": "^2.3.0" } }, - "damerau-levenshtein": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.6.tgz", - "integrity": "sha512-JVrozIeElnj3QzfUIt8tB8YMluBJom4Vw9qTPpjGYQ9fYlB3D/rb6OordUxf3xeFB35LKWs0xqcO5U6ySvBtug==", - "dev": true - }, - "dashdash": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", - "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", - "dev": true, + "@angular/platform-browser": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-14.0.5.tgz", + "integrity": "sha512-uWFLBKuEgLuT1HnWctr8rMdnwZZ2gEcUWbhbf6DvwePcN1G5T+ltDOcQ3o2a8396hgmU0JyxBFVyGC/PiCe5fQ==", "requires": { - "assert-plus": "^1.0.0" + "tslib": "^2.3.0" } }, - "date-format": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/date-format/-/date-format-2.1.0.tgz", - "integrity": "sha512-bYQuGLeFxhkxNOF3rcMtiZxvCBAquGzZm6oWA1oZ0g2THUzivaRhv8uOhdr19LmoobSOLoIAxeUK2RdbM8IFTA==", - "dev": true - }, - "debug": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", - "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "@angular/platform-browser-dynamic": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-14.0.5.tgz", + "integrity": "sha512-VVka6K5jFd6DkFOq+ddMUj1QuI5+As5SbDLkJW0N452cYXA+CE5Y265DvbNbdXXl5wSffGGrizlKrI8jp9uLEQ==", "requires": { - "ms": "2.1.2" + "tslib": "^2.3.0" } }, - "debuglog": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/debuglog/-/debuglog-1.0.1.tgz", - "integrity": "sha1-qiT/uaw9+aI1GDfPstJ5NgzXhJI=", - "dev": true + "@angular/router": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@angular/router/-/router-14.0.5.tgz", + "integrity": "sha512-10V6MCzg65HdnylSOSDvmcvhWhsVaedrzyfulvAT1/f77HZkK8yv1lTZ9gL/rAMOnKoH3uzdQqlDj8AnuRLKFw==", + "requires": { + "tslib": "^2.3.0" + } }, - "decamelize": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", - "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", + "@assemblyscript/loader": { + "version": "0.10.1", + "resolved": "https://registry.npmjs.org/@assemblyscript/loader/-/loader-0.10.1.tgz", + "integrity": "sha512-H71nDOOL8Y7kWRLqf6Sums+01Q5msqBW2KhDUTemh1tvY04eSkSXrK0uj/4mmY0Xr16/3zyZmsrxN7CKuRbNRg==", "dev": true }, - "decode-uri-component": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", - "integrity": "sha1-6zkTMzRYd1y4TNGh+uBiEGu4dUU=", - "dev": true + "@auth0/auth0-angular": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/@auth0/auth0-angular/-/auth0-angular-1.10.0.tgz", + "integrity": "sha512-ypM7PIHkWBB+DY5CqLD38VIQpjkbSfmncJxmQurqsHcpsJNIXoL3LGvv6hX+Wo9tp8kxKHHjV7RZ07JOplV90w==", + "requires": { + "@auth0/auth0-spa-js": "^1.22.0", + "tslib": "^2.0.0" + }, + "dependencies": { + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + } + } }, - "decompress-response": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/decompress-response/-/decompress-response-3.3.0.tgz", - "integrity": "sha1-gKTdMjdIOEv6JICDYirt7Jgq3/M=", - "dev": true, + "@auth0/auth0-spa-js": { + "version": "1.22.1", + "resolved": "https://registry.npmjs.org/@auth0/auth0-spa-js/-/auth0-spa-js-1.22.1.tgz", + "integrity": "sha512-l0FCmiN3XubpgCtB3U0ds4h+5WQNTnIF4eLT/fudHEtcyrT65QF/03LybGVdLyuvqdIF/D6OQsfjwYw0Ms605Q==", "requires": { - "mimic-response": "^1.0.0" + "abortcontroller-polyfill": "^1.7.3", + "browser-tabs-lock": "^1.2.15", + "core-js": "^3.22.6", + "es-cookie": "^1.3.2", + "fast-text-encoding": "^1.0.3", + "promise-polyfill": "^8.2.3", + "unfetch": "^4.2.0" + }, + "dependencies": { + "core-js": { + "version": "3.23.3", + "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.23.3.tgz", + "integrity": "sha512-oAKwkj9xcWNBAvGbT//WiCdOMpb9XQG92/Fe3ABFM/R16BsHgePG00mFOgKf7IsCtfj8tA1kHtf/VwErhriz5Q==" + }, + "promise-polyfill": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.2.3.tgz", + "integrity": "sha512-Og0+jCRQetV84U8wVjMNccfGCnMQ9mGs9Hv78QFe+pSDD3gWTpz0y+1QCuxy5d/vBFuZ3iwP2eycAkvqIMPmWg==" + } } }, - "deep-equal": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/deep-equal/-/deep-equal-1.1.1.tgz", - "integrity": "sha512-yd9c5AdiqVcR+JjcwUQb9DkhJc8ngNr0MahEBGvDiJw8puWab2yZlh+nkasOnZP+EGTAP6rRp2JzJhJZzvNF8g==", + "@babel/code-frame": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.12.11.tgz", + "integrity": "sha512-Zt1yodBx1UcyiePMSkWnU4hPqhwq7hGi2nFL1LeA3EUl+q2LQx16MISgJ0+z7dnmgvP9QtIleuETGOiOH1RcIw==", "dev": true, "requires": { - "is-arguments": "^1.0.4", - "is-date-object": "^1.0.1", - "is-regex": "^1.0.4", - "object-is": "^1.0.1", - "object-keys": "^1.1.1", - "regexp.prototype.flags": "^1.2.0" + "@babel/highlight": "^7.10.4" } }, - "deep-extend": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/deep-extend/-/deep-extend-0.6.0.tgz", - "integrity": "sha512-LOHxIOaPYdHlJRtCQfDIVZtfw/ufM8+rVj649RIHzcm/vGwQRXFt6OPqIFWsm2XEMrNIEtWR64sY1LEKD2vAOA==", - "dev": true - }, - "deep-freeze": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/deep-freeze/-/deep-freeze-0.0.1.tgz", - "integrity": "sha1-OgsABd4YZygZ39OM0x+RF5yJPoQ=", - "dev": true + "@babel/compat-data": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/compat-data/-/compat-data-7.18.8.tgz", + "integrity": "sha512-HSmX4WZPPK3FUxYp7g2T6EyO8j96HlZJlxmKPSh6KAcqwyDrfx7hKjXpAW/0FhFfTJsR0Yt4lAjLI2coMptIHQ==" }, - "deep-is": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/deep-is/-/deep-is-0.1.3.tgz", - "integrity": "sha1-s2nW+128E+7PUk+RsHD+7cNXzzQ=", - "dev": true + "@babel/core": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/core/-/core-7.17.10.tgz", + "integrity": "sha512-liKoppandF3ZcBnIYFjfSDHZLKdLHGJRkoWtG8zQyGJBQfIYobpnVGI5+pLBNtS6psFLDzyq8+h5HiVljW9PNA==", + "dev": true, + "requires": { + "@ampproject/remapping": "^2.1.0", + "@babel/code-frame": "^7.16.7", + "@babel/generator": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-module-transforms": "^7.17.7", + "@babel/helpers": "^7.17.9", + "@babel/parser": "^7.17.10", + "@babel/template": "^7.16.7", + "@babel/traverse": "^7.17.10", + "@babel/types": "^7.17.10", + "convert-source-map": "^1.7.0", + "debug": "^4.1.0", + "gensync": "^1.0.0-beta.2", + "json5": "^2.2.1", + "semver": "^6.3.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", + "dev": true, + "requires": { + "@babel/highlight": "^7.18.6" + } + }, + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", + "dev": true + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "dev": true, + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } + } + } }, - "default-gateway": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-4.2.0.tgz", - "integrity": "sha512-h6sMrVB1VMWVrW13mSc6ia/DwYYw5MN6+exNu1OaJeFac5aSAvwM7lZ0NVfTABuSkQelr4h5oebg3KB1XPdjgA==", - "dev": true, + "@babel/generator": { + "version": "7.18.7", + "resolved": "https://registry.npmjs.org/@babel/generator/-/generator-7.18.7.tgz", + "integrity": "sha512-shck+7VLlY72a2w9c3zYWuE1pwOKEiQHV7GTUbSnhyl5eu3i04t30tBY82ZRWrDfo3gkakCFtevExnxbkf2a3A==", "requires": { - "execa": "^1.0.0", - "ip-regex": "^2.1.0" + "@babel/types": "^7.18.7", + "@jridgewell/gen-mapping": "^0.3.2", + "jsesc": "^2.5.1" + }, + "dependencies": { + "@jridgewell/gen-mapping": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.3.2.tgz", + "integrity": "sha512-mh65xKQAzI6iBcFzwv28KVWSmCkdRBWoOh+bYQGW3+6OZvbbN3TqMGo5hqYxQniRcH9F2VZIoJCm4pa3BPDK/A==", + "requires": { + "@jridgewell/set-array": "^1.0.1", + "@jridgewell/sourcemap-codec": "^1.4.10", + "@jridgewell/trace-mapping": "^0.3.9" + } + } } }, - "default-require-extensions": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", - "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", + "@babel/helper-annotate-as-pure": { + "version": "7.16.7", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.16.7.tgz", + "integrity": "sha512-s6t2w/IPQVTAET1HitoowRGXooX8mCgtuP5195wD/QJPV6wYjpujCGF7JuMODVX2ZAJOf1GT6DT9MHEZvLOFSw==", "dev": true, "requires": { - "strip-bom": "^3.0.0" + "@babel/types": "^7.16.7" } }, - "defaults": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", - "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "@babel/helper-builder-binary-assignment-operator-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-builder-binary-assignment-operator-visitor/-/helper-builder-binary-assignment-operator-visitor-7.18.6.tgz", + "integrity": "sha512-KT10c1oWEpmrIRYnthbzHgoOf6B+Xd6a5yhdbNtdhtG7aO1or5HViuf1TQR36xY/QprXA5nvxO6nAjhJ4y38jw==", "dev": true, "requires": { - "clone": "^1.0.2" - }, - "dependencies": { - "clone": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", - "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", - "dev": true - } + "@babel/helper-explode-assignable-expression": "^7.18.6", + "@babel/types": "^7.18.6" } }, - "defer-to-connect": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/defer-to-connect/-/defer-to-connect-1.1.3.tgz", - "integrity": "sha512-0ISdNousHvZT2EiFlZeZAHBUvSxmKswVCEf8hW7KWgG4a8MVEu/3Vb6uWYozkjylyCxe0JBIiRB1jV45S70WVQ==", - "dev": true - }, - "define-properties": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.3.tgz", - "integrity": "sha512-3MqfYKj2lLzdMSf8ZIZE/V+Zuy+BgD6f164e8K2w7dgnpKArBDerGYpM46IYYcjnkdPNMjPk9A6VFB8+3SKlXQ==", - "dev": true, + "@babel/helper-compilation-targets": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-compilation-targets/-/helper-compilation-targets-7.18.6.tgz", + "integrity": "sha512-vFjbfhNCzqdeAtZflUFrG5YIFqGTqsctrtkZ1D/NB0mDW9TwW3GmmUepYY4G9wCET5rY5ugz4OGTcLd614IzQg==", "requires": { - "object-keys": "^1.0.12" + "@babel/compat-data": "^7.18.6", + "@babel/helper-validator-option": "^7.18.6", + "browserslist": "^4.20.2", + "semver": "^6.3.0" } }, - "define-property": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-2.0.2.tgz", - "integrity": "sha512-jwK2UV4cnPpbcG7+VRARKTZPUWowwXA8bzH5NP6ud0oeAxyYPuGZUAC7hMugpCdz4BeSZl2Dl9k66CHJ/46ZYQ==", + "@babel/helper-create-class-features-plugin": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-class-features-plugin/-/helper-create-class-features-plugin-7.18.6.tgz", + "integrity": "sha512-YfDzdnoxHGV8CzqHGyCbFvXg5QESPFkXlHtvdCkesLjjVMT2Adxe4FGUR5ChIb3DxSaXO12iIOCWoXdsUVwnqw==", "dev": true, "requires": { - "is-descriptor": "^1.0.2", - "isobject": "^3.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6" }, "dependencies": { - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" + "@babel/types": "^7.18.6" } } } }, - "del": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/del/-/del-4.1.1.tgz", - "integrity": "sha512-QwGuEUouP2kVwQenAsOof5Fv8K9t3D8Ca8NxcXKrIpEHjTXK5J2nXLdP+ALI1cgv8wj7KuwBhTwBkOZSJKM5XQ==", + "@babel/helper-create-regexp-features-plugin": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.18.6.tgz", + "integrity": "sha512-7LcpH1wnQLGrI+4v+nPp+zUvIkF9x0ddv1Hkdue10tg3gmRnLy97DXh4STiOf1qeIInyD69Qv5kKSZzKD8B/7A==", "dev": true, "requires": { - "@types/glob": "^7.1.1", - "globby": "^6.1.0", - "is-path-cwd": "^2.0.0", - "is-path-in-cwd": "^2.0.0", - "p-map": "^2.0.0", - "pify": "^4.0.1", - "rimraf": "^2.6.3" + "@babel/helper-annotate-as-pure": "^7.18.6", + "regexpu-core": "^5.1.0" }, "dependencies": { - "globby": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-6.1.0.tgz", - "integrity": "sha1-9abXDoOV4hyFj7BInWTfAkJNUGw=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true - } - } - }, - "p-map": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-2.1.0.tgz", - "integrity": "sha512-y3b8Kpd8OAN444hxfBbFfj1FY/RjtTd8tzYwhUqNYXx0fXx2iX4maP4Qr6qhIKbQXI02wTLAda4fYUbDagTUFw==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "glob": "^7.1.3" + "@babel/types": "^7.18.6" } } } }, - "delayed-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", - "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", - "dev": true - }, - "delegates": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", - "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", + "@babel/helper-define-polyfill-provider": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/@babel/helper-define-polyfill-provider/-/helper-define-polyfill-provider-0.3.1.tgz", + "integrity": "sha512-J9hGMpJQmtWmj46B3kBHmL38UhJGhYX7eqkcq+2gsstyYt341HmPeWspihX43yVRA0mS+8GGk2Gckc7bY/HCmA==", "dev": true, - "optional": true - }, - "depd": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", - "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", - "dev": true + "requires": { + "@babel/helper-compilation-targets": "^7.13.0", + "@babel/helper-module-imports": "^7.12.13", + "@babel/helper-plugin-utils": "^7.13.0", + "@babel/traverse": "^7.13.0", + "debug": "^4.1.1", + "lodash.debounce": "^4.0.8", + "resolve": "^1.14.2", + "semver": "^6.1.2" + } }, - "dependency-graph": { - "version": "0.7.2", - "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.7.2.tgz", - "integrity": "sha512-KqtH4/EZdtdfWX0p6MGP9jljvxSY6msy/pRUD4jgNwVpv3v1QmNLlsB3LDSSUg79BRVSn7jI1QPRtArGABovAQ==", - "dev": true + "@babel/helper-environment-visitor": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-environment-visitor/-/helper-environment-visitor-7.18.6.tgz", + "integrity": "sha512-8n6gSfn2baOY+qlp+VSzsosjCVGFqWKmDF0cCWOybh52Dw3SEyoWR1KrhMJASjLwIEkkAufZ0xvr+SxLHSpy2Q==" }, - "des.js": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/des.js/-/des.js-1.0.1.tgz", - "integrity": "sha512-Q0I4pfFrv2VPd34/vfLrFOoRmlYj3OV50i7fskps1jZWK1kApMWWT9G6RRUeYedLcBDIhnSDaUvJMb3AhUlaEA==", + "@babel/helper-explode-assignable-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-explode-assignable-expression/-/helper-explode-assignable-expression-7.18.6.tgz", + "integrity": "sha512-eyAYAsQmB80jNfg4baAtLeWAQHfHFiR483rzFK+BhETlGZaQC9bsfrugfXDCbRHLQbIA7U5NxhhOxN7p/dWIcg==", "dev": true, "requires": { - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0" + "@babel/types": "^7.18.6" } }, - "destroy": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.0.4.tgz", - "integrity": "sha1-l4hXRCxEdJ5CBmE+N5RiBYJqvYA=", - "dev": true + "@babel/helper-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-function-name/-/helper-function-name-7.18.6.tgz", + "integrity": "sha512-0mWMxV1aC97dhjCah5U5Ua7668r5ZmSC2DLfH2EZnf9c3/dHZKiFa5pRLMH5tjSl471tY6496ZWk/kjNONBxhw==", + "requires": { + "@babel/template": "^7.18.6", + "@babel/types": "^7.18.6" + } }, - "detect-node": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", - "integrity": "sha512-ZIzRpLJrOj7jjP2miAtgqIfmzbxa4ZOr5jJc601zklsfEx9oTzmmj2nVpIPRpNlRTIh8lc1kyViIY7BWSGNmKw==", - "dev": true + "@babel/helper-hoist-variables": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-hoist-variables/-/helper-hoist-variables-7.18.6.tgz", + "integrity": "sha512-UlJQPkFqFULIcyW5sbzgbkxn2FKRgwWiRexcuaR8RNJRy8+LLveqPjwZV/bwrLZCN0eUHD/x8D0heK1ozuoo6Q==", + "requires": { + "@babel/types": "^7.18.6" + } }, - "dezalgo": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/dezalgo/-/dezalgo-1.0.3.tgz", - "integrity": "sha1-f3Qt4Gb8dIvI24IFad3c5Jvw1FY=", + "@babel/helper-member-expression-to-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-member-expression-to-functions/-/helper-member-expression-to-functions-7.18.6.tgz", + "integrity": "sha512-CeHxqwwipekotzPDUuJOfIMtcIHBuc7WAzLmTYWctVigqS5RktNMQ5bEwQSuGewzYnCtTWa3BARXeiLxDTv+Ng==", "dev": true, "requires": { - "asap": "^2.0.0", - "wrappy": "1" + "@babel/types": "^7.18.6" } }, - "di": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", - "integrity": "sha1-gGZJMmzqp8qjMG112YXqJ0i6kTw=", - "dev": true - }, - "diff": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", - "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", - "dev": true + "@babel/helper-module-imports": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-module-imports/-/helper-module-imports-7.18.6.tgz", + "integrity": "sha512-0NFvs3VkuSYbFi1x2Vd6tKrywq+z/cLeYC/RJNFrIX/30Bf5aiGYbtvGXolEktzJH8o5E5KJ3tT+nkxuuZFVlA==", + "requires": { + "@babel/types": "^7.18.6" + } }, - "diffie-hellman": { - "version": "5.0.3", - "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", - "integrity": "sha512-kqag/Nl+f3GwyK25fhUMYj81BUOrZ9IuJsjIcDE5icNM9FJHAVm3VcUDxdLPoQtTuUylWm6ZIknYJwwaPxsUzg==", - "dev": true, + "@babel/helper-module-transforms": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/helper-module-transforms/-/helper-module-transforms-7.18.8.tgz", + "integrity": "sha512-che3jvZwIcZxrwh63VfnFTUzcAM9v/lznYkkRxIBGMPt1SudOKHAEec0SIRCfiuIzTcF7VGj/CaTT6gY4eWxvA==", "requires": { - "bn.js": "^4.1.0", - "miller-rabin": "^4.0.0", - "randombytes": "^2.0.0" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-module-imports": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.8", + "@babel/types": "^7.18.8" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" } } }, - "dir-glob": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-2.2.2.tgz", - "integrity": "sha512-f9LBi5QWzIW3I6e//uxZoLBlUt9kcp66qo0sSCxL6YZKc75R1c4MFCoe/LaZiBGmgujvQdxc5Bn3QhfyvK5Hsw==", + "@babel/helper-optimise-call-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-optimise-call-expression/-/helper-optimise-call-expression-7.18.6.tgz", + "integrity": "sha512-HP59oD9/fEHQkdcbgFCnbmgH5vIQTJbxh2yf+CdM89/glUNnuzr87Q8GIjGEnOktTROemO0Pe0iPAYbqZuOUiA==", "dev": true, "requires": { - "path-type": "^3.0.0" + "@babel/types": "^7.18.6" } }, - "dns-equal": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", - "integrity": "sha1-s55/HabrCnW6nBcySzR1PEfgZU0=", + "@babel/helper-plugin-utils": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.18.6.tgz", + "integrity": "sha512-gvZnm1YAAxh13eJdkb9EWHBnF3eAub3XTLCZEehHT2kWxiKVRL64+ae5Y6Ivne0mVHmMYKT+xWgZO+gQhuLUBg==", "dev": true }, - "dns-packet": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-1.3.1.tgz", - "integrity": "sha512-0UxfQkMhYAUaZI+xrNZOz/as5KgDU0M/fQ9b6SpkyLbk3GEswDi6PADJVaYJradtRVsRIlF1zLyOodbcTCDzUg==", + "@babel/helper-remap-async-to-generator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-remap-async-to-generator/-/helper-remap-async-to-generator-7.18.6.tgz", + "integrity": "sha512-z5wbmV55TveUPZlCLZvxWHtrjuJd+8inFhk7DG0WW87/oJuGDcjDiu7HIvGcpf5464L6xKCg3vNkmlVVz9hwyQ==", "dev": true, "requires": { - "ip": "^1.1.0", - "safe-buffer": "^5.0.1" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-wrap-function": "^7.18.6", + "@babel/types": "^7.18.6" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + } } }, - "dns-txt": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/dns-txt/-/dns-txt-2.0.2.tgz", - "integrity": "sha1-uR2Ab10nGI5Ks+fRB9iBocxGQrY=", + "@babel/helper-replace-supers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-replace-supers/-/helper-replace-supers-7.18.6.tgz", + "integrity": "sha512-fTf7zoXnUGl9gF25fXCWE26t7Tvtyn6H4hkLSYhATwJvw2uYxd3aoXplMSe0g9XbwK7bmxNes7+FGO0rB/xC0g==", "dev": true, "requires": { - "buffer-indexof": "^1.0.0" + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-member-expression-to-functions": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, - "dom-serialize": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", - "integrity": "sha1-ViromZ9Evl6jB29UGdzVnrQ6yVs=", - "dev": true, + "@babel/helper-simple-access": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-simple-access/-/helper-simple-access-7.18.6.tgz", + "integrity": "sha512-iNpIgTgyAvDQpDj76POqg+YEt8fPxx3yaNBg3S30dxNKm2SWfYhD0TGrK/Eu9wHpUW63VQU894TsTg+GLbUa1g==", "requires": { - "custom-event": "~1.0.0", - "ent": "~2.2.0", - "extend": "^3.0.0", - "void-elements": "^2.0.0" + "@babel/types": "^7.18.6" } }, - "dom-serializer": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-0.2.2.tgz", - "integrity": "sha512-2/xPb3ORsQ42nHYiSunXkDjPLBaEj/xTwUO4B7XCZQTRk7EBtTOPaygh10YAAh2OI1Qrp6NWfpAhzswj0ydt9g==", + "@babel/helper-skip-transparent-expression-wrappers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-skip-transparent-expression-wrappers/-/helper-skip-transparent-expression-wrappers-7.18.6.tgz", + "integrity": "sha512-4KoLhwGS9vGethZpAhYnMejWkX64wsnHPDwvOsKWU6Fg4+AlK2Jz3TyjQLMEPvz+1zemi/WBdkYxCD0bAfIkiw==", "dev": true, "requires": { - "domelementtype": "^2.0.1", - "entities": "^2.0.0" - }, - "dependencies": { - "domelementtype": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.1.0.tgz", - "integrity": "sha512-LsTgx/L5VpD+Q8lmsXSHW2WpA+eBlZ9HPf3erD1IoPF00/3JKHZ3BknUVA2QGDNu69ZNmyFmCWBSO45XjYKC5w==", - "dev": true - } + "@babel/types": "^7.18.6" } }, - "dom-storage": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/dom-storage/-/dom-storage-2.1.0.tgz", - "integrity": "sha512-g6RpyWXzl0RR6OTElHKBl7nwnK87GUyZMYC7JWsB/IA73vpqK2K6LT39x4VepLxlSsWBFrPVLnsSR5Jyty0+2Q==" + "@babel/helper-split-export-declaration": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-split-export-declaration/-/helper-split-export-declaration-7.18.6.tgz", + "integrity": "sha512-bde1etTx6ZyTmobl9LLMMQsaizFVZrquTEHOqKeQESMKo4PlObf+8+JA25ZsIpZhT/WEd39+vOdLXAFG/nELpA==", + "requires": { + "@babel/types": "^7.18.6" + } }, - "domain-browser": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/domain-browser/-/domain-browser-1.2.0.tgz", - "integrity": "sha512-jnjyiM6eRyZl2H+W8Q/zLMA481hzi0eszAaBUzIVnmYVDBbnLxVNnfu1HgEBvCbL+71FrxMl3E6lpKH7Ge3OXA==", + "@babel/helper-validator-identifier": { + "version": "7.12.11", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.12.11.tgz", + "integrity": "sha512-np/lG3uARFybkoHokJUmf1QfEvRVCPbmQeUQpKow5cQ3xWrV9i3rUHodKDJPQfTVX61qKi+UdYk8kik84n7XOw==", "dev": true }, - "domelementtype": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", - "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==", - "dev": true + "@babel/helper-validator-option": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-option/-/helper-validator-option-7.18.6.tgz", + "integrity": "sha512-XO7gESt5ouv/LRJdrVjkShckw6STTaB7l9BrpBaAHDeF5YZT+01PCwmR0SJHnkW6i8OwW/EVWRShfi4j2x+KQw==" }, - "domutils": { - "version": "1.7.0", - "resolved": "https://registry.npmjs.org/domutils/-/domutils-1.7.0.tgz", - "integrity": "sha512-Lgd2XcJ/NjEw+7tFvfKxOzCYKZsdct5lczQ2ZaQY8Djz7pfAD3Gbp8ySJWtreII/vDlMVmxwa6pHmdxIYgttDg==", + "@babel/helper-wrap-function": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.18.6.tgz", + "integrity": "sha512-I5/LZfozwMNbwr/b1vhhuYD+J/mU+gfGAj5td7l5Rv9WYmH6i3Om69WGKNmlIpsVW/mF6O5bvTKbvDQZVgjqOw==", "dev": true, "requires": { - "dom-serializer": "0", - "domelementtype": "1" + "@babel/helper-function-name": "^7.18.6", + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, - "dot-prop": { - "version": "5.3.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", - "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", - "dev": true, + "@babel/helpers": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helpers/-/helpers-7.18.6.tgz", + "integrity": "sha512-vzSiiqbQOghPngUYt/zWGvK3LAsPhz55vc9XNN0xAl2gV4ieShI2OQli5duxWHD+72PZPTKAcfcZDE1Cwc5zsQ==", "requires": { - "is-obj": "^2.0.0" + "@babel/template": "^7.18.6", + "@babel/traverse": "^7.18.6", + "@babel/types": "^7.18.6" } }, - "dotenv": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz", - "integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==", - "dev": true - }, - "duplexer2": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer2/-/duplexer2-0.1.4.tgz", - "integrity": "sha1-ixLauHjA1p4+eJEFFmKjL8a93ME=", + "@babel/highlight": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.10.4.tgz", + "integrity": "sha512-i6rgnR/YgPEQzZZnbTHHuZdlE8qyoBNalD6F+q4vAFlcMEcqmkoG+mPqJYJCo63qPf74+Y1UZsl3l6f7/RIkmA==", "dev": true, "requires": { - "readable-stream": "^2.0.2" + "@babel/helper-validator-identifier": "^7.10.4", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } }, - "duplexer3": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/duplexer3/-/duplexer3-0.1.4.tgz", - "integrity": "sha1-7gHdHKwO08vH/b6jfcCo8c4ALOI=", - "dev": true + "@babel/parser": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.18.8.tgz", + "integrity": "sha512-RSKRfYX20dyH+elbJK2uqAkVyucL+xXzhqlMD5/ZXx+dAAwpyB7HsvnHe/ZUGOF+xLr5Wx9/JoXVTj6BQE2/oA==" }, - "duplexify": { - "version": "3.7.1", - "resolved": "https://registry.npmjs.org/duplexify/-/duplexify-3.7.1.tgz", - "integrity": "sha512-07z8uv2wMyS51kKhD1KsdXJg5WQ6t93RneqRxUHnskXVtlYYkLqM0gqStQZ3pj073g687jPCHrqNfCzawLYh5g==", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression/-/plugin-bugfix-safari-id-destructuring-collision-in-function-expression-7.18.6.tgz", + "integrity": "sha512-Dgxsyg54Fx1d4Nge8UnvTrED63vrwOdPmyvPzlNN/boaliRP54pm3pGzZD1SJUwrBA+Cs/xdG8kXX6Mn/RfISQ==", "dev": true, "requires": { - "end-of-stream": "^1.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.0.0", - "stream-shift": "^1.0.0" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "ecc-jsbn": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", - "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining/-/plugin-bugfix-v8-spread-parameters-in-optional-chaining-7.18.6.tgz", + "integrity": "sha512-Udgu8ZRgrBrttVz6A0EVL0SJ1z+RLbIeqsu632SA1hf0awEppD6TvdznoH+orIF8wtFFAV/Enmw9Y+9oV8TQcw==", "dev": true, "requires": { - "jsbn": "~0.1.0", - "safer-buffer": "^2.1.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/plugin-proposal-optional-chaining": "^7.18.6" } }, - "ecdsa-sig-formatter": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/ecdsa-sig-formatter/-/ecdsa-sig-formatter-1.0.11.tgz", - "integrity": "sha512-nagl3RYrbNv6kQkeJIpt6NJZy8twLB/2vtz6yN9Z4vRKHN4/QZJIEbqohALSgwKdnksuY3k5Addp5lg8sVoVcQ==", + "@babel/plugin-proposal-async-generator-functions": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-async-generator-functions/-/plugin-proposal-async-generator-functions-7.16.8.tgz", + "integrity": "sha512-71YHIvMuiuqWJQkebWJtdhQTfd4Q4mF76q2IX37uZPkG9+olBxsX+rH1vkhFto4UeJZ9dPY2s+mDvhDm1u2BGQ==", + "dev": true, "requires": { - "safe-buffer": "^5.0.1" + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8", + "@babel/plugin-syntax-async-generators": "^7.8.4" } }, - "ee-first": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", - "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", - "dev": true - }, - "electron-to-chromium": { - "version": "1.3.644", - "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.644.tgz", - "integrity": "sha512-N7FLvjDPADxad+OXXBuYfcvDvCBG0aW8ZZGr7G91sZMviYbnQJFxdSvUus4SJ0K7Q8dzMxE+Wx1d/CrJIIJ0sw==", - "dev": true - }, - "elliptic": { - "version": "6.5.3", - "resolved": "https://registry.npmjs.org/elliptic/-/elliptic-6.5.3.tgz", - "integrity": "sha512-IMqzv5wNQf+E6aHeIqATs0tOLeOTwj1QKbRcS3jBbYkl5oLAserA8yJTT7/VyHUYG91PRmPyeQDObKLPpeS4dw==", + "@babel/plugin-proposal-class-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-properties/-/plugin-proposal-class-properties-7.18.6.tgz", + "integrity": "sha512-cumfXOF0+nzZrrN8Rf0t7M+tF6sZc7vhQwYQck9q1/5w2OExlD+b4v4RpMJFaV1Z7WcDRgO6FqvxqxGlwo+RHQ==", "dev": true, "requires": { - "bn.js": "^4.4.0", - "brorand": "^1.0.1", - "hash.js": "^1.0.0", - "hmac-drbg": "^1.0.0", - "inherits": "^2.0.1", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.0" - }, - "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", - "dev": true - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "emoji-regex": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", - "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", - "dev": true - }, - "emojis-list": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-2.1.0.tgz", - "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", - "dev": true - }, - "enabled": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/enabled/-/enabled-2.0.0.tgz", - "integrity": "sha512-AKrN98kuwOzMIdAizXGI86UFBoo26CL21UM763y1h/GMSJ4/OHU9k2YlsmBpyScFo/wbLzWQJBMCW4+IO3/+OQ==", - "dev": true - }, - "encodeurl": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", - "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", - "dev": true - }, - "encoding": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", - "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", + "@babel/plugin-proposal-class-static-block": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-class-static-block/-/plugin-proposal-class-static-block-7.18.6.tgz", + "integrity": "sha512-+I3oIiNxrCpup3Gi8n5IGMwj0gOCAjcJUSQEcotNnCCPMEnixawOQ+KeJPlgfjzx+FKQ1QSyZOWe7wmoJp7vhw==", "dev": true, "requires": { - "iconv-lite": "^0.6.2" - }, - "dependencies": { - "iconv-lite": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", - "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", - "dev": true, - "requires": { - "safer-buffer": ">= 2.1.2 < 3.0.0" - } - } + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-class-static-block": "^7.14.5" } }, - "end-of-stream": { - "version": "1.4.4", - "resolved": "https://registry.npmjs.org/end-of-stream/-/end-of-stream-1.4.4.tgz", - "integrity": "sha512-+uw1inIHVPQoaVuHzRyXd21icM+cnt4CzD5rW+NC1wjOUSTOs+Te7FOv7AhN7vS9x/oIyhLP5PR1H+phQAHu5Q==", + "@babel/plugin-proposal-dynamic-import": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-dynamic-import/-/plugin-proposal-dynamic-import-7.18.6.tgz", + "integrity": "sha512-1auuwmK+Rz13SJj36R+jqFPMJWyKEDd7lLSdOj4oJK0UTgGueSAtkrCvz9ewmgyU/P941Rv2fQwZJN8s6QruXw==", "dev": true, "requires": { - "once": "^1.4.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-dynamic-import": "^7.8.3" } }, - "engine.io": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-3.2.1.tgz", - "integrity": "sha512-+VlKzHzMhaU+GsCIg4AoXF1UdDFjHHwMmMKqMJNDNLlUlejz58FCy4LBqB2YVJskHGYl06BatYWKP2TVdVXE5w==", + "@babel/plugin-proposal-export-namespace-from": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-export-namespace-from/-/plugin-proposal-export-namespace-from-7.18.6.tgz", + "integrity": "sha512-zr/QcUlUo7GPo6+X1wC98NJADqmy5QTFWWhqeQWiki4XHafJtLl/YMGkmRB2szDD2IYJCCdBTd4ElwhId9T7Xw==", "dev": true, "requires": { - "accepts": "~1.3.4", - "base64id": "1.0.0", - "cookie": "0.3.1", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.0", - "ws": "~3.3.1" - }, - "dependencies": { - "cookie": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.3.1.tgz", - "integrity": "sha1-5+Ch+e9DtMi6klxcWpboBtFoc7s=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3" } }, - "engine.io-client": { - "version": "3.2.1", - "resolved": "https://registry.npmjs.org/engine.io-client/-/engine.io-client-3.2.1.tgz", - "integrity": "sha512-y5AbkytWeM4jQr7m/koQLc5AxpRKC1hEVUb/s1FUAWEJq5AzJJ4NLvzuKPuxtDi5Mq755WuDvZ6Iv2rXj4PTzw==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "component-inherit": "0.0.3", - "debug": "~3.1.0", - "engine.io-parser": "~2.1.1", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "ws": "~3.3.1", - "xmlhttprequest-ssl": "~1.5.4", - "yeast": "0.1.2" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", - "dev": true - }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "ws": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-3.3.3.tgz", - "integrity": "sha512-nnWLa/NwZSt4KQJu51MYlCcSQ5g7INpOrOMt4XV8j4dqTXdmlUmSHQ8/oLC069ckre0fRsgfvsKwbTdtKLCDkA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0", - "safe-buffer": "~5.1.0", - "ultron": "~1.1.0" - } - } + "@babel/plugin-proposal-json-strings": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-json-strings/-/plugin-proposal-json-strings-7.18.6.tgz", + "integrity": "sha512-lr1peyn9kOdbYc0xr0OdHTZ5FMqS6Di+H0Fz2I/JwMzGmzJETNeOFq2pBySw6X/KFL5EWDjlJuMsUGRFb8fQgQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-json-strings": "^7.8.3" } }, - "engine.io-parser": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-2.1.3.tgz", - "integrity": "sha512-6HXPre2O4Houl7c4g7Ic/XzPnHBvaEmN90vtRO9uLmwtRqQmTOw0QMevL1TOfL2Cpu1VzsaTmMotQgMdkzGkVA==", + "@babel/plugin-proposal-logical-assignment-operators": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-logical-assignment-operators/-/plugin-proposal-logical-assignment-operators-7.18.6.tgz", + "integrity": "sha512-zMo66azZth/0tVd7gmkxOkOjs2rpHyhpcFo565PUP37hSp6hSd9uUKIfTDFMz58BwqgQKhJ9YxtM5XddjXVn+Q==", "dev": true, "requires": { - "after": "0.8.2", - "arraybuffer.slice": "~0.0.7", - "base64-arraybuffer": "0.1.5", - "blob": "0.0.5", - "has-binary2": "~1.0.2" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4" } }, - "enhanced-resolve": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.1.tgz", - "integrity": "sha512-98p2zE+rL7/g/DzMHMTF4zZlCgeVdJ7yr6xzEpJRYwFYrGi9ANdn5DnJURg6RpBkyk60XYDnWIv51VfIhfNGuA==", + "@babel/plugin-proposal-nullish-coalescing-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-nullish-coalescing-operator/-/plugin-proposal-nullish-coalescing-operator-7.18.6.tgz", + "integrity": "sha512-wQxQzxYeJqHcfppzBDnm1yAY0jSRkUXR2z8RePZYrKwMKgMlE8+Z6LUno+bd6LvbGh8Gltvy74+9pIYkr+XkKA==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "memory-fs": "^0.5.0", - "tapable": "^1.0.0" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3" } }, - "ent": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", - "integrity": "sha1-6WQhkyWiHQX0RGai9obtbOX13R0=", - "dev": true - }, - "entities": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/entities/-/entities-2.1.0.tgz", - "integrity": "sha512-hCx1oky9PFrJ611mf0ifBLBRW8lUUVRlFolb5gWRfIELabBlbp9xZvrqZLZAs+NxFnbfQoeGd8wDkygjg7U85w==", - "dev": true - }, - "env-paths": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", - "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", + "@babel/plugin-proposal-numeric-separator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-numeric-separator/-/plugin-proposal-numeric-separator-7.18.6.tgz", + "integrity": "sha512-ozlZFogPqoLm8WBr5Z8UckIoE4YQ5KESVcNudyXOR8uqIkliTEgJ3RoketfG6pmzLdeZF0H/wjE9/cCEitBl7Q==", "dev": true, - "optional": true - }, - "err-code": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/err-code/-/err-code-1.1.2.tgz", - "integrity": "sha1-BuARbTAo9q70gGhJ6w6mp0iuaWA=", - "dev": true + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-numeric-separator": "^7.10.4" + } }, - "errno": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", - "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", + "@babel/plugin-proposal-object-rest-spread": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-object-rest-spread/-/plugin-proposal-object-rest-spread-7.18.6.tgz", + "integrity": "sha512-9yuM6wr4rIsKa1wlUAbZEazkCrgw2sMPEXCr4Rnwetu7cEW1NydkCWytLuYletbf8vFxdJxFhwEZqMpOx2eZyw==", "dev": true, "requires": { - "prr": "~1.0.1" + "@babel/compat-data": "^7.18.6", + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-transform-parameters": "^7.18.6" } }, - "error-ex": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", - "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", + "@babel/plugin-proposal-optional-catch-binding": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-catch-binding/-/plugin-proposal-optional-catch-binding-7.18.6.tgz", + "integrity": "sha512-Q40HEhs9DJQyaZfUjjn6vE8Cv4GmMHCYuMGIWUnlxH6400VGxOuwWsPt4FxXxJkC/5eOzgn0z21M9gMT4MOhbw==", "dev": true, "requires": { - "is-arrayish": "^0.2.1" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3" } }, - "es-abstract": { - "version": "1.18.0-next.2", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", - "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", + "@babel/plugin-proposal-optional-chaining": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-optional-chaining/-/plugin-proposal-optional-chaining-7.18.6.tgz", + "integrity": "sha512-PatI6elL5eMzoypFAiYDpYQyMtXTn+iMhuxxQt5mAXD4fEmKorpSI3PHd+i3JXBJN3xyA6MvJv7at23HffFHwA==", "dev": true, "requires": { - "call-bind": "^1.0.2", - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-negative-zero": "^2.0.1", - "is-regex": "^1.1.1", - "object-inspect": "^1.9.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.2", - "string.prototype.trimend": "^1.0.3", - "string.prototype.trimstart": "^1.0.3" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6", + "@babel/plugin-syntax-optional-chaining": "^7.8.3" } }, - "es-to-primitive": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", - "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", + "@babel/plugin-proposal-private-methods": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-methods/-/plugin-proposal-private-methods-7.18.6.tgz", + "integrity": "sha512-nutsvktDItsNn4rpGItSNV2sz1XwS+nfU0Rg8aCx3W3NOKVzdMjJRu0O5OkgDp3ZGICSTbgRpxZoWsxoKRvbeA==", "dev": true, "requires": { - "is-callable": "^1.1.4", - "is-date-object": "^1.0.1", - "is-symbol": "^1.0.2" + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "es5-ext": { - "version": "0.10.53", - "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", - "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", + "@babel/plugin-proposal-private-property-in-object": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-private-property-in-object/-/plugin-proposal-private-property-in-object-7.18.6.tgz", + "integrity": "sha512-9Rysx7FOctvT5ouj5JODjAFAkgGoudQuLPamZb0v1TGLpapdNaftzifU8NTWQm0IRjqoYypdrSmyWgkocDQ8Dw==", "dev": true, "requires": { - "es6-iterator": "~2.0.3", - "es6-symbol": "~3.1.3", - "next-tick": "~1.0.0" + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-create-class-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5" + }, + "dependencies": { + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", + "dev": true, + "requires": { + "@babel/types": "^7.18.6" + } + } } }, - "es6-iterator": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-iterator/-/es6-iterator-2.0.3.tgz", - "integrity": "sha1-p96IkUGgWpSwhUQDstCg+/qY87c=", + "@babel/plugin-proposal-unicode-property-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-proposal-unicode-property-regex/-/plugin-proposal-unicode-property-regex-7.18.6.tgz", + "integrity": "sha512-2BShG/d5yoZyXZfVePH91urL5wTG6ASZU9M4o03lKK8u8UW1y08OMttBSOADTcJrnPMpvDXRG3G8fyLh4ovs8w==", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.35", - "es6-symbol": "^3.1.1" + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "es6-promise": { - "version": "4.2.8", - "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", - "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", - "dev": true - }, - "es6-promisify": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", - "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", + "@babel/plugin-syntax-async-generators": { + "version": "7.8.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-async-generators/-/plugin-syntax-async-generators-7.8.4.tgz", + "integrity": "sha512-tycmZxkGfZaxhMRbXlPXuVFpdWlXpir2W4AMhSJgRKzk/eDlIXOhb2LHWoLpDF7TEHylV5zNhykX6KAgHJmTNw==", "dev": true, "requires": { - "es6-promise": "^4.0.3" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "es6-symbol": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", - "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", + "@babel/plugin-syntax-class-properties": { + "version": "7.12.13", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-properties/-/plugin-syntax-class-properties-7.12.13.tgz", + "integrity": "sha512-fm4idjKla0YahUNgFNLCB0qySdsoPiZP3iQE3rky0mBUtMZ23yDJ9SJdg6dXTSDnulOVqiF3Hgr9nbXvXTQZYA==", "dev": true, "requires": { - "d": "^1.0.1", - "ext": "^1.1.2" + "@babel/helper-plugin-utils": "^7.12.13" } }, - "es6-weak-map": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/es6-weak-map/-/es6-weak-map-2.0.3.tgz", - "integrity": "sha512-p5um32HOTO1kP+w7PRnB+5lQ43Z6muuMuIMffvDN8ZB4GcnjLBV6zGStpbASIMk4DCAvEaamhe2zhyCb/QXXsA==", + "@babel/plugin-syntax-class-static-block": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-class-static-block/-/plugin-syntax-class-static-block-7.14.5.tgz", + "integrity": "sha512-b+YyPmr6ldyNnM6sqYeMWE+bgJcJpO6yS4QD7ymxgH34GBPNDM/THBh8iunyvKIZztiwLH4CJZ0RxTk9emgpjw==", "dev": true, "requires": { - "d": "1", - "es5-ext": "^0.10.46", - "es6-iterator": "^2.0.3", - "es6-symbol": "^3.1.1" + "@babel/helper-plugin-utils": "^7.14.5" } }, - "escalade": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", - "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", - "dev": true - }, - "escape-goat": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", - "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", - "dev": true - }, - "escape-html": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", - "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", - "dev": true - }, - "escape-string-regexp": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", - "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", - "dev": true - }, - "eslint-scope": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-4.0.3.tgz", - "integrity": "sha512-p7VutNr1O/QrxysMo3E45FjYDTeXBy0iTltPFNSqKAIfjDSXC+4dj+qfyuD8bfAXrW/y6lW3O76VaYNPKfpKrg==", + "@babel/plugin-syntax-dynamic-import": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-dynamic-import/-/plugin-syntax-dynamic-import-7.8.3.tgz", + "integrity": "sha512-5gdGbFon+PszYzqs83S3E5mpi7/y/8M9eC90MRTZfduQOYW76ig6SOSPNe41IG5LoP3FGBn2N0RjVDSQiS94kQ==", "dev": true, "requires": { - "esrecurse": "^4.1.0", - "estraverse": "^4.1.1" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "esprima": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", - "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", - "dev": true - }, - "esrecurse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", - "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", + "@babel/plugin-syntax-export-namespace-from": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-export-namespace-from/-/plugin-syntax-export-namespace-from-7.8.3.tgz", + "integrity": "sha512-MXf5laXo6c1IbEbegDmzGPwGNTsHZmEy6QGznu5Sh2UCWvueywb2ee+CCE4zQiZstxU9BMoQO9i6zUFSY0Kj0Q==", "dev": true, "requires": { - "estraverse": "^5.2.0" - }, - "dependencies": { - "estraverse": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.2.0.tgz", - "integrity": "sha512-BxbNGGNm0RyRYvUdHpIwv9IWzeM9XClbOxwoATuFdOE7ZE6wHL+HQ5T8hoPM+zHvmKzzsEqhgy0GrQ5X13afiQ==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.8.3" } }, - "estraverse": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", - "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", - "dev": true - }, - "etag": { - "version": "1.8.1", - "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", - "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", - "dev": true - }, - "event-emitter": { - "version": "0.3.5", - "resolved": "https://registry.npmjs.org/event-emitter/-/event-emitter-0.3.5.tgz", - "integrity": "sha1-34xp7vFkeSPHFXuc6DhAYQsCzDk=", + "@babel/plugin-syntax-json-strings": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-json-strings/-/plugin-syntax-json-strings-7.8.3.tgz", + "integrity": "sha512-lY6kdGpWHvjoe2vk4WrAapEuBR69EMxZl+RoGRhrFGNYVK8mOPAW8VfbT/ZgrFbXlDNiiaxQnAtgVCZ6jv30EA==", "dev": true, "requires": { - "d": "1", - "es5-ext": "~0.10.14" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "event-target-shim": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/event-target-shim/-/event-target-shim-5.0.1.tgz", - "integrity": "sha512-i/2XbnSz/uxRCU6+NdVJgKWDTM427+MqYbkQzD321DuCQJUqOuJKIA0IM2+W2xtYHdKOmZ4dR6fExsd4SXL+WQ==" - }, - "eventemitter3": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", - "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", - "dev": true + "@babel/plugin-syntax-logical-assignment-operators": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-logical-assignment-operators/-/plugin-syntax-logical-assignment-operators-7.10.4.tgz", + "integrity": "sha512-d8waShlpFDinQ5MtvGU9xDAOzKH47+FFoney2baFIoMr952hKOLp1HR7VszoZvOsV/4+RRszNY7D17ba0te0ig==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } }, - "events": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/events/-/events-3.2.0.tgz", - "integrity": "sha512-/46HWwbfCX2xTawVfkKLGxMifJYQBWMwY1mjywRtb4c9x8l5NP3KoJtnIOiL1hfdRkIuYhETxQlo62IF8tcnlg==", - "dev": true + "@babel/plugin-syntax-nullish-coalescing-operator": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-nullish-coalescing-operator/-/plugin-syntax-nullish-coalescing-operator-7.8.3.tgz", + "integrity": "sha512-aSff4zPII1u2QD7y+F8oDsz19ew4IGEJg9SVW+bqwpwtfFleiQDMdzA/R+UlWDzfnHFCxxleFT0PMIrR36XLNQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" + } }, - "events-listener": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/events-listener/-/events-listener-1.1.0.tgz", - "integrity": "sha512-Kd3EgYfODHueq6GzVfs/VUolh2EgJsS8hkO3KpnDrxVjU3eq63eXM2ujXkhPP+OkeUOhL8CxdfZbQXzryb5C4g==", - "dev": true + "@babel/plugin-syntax-numeric-separator": { + "version": "7.10.4", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-numeric-separator/-/plugin-syntax-numeric-separator-7.10.4.tgz", + "integrity": "sha512-9H6YdfkcK/uOnY/K7/aA2xpzaAgkQn37yzWUMRK7OaPOqOpGS1+n0H5hxT9AUw9EsSjPW8SVyMJwYRtWs3X3ug==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.10.4" + } }, - "eventsource": { - "version": "1.0.7", - "resolved": "https://registry.npmjs.org/eventsource/-/eventsource-1.0.7.tgz", - "integrity": "sha512-4Ln17+vVT0k8aWq+t/bF5arcS3EpT9gYtW66EPacdj/mAFevznsnyoHLPy2BA8gbIQeIHoPsvwmfBftfcG//BQ==", + "@babel/plugin-syntax-object-rest-spread": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-object-rest-spread/-/plugin-syntax-object-rest-spread-7.8.3.tgz", + "integrity": "sha512-XoqMijGZb9y3y2XskN+P1wUGiVwWZ5JmoDRwx5+3GmEplNyVM2s2Dg8ILFQm8rWM48orGy5YpI5Bl8U1y7ydlA==", "dev": true, "requires": { - "original": "^1.0.0" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "evp_bytestokey": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/evp_bytestokey/-/evp_bytestokey-1.0.3.tgz", - "integrity": "sha512-/f2Go4TognH/KvCISP7OUsHn85hT9nUkxxA9BEWxFn+Oj9o8ZNLm/40hdlgSLyuOimsrTKLUMEorQexp/aPQeA==", + "@babel/plugin-syntax-optional-catch-binding": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-catch-binding/-/plugin-syntax-optional-catch-binding-7.8.3.tgz", + "integrity": "sha512-6VPD0Pc1lpTqw0aKoeRTMiB+kWhAoT24PA+ksWSBrFtl5SIRVpZlwN3NNPQjehA2E/91FV3RjLWoVTglWcSV3Q==", "dev": true, "requires": { - "md5.js": "^1.3.4", - "safe-buffer": "^5.1.1" + "@babel/helper-plugin-utils": "^7.8.0" } }, - "execa": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", - "integrity": "sha512-adbxcyWV46qiHyvSp50TKt05tB4tK3HcmF7/nxfAdhnox83seTDbwnaqKO4sXRy7roHAIFqJP/Rw/AuEbX61LA==", - "dev": true, - "requires": { - "cross-spawn": "^6.0.0", - "get-stream": "^4.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "exegesis": { - "version": "2.5.6", - "resolved": "https://registry.npmjs.org/exegesis/-/exegesis-2.5.6.tgz", - "integrity": "sha512-e+YkH/zZTN2njiwrV8tY6tHGDsFu3LyR/YbrqdWvDZaAJ5YGWaBYyd3oX/Y26iGqQc+7jLEKLDTv2UPzjAYL8w==", - "dev": true, - "requires": { - "@apidevtools/json-schema-ref-parser": "^9.0.3", - "ajv": "^6.12.2", - "body-parser": "^1.18.3", - "content-type": "^1.0.4", - "deep-freeze": "0.0.1", - "events-listener": "^1.1.0", - "glob": "^7.1.3", - "json-ptr": "^1.3.1", - "json-schema-traverse": "^0.4.1", - "lodash": "^4.17.11", - "openapi3-ts": "^1.2.0", - "promise-breaker": "^5.0.0", - "pump": "^3.0.0", - "qs": "^6.6.0", - "raw-body": "^2.3.3", - "semver": "^7.0.0" - }, - "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" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "qs": { - "version": "6.9.6", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.9.6.tgz", - "integrity": "sha512-TIRk4aqYLNoJUbd+g2lEdz5kLWIuTMRagAXxl78Q0RiVjAOugHmeKNGdd3cwo/ktpf9aL9epCfFqWDEKysUlLQ==", - "dev": true - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "requires": { - "lru-cache": "^6.0.0" - } - } + "@babel/plugin-syntax-optional-chaining": { + "version": "7.8.3", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-optional-chaining/-/plugin-syntax-optional-chaining-7.8.3.tgz", + "integrity": "sha512-KoK9ErH1MBlCPxV0VANkXW2/dw4vlbGDrFgz8bmUsBGYkFRcbRwMh6cIJubdPrkxRwuGdtCk0v/wPTKbQgBjkg==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.8.0" } }, - "exegesis-express": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/exegesis-express/-/exegesis-express-2.0.0.tgz", - "integrity": "sha512-NKvKBsBa2OvU+1BFpWbz3PzoRMhA9q7/wU2oMmQ9X8lPy/FRatADvhlkGO1zYOMgeo35k1ZLO9ZV0uIs9pPnXg==", + "@babel/plugin-syntax-private-property-in-object": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-private-property-in-object/-/plugin-syntax-private-property-in-object-7.14.5.tgz", + "integrity": "sha512-0wVnp9dxJ72ZUJDV27ZfbSj6iHLoytYZmh3rFcxNnvsJF3ktkzLDZPy/mA17HGsaQT3/DQsWYX1f1QGWkCoVUg==", "dev": true, "requires": { - "exegesis": "^2.0.0" + "@babel/helper-plugin-utils": "^7.14.5" } }, - "exit": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", - "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", - "dev": true + "@babel/plugin-syntax-top-level-await": { + "version": "7.14.5", + "resolved": "https://registry.npmjs.org/@babel/plugin-syntax-top-level-await/-/plugin-syntax-top-level-await-7.14.5.tgz", + "integrity": "sha512-hx++upLv5U1rgYfwe1xBQUhRmU41NEvpUvrp8jkrSCdvGSnM5/qdRMtylJ6PG5OFkBaHkbTAKTnd3/YyESRHFw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.14.5" + } }, - "exit-code": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/exit-code/-/exit-code-1.0.2.tgz", - "integrity": "sha1-zhZYEcnxF69qX4gpQLlq5/muzDQ=", - "dev": true + "@babel/plugin-transform-arrow-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-arrow-functions/-/plugin-transform-arrow-functions-7.18.6.tgz", + "integrity": "sha512-9S9X9RUefzrsHZmKMbDXxweEH+YlE8JJEuat9FdvW9Qh1cw7W64jELCtWNkPBPX5En45uy28KGvA/AySqUh8CQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "expand-brackets": { - "version": "2.1.4", - "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", - "integrity": "sha1-t3c14xXOMPa27/D4OwQVGiJEliI=", + "@babel/plugin-transform-async-to-generator": { + "version": "7.16.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-async-to-generator/-/plugin-transform-async-to-generator-7.16.8.tgz", + "integrity": "sha512-MtmUmTJQHCnyJVrScNzNlofQJ3dLFuobYn3mwOTKHnSCMtbNsqvF71GQmJfFjdrXSsAA7iysFmYWw4bXZ20hOg==", "dev": true, "requires": { - "debug": "^2.3.3", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "posix-character-classes": "^0.1.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-remap-async-to-generator": "^7.16.8" + } + }, + "@babel/plugin-transform-block-scoped-functions": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoped-functions/-/plugin-transform-block-scoped-functions-7.18.6.tgz", + "integrity": "sha512-ExUcOqpPWnliRcPqves5HJcJOvHvIIWfuS4sroBUenPuMdmW+SMHDakmtS7qOo13sVppmUijqeTv7qqGsvURpQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" } }, - "express": { - "version": "4.17.1", - "resolved": "https://registry.npmjs.org/express/-/express-4.17.1.tgz", - "integrity": "sha512-mHJ9O79RqluphRrcw2X/GTh3k9tVv8YcoyY4Kkh4WDMUYKRZUq0h1o0w2rrrxBqM7VoeUVqgb27xlEMXTnYt4g==", + "@babel/plugin-transform-block-scoping": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-block-scoping/-/plugin-transform-block-scoping-7.18.6.tgz", + "integrity": "sha512-pRqwb91C42vs1ahSAWJkxOxU1RHWDn16XAa6ggQ72wjLlWyYeAcLvTtE0aM8ph3KNydy9CQF2nLYcjq1WysgxQ==", "dev": true, "requires": { - "accepts": "~1.3.7", - "array-flatten": "1.1.1", - "body-parser": "1.19.0", - "content-disposition": "0.5.3", - "content-type": "~1.0.4", - "cookie": "0.4.0", - "cookie-signature": "1.0.6", - "debug": "2.6.9", - "depd": "~1.1.2", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "finalhandler": "~1.1.2", - "fresh": "0.5.2", - "merge-descriptors": "1.0.1", - "methods": "~1.1.2", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "proxy-addr": "~2.0.5", - "qs": "6.7.0", - "range-parser": "~1.2.1", - "safe-buffer": "5.1.2", - "send": "0.17.1", - "serve-static": "1.14.1", - "setprototypeof": "1.1.1", - "statuses": "~1.5.0", - "type-is": "~1.6.18", - "utils-merge": "1.0.1", - "vary": "~1.1.2" + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-classes": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-classes/-/plugin-transform-classes-7.18.8.tgz", + "integrity": "sha512-RySDoXdF6hgHSHuAW4aLGyVQdmvEX/iJtjVre52k0pxRq4hzqze+rAVP++NmNv596brBpYmaiKgTZby7ziBnVg==", + "dev": true, + "requires": { + "@babel/helper-annotate-as-pure": "^7.18.6", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-optimise-call-expression": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "globals": "^11.1.0" }, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "@babel/helper-annotate-as-pure": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.18.6.tgz", + "integrity": "sha512-duORpUiYrEpzKIop6iNbjnwKLAKnJ47csTyRACyEmWj0QdUrm5aqNJGHSSEQSUAvNW0ojX0dOmK9dZduvkfeXA==", "dev": true, "requires": { - "ms": "2.0.0" + "@babel/types": "^7.18.6" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "qs": { - "version": "6.7.0", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", - "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", - "dev": true } } }, - "ext": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", - "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", + "@babel/plugin-transform-computed-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-computed-properties/-/plugin-transform-computed-properties-7.18.6.tgz", + "integrity": "sha512-9repI4BhNrR0KenoR9vm3/cIc1tSBIo+u1WVjKCAynahj25O8zfbiE6JtAtHPGQSs4yZ+bA8mRasRP+qc+2R5A==", "dev": true, "requires": { - "type": "^2.0.0" - }, - "dependencies": { - "type": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", - "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.18.6" } }, - "extend": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", - "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==" + "@babel/plugin-transform-destructuring": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-destructuring/-/plugin-transform-destructuring-7.18.6.tgz", + "integrity": "sha512-tgy3u6lRp17ilY8r1kP4i2+HDUwxlVqq3RTc943eAWSzGgpU1qhiKpqZ5CMyHReIYPHdo3Kg8v8edKtDqSVEyQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "extend-shallow": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-3.0.2.tgz", - "integrity": "sha1-Jqcarwc7OfshJxcnRhMcJwQCjbg=", + "@babel/plugin-transform-dotall-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.18.6.tgz", + "integrity": "sha512-6S3jpun1eEbAxq7TdjLotAsl4WpQI9DxfkycRcKrjhQYzU87qpXdknpBg/e+TdcMehqGnLFi7tnFUBR02Vq6wg==", "dev": true, "requires": { - "assign-symbols": "^1.0.0", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "external-editor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", - "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", + "@babel/plugin-transform-duplicate-keys": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-duplicate-keys/-/plugin-transform-duplicate-keys-7.18.6.tgz", + "integrity": "sha512-NJU26U/208+sxYszf82nmGYqVF9QN8py2HFTblPT9hbawi8+1C5a9JubODLTGFuT0qlkqVinmkwOD13s0sZktg==", "dev": true, "requires": { - "chardet": "^0.7.0", - "iconv-lite": "^0.4.24", - "tmp": "^0.0.33" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "extglob": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/extglob/-/extglob-2.0.4.tgz", - "integrity": "sha512-Nmb6QXkELsuBr24CJSkilo6UHHgbekK5UiZgfE6UHD3Eb27YC6oD+bhcT+tJ6cl8dmsgdQxnWlcry8ksBIBLpw==", - "dev": true, - "requires": { - "array-unique": "^0.3.2", - "define-property": "^1.0.0", - "expand-brackets": "^2.1.4", - "extend-shallow": "^2.0.1", - "fragment-cache": "^0.2.1", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", - "dev": true, - "requires": { - "is-descriptor": "^1.0.0" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "is-accessor-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } - }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } + "@babel/plugin-transform-exponentiation-operator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-exponentiation-operator/-/plugin-transform-exponentiation-operator-7.18.6.tgz", + "integrity": "sha512-wzEtc0+2c88FVR34aQmiz56dxEkxr2g8DQb/KfaFa1JYXOFVsbhvAonFN6PwVWj++fKmku8NP80plJ5Et4wqHw==", + "dev": true, + "requires": { + "@babel/helper-builder-binary-assignment-operator-visitor": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "extsprintf": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", - "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", - "dev": true + "@babel/plugin-transform-for-of": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-for-of/-/plugin-transform-for-of-7.18.8.tgz", + "integrity": "sha512-yEfTRnjuskWYo0k1mHUqrVWaZwrdq8AYbfrpqULOJOaucGSp4mNMVps+YtA8byoevxS/urwU75vyhQIxcCgiBQ==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fast-deep-equal": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", - "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=", - "dev": true + "@babel/plugin-transform-function-name": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-function-name/-/plugin-transform-function-name-7.18.6.tgz", + "integrity": "sha512-kJha/Gbs5RjzIu0CxZwf5e3aTTSlhZnHMT8zPWnJMjNpLOUgqevg+PN5oMH68nMCXnfiMo4Bhgxqj59KHTlAnA==", + "dev": true, + "requires": { + "@babel/helper-compilation-targets": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fast-json-stable-stringify": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", - "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", - "dev": true + "@babel/plugin-transform-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-literals/-/plugin-transform-literals-7.18.6.tgz", + "integrity": "sha512-x3HEw0cJZVDoENXOp20HlypIHfl0zMIhMVZEBVTfmqbObIpsMxMbmU5nOEO8R7LYT+z5RORKPlTI5Hj4OsO9/Q==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fast-safe-stringify": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/fast-safe-stringify/-/fast-safe-stringify-2.0.7.tgz", - "integrity": "sha512-Utm6CdzT+6xsDk2m8S6uL8VHxNwI6Jub+e9NYTcAms28T84pTa25GJQV9j0CY0N1rM8hK4x6grpF2BQf+2qwVA==", - "dev": true + "@babel/plugin-transform-member-expression-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-member-expression-literals/-/plugin-transform-member-expression-literals-7.18.6.tgz", + "integrity": "sha512-qSF1ihLGO3q+/g48k85tUjD033C29TNTVB2paCwZPVmOsjn9pClvYYrM2VeJpBY2bcNkuny0YUyTNRyRxJ54KA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fast-text-encoding": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", - "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + "@babel/plugin-transform-modules-amd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-amd/-/plugin-transform-modules-amd-7.18.6.tgz", + "integrity": "sha512-Pra5aXsmTsOnjM3IajS8rTaLCy++nGM4v3YR4esk5PCsyg9z8NA5oQLwxzMUtDBd8F+UmVza3VxoAaWCbzH1rg==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + } }, - "fast-url-parser": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/fast-url-parser/-/fast-url-parser-1.1.3.tgz", - "integrity": "sha1-9K8+qfNNiicc9YrSs3WfQx8LMY0=", + "@babel/plugin-transform-modules-commonjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-commonjs/-/plugin-transform-modules-commonjs-7.18.6.tgz", + "integrity": "sha512-Qfv2ZOWikpvmedXQJDSbxNqy7Xr/j2Y8/KfijM0iJyKkBTmWuvCA1yeH1yDM7NJhBW/2aXxeucLj6i80/LAJ/Q==", + "dev": true, + "requires": { + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-simple-access": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" + } + }, + "@babel/plugin-transform-modules-systemjs": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-systemjs/-/plugin-transform-modules-systemjs-7.18.6.tgz", + "integrity": "sha512-UbPYpXxLjTw6w6yXX2BYNxF3p6QY225wcTkfQCy3OMnSlS/C3xGtwUjEzGkldb/sy6PWLiCQ3NbYfjWUTI3t4g==", "dev": true, "requires": { - "punycode": "^1.3.2" + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-validator-identifier": "^7.18.6", + "babel-plugin-dynamic-import-node": "^2.3.3" }, "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==", "dev": true } } }, - "fastparse": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", - "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", - "dev": true - }, - "faye-websocket": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.10.0.tgz", - "integrity": "sha1-TkkvjQTftviQA1B/btvy1QHnxvQ=", + "@babel/plugin-transform-modules-umd": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-modules-umd/-/plugin-transform-modules-umd-7.18.6.tgz", + "integrity": "sha512-dcegErExVeXcRqNtkRU/z8WlBLnvD4MRnHgNs3MytRO1Mn1sHRyhbcpYbVMGclAqOjdW+9cfkdZno9dFdfKLfQ==", "dev": true, "requires": { - "websocket-driver": ">=0.5.1" + "@babel/helper-module-transforms": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" } }, - "fecha": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fecha/-/fecha-4.2.0.tgz", - "integrity": "sha512-aN3pcx/DSmtyoovUudctc8+6Hl4T+hI9GBBHLjA76jdZl7+b1sgh5g4k+u/GL3dTy1/pnYzKp69FpJ0OicE3Wg==", - "dev": true + "@babel/plugin-transform-named-capturing-groups-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-named-capturing-groups-regex/-/plugin-transform-named-capturing-groups-regex-7.18.6.tgz", + "integrity": "sha512-UmEOGF8XgaIqD74bC8g7iV3RYj8lMf0Bw7NJzvnS9qQhM4mg+1WHKotUIdjxgD2RGrgFLZZPCFPFj3P/kVDYhg==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "figgy-pudding": { - "version": "3.5.2", - "resolved": "https://registry.npmjs.org/figgy-pudding/-/figgy-pudding-3.5.2.tgz", - "integrity": "sha512-0btnI/H8f2pavGMN8w40mlSKOfTK2SVJmBfBeVIj3kNw0swwgzyRq0d5TJVOwodFmtvpPeWPN/MCcfuWF0Ezbw==", - "dev": true + "@babel/plugin-transform-new-target": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-new-target/-/plugin-transform-new-target-7.18.6.tgz", + "integrity": "sha512-DjwFA/9Iu3Z+vrAn+8pBUGcjhxKguSMlsFqeCKbhb9BAV756v0krzVK04CRDi/4aqmk8BsHb4a/gFcaA5joXRw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "figures": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-2.0.0.tgz", - "integrity": "sha1-OrGi0qYsi/tDGgyUy3l6L84nyWI=", + "@babel/plugin-transform-object-super": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-object-super/-/plugin-transform-object-super-7.18.6.tgz", + "integrity": "sha512-uvGz6zk+pZoS1aTZrOvrbj6Pp/kK2mp45t2B+bTDre2UgsZZ8EZLSJtUg7m/no0zOJUWgFONpB7Zv9W2tSaFlA==", "dev": true, "requires": { - "escape-string-regexp": "^1.0.5" + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-replace-supers": "^7.18.6" } }, - "file-loader": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/file-loader/-/file-loader-4.2.0.tgz", - "integrity": "sha512-+xZnaK5R8kBJrHK0/6HRlrKNamvVS5rjyuju+rnyxRGuwUJwpAMsVzUl5dz6rK8brkzjV6JpcFNjp6NqV0g1OQ==", + "@babel/plugin-transform-parameters": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-parameters/-/plugin-transform-parameters-7.18.8.tgz", + "integrity": "sha512-ivfbE3X2Ss+Fj8nnXvKJS6sjRG4gzwPMsP+taZC+ZzEGjAYlvENixmt1sZ5Ca6tWls+BlKSGKPJ6OOXvXCbkFg==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.0" - }, - "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" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } + "@babel/helper-plugin-utils": "^7.18.6" } }, - "file-uri-to-path": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/file-uri-to-path/-/file-uri-to-path-1.0.0.tgz", - "integrity": "sha512-0Zt+s3L7Vf1biwWZ29aARiVYLx7iMGnEUl9x33fbB/j3jR81u/O2LbqK+Bm1CDSNDKVtJ/YjwY7TUd5SkeLQLw==", + "@babel/plugin-transform-property-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-property-literals/-/plugin-transform-property-literals-7.18.6.tgz", + "integrity": "sha512-cYcs6qlgafTud3PAzrrRNbQtfpQ8+y/+M5tKmksS9+M1ckbH6kzY8MrexEM9mcA6JDsukE19iIRvAyYl463sMg==", "dev": true, - "optional": true + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fileset": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", - "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", + "@babel/plugin-transform-regenerator": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-regenerator/-/plugin-transform-regenerator-7.18.6.tgz", + "integrity": "sha512-poqRI2+qiSdeldcz4wTSTXBRryoq3Gc70ye7m7UD5Ww0nE29IXqMl6r7Nd15WBgRd74vloEMlShtH6CKxVzfmQ==", "dev": true, "requires": { - "glob": "^7.0.3", - "minimatch": "^3.0.3" + "@babel/helper-plugin-utils": "^7.18.6", + "regenerator-transform": "^0.15.0" } }, - "filesize": { - "version": "3.6.1", - "resolved": "https://registry.npmjs.org/filesize/-/filesize-3.6.1.tgz", - "integrity": "sha512-7KjR1vv6qnicaPMi1iiTcI85CyYwRO/PSFCu6SvqL8jN2Wjt/NIYQTFtFs7fSDCYOstUkEWIQGFUg5YZQfjlcg==", - "dev": true + "@babel/plugin-transform-reserved-words": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-reserved-words/-/plugin-transform-reserved-words-7.18.6.tgz", + "integrity": "sha512-oX/4MyMoypzHjFrT1CdivfKZ+XvIPMFXwwxHp/r0Ddy2Vuomt4HDFGmft1TAY2yiTKiNSsh3kjBAzcM8kSdsjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6" + } }, - "fill-range": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", - "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", + "@babel/plugin-transform-runtime": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-runtime/-/plugin-transform-runtime-7.17.10.tgz", + "integrity": "sha512-6jrMilUAJhktTr56kACL8LnWC5hx3Lf27BS0R0DSyW/OoJfb/iTHeE96V3b1dgKG3FSFdd/0culnYWMkjcKCig==", "dev": true, "requires": { - "to-regex-range": "^5.0.1" + "@babel/helper-module-imports": "^7.16.7", + "@babel/helper-plugin-utils": "^7.16.7", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "semver": "^6.3.0" } }, - "finalhandler": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", - "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", + "@babel/plugin-transform-shorthand-properties": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-shorthand-properties/-/plugin-transform-shorthand-properties-7.18.6.tgz", + "integrity": "sha512-eCLXXJqv8okzg86ywZJbRn19YJHU4XUa55oz2wbHhaQVn/MM+XhukiT7SYqp/7o00dg52Rj51Ny+Ecw4oyoygw==", "dev": true, "requires": { - "debug": "2.6.9", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "on-finished": "~2.3.0", - "parseurl": "~1.3.3", - "statuses": "~1.5.0", - "unpipe": "~1.0.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-spread": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-spread/-/plugin-transform-spread-7.18.6.tgz", + "integrity": "sha512-ayT53rT/ENF8WWexIRg9AiV9h0aIteyWn5ptfZTZQrjk/+f3WdrJGCY4c9wcgl2+MKkKPhzbYp97FTsquZpDCw==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.18.6", + "@babel/helper-skip-transparent-expression-wrappers": "^7.18.6" } }, - "find-cache-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.0.0.tgz", - "integrity": "sha512-t7ulV1fmbxh5G9l/492O1p5+EBbr3uwpt6odhFTMc+nWyhmbloe+ja9BZ8pIBtqFWhOmCWVjx+pTW4zDkFoclw==", + "@babel/plugin-transform-sticky-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-sticky-regex/-/plugin-transform-sticky-regex-7.18.6.tgz", + "integrity": "sha512-kfiDrDQ+PBsQDO85yj1icueWMfGfJFKN1KCkndygtu/C9+XUfydLC8Iv5UYJqRwy4zk8EcplRxEOeLyjq1gm6Q==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.0", - "pkg-dir": "^4.1.0" - }, - "dependencies": { - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - } + "@babel/helper-plugin-utils": "^7.18.6" } }, - "find-up": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-3.0.0.tgz", - "integrity": "sha512-1yD6RmLI1XBfxugvORwlck6f75tYL+iR0jqwsOrOxMZyGYqUuDhJ0l4AXdO1iX/FTs9cBAMEk1gWSEx1kSbylg==", + "@babel/plugin-transform-template-literals": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-template-literals/-/plugin-transform-template-literals-7.18.6.tgz", + "integrity": "sha512-UuqlRrQmT2SWRvahW46cGSany0uTlcj8NYOS5sRGYi8FxPYPoLd5DDmMd32ZXEj2Jq+06uGVQKHxa/hJx2EzKw==", "dev": true, "requires": { - "locate-path": "^3.0.0" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "firebase": { - "version": "8.2.6", - "resolved": "https://registry.npmjs.org/firebase/-/firebase-8.2.6.tgz", - "integrity": "sha512-UHBAA8r7oIdbdafTGo3ED8wL9r/vdSgllN0yBzJMCyxk16DtL0oQnXRXwTU7FSc2c3JrvTUX9jtMFjtKjOUNMQ==", + "@babel/plugin-transform-typeof-symbol": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-typeof-symbol/-/plugin-transform-typeof-symbol-7.18.6.tgz", + "integrity": "sha512-7m71iS/QhsPk85xSjFPovHPcH3H9qeyzsujhTc+vcdnsXavoWYJ74zx0lP5RhpC5+iDnVLO+PPMHzC11qels1g==", + "dev": true, "requires": { - "@firebase/analytics": "0.6.2", - "@firebase/app": "0.6.14", - "@firebase/app-types": "0.6.1", - "@firebase/auth": "0.16.3", - "@firebase/database": "0.9.2", - "@firebase/firestore": "2.1.5", - "@firebase/functions": "0.6.1", - "@firebase/installations": "0.4.19", - "@firebase/messaging": "0.7.3", - "@firebase/performance": "0.4.5", - "@firebase/polyfill": "0.3.36", - "@firebase/remote-config": "0.1.30", - "@firebase/storage": "0.4.2", - "@firebase/util": "0.3.4" + "@babel/helper-plugin-utils": "^7.18.6" } }, - "firebase-tools": { - "version": "8.20.0", - "resolved": "https://registry.npmjs.org/firebase-tools/-/firebase-tools-8.20.0.tgz", - "integrity": "sha512-FovOHkPEvdT31EqxDzjJkaJIYLrc+0GZwQ3ixT1WI3yF3o4TG8MCVo+QidmcNqyX0XZnI3/5sF3dpxXQ/HzaVw==", + "@babel/plugin-transform-unicode-escapes": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-escapes/-/plugin-transform-unicode-escapes-7.18.6.tgz", + "integrity": "sha512-XNRwQUXYMP7VLuy54cr/KS/WeL3AZeORhrmeZ7iewgu+X2eBqmpaLI/hzqr9ZxCeUoq0ASK4GUzSM0BDhZkLFw==", "dev": true, "requires": { - "@google-cloud/pubsub": "^1.7.0", - "abort-controller": "^3.0.0", - "archiver": "^3.0.0", - "body-parser": "^1.19.0", - "chokidar": "^3.0.2", - "cjson": "^0.3.1", - "cli-color": "^1.2.0", - "cli-table": "^0.3.1", - "commander": "^4.0.1", - "configstore": "^5.0.1", - "cross-env": "^5.1.3", - "cross-spawn": "^7.0.1", - "csv-streamify": "^3.0.4", - "dotenv": "^6.1.0", - "exegesis-express": "^2.0.0", - "exit-code": "^1.0.2", - "express": "^4.16.4", - "filesize": "^3.1.3", - "fs-extra": "^0.23.1", - "glob": "^7.1.2", - "google-auth-library": "^5.5.0", - "google-gax": "~1.12.0", - "inquirer": "~6.3.1", - "js-yaml": "^3.13.1", - "jsonschema": "^1.0.2", - "JSONStream": "^1.2.1", - "jsonwebtoken": "^8.2.1", - "leven": "^3.1.0", - "lodash": "^4.17.19", - "marked": "^0.7.0", - "marked-terminal": "^3.3.0", - "minimatch": "^3.0.4", - "morgan": "^1.10.0", - "node-fetch": "^2.6.1", - "open": "^6.3.0", - "ora": "^3.4.0", - "plist": "^3.0.1", - "portfinder": "^1.0.23", - "progress": "^2.0.3", - "request": "^2.87.0", - "rimraf": "^3.0.0", - "semver": "^5.7.1", - "superstatic": "^7.1.0", - "tar": "^4.3.0", - "tcp-port-used": "^1.0.1", - "tmp": "0.0.33", - "triple-beam": "^1.3.0", - "tweetsodium": "0.0.5", - "universal-analytics": "^0.4.16", - "unzipper": "^0.10.10", - "update-notifier": "^4.1.0", - "uuid": "^3.0.0", - "winston": "^3.0.0", - "ws": "^7.2.3" + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/plugin-transform-unicode-regex": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/plugin-transform-unicode-regex/-/plugin-transform-unicode-regex-7.18.6.tgz", + "integrity": "sha512-gE7A6Lt7YLnNOL3Pb9BNeZvi+d8l7tcRrG4+pwJjK9hD2xX4mEvjlQW60G9EEmfXVYRPv9VRQcyegIVHCql/AA==", + "dev": true, + "requires": { + "@babel/helper-create-regexp-features-plugin": "^7.18.6", + "@babel/helper-plugin-utils": "^7.18.6" + } + }, + "@babel/preset-env": { + "version": "7.17.10", + "resolved": "https://registry.npmjs.org/@babel/preset-env/-/preset-env-7.17.10.tgz", + "integrity": "sha512-YNgyBHZQpeoBSRBg0xixsZzfT58Ze1iZrajvv0lJc70qDDGuGfonEnMGfWeSY0mQ3JTuCWFbMkzFRVafOyJx4g==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.17.10", + "@babel/helper-compilation-targets": "^7.17.10", + "@babel/helper-plugin-utils": "^7.16.7", + "@babel/helper-validator-option": "^7.16.7", + "@babel/plugin-bugfix-safari-id-destructuring-collision-in-function-expression": "^7.16.7", + "@babel/plugin-bugfix-v8-spread-parameters-in-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-async-generator-functions": "^7.16.8", + "@babel/plugin-proposal-class-properties": "^7.16.7", + "@babel/plugin-proposal-class-static-block": "^7.17.6", + "@babel/plugin-proposal-dynamic-import": "^7.16.7", + "@babel/plugin-proposal-export-namespace-from": "^7.16.7", + "@babel/plugin-proposal-json-strings": "^7.16.7", + "@babel/plugin-proposal-logical-assignment-operators": "^7.16.7", + "@babel/plugin-proposal-nullish-coalescing-operator": "^7.16.7", + "@babel/plugin-proposal-numeric-separator": "^7.16.7", + "@babel/plugin-proposal-object-rest-spread": "^7.17.3", + "@babel/plugin-proposal-optional-catch-binding": "^7.16.7", + "@babel/plugin-proposal-optional-chaining": "^7.16.7", + "@babel/plugin-proposal-private-methods": "^7.16.11", + "@babel/plugin-proposal-private-property-in-object": "^7.16.7", + "@babel/plugin-proposal-unicode-property-regex": "^7.16.7", + "@babel/plugin-syntax-async-generators": "^7.8.4", + "@babel/plugin-syntax-class-properties": "^7.12.13", + "@babel/plugin-syntax-class-static-block": "^7.14.5", + "@babel/plugin-syntax-dynamic-import": "^7.8.3", + "@babel/plugin-syntax-export-namespace-from": "^7.8.3", + "@babel/plugin-syntax-json-strings": "^7.8.3", + "@babel/plugin-syntax-logical-assignment-operators": "^7.10.4", + "@babel/plugin-syntax-nullish-coalescing-operator": "^7.8.3", + "@babel/plugin-syntax-numeric-separator": "^7.10.4", + "@babel/plugin-syntax-object-rest-spread": "^7.8.3", + "@babel/plugin-syntax-optional-catch-binding": "^7.8.3", + "@babel/plugin-syntax-optional-chaining": "^7.8.3", + "@babel/plugin-syntax-private-property-in-object": "^7.14.5", + "@babel/plugin-syntax-top-level-await": "^7.14.5", + "@babel/plugin-transform-arrow-functions": "^7.16.7", + "@babel/plugin-transform-async-to-generator": "^7.16.8", + "@babel/plugin-transform-block-scoped-functions": "^7.16.7", + "@babel/plugin-transform-block-scoping": "^7.16.7", + "@babel/plugin-transform-classes": "^7.16.7", + "@babel/plugin-transform-computed-properties": "^7.16.7", + "@babel/plugin-transform-destructuring": "^7.17.7", + "@babel/plugin-transform-dotall-regex": "^7.16.7", + "@babel/plugin-transform-duplicate-keys": "^7.16.7", + "@babel/plugin-transform-exponentiation-operator": "^7.16.7", + "@babel/plugin-transform-for-of": "^7.16.7", + "@babel/plugin-transform-function-name": "^7.16.7", + "@babel/plugin-transform-literals": "^7.16.7", + "@babel/plugin-transform-member-expression-literals": "^7.16.7", + "@babel/plugin-transform-modules-amd": "^7.16.7", + "@babel/plugin-transform-modules-commonjs": "^7.17.9", + "@babel/plugin-transform-modules-systemjs": "^7.17.8", + "@babel/plugin-transform-modules-umd": "^7.16.7", + "@babel/plugin-transform-named-capturing-groups-regex": "^7.17.10", + "@babel/plugin-transform-new-target": "^7.16.7", + "@babel/plugin-transform-object-super": "^7.16.7", + "@babel/plugin-transform-parameters": "^7.16.7", + "@babel/plugin-transform-property-literals": "^7.16.7", + "@babel/plugin-transform-regenerator": "^7.17.9", + "@babel/plugin-transform-reserved-words": "^7.16.7", + "@babel/plugin-transform-shorthand-properties": "^7.16.7", + "@babel/plugin-transform-spread": "^7.16.7", + "@babel/plugin-transform-sticky-regex": "^7.16.7", + "@babel/plugin-transform-template-literals": "^7.16.7", + "@babel/plugin-transform-typeof-symbol": "^7.16.7", + "@babel/plugin-transform-unicode-escapes": "^7.16.7", + "@babel/plugin-transform-unicode-regex": "^7.16.7", + "@babel/preset-modules": "^0.1.5", + "@babel/types": "^7.17.10", + "babel-plugin-polyfill-corejs2": "^0.3.0", + "babel-plugin-polyfill-corejs3": "^0.5.0", + "babel-plugin-polyfill-regenerator": "^0.3.0", + "core-js-compat": "^3.22.1", + "semver": "^6.3.0" + } + }, + "@babel/preset-modules": { + "version": "0.1.5", + "resolved": "https://registry.npmjs.org/@babel/preset-modules/-/preset-modules-0.1.5.tgz", + "integrity": "sha512-A57th6YRG7oR3cq/yt/Y84MvGgE0eJG2F1JLhKuyG+jFxEgrd/HAMJatiFtmOiZurz+0DkrvbheCLaV5f2JfjA==", + "dev": true, + "requires": { + "@babel/helper-plugin-utils": "^7.0.0", + "@babel/plugin-proposal-unicode-property-regex": "^7.4.4", + "@babel/plugin-transform-dotall-regex": "^7.4.4", + "@babel/types": "^7.4.4", + "esutils": "^2.0.2" + } + }, + "@babel/runtime": { + "version": "7.17.9", + "resolved": "https://registry.npmjs.org/@babel/runtime/-/runtime-7.17.9.tgz", + "integrity": "sha512-lSiBBvodq29uShpWGNbgFdKYNiFDo5/HIYsaCEY9ff4sb10x9jizo2+pRrSyF4jKZCXqgzuqBOQKbUm90gQwJg==", + "dev": true, + "requires": { + "regenerator-runtime": "^0.13.4" + } + }, + "@babel/template": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/template/-/template-7.18.6.tgz", + "integrity": "sha512-JoDWzPe+wgBsTTgdnIma3iHNFC7YVJoPssVBDjiHfNlyt4YcunDtcDOUmfVDfCK5MfdsaIoX9PkijPhjH3nYUw==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/parser": "^7.18.6", + "@babel/types": "^7.18.6" }, "dependencies": { - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "dev": true, - "requires": { - "debug": "4" - } - }, - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", - "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" - } - }, - "commander": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/commander/-/commander-4.1.1.tgz", - "integrity": "sha512-NOKm8xhkzAjzFx8B2v5OAHT+u5pRQc2UCa2Vq9jYL/31o2wi9mxBA7LIFs3sV5VSC49z6pEhfbMULvShKj26WA==", - "dev": true - }, - "cross-spawn": { - "version": "7.0.3", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", - "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", - "dev": true, - "requires": { - "path-key": "^3.1.0", - "shebang-command": "^2.0.0", - "which": "^2.0.1" - } - }, - "fs-extra": { - "version": "0.23.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-0.23.1.tgz", - "integrity": "sha1-ZhHbpq3yq43Jxp+rN83fiBgVfj0=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^2.1.0", - "path-is-absolute": "^1.0.0", - "rimraf": "^2.2.8" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } - } - }, - "gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", - "dev": true, - "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" - } - }, - "gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" - } - }, - "google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", - "dev": true, - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" - } - }, - "google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", - "dev": true, - "requires": { - "node-forge": "^0.9.0" - } - }, - "gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", - "dev": true, - "requires": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" - } - }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", - "dev": true, - "requires": { - "agent-base": "6", - "debug": "4" - } - }, - "inquirer": { - "version": "6.3.1", - "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.3.1.tgz", - "integrity": "sha512-MmL624rfkFt4TG9y/Jvmt8vdmOo836U7Y0Hxr2aFk3RelZEGX4Igk0KabWrcaaZaTv9uzglOqWh1Vly+FAWAXA==", - "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.11", - "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" - } - }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true - }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", - "dev": true - }, - "json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", - "dev": true, - "requires": { - "bignumber.js": "^9.0.0" - } - }, - "jsonfile": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-2.4.0.tgz", - "integrity": "sha1-NzaitCi4e72gzIO1P6PWM6NcKug=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } - }, - "log-symbols": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-2.2.0.tgz", - "integrity": "sha512-VeIAFslyIerEJLXHziedo2basKbMKtTw3vfn5IzG0XTjhAVEJyNHnL2p7vc+wBDSdQuUpNw3M2u6xb9QsAY5Eg==", - "dev": true, - "requires": { - "chalk": "^2.0.1" - } - }, - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true - }, - "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 - }, - "node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true - }, - "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" - } - }, - "open": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-6.4.0.tgz", - "integrity": "sha512-IFenVPgF70fSm1keSd2iDBIDIBZkroLeuffXq+wKTzTJlBpesFWojV9lb8mzOfaAzM1sr7HQHuO0vtV0zYekGg==", - "dev": true, - "requires": { - "is-wsl": "^1.1.0" - } - }, - "ora": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/ora/-/ora-3.4.0.tgz", - "integrity": "sha512-eNwHudNbO1folBP3JsZ19v9azXWtQZjICdr3Q0TDPIaeBQ3mXLrh54wM+er0+hSp+dWKf+Z8KM58CYzEyIYxYg==", - "dev": true, - "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^2.1.0", - "cli-spinners": "^2.0.0", - "log-symbols": "^2.2.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" - } - }, - "path-key": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", - "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", - "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" - } - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - }, - "shebang-command": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", - "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", - "dev": true, + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "shebang-regex": "^3.0.0" + "@babel/highlight": "^7.18.6" } }, - "shebang-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", - "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", - "dev": true + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", - "dev": true, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", "requires": { - "ansi-regex": "^4.1.0" + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", - "dev": true, + } + } + }, + "@babel/traverse": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/traverse/-/traverse-7.18.8.tgz", + "integrity": "sha512-UNg/AcSySJYR/+mIcJQDCv00T+AqRO7j/ZEJLzpaYtgM48rMg5MnkJgyNqkzo88+p4tfRvZJCEiwwfG6h4jkRg==", + "requires": { + "@babel/code-frame": "^7.18.6", + "@babel/generator": "^7.18.7", + "@babel/helper-environment-visitor": "^7.18.6", + "@babel/helper-function-name": "^7.18.6", + "@babel/helper-hoist-variables": "^7.18.6", + "@babel/helper-split-export-declaration": "^7.18.6", + "@babel/parser": "^7.18.8", + "@babel/types": "^7.18.8", + "debug": "^4.1.0", + "globals": "^11.1.0" + }, + "dependencies": { + "@babel/code-frame": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/code-frame/-/code-frame-7.18.6.tgz", + "integrity": "sha512-TDCmlK5eOvH+eH7cdAFlNXeVJqWIQ7gW9tY1GJIpUtFb6CmjVyq2VM3u71bOyR8CRihcCgMUYoDNyLXao3+70Q==", "requires": { - "isexe": "^2.0.0" + "@babel/highlight": "^7.18.6" } }, - "ws": { - "version": "7.4.3", - "resolved": "https://registry.npmjs.org/ws/-/ws-7.4.3.tgz", - "integrity": "sha512-hr6vCR76GsossIRsr8OLR9acVVm1jyfEWvhbNjtgPOrfvAlKzvyeg/P6r8RuDjRyrcQoPQT7K0DGEPc7Ae6jzA==", - "dev": true, - "requires": {} + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + }, + "@babel/highlight": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/highlight/-/highlight-7.18.6.tgz", + "integrity": "sha512-u7stbOuYjaPezCuLj29hNW1v64M2Md2qupEKP1fHc7WdOA3DgLh37suiSrZYY7haUB7iBeQZ9P1uiRF359do3g==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "chalk": "^2.0.0", + "js-tokens": "^4.0.0" + } } } }, - "flat-arguments": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/flat-arguments/-/flat-arguments-1.0.2.tgz", - "integrity": "sha1-m6p4Ct8FAfKC1ybJxqA426ROp28=", + "@babel/types": { + "version": "7.18.8", + "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.18.8.tgz", + "integrity": "sha512-qwpdsmraq0aJ3osLJRApsc2ouSJCdnMeZwB0DhbtHAtRpZNZCdlbRnHIgcRKzdE1g0iOGg644fzjOBcdOz9cPw==", + "requires": { + "@babel/helper-validator-identifier": "^7.18.6", + "to-fast-properties": "^2.0.0" + }, + "dependencies": { + "@babel/helper-validator-identifier": { + "version": "7.18.6", + "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.18.6.tgz", + "integrity": "sha512-MmetCkz9ej86nJQV+sFCxoGGrUbU3q02kgLciwkrt9QqEB7cP39oKEY0PakknEO0Gu20SskMRi+AYZ3b1TpN9g==" + } + } + }, + "@colors/colors": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/@colors/colors/-/colors-1.5.0.tgz", + "integrity": "sha512-ooWCrlZP11i8GImSjTHYHLkvFDP48nS4+204nGb1RiX/WXYHmJA2III9/e2DWVabCESdW7hBAEzHRqUn9OUVvQ==", + "dev": true + }, + "@cspotcode/source-map-support": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/@cspotcode/source-map-support/-/source-map-support-0.8.1.tgz", + "integrity": "sha512-IchNf6dN4tHoMFIn/7OE8LWZ19Y6q/67Bmf6vnGREv8RSbBVb9LPJxEcnwrcwX6ixSvaiGoomAUvu4YSxXrVgw==", "dev": true, "requires": { - "array-flatten": "^1.0.0", - "as-array": "^1.0.0", - "lodash.isarguments": "^3.0.0", - "lodash.isobject": "^3.0.0" + "@jridgewell/trace-mapping": "0.3.9" }, "dependencies": { - "array-flatten": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", - "integrity": "sha1-ml9pkFGx5wczKPKgCJaLZOopVdI=", - "dev": true - }, - "as-array": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/as-array/-/as-array-1.0.0.tgz", - "integrity": "sha1-KKbu6qVynx9OyiBH316d4avaDtE=", + "@jridgewell/trace-mapping": { + "version": "0.3.9", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.9.tgz", + "integrity": "sha512-3Belt6tdc8bPgAtbcmdtNJlirVoTmEb5e2gC94PnkwEW9jI6CAHUeoG85tjWP5WquqfavoMtMwiG4P926ZKKuQ==", "dev": true, "requires": { - "lodash.isarguments": "2.4.x", - "lodash.isobject": "^2.4.1", - "lodash.values": "^2.4.1" - }, - "dependencies": { - "lodash.isarguments": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-2.4.1.tgz", - "integrity": "sha1-STGpwIJTrfCRrnyhkiWKlzh27Mo=", - "dev": true - }, - "lodash.isobject": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", - "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", - "dev": true, - "requires": { - "lodash._objecttypes": "~2.4.1" - } - } + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } - }, - "lodash.isobject": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-3.0.2.tgz", - "integrity": "sha1-PI+41bW/S/kK4G4U8qUwpO2TXh0=", - "dev": true } } }, - "flatted": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/flatted/-/flatted-2.0.2.tgz", - "integrity": "sha512-r5wGx7YeOwNWNlCA0wQ86zKyDLMQr+/RB8xy74M4hTphfmjlijTSSXGuH8rnvKZnfT9i+75zmd8jcKdMR4O6jA==", - "dev": true - }, - "flush-write-stream": { + "@csstools/postcss-color-function": { "version": "1.1.1", - "resolved": "https://registry.npmjs.org/flush-write-stream/-/flush-write-stream-1.1.1.tgz", - "integrity": "sha512-3Z4XhFZ3992uIq0XOqb9AreonueSYphE6oYbpt5+3u06JWklbsPkNv3ZKkP9Bz/r+1MWCaMoSQ28P85+1Yc77w==", + "resolved": "https://registry.npmjs.org/@csstools/postcss-color-function/-/postcss-color-function-1.1.1.tgz", + "integrity": "sha512-Bc0f62WmHdtRDjf5f3e2STwRAl89N2CLb+9iAwzrv4L2hncrbDwnQD9PCq0gtAt7pOI2leIV08HIBUd4jxD8cw==", "dev": true, "requires": { - "inherits": "^2.0.3", - "readable-stream": "^2.3.6" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" } }, - "fn.name": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/fn.name/-/fn.name-1.1.0.tgz", - "integrity": "sha512-GRnmB5gPyJpAhTQdSZTSp9uaPSvl09KoYcMQtsB9rQoOmzs9dH6ffeccH+Z+cv6P68Hu5bC6JjRh4Ah/mHSNRw==", - "dev": true - }, - "follow-redirects": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.13.1.tgz", - "integrity": "sha512-SSG5xmZh1mkPGyKzjZP8zLjltIfpW32Y5QpdNJyjcfGxK3qo3NDDkZOZSFiGn1A6SclQxY9GzEwAHQ3dmYRWpg==", - "dev": true + "@csstools/postcss-font-format-keywords": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-font-format-keywords/-/postcss-font-format-keywords-1.0.1.tgz", + "integrity": "sha512-ZgrlzuUAjXIOc2JueK0X5sZDjCtgimVp/O5CEqTcs5ShWBa6smhWYbS0x5cVc/+rycTDbjjzoP0KTDnUneZGOg==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } }, - "for-in": { + "@csstools/postcss-hwb-function": { "version": "1.0.2", - "resolved": "https://registry.npmjs.org/for-in/-/for-in-1.0.2.tgz", - "integrity": "sha1-gQaNKVqBQuwKxybG4iAMMPttXoA=", - "dev": true + "resolved": "https://registry.npmjs.org/@csstools/postcss-hwb-function/-/postcss-hwb-function-1.0.2.tgz", + "integrity": "sha512-YHdEru4o3Rsbjmu6vHy4UKOXZD+Rn2zmkAmLRfPet6+Jz4Ojw8cbWxe1n42VaXQhD3CQUXXTooIy8OkVbUcL+w==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } }, - "forever-agent": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", - "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", - "dev": true + "@csstools/postcss-ic-unit": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-ic-unit/-/postcss-ic-unit-1.0.1.tgz", + "integrity": "sha512-Ot1rcwRAaRHNKC9tAqoqNZhjdYBzKk1POgWfhN4uCOE47ebGcLRqXjKkApVDpjifL6u2/55ekkpnFcp+s/OZUw==", + "dev": true, + "requires": { + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" + } }, - "form-data": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", - "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", + "@csstools/postcss-is-pseudo-class": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/@csstools/postcss-is-pseudo-class/-/postcss-is-pseudo-class-2.0.7.tgz", + "integrity": "sha512-7JPeVVZHd+jxYdULl87lvjgvWldYu+Bc62s9vD/ED6/QTGjy0jy0US/f6BG53sVMTBJ1lzKZFpYmofBN9eaRiA==", "dev": true, "requires": { - "asynckit": "^0.4.0", - "combined-stream": "^1.0.6", - "mime-types": "^2.1.12" + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" } }, - "forwarded": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.1.2.tgz", - "integrity": "sha1-mMI9qxF1ZXuMBXPozszZGw/xjIQ=", - "dev": true + "@csstools/postcss-normalize-display-values": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-normalize-display-values/-/postcss-normalize-display-values-1.0.1.tgz", + "integrity": "sha512-jcOanIbv55OFKQ3sYeFD/T0Ti7AMXc9nM1hZWu8m/2722gOTxFg7xYu4RDLJLeZmPUVQlGzo4jhzvTUq3x4ZUw==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } }, - "fragment-cache": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/fragment-cache/-/fragment-cache-0.2.1.tgz", - "integrity": "sha1-QpD60n8T6Jvn8zeZxrxaCr//DRk=", + "@csstools/postcss-oklab-function": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-oklab-function/-/postcss-oklab-function-1.1.1.tgz", + "integrity": "sha512-nJpJgsdA3dA9y5pgyb/UfEzE7W5Ka7u0CX0/HIMVBNWzWemdcTH3XwANECU6anWv/ao4vVNLTMxhiPNZsTK6iA==", "dev": true, "requires": { - "map-cache": "^0.2.2" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" } }, - "fresh": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", - "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", - "dev": true + "@csstools/postcss-progressive-custom-properties": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/@csstools/postcss-progressive-custom-properties/-/postcss-progressive-custom-properties-1.3.0.tgz", + "integrity": "sha512-ASA9W1aIy5ygskZYuWams4BzafD12ULvSypmaLJT2jvQ8G0M3I8PRQhC0h7mG0Z3LI05+agZjqSR9+K9yaQQjA==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } }, - "from2": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/from2/-/from2-2.3.0.tgz", - "integrity": "sha1-i/tVAr3kpNNs/e6gB/zKIdfjgq8=", + "@csstools/postcss-stepped-value-functions": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/@csstools/postcss-stepped-value-functions/-/postcss-stepped-value-functions-1.0.1.tgz", + "integrity": "sha512-dz0LNoo3ijpTOQqEJLY8nyaapl6umbmDcgj4AD0lgVQ572b2eqA1iGZYTTWhrcrHztWDDRAX2DGYyw2VBjvCvQ==", "dev": true, "requires": { - "inherits": "^2.0.1", - "readable-stream": "^2.0.0" + "postcss-value-parser": "^4.2.0" } }, - "fs-constants": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs-constants/-/fs-constants-1.0.0.tgz", - "integrity": "sha512-y6OAwoSIf7FyjMIv94u+b5rdheZEjzR63GTyZJm5qh4Bi+2YgwLCcI/fPFZkL5PSixOt6ZNKm+w+Hfp/Bciwow==", + "@csstools/postcss-unset-value": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/@csstools/postcss-unset-value/-/postcss-unset-value-1.0.2.tgz", + "integrity": "sha512-c8J4roPBILnelAsdLr4XOAR/GsTm0GJi4XpcfvoWk3U6KiTCqiFYc63KhRMQQX35jYMp4Ao8Ij9+IZRgMfJp1g==", "dev": true }, - "fs-extra": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-4.0.2.tgz", - "integrity": "sha1-+RcExT0bRh+JNFKwwwfZmXZHq2s=", + "@csstools/selector-specificity": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/@csstools/selector-specificity/-/selector-specificity-2.0.2.tgz", + "integrity": "sha512-IkpVW/ehM1hWKln4fCA3NzJU8KwD+kIOvPZA4cqxoJHtE21CCzjyp+Kxbu0i5I4tBNOlXPL9mjwnWlL0VEG4Fg==", + "dev": true + }, + "@discoveryjs/json-ext": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/@discoveryjs/json-ext/-/json-ext-0.5.7.tgz", + "integrity": "sha512-dBVuXR082gk3jsFp7Rd/JI4kytwGHecnCoTtXFb7DB6CNHp4rg5k1bhg0nWdLGLnOV71lmDzGQaLMy8iPLY0pw==", + "dev": true + }, + "@gar/promisify": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/@gar/promisify/-/promisify-1.1.3.tgz", + "integrity": "sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==", + "dev": true + }, + "@istanbuljs/load-nyc-config": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@istanbuljs/load-nyc-config/-/load-nyc-config-1.1.0.tgz", + "integrity": "sha512-VjeHSlIzpv/NyD3N0YuHfXOPDIixcA1q2ZV98wsMqcYlPmv2n3Yb2lYP9XMElnaFVXg5A7YLTeLu6V84uQDjmQ==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" + "camelcase": "^5.3.1", + "find-up": "^4.1.0", + "get-package-type": "^0.1.0", + "js-yaml": "^3.13.1", + "resolve-from": "^5.0.0" } }, - "fs-minipass": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", - "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", - "dev": true, + "@istanbuljs/schema": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/@istanbuljs/schema/-/schema-0.1.3.tgz", + "integrity": "sha512-ZXRY4jNvVgSVQ8DL3LTcakaAtXwTVUxE81hslsyD2AtoXW/wVob10HkOJ1X/pAlcI7D+2YoZKg5do8G/w6RYgA==", + "dev": true + }, + "@jridgewell/gen-mapping": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/@jridgewell/gen-mapping/-/gen-mapping-0.1.1.tgz", + "integrity": "sha512-sQXCasFk+U8lWYEe66WxRDOE9PjVz4vSM51fTu3Hw+ClTpUSQb718772vH3pyS5pShp6lvQM7SxgIDXXXmOX7w==", "requires": { - "minipass": "^3.0.0" + "@jridgewell/set-array": "^1.0.0", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "fs-write-stream-atomic": { - "version": "1.0.10", - "resolved": "https://registry.npmjs.org/fs-write-stream-atomic/-/fs-write-stream-atomic-1.0.10.tgz", - "integrity": "sha1-tH31NJPvkR33VzHnCp3tAYnbQMk=", - "dev": true, + "@jridgewell/resolve-uri": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/@jridgewell/resolve-uri/-/resolve-uri-3.1.0.tgz", + "integrity": "sha512-F2msla3tad+Mfht5cJq7LSXcdudKTWCVYUgw6pLFOOHSTtZlj6SWNYAp+AhuqLmWdBO2X5hPrLcu8cVP8fy28w==" + }, + "@jridgewell/set-array": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@jridgewell/set-array/-/set-array-1.1.2.tgz", + "integrity": "sha512-xnkseuNADM0gt2bs+BvhO0p78Mk762YnZdsuzFV018NoG1Sj1SCQvpSqa7XUaTam5vAGasABV9qXASMKnFMwMw==" + }, + "@jridgewell/sourcemap-codec": { + "version": "1.4.14", + "resolved": "https://registry.npmjs.org/@jridgewell/sourcemap-codec/-/sourcemap-codec-1.4.14.tgz", + "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==" + }, + "@jridgewell/trace-mapping": { + "version": "0.3.14", + "resolved": "https://registry.npmjs.org/@jridgewell/trace-mapping/-/trace-mapping-0.3.14.tgz", + "integrity": "sha512-bJWEfQ9lPTvm3SneWwRFVLzrh6nhjwqw7TUFFBEMzwvg7t7PCDenf2lDwqo4NQXzdpgBXyFgDWnQA+2vkruksQ==", "requires": { - "graceful-fs": "^4.1.2", - "iferr": "^0.1.5", - "imurmurhash": "^0.1.4", - "readable-stream": "1 || 2" + "@jridgewell/resolve-uri": "^3.0.3", + "@jridgewell/sourcemap-codec": "^1.4.10" } }, - "fs.realpath": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", - "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=", + "@leichtgewicht/ip-codec": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/@leichtgewicht/ip-codec/-/ip-codec-2.0.4.tgz", + "integrity": "sha512-Hcv+nVC0kZnQ3tD9GVu5xSMR4VVYOteQIr/hwFPVEvPdlXqgGEuRjiheChHgdM+JyqdgNcmzZOX/tnl0JOiI7A==", "dev": true }, - "fsevents": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", - "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", - "dev": true, - "optional": true + "@ngtools/webpack": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@ngtools/webpack/-/webpack-14.0.5.tgz", + "integrity": "sha512-fOHtOYfuQhMTcqOfASuH5z8LwEmIG8323yPTP528w9RM9bUr3JaoK1RNcVuLKSvAGRTvTfeykK3/Eri/YW1DvQ==", + "dev": true }, - "fstream": { - "version": "1.0.12", - "resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz", - "integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==", + "@nodelib/fs.scandir": { + "version": "2.1.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.scandir/-/fs.scandir-2.1.5.tgz", + "integrity": "sha512-vq24Bq3ym5HEQm2NKCr3yXDwjc7vTsEThRDnkp2DK9p1uqLR+DHurm/NOTo0KG7HYHU7eppKZj3MyqYuMBf62g==", "dev": true, "requires": { - "graceful-fs": "^4.1.2", - "inherits": "~2.0.0", - "mkdirp": ">=0.5 0", - "rimraf": "2" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - } + "@nodelib/fs.stat": "2.0.5", + "run-parallel": "^1.1.9" } }, - "function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "@nodelib/fs.stat": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/@nodelib/fs.stat/-/fs.stat-2.0.5.tgz", + "integrity": "sha512-RkhPPp2zrqDAQA/2jNhnztcPAlv64XdhIp7a7454A5ovI7Bukxgt7MX7udwAu3zg1DcpPU0rz3VV1SeaqvY4+A==", "dev": true }, - "fuzzy": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", - "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=", - "dev": true + "@nodelib/fs.walk": { + "version": "1.2.8", + "resolved": "https://registry.npmjs.org/@nodelib/fs.walk/-/fs.walk-1.2.8.tgz", + "integrity": "sha512-oGB+UxlgWcgQkgwo8GcEGwemoTFt3FIO9ababBmaGwXIoBKZ+GTy0pP185beGg7Llih/NSHSV2XAs1lnznocSg==", + "dev": true, + "requires": { + "@nodelib/fs.scandir": "2.1.5", + "fastq": "^1.6.0" + } }, - "gauge": { - "version": "2.7.4", - "resolved": "https://registry.npmjs.org/gauge/-/gauge-2.7.4.tgz", - "integrity": "sha1-LANAXHU4w51+s3sxcCLjJfsBi/c=", + "@npmcli/fs": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-2.1.0.tgz", + "integrity": "sha512-DmfBvNXGaetMxj9LTp8NAN9vEidXURrf5ZTslQzEAi/6GbW+4yjaLFQc6Tue5cpZ9Frlk4OBo/Snf1Bh/S7qTQ==", "dev": true, - "optional": true, "requires": { - "aproba": "^1.0.3", - "console-control-strings": "^1.0.0", - "has-unicode": "^2.0.0", - "object-assign": "^4.1.0", - "signal-exit": "^3.0.0", - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1", - "wide-align": "^1.1.0" + "@gar/promisify": "^1.1.3", + "semver": "^7.3.5" }, "dependencies": { - "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, - "optional": true, "requires": { - "number-is-nan": "^1.0.0" + "yallist": "^4.0.0" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, - "optional": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "lru-cache": "^6.0.0" } } } }, - "gaxios": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-4.1.0.tgz", - "integrity": "sha512-vb0to8xzGnA2qcgywAjtshOKKVDf2eQhJoiL6fHhgW5tVN7wNk7egnYIO9zotfn3lQ3De1VPdf7V5/BWfCtCmg==", + "@npmcli/git": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/@npmcli/git/-/git-3.0.1.tgz", + "integrity": "sha512-UU85F/T+F1oVn3IsB/L6k9zXIMpXBuUBE25QDH0SsURwT6IOBqkC7M16uqo2vVZIyji3X1K4XH9luip7YekH1A==", + "dev": true, "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" + "@npmcli/promise-spawn": "^3.0.0", + "lru-cache": "^7.4.4", + "mkdirp": "^1.0.4", + "npm-pick-manifest": "^7.0.0", + "proc-log": "^2.0.0", + "promise-inflight": "^1.0.1", + "promise-retry": "^2.0.1", + "semver": "^7.3.5", + "which": "^2.0.2" }, "dependencies": { - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", - "requires": { - "debug": "4" - } + "lru-cache": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", + "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", + "dev": true }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "lru-cache": "^6.0.0" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + } } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" - } - } - }, - "gcp-metadata": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-4.2.1.tgz", - "integrity": "sha512-tSk+REe5iq/N+K+SK1XjZJUrFPuDqGZVzCy2vocIHIGmPlTGsa8owXMJwGkrXr73NO0AzhPW4MF2DEHz7P2AVw==", - "requires": { - "gaxios": "^4.0.0", - "json-bigint": "^1.0.0" - } - }, - "genfun": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/genfun/-/genfun-5.0.0.tgz", - "integrity": "sha512-KGDOARWVga7+rnB3z9Sd2Letx515owfk0hSxHGuqjANb1M+x2bGZGqHLiozPsYMdM2OubeMni/Hpwmjq6qIUhA==", - "dev": true - }, - "get-caller-file": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.3.tgz", - "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", - "dev": true - }, - "get-intrinsic": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.0.2.tgz", - "integrity": "sha512-aeX0vrFm21ILl3+JpFFRNe9aUvp6VFZb2/CTbgLb8j75kOhvoNYjt9d8KA/tJG4gSo8nzEDedRl0h7vDmBYRVg==", - "dev": true, - "requires": { - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1" - } - }, - "get-stream": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-4.1.0.tgz", - "integrity": "sha512-GMat4EJ5161kIy2HevLlr4luNjBgvmj413KaQA7jt4V8B4RDsfpHk7WQ9GVqfYyyx8OS/L66Kox+rJRNklLK7w==", - "dev": true, - "requires": { - "pump": "^3.0.0" - } - }, - "get-value": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/get-value/-/get-value-2.0.6.tgz", - "integrity": "sha1-3BXKHGcjh8p2vTesCjlbogQqLCg=", - "dev": true - }, - "getpass": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", - "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", - "dev": true, - "requires": { - "assert-plus": "^1.0.0" + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } + } } }, - "glob": { - "version": "7.1.5", - "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", - "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "@npmcli/installed-package-contents": { + "version": "1.0.7", + "resolved": "https://registry.npmjs.org/@npmcli/installed-package-contents/-/installed-package-contents-1.0.7.tgz", + "integrity": "sha512-9rufe0wnJusCQoLpV9ZPKIVP55itrM5BxOXs10DmdbRfgWtHy1LDyskbwRnBghuB0PrF7pNPOqREVtpz4HqzKw==", "dev": true, "requires": { - "fs.realpath": "^1.0.0", - "inflight": "^1.0.4", - "inherits": "2", - "minimatch": "^3.0.4", - "once": "^1.3.0", - "path-is-absolute": "^1.0.0" + "npm-bundled": "^1.1.1", + "npm-normalize-package-bin": "^1.0.1" } }, - "glob-parent": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-3.1.0.tgz", - "integrity": "sha1-nmr2KZ2NO9K9QEMIMr0RPfkGxa4=", + "@npmcli/move-file": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-2.0.0.tgz", + "integrity": "sha512-UR6D5f4KEGWJV6BGPH3Qb2EtgH+t+1XQ1Tt85c7qicN6cezzuHPdZwwAxqZr4JLtnQu0LZsTza/5gmNmSl8XLg==", "dev": true, "requires": { - "is-glob": "^3.1.0", - "path-dirname": "^1.0.0" + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" }, "dependencies": { - "is-glob": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-3.1.0.tgz", - "integrity": "sha1-e6WuJCF4BKxwcHuWkiVnSGzD6Eo=", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "is-extglob": "^2.1.0" + "glob": "^7.1.3" } } } }, - "glob-slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/glob-slash/-/glob-slash-1.0.0.tgz", - "integrity": "sha1-/lLvpDMjP3Si/mTHq7m8hIICq5U=", + "@npmcli/node-gyp": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/node-gyp/-/node-gyp-2.0.0.tgz", + "integrity": "sha512-doNI35wIe3bBaEgrlPfdJPaCpUR89pJWep4Hq3aRdh6gKazIVWfs0jHttvSSoq47ZXgC7h73kDsUl8AoIQUB+A==", "dev": true }, - "glob-slasher": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/glob-slasher/-/glob-slasher-1.0.1.tgz", - "integrity": "sha1-dHoOW7IiZC7hDT4FRD4QlJPLD44=", + "@npmcli/promise-spawn": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/@npmcli/promise-spawn/-/promise-spawn-3.0.0.tgz", + "integrity": "sha512-s9SgS+p3a9Eohe68cSI3fi+hpcZUmXq5P7w0kMlAsWVtR7XbK3ptkZqKT2cK1zLDObJ3sR+8P59sJE0w/KTL1g==", "dev": true, "requires": { - "glob-slash": "^1.0.0", - "lodash.isobject": "^2.4.1", - "toxic": "^1.0.0" + "infer-owner": "^1.0.4" } }, - "global-dirs": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.1.0.tgz", - "integrity": "sha512-MG6kdOUh/xBnyo9cJFeIKkLEc1AyFq42QTU4XiX51i2NEdxLxLWXIjEjmqKeSuKR7pAZjTqUVoT2b2huxVLgYQ==", + "@npmcli/run-script": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/@npmcli/run-script/-/run-script-3.0.3.tgz", + "integrity": "sha512-ZXL6qgC5NjwfZJ2nET+ZSLEz/PJgJ/5CU90C2S66dZY4Jw73DasS4ZCXuy/KHWYP0imjJ4VtA+Gebb5BxxKp9Q==", "dev": true, "requires": { - "ini": "1.3.7" + "@npmcli/node-gyp": "^2.0.0", + "@npmcli/promise-spawn": "^3.0.0", + "node-gyp": "^8.4.1", + "read-package-json-fast": "^2.0.3" }, "dependencies": { - "ini": { - "version": "1.3.7", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.7.tgz", - "integrity": "sha512-iKpRpXP+CrP2jyrxvg1kMUpXDyRUFDWurxbnVT1vQPx+Wz9uCYsMIqYuSBLV+PAaZG/d7kRLKRFc9oDMsH+mFQ==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true - } - } - }, - "globals": { - "version": "11.12.0", - "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", - "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==", - "dev": true - }, - "globby": { - "version": "7.1.1", - "resolved": "https://registry.npmjs.org/globby/-/globby-7.1.1.tgz", - "integrity": "sha1-+yzP+UAfhgCUXfral0QMypcrhoA=", - "dev": true, - "requires": { - "array-union": "^1.0.1", - "dir-glob": "^2.0.0", - "glob": "^7.1.2", - "ignore": "^3.3.5", - "pify": "^3.0.0", - "slash": "^1.0.0" - }, - "dependencies": { - "pify": { + }, + "are-we-there-yet": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/are-we-there-yet/-/are-we-there-yet-3.0.0.tgz", + "integrity": "sha512-0GWpv50YSOcLXaN6/FAKY3vfRbllXWV2xvfA/oKJF8pzFhWXPV+yjhJXDBbjscDYowv7Yw1A3uigpzn5iEGTyw==", + "dev": true, + "requires": { + "delegates": "^1.0.0", + "readable-stream": "^3.6.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "gauge": { + "version": "4.0.4", + "resolved": "https://registry.npmjs.org/gauge/-/gauge-4.0.4.tgz", + "integrity": "sha512-f9m+BEN5jkg6a0fZjleidjN51VE1X+mPFQ2DJ0uv1V39oCLCbsGe6yjbBnp7eK7z/+GAon99a3nHuqbuuthyPg==", + "dev": true, + "requires": { + "aproba": "^1.0.3 || ^2.0.0", + "color-support": "^1.1.3", + "console-control-strings": "^1.1.0", + "has-unicode": "^2.0.1", + "signal-exit": "^3.0.7", + "string-width": "^4.2.3", + "strip-ansi": "^6.0.1", + "wide-align": "^1.1.5" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "is-fullwidth-code-point": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true - } - } - }, - "google-auth-library": { - "version": "6.1.6", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-6.1.6.tgz", - "integrity": "sha512-Q+ZjUEvLQj/lrVHF/IQwRo6p3s8Nc44Zk/DALsN+ac3T4HY/g/3rrufkgtl+nZ1TW7DNAw5cTChdVp4apUXVgQ==", - "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^4.0.0", - "gcp-metadata": "^4.2.0", - "gtoken": "^5.0.4", - "jws": "^4.0.0", - "lru-cache": "^6.0.0" - }, - "dependencies": { - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==" }, "lru-cache": { "version": "6.0.0", "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "requires": { - "yallist": "^4.0.0" - } - } - } - }, - "google-gax": { - "version": "1.12.0", - "resolved": "https://registry.npmjs.org/google-gax/-/google-gax-1.12.0.tgz", - "integrity": "sha512-BeeoxVO6y9K20gUsexUwptutd0PfrTItrA02JWwwstlBIOAcvgFp86MHWufQsnrkPVhxBjHXq65aIkSejtJjDg==", - "dev": true, - "requires": { - "@grpc/grpc-js": "^0.6.12", - "@grpc/proto-loader": "^0.5.1", - "@types/long": "^4.0.0", - "abort-controller": "^3.0.0", - "duplexify": "^3.6.0", - "google-auth-library": "^5.0.0", - "is-stream-ended": "^0.1.4", - "lodash.at": "^4.6.0", - "lodash.has": "^4.5.2", - "node-fetch": "^2.6.0", - "protobufjs": "^6.8.8", - "retry-request": "^4.0.0", - "semver": "^6.0.0", - "walkdir": "^0.4.0" - }, - "dependencies": { - "@grpc/grpc-js": { - "version": "0.6.18", - "resolved": "https://registry.npmjs.org/@grpc/grpc-js/-/grpc-js-0.6.18.tgz", - "integrity": "sha512-uAzv/tM8qpbf1vpx1xPMfcUMzbfdqJtdCYAqY/LsLeQQlnTb4vApylojr+wlCyr7bZeg3AFfHvtihnNOQQt/nA==", "dev": true, "requires": { - "semver": "^6.2.0" + "yallist": "^4.0.0" } }, - "agent-base": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", - "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { - "debug": "4" + "minipass": "^3.0.0", + "yallist": "^4.0.0" } }, - "arrify": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/arrify/-/arrify-2.0.1.tgz", - "integrity": "sha512-3duEwti880xqi4eAMN8AyR4a0ByT90zoYdLlevfrvU43vb0YZwZVfxOgxWrLXXXpyugL0hNZc9G6BiB5B3nUug==", + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "gaxios": { - "version": "2.3.4", - "resolved": "https://registry.npmjs.org/gaxios/-/gaxios-2.3.4.tgz", - "integrity": "sha512-US8UMj8C5pRnao3Zykc4AAVr+cffoNKRTg9Rsf2GiuZCW69vgJj38VK2PzlPuQU73FZ/nTk9/Av6/JGcE1N9vA==", + "node-gyp": { + "version": "8.4.1", + "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-8.4.1.tgz", + "integrity": "sha512-olTJRgUtAb/hOXG0E93wZDs5YiJlgbXxTwQAFHyNlRsXQnYzUaF2aGgujZbw+hR8aF4ZG/rST57bWMWD16jr9w==", "dev": true, "requires": { - "abort-controller": "^3.0.0", - "extend": "^3.0.2", - "https-proxy-agent": "^5.0.0", - "is-stream": "^2.0.0", - "node-fetch": "^2.3.0" + "env-paths": "^2.2.0", + "glob": "^7.1.4", + "graceful-fs": "^4.2.6", + "make-fetch-happen": "^9.1.0", + "nopt": "^5.0.0", + "npmlog": "^6.0.0", + "rimraf": "^3.0.2", + "semver": "^7.3.5", + "tar": "^6.1.2", + "which": "^2.0.2" } }, - "gcp-metadata": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/gcp-metadata/-/gcp-metadata-3.5.0.tgz", - "integrity": "sha512-ZQf+DLZ5aKcRpLzYUyBS3yo3N0JSa82lNDO8rj3nMSlovLcz2riKFBsYgDzeXcv75oo5eqB2lx+B14UvPoCRnA==", + "npmlog": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-6.0.2.tgz", + "integrity": "sha512-/vBvz5Jfr9dT/aFWd0FIRf+T/Q2WBsLENygUaFUqstqsycmZAP/t5BvFJTK0viFmSUxiUKTUplWy5vt+rvKIxg==", "dev": true, "requires": { - "gaxios": "^2.1.0", - "json-bigint": "^0.3.0" + "are-we-there-yet": "^3.0.0", + "console-control-strings": "^1.1.0", + "gauge": "^4.0.3", + "set-blocking": "^2.0.0" } }, - "google-auth-library": { - "version": "5.10.1", - "resolved": "https://registry.npmjs.org/google-auth-library/-/google-auth-library-5.10.1.tgz", - "integrity": "sha512-rOlaok5vlpV9rSiUu5EpR0vVpc+PhN62oF4RyX/6++DG1VsaulAFEMlDYBLjJDDPI6OcNOCGAKy9UVB/3NIDXg==", + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", "dev": true, "requires": { - "arrify": "^2.0.0", - "base64-js": "^1.3.0", - "ecdsa-sig-formatter": "^1.0.11", - "fast-text-encoding": "^1.0.0", - "gaxios": "^2.1.0", - "gcp-metadata": "^3.4.0", - "gtoken": "^4.1.0", - "jws": "^4.0.0", - "lru-cache": "^5.0.0" + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" } }, - "google-p12-pem": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-2.0.4.tgz", - "integrity": "sha512-S4blHBQWZRnEW44OcR7TL9WR+QCqByRvhNDZ/uuQfpxywfupikf/miba8js1jZi6ZOGv5slgSuoshCWh6EMDzg==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "node-forge": "^0.9.0" + "glob": "^7.1.3" } }, - "gtoken": { - "version": "4.1.4", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-4.1.4.tgz", - "integrity": "sha512-VxirzD0SWoFUo5p8RDP8Jt2AGyOmyYcT/pOUgDKJCK+iSw0TMqwrVfY37RXTNmoKwrzmDHSk0GMT9FsgVmnVSA==", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "gaxios": "^2.1.0", - "google-p12-pem": "^2.0.0", - "jws": "^4.0.0", - "mime": "^2.2.0" + "lru-cache": "^6.0.0" } }, - "https-proxy-agent": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.0.tgz", - "integrity": "sha512-EkYm5BcKUGiduxzSt3Eppko+PiNWNEpa4ySk9vTC6wDsQJW9rHSa+UhGNJoRYp7bz6Ht1eaRIa6QaJqO5rCFbA==", + "signal-exit": { + "version": "3.0.7", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "agent-base": "6", - "debug": "4" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", - "dev": true + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } }, - "json-bigint": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-0.3.1.tgz", - "integrity": "sha512-DGWnSzmusIreWlEupsUelHrhwmPPE+FiQvg+drKfk2p+bdEYa5mp4PJ8JsCWqae0M2jQNb0HPvnwvf1qOTThzQ==", + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { - "bignumber.js": "^9.0.0" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" } }, - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" + } }, - "node-forge": { - "version": "0.9.2", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.9.2.tgz", - "integrity": "sha512-naKSScof4Wn+aoHU6HBsifh92Zeicm1GDQKd1vp3Y/kOi8ub0DozCa9KpvYNCXslFHYRmLNiqRopGdTGwNLpNw==", - "dev": true + "wide-align": { + "version": "1.1.5", + "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.5.tgz", + "integrity": "sha512-eDMORYaPNZ4sQIuuYPDHdQvf4gyCF9rEEV/yPxGfwPkRodwEgiMUUXTx/dex+Me0wxx53S+NgUHaP7y3MGlDmg==", + "dev": true, + "requires": { + "string-width": "^1.0.2 || 2 || 3 || 4" + } } } }, - "google-p12-pem": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/google-p12-pem/-/google-p12-pem-3.0.3.tgz", - "integrity": "sha512-wS0ek4ZtFx/ACKYF3JhyGe5kzH7pgiQ7J5otlumqR9psmWMYc+U9cErKlCYVYHoUaidXHdZ2xbo34kB+S+24hA==", - "requires": { - "node-forge": "^0.10.0" - } - }, - "got": { - "version": "9.6.0", - "resolved": "https://registry.npmjs.org/got/-/got-9.6.0.tgz", - "integrity": "sha512-R7eWptXuGYxwijs0eV+v3o6+XH1IqVK8dJOEecQfTmkncw9AV4dcw/Dhxi8MdlqPthxxpZyizMzyg8RTmEsG+Q==", + "@schematics/angular": { + "version": "14.0.5", + "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-14.0.5.tgz", + "integrity": "sha512-xZjXHLn1djIvKJFiOfspTrzAomtDGRqGgsOo06glBkC+cqKCyyXU1Hgxnd3S5V+8a6TpYgX25AXihtE3BeCJzg==", "dev": true, "requires": { - "@sindresorhus/is": "^0.14.0", - "@szmarczak/http-timer": "^1.1.2", - "cacheable-request": "^6.0.0", - "decompress-response": "^3.3.0", - "duplexer3": "^0.1.4", - "get-stream": "^4.1.0", - "lowercase-keys": "^1.0.1", - "mimic-response": "^1.0.1", - "p-cancelable": "^1.0.0", - "to-readable-stream": "^1.0.0", - "url-parse-lax": "^3.0.0" + "@angular-devkit/core": "14.0.5", + "@angular-devkit/schematics": "14.0.5", + "jsonc-parser": "3.0.0" } }, - "graceful-fs": { - "version": "4.2.4", - "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", - "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", + "@tootallnate/once": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-1.1.2.tgz", + "integrity": "sha512-RbzJvlNzmRq5c3O09UipeuXno4tA1FE6ikOjxZK0tuxVv3412l64l5t1W5pj4+rJq9vpkm/kwiR07aZXnsKPxw==", "dev": true }, - "gtoken": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/gtoken/-/gtoken-5.2.1.tgz", - "integrity": "sha512-OY0BfPKe3QnMsY9MzTHTSKn+Vl2l1CcLe6BwDEQj00mbbkl5nyQ/7EUREstg4fQNZ8iYE7br4JJ7TdKeDOPWmw==", - "requires": { - "gaxios": "^4.0.0", - "google-p12-pem": "^3.0.3", - "jws": "^4.0.0" - } - }, - "handle-thing": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", - "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", + "@tsconfig/node10": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/@tsconfig/node10/-/node10-1.0.9.tgz", + "integrity": "sha512-jNsYVVxU8v5g43Erja32laIDHXeoNvFEpX33OK4d6hljo3jDhCBDhx5dhCCTMWUojscpAagGiRkBKxpdl9fxqA==", "dev": true }, - "har-schema": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", - "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", + "@tsconfig/node12": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/@tsconfig/node12/-/node12-1.0.11.tgz", + "integrity": "sha512-cqefuRsh12pWyGsIoBKJA9luFu3mRxCA+ORZvA4ktLSzIuCUtWVxGIuXigEwO5/ywWFMZ2QEGKWvkZG1zDMTag==", "dev": true }, - "har-validator": { - "version": "5.1.5", - "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", - "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", - "dev": true, - "requires": { - "ajv": "^6.12.3", - "har-schema": "^2.0.0" - }, - "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" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - } - } - }, - "has": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", - "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", - "dev": true, - "requires": { - "function-bind": "^1.1.1" - } - }, - "has-ansi": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", - "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", - "dev": true, - "requires": { - "ansi-regex": "^2.0.0" - } - }, - "has-binary2": { + "@tsconfig/node14": { "version": "1.0.3", - "resolved": "https://registry.npmjs.org/has-binary2/-/has-binary2-1.0.3.tgz", - "integrity": "sha512-G1LWKhDSvhGeAQ8mPVQlqNcOB2sJdwATtZKl2pDKKHfpf/rYj24lkinxf69blJbnsvtqqNU+L3SL50vzZhXOnw==", - "dev": true, - "requires": { - "isarray": "2.0.1" - }, - "dependencies": { - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - } - } - }, - "has-cors": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/has-cors/-/has-cors-1.1.0.tgz", - "integrity": "sha1-XkdHk/fqmEPRu5nCPu9J/xJv/zk=", + "resolved": "https://registry.npmjs.org/@tsconfig/node14/-/node14-1.0.3.tgz", + "integrity": "sha512-ysT8mhdixWK6Hw3i1V2AeRqZ5WfXg1G43mqoYlM2nc6388Fq5jcXyr5mRsqViLx/GJYdoL0bfXD8nmF+Zn/Iow==", "dev": true }, - "has-flag": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", - "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=", + "@tsconfig/node16": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/@tsconfig/node16/-/node16-1.0.3.tgz", + "integrity": "sha512-yOlFc+7UtL/89t2ZhjPvvB/DeAr3r+Dq58IgzsFkOAvVC6NMJXmCGjbptdXdR9qsX7pKcTL+s87FtYREi2dEEQ==", "dev": true }, - "has-symbols": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", - "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==", - "dev": true + "@types/body-parser": { + "version": "1.19.2", + "resolved": "https://registry.npmjs.org/@types/body-parser/-/body-parser-1.19.2.tgz", + "integrity": "sha512-ALYone6pm6QmwZoAgeyNksccT9Q4AWZQ6PvfwR37GT6r6FWUPguq6sUmNGSMV2Wr761oQoBxwGGa6DR5o1DC9g==", + "dev": true, + "requires": { + "@types/connect": "*", + "@types/node": "*" + } }, - "has-unicode": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", - "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "@types/bonjour": { + "version": "3.5.10", + "resolved": "https://registry.npmjs.org/@types/bonjour/-/bonjour-3.5.10.tgz", + "integrity": "sha512-p7ienRMiS41Nu2/igbJxxLDWrSZ0WxM8UQgCeO9KhoVF7cOVFkrKsiDr1EsJIla8vV3oEEjGcz11jc5yimhzZw==", "dev": true, - "optional": true + "requires": { + "@types/node": "*" + } }, - "has-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-1.0.0.tgz", - "integrity": "sha1-GLKB2lhbHFxR3vJMkw7SmgvmsXc=", + "@types/component-emitter": { + "version": "1.2.11", + "resolved": "https://registry.npmjs.org/@types/component-emitter/-/component-emitter-1.2.11.tgz", + "integrity": "sha512-SRXjM+tfsSlA9VuG8hGO2nft2p8zjXCK1VcC6N4NXbBbYbSia9kzCChYQajIjzIqOOOuh5Ock6MmV2oux4jDZQ==", + "dev": true + }, + "@types/connect": { + "version": "3.4.35", + "resolved": "https://registry.npmjs.org/@types/connect/-/connect-3.4.35.tgz", + "integrity": "sha512-cdeYyv4KWoEgpBISTxWvqYsVy444DOqehiF3fM3ne10AmJ62RSyNkUnxMJXHQWRQQX2eR94m5y1IZyDwBjV9FQ==", "dev": true, "requires": { - "get-value": "^2.0.6", - "has-values": "^1.0.0", - "isobject": "^3.0.0" + "@types/node": "*" } }, - "has-values": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-1.0.0.tgz", - "integrity": "sha1-lbC2P+whRmGab+V/51Yo1aOe/k8=", + "@types/connect-history-api-fallback": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/@types/connect-history-api-fallback/-/connect-history-api-fallback-1.3.5.tgz", + "integrity": "sha512-h8QJa8xSb1WD4fpKBDcATDNGXghFj6/3GRWG6dhmRcu0RX1Ubasur2Uvx5aeEwlf0MwblEC2bMzzMQntxnw/Cw==", "dev": true, "requires": { - "is-number": "^3.0.0", - "kind-of": "^4.0.0" - }, - "dependencies": { - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "kind-of": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-4.0.0.tgz", - "integrity": "sha1-IIE989cSkosgc3hpGkUGb65y3Vc=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "@types/express-serve-static-core": "*", + "@types/node": "*" } }, - "has-yarn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/has-yarn/-/has-yarn-2.1.0.tgz", - "integrity": "sha512-UqBRqi4ju7T+TqGNdqAO0PaSVGsDGJUBQvk9eUWNGRY1CFGDzYhLWoM7JQEemnlvVcv/YEmc2wNW8BC24EnUsw==", + "@types/cookie": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/@types/cookie/-/cookie-0.4.1.tgz", + "integrity": "sha512-XW/Aa8APYr6jSVVA1y/DEIZX0/GMKLEVekNG727R8cs56ahETkRAy/3DR7+fJyh7oUgGwNQaRfXCun0+KbWY7Q==", "dev": true }, - "hash-base": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/hash-base/-/hash-base-3.1.0.tgz", - "integrity": "sha512-1nmYp/rhMDiE7AYkDw+lLwlAzz0AntGIe51F3RfFfEqyQ3feY2eI/NcwC6umIQVOASPMsWJLJScWKSSvzL9IVA==", + "@types/cors": { + "version": "2.8.12", + "resolved": "https://registry.npmjs.org/@types/cors/-/cors-2.8.12.tgz", + "integrity": "sha512-vt+kDhq/M2ayberEtJcIN/hxXy1Pk+59g2FV/ZQceeaTyCtCucjL2Q7FXlFjtWn4n15KCr1NE2lNNFhp0lEThw==", + "dev": true + }, + "@types/eslint": { + "version": "8.4.5", + "resolved": "https://registry.npmjs.org/@types/eslint/-/eslint-8.4.5.tgz", + "integrity": "sha512-dhsC09y1gpJWnK+Ff4SGvCuSnk9DaU0BJZSzOwa6GVSg65XtTugLBITDAAzRU5duGBoXBHpdR/9jHGxJjNflJQ==", "dev": true, "requires": { - "inherits": "^2.0.4", - "readable-stream": "^3.6.0", - "safe-buffer": "^5.2.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - }, - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", - "dev": true - } + "@types/estree": "*", + "@types/json-schema": "*" } }, - "hash.js": { - "version": "1.1.7", - "resolved": "https://registry.npmjs.org/hash.js/-/hash.js-1.1.7.tgz", - "integrity": "sha512-taOaskGt4z4SOANNseOviYDvjEJinIkRgmp7LbKP2YTTmVxWBl87s/uzK9r+44BclBSp2X7K1hqeNfz9JbBeXA==", + "@types/eslint-scope": { + "version": "3.7.4", + "resolved": "https://registry.npmjs.org/@types/eslint-scope/-/eslint-scope-3.7.4.tgz", + "integrity": "sha512-9K4zoImiZc3HlIp6AVUDE4CWYx22a+lhSZMYNpbjW04+YF0KWj4pJXnEMjdnFTiQibFFmElcsasJXDbdI/EPhA==", "dev": true, "requires": { - "inherits": "^2.0.3", - "minimalistic-assert": "^1.0.1" + "@types/eslint": "*", + "@types/estree": "*" } }, - "hex-color-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/hex-color-regex/-/hex-color-regex-1.1.0.tgz", - "integrity": "sha512-l9sfDFsuqtOqKDsQdqrMRk0U85RZc0RtOR9yPI7mRVOa4FsR/BVnZ0shmQRM96Ji99kYZP/7hn1cedc1+ApsTQ==", + "@types/estree": { + "version": "0.0.51", + "resolved": "https://registry.npmjs.org/@types/estree/-/estree-0.0.51.tgz", + "integrity": "sha512-CuPgU6f3eT/XgKKPqKd/gLZV1Xmvf1a2R5POBOGQa6uv82xpls89HU5zKeVoyR8XzHd1RGNOlQlvUe3CFkjWNQ==", "dev": true }, - "hmac-drbg": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/hmac-drbg/-/hmac-drbg-1.0.1.tgz", - "integrity": "sha1-0nRXAQJabHdabFRXk+1QL8DGSaE=", + "@types/express": { + "version": "4.17.13", + "resolved": "https://registry.npmjs.org/@types/express/-/express-4.17.13.tgz", + "integrity": "sha512-6bSZTPaTIACxn48l50SR+axgrqm6qXFIxrdAKaG6PaJk3+zuUr35hBlgT7vOmJcum+OEaIBLtHV/qloEAFITeA==", "dev": true, "requires": { - "hash.js": "^1.0.3", - "minimalistic-assert": "^1.0.0", - "minimalistic-crypto-utils": "^1.0.1" + "@types/body-parser": "*", + "@types/express-serve-static-core": "^4.17.18", + "@types/qs": "*", + "@types/serve-static": "*" } }, - "home-dir": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/home-dir/-/home-dir-1.0.0.tgz", - "integrity": "sha1-KRfrRL3JByztqUJXlUOEfjAX/k4=", - "dev": true + "@types/express-serve-static-core": { + "version": "4.17.29", + "resolved": "https://registry.npmjs.org/@types/express-serve-static-core/-/express-serve-static-core-4.17.29.tgz", + "integrity": "sha512-uMd++6dMKS32EOuw1Uli3e3BPgdLIXmezcfHv7N4c1s3gkhikBplORPpMq3fuWkxncZN1reb16d5n8yhQ80x7Q==", + "dev": true, + "requires": { + "@types/node": "*", + "@types/qs": "*", + "@types/range-parser": "*" + } }, - "hosted-git-info": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.7.tgz", - "integrity": "sha512-fWqc0IcuXs+BmE9orLDyVykAG9GJtGLGuZAAqgcckPgv5xad4AcXGIv8galtQvlwutxSlaMcdw7BUtq2EIvqCQ==", + "@types/http-proxy": { + "version": "1.17.9", + "resolved": "https://registry.npmjs.org/@types/http-proxy/-/http-proxy-1.17.9.tgz", + "integrity": "sha512-QsbSjA/fSk7xB+UXlCT3wHBy5ai9wOcNDWwZAtud+jXhwOM3l+EYZh8Lng4+/6n8uar0J7xILzqftJdJ/Wdfkw==", "dev": true, "requires": { - "lru-cache": "^6.0.0" - }, - "dependencies": { - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - } + "@types/node": "*" } }, - "hpack.js": { - "version": "2.1.6", - "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", - "integrity": "sha1-h3dMCUnlE/QuhFdbPEVoH63ioLI=", + "@types/jasmine": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/@types/jasmine/-/jasmine-4.0.3.tgz", + "integrity": "sha512-Opp1LvvEuZdk8fSSvchK2mZwhVrsNT0JgJE9Di6MjnaIpmEXM8TLCPPrVtNTYh8+5MPdY8j9bAHMu2SSfwpZJg==", + "dev": true + }, + "@types/jasminewd2": { + "version": "2.0.10", + "resolved": "https://registry.npmjs.org/@types/jasminewd2/-/jasminewd2-2.0.10.tgz", + "integrity": "sha512-J7mDz7ovjwjc+Y9rR9rY53hFWKATcIkrr9DwQWmOas4/pnIPJTXawnzjwpHm3RSxz/e3ZVUvQ7cRbd5UQLo10g==", "dev": true, "requires": { - "inherits": "^2.0.1", - "obuf": "^1.0.0", - "readable-stream": "^2.0.1", - "wbuf": "^1.1.0" + "@types/jasmine": "*" } }, - "hsl-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsl-regex/-/hsl-regex-1.0.0.tgz", - "integrity": "sha1-1JMwx4ntgZ4nakwNJy3/owsY/m4=", + "@types/json-schema": { + "version": "7.0.11", + "resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.11.tgz", + "integrity": "sha512-wOuvG1SN4Us4rez+tylwwwCV1psiNVOkJeM3AUWUNWg/jDQY2+HE/444y5gc+jBmRqASOm2Oeh5c1axHobwRKQ==", "dev": true }, - "hsla-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/hsla-regex/-/hsla-regex-1.0.0.tgz", - "integrity": "sha1-wc56MWjIxmFAM6S194d/OyJfnDg=", + "@types/mime": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/@types/mime/-/mime-1.3.2.tgz", + "integrity": "sha512-YATxVxgRqNH6nHEIsvg6k2Boc1JHI9ZbH5iWFFv/MTkchz3b1ieGDa5T0a9RznNdI0KhVbdbWSN+KWWrQZRxTw==", "dev": true }, - "html-comment-regex": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/html-comment-regex/-/html-comment-regex-1.1.2.tgz", - "integrity": "sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==", + "@types/node": { + "version": "18.0.3", + "resolved": "https://registry.npmjs.org/@types/node/-/node-18.0.3.tgz", + "integrity": "sha512-HzNRZtp4eepNitP+BD6k2L6DROIDG4Q0fm4x+dwfsr6LGmROENnok75VGw40628xf+iR24WeMFcHuuBDUAzzsQ==", "dev": true }, - "html-entities": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.4.0.tgz", - "integrity": "sha512-8nxjcBcd8wovbeKx7h3wTji4e6+rhaVuPNpMqwWgnHh+N9ToqsCs6XztWRBPQ+UtzsoMAdKZtUENoVzU/EMtZA==", + "@types/parse-json": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/@types/parse-json/-/parse-json-4.0.0.tgz", + "integrity": "sha512-//oorEZjL6sbPcKUaCdIGlIUeH26mgzimjBB77G6XRgnDl/L5wOnpyBGRe/Mmf5CVW3PwEBE1NjiMZ/ssFh4wA==", "dev": true }, - "html-escaper": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", - "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "@types/qs": { + "version": "6.9.7", + "resolved": "https://registry.npmjs.org/@types/qs/-/qs-6.9.7.tgz", + "integrity": "sha512-FGa1F62FT09qcrueBA6qYTrJPVDzah9a+493+o2PCXsesWHIn27G98TsSMs3WPNbZIEj4+VJf6saSFpvD+3Zsw==", "dev": true }, - "http-cache-semantics": { - "version": "3.8.1", - "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-3.8.1.tgz", - "integrity": "sha512-5ai2iksyV8ZXmnZhHH4rWPoxxistEexSi5936zIQ1bnNTW5VnA85B6P/VpXiRM017IgRvb2kKo1a//y+0wSp3w==", + "@types/range-parser": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/@types/range-parser/-/range-parser-1.2.4.tgz", + "integrity": "sha512-EEhsLsD6UsDM1yFhAvy0Cjr6VwmpMWqFBCb9w07wVugF7w9nfajxLuVmngTIpgS6svCnm6Vaw+MZhoDCKnOfsw==", "dev": true }, - "http-deceiver": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", - "integrity": "sha1-+nFolEq5pRnTN8sL7HKE3D5yPYc=", + "@types/retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/@types/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-wWKOClTTiizcZhXnPY4wikVAwmdYHp8q6DmC+EJUzAMsycb7HB32Kh9RN4+0gExjmPmZSAQjgURXIGATPegAvA==", "dev": true }, - "http-errors": { - "version": "1.7.2", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", - "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", + "@types/selenium-webdriver": { + "version": "3.0.20", + "resolved": "https://registry.npmjs.org/@types/selenium-webdriver/-/selenium-webdriver-3.0.20.tgz", + "integrity": "sha512-6d8Q5fqS9DWOXEhMDiF6/2FjyHdmP/jSTAUyeQR7QwrFeNmYyzmvGxD5aLIHL445HjWgibs0eAig+KPnbaesXA==", + "dev": true + }, + "@types/serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/@types/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-d/Hs3nWDxNL2xAczmOVZNj92YZCS6RGxfBPjKzuu/XirCgXdpKEb88dYNbrYGint6IVWLNP+yonwVAuRC0T2Dg==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.1", - "statuses": ">= 1.5.0 < 2", - "toidentifier": "1.0.0" - }, - "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - } + "@types/express": "*" } }, - "http-parser-js": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", - "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==" - }, - "http-proxy": { - "version": "1.18.1", - "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", - "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", + "@types/serve-static": { + "version": "1.13.10", + "resolved": "https://registry.npmjs.org/@types/serve-static/-/serve-static-1.13.10.tgz", + "integrity": "sha512-nCkHGI4w7ZgAdNkrEu0bv+4xNV/XDqW+DydknebMOQwkpDGx8G+HTlj7R7ABI8i8nKxVw0wtKPi1D+lPOkh4YQ==", "dev": true, "requires": { - "eventemitter3": "^4.0.0", - "follow-redirects": "^1.0.0", - "requires-port": "^1.0.0" + "@types/mime": "^1", + "@types/node": "*" } }, - "http-proxy-agent": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-2.1.0.tgz", - "integrity": "sha512-qwHbBLV7WviBl0rQsOzH6o5lwyOIvwp/BdFnvVxXORldu5TmjFfjzBcWUWS5kWAZhmv+JtiDhSuQCp4sBfbIgg==", + "@types/sockjs": { + "version": "0.3.33", + "resolved": "https://registry.npmjs.org/@types/sockjs/-/sockjs-0.3.33.tgz", + "integrity": "sha512-f0KEEe05NvUnat+boPTZ0dgaLZ4SfSouXUgv5noUiefG2ajgKjmETo9ZJyuqsl7dfl2aHlLJUiki6B4ZYldiiw==", "dev": true, "requires": { - "agent-base": "4", - "debug": "3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } + "@types/node": "*" } }, - "http-proxy-middleware": { - "version": "0.19.1", - "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-0.19.1.tgz", - "integrity": "sha512-yHYTgWMQO8VvwNS22eLLloAkvungsKdKTLO8AJlftYIKNfJr3GK3zK0ZCfzDDGUBttdGc8xFy1mCitvNKQtC3Q==", + "@types/ws": { + "version": "8.5.3", + "resolved": "https://registry.npmjs.org/@types/ws/-/ws-8.5.3.tgz", + "integrity": "sha512-6YOoWjruKj1uLf3INHH7D3qTXwFfEsg1kf3c0uDdSBJwfa/llkwIjrAGV7j7mVgGNbzTQ3HiHKKDXl6bJPD97w==", "dev": true, "requires": { - "http-proxy": "^1.17.0", - "is-glob": "^4.0.0", - "lodash": "^4.17.11", - "micromatch": "^3.1.10" + "@types/node": "*" } }, - "http-signature": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", - "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", + "@webassemblyjs/ast": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.11.1.tgz", + "integrity": "sha512-ukBh14qFLjxTQNTXocdyksN5QdM28S1CxHt2rdskFyL+xFV7VremuBLVbmCePj+URalXBENx/9Lm7lnhihtCSw==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "jsprim": "^1.2.2", - "sshpk": "^1.7.0" + "@webassemblyjs/helper-numbers": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1" } }, - "https-browserify": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/https-browserify/-/https-browserify-1.0.0.tgz", - "integrity": "sha1-7AbBDgo0wPL68Zn3/X/Hj//QPHM=", + "@webassemblyjs/floating-point-hex-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/floating-point-hex-parser/-/floating-point-hex-parser-1.11.1.tgz", + "integrity": "sha512-iGRfyc5Bq+NnNuX8b5hwBrRjzf0ocrJPI6GWFodBFzmFnyvrQ83SHKhmilCU/8Jv67i4GJZBMhEzltxzcNagtQ==", "dev": true }, - "https-proxy-agent": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", - "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", + "@webassemblyjs/helper-api-error": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-api-error/-/helper-api-error-1.11.1.tgz", + "integrity": "sha512-RlhS8CBCXfRUR/cwo2ho9bkheSXG0+NwooXcc3PAILALf2QLdFyj7KGsKRbVc95hZnhnERon4kW/D3SZpp6Tcg==", + "dev": true + }, + "@webassemblyjs/helper-buffer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-buffer/-/helper-buffer-1.11.1.tgz", + "integrity": "sha512-gwikF65aDNeeXa8JxXa2BAk+REjSyhrNC9ZwdT0f8jc4dQQeDQ7G4m0f2QCLPJiMTTO6wfDmRmj/pW0PsUvIcA==", + "dev": true + }, + "@webassemblyjs/helper-numbers": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-numbers/-/helper-numbers-1.11.1.tgz", + "integrity": "sha512-vDkbxiB8zfnPdNK9Rajcey5C0w+QJugEglN0of+kmO8l7lDb77AnlKYQF7aarZuCrv+l0UvqL+68gSDr3k9LPQ==", "dev": true, "requires": { - "agent-base": "^4.3.0", - "debug": "^3.1.0" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } - } + "@webassemblyjs/floating-point-hex-parser": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "humanize-ms": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", - "integrity": "sha1-xG4xWaKT9riW2ikxbYtv6Lt5u+0=", + "@webassemblyjs/helper-wasm-bytecode": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-bytecode/-/helper-wasm-bytecode-1.11.1.tgz", + "integrity": "sha512-PvpoOGiJwXeTrSf/qfudJhwlvDQxFgelbMqtq52WWiXC6Xgg1IREdngmPN3bs4RoO83PnL/nFrxucXj1+BX62Q==", + "dev": true + }, + "@webassemblyjs/helper-wasm-section": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/helper-wasm-section/-/helper-wasm-section-1.11.1.tgz", + "integrity": "sha512-10P9No29rYX1j7F3EVPX3JvGPQPae+AomuSTPiF9eBQeChHI6iqjMIwR9JmOJXwpnn/oVGDk7I5IlskuMwU/pg==", "dev": true, "requires": { - "ms": "^2.0.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1" } }, - "iconv-lite": { - "version": "0.4.24", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", - "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", + "@webassemblyjs/ieee754": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/ieee754/-/ieee754-1.11.1.tgz", + "integrity": "sha512-hJ87QIPtAMKbFq6CGTkZYJivEwZDbQUgYd3qKSadTNOhVY7p+gfP6Sr0lLRVTaG1JjFj+r3YchoqRYxNH3M0GQ==", "dev": true, "requires": { - "safer-buffer": ">= 2.1.2 < 3" + "@xtuc/ieee754": "^1.2.0" } }, - "idb": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/idb/-/idb-3.0.2.tgz", - "integrity": "sha512-+FLa/0sTXqyux0o6C+i2lOR0VoS60LU/jzUo5xjfY6+7sEEgy4Gz1O7yFBXvjd7N0NyIGWIRg8DcQSLEG+VSPw==" - }, - "ieee754": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", - "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", - "dev": true - }, - "iferr": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/iferr/-/iferr-0.1.5.tgz", - "integrity": "sha1-xg7taebY/bazEEofy8ocGS3FtQE=", - "dev": true - }, - "ignore": { - "version": "3.3.10", - "resolved": "https://registry.npmjs.org/ignore/-/ignore-3.3.10.tgz", - "integrity": "sha512-Pgs951kaMm5GXP7MOvxERINe3gsaVjUWFm+UZPSq9xYriQAksyhg0csnS0KXSNRD5NmNdapXEpjxG49+AKh/ug==", - "dev": true - }, - "ignore-walk": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-3.0.3.tgz", - "integrity": "sha512-m7o6xuOaT1aqheYHKf8W6J5pYH85ZI9w077erOzLje3JsB1gkafkAhHHY19dqjulgIZHFm32Cp5uNZgcQqdJKw==", + "@webassemblyjs/leb128": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/leb128/-/leb128-1.11.1.tgz", + "integrity": "sha512-BJ2P0hNZ0u+Th1YZXJpzW6miwqQUGcIHT1G/sf72gLVD9DZ5AdYTqPNbHZh6K1M5VmKvFXwGSWZADz+qBWxeRw==", "dev": true, "requires": { - "minimatch": "^3.0.4" + "@xtuc/long": "4.2.2" } }, - "image-size": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", - "integrity": "sha1-Cd/Uq50g4p6xw+gLiZA3jfnjy5w=", - "dev": true, - "optional": true - }, - "immediate": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", - "integrity": "sha1-nbHb0Pr43m++D13V5Wu2BigN5ps=", + "@webassemblyjs/utf8": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/utf8/-/utf8-1.11.1.tgz", + "integrity": "sha512-9kqcxAEdMhiwQkHpkNiorZzqpGrodQQ2IGrHHxCy+Ozng0ofyMA0lTqiLkVs1uzTRejX+/O0EOT7KxqVPuXosQ==", "dev": true }, - "import-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-cwd/-/import-cwd-2.1.0.tgz", - "integrity": "sha1-qmzzbnInYShcs3HsZRn1PiQ1sKk=", + "@webassemblyjs/wasm-edit": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-edit/-/wasm-edit-1.11.1.tgz", + "integrity": "sha512-g+RsupUC1aTHfR8CDgnsVRVZFJqdkFHpsHMfJuWQzWU3tvnLC07UqHICfP+4XyL2tnr1amvl1Sdp06TnYCmVkA==", "dev": true, "requires": { - "import-from": "^2.1.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/helper-wasm-section": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-opt": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "@webassemblyjs/wast-printer": "1.11.1" } }, - "import-fresh": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-2.0.0.tgz", - "integrity": "sha1-2BNVwVYS04bGH53dOSLUMEgipUY=", + "@webassemblyjs/wasm-gen": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-gen/-/wasm-gen-1.11.1.tgz", + "integrity": "sha512-F7QqKXwwNlMmsulj6+O7r4mmtAlCWfO/0HdgOxSklZfQcDu0TpLiD1mRt/zF25Bk59FIjEuGAIyn5ei4yMfLhA==", "dev": true, "requires": { - "caller-path": "^2.0.0", - "resolve-from": "^3.0.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" } }, - "import-from": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-from/-/import-from-2.1.0.tgz", - "integrity": "sha1-M1238qev/VOqpHHUuAId7ja387E=", + "@webassemblyjs/wasm-opt": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-opt/-/wasm-opt-1.11.1.tgz", + "integrity": "sha512-VqnkNqnZlU5EB64pp1l7hdm3hmQw7Vgqa0KF/KCNO9sIpI6Fk6brDEiX+iCOYrvMuBWDws0NkTOxYEb85XQHHw==", "dev": true, "requires": { - "resolve-from": "^3.0.0" + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-buffer": "1.11.1", + "@webassemblyjs/wasm-gen": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1" } }, - "import-lazy": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/import-lazy/-/import-lazy-2.1.0.tgz", - "integrity": "sha1-BWmOPUXIjo1+nZLLBYTnfwlvPkM=", - "dev": true + "@webassemblyjs/wasm-parser": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wasm-parser/-/wasm-parser-1.11.1.tgz", + "integrity": "sha512-rrBujw+dJu32gYB7/Lup6UhdkPx9S9SnobZzRVL7VcBH9Bt9bCBLEuX/YXOOtBsOZ4NQrRykKhffRWHvigQvOA==", + "dev": true, + "requires": { + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/helper-api-error": "1.11.1", + "@webassemblyjs/helper-wasm-bytecode": "1.11.1", + "@webassemblyjs/ieee754": "1.11.1", + "@webassemblyjs/leb128": "1.11.1", + "@webassemblyjs/utf8": "1.11.1" + } }, - "import-local": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", - "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", + "@webassemblyjs/wast-printer": { + "version": "1.11.1", + "resolved": "https://registry.npmjs.org/@webassemblyjs/wast-printer/-/wast-printer-1.11.1.tgz", + "integrity": "sha512-IQboUWM4eKzWW+N/jij2sRatKMh99QEelo3Eb2q0qXkvPRISAj8Qxtmw5itwqK+TTkBuUIE45AxYPToqPtL5gg==", "dev": true, "requires": { - "pkg-dir": "^3.0.0", - "resolve-cwd": "^2.0.0" + "@webassemblyjs/ast": "1.11.1", + "@xtuc/long": "4.2.2" } }, - "imurmurhash": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", - "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", + "@xtuc/ieee754": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/@xtuc/ieee754/-/ieee754-1.2.0.tgz", + "integrity": "sha512-DX8nKgqcGwsc0eJSqYt5lwP4DH5FlHnmuWWBRy7X0NcaGR0ZtuyeESgMwTYVEtxmsNGY+qit4QYT/MIYTOTPeA==", "dev": true }, - "indent-string": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", - "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", + "@xtuc/long": { + "version": "4.2.2", + "resolved": "https://registry.npmjs.org/@xtuc/long/-/long-4.2.2.tgz", + "integrity": "sha512-NuHqBY1PB/D8xU6s/thBgOAiAP7HOYDQ32+BFZILJ8ivkUkAHQnWfn6WhL79Owj1qmUnoN/YPhktdIoucipkAQ==", "dev": true }, - "indexes-of": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/indexes-of/-/indexes-of-1.0.1.tgz", - "integrity": "sha1-8w9xbI4r00bHtn0985FVZqfAVgc=", + "@yarnpkg/lockfile": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/@yarnpkg/lockfile/-/lockfile-1.1.0.tgz", + "integrity": "sha512-GpSwvyXOcOOlV70vbnzjj4fW5xW/FdUF6nQEt1ENy7m4ZCczi1+/buVUPAqmGfqznsORNFzUMjctTIp8a9tuCQ==", "dev": true }, - "indexof": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/indexof/-/indexof-0.0.1.tgz", - "integrity": "sha1-gtwzbSMrkGIXnQWrMpOmYFn9Q10=", + "abab": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.6.tgz", + "integrity": "sha512-j2afSsaIENvHZN2B8GOpF566vZ5WVk5opAiMTvWgaQT8DkbOqsTfvNAvHoRGU2zzP8cPoqys+xHTRDWW8L+/BA==", "dev": true }, - "infer-owner": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", - "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", + "abbrev": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", + "integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==", "dev": true }, - "inflight": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", - "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "abortcontroller-polyfill": { + "version": "1.7.3", + "resolved": "https://registry.npmjs.org/abortcontroller-polyfill/-/abortcontroller-polyfill-1.7.3.tgz", + "integrity": "sha512-zetDJxd89y3X99Kvo4qFx8GKlt6GsvN3UcRZHwU6iFA/0KiOmhkTVhe8oRoTBiTVPZu09x3vCra47+w8Yz1+2Q==" + }, + "accepts": { + "version": "1.3.7", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.7.tgz", + "integrity": "sha512-Il80Qs2WjYlJIBNzNkK6KYqlVMTbZLXgHx2oT0pU/fjRHyEp+PEfEPY0R3WCwAGVOtauxh1hOxNgIf5bv7dQpA==", "dev": true, "requires": { - "once": "^1.3.0", - "wrappy": "1" + "mime-types": "~2.1.24", + "negotiator": "0.6.2" } }, - "inherits": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", - "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==", + "acorn": { + "version": "8.7.1", + "resolved": "https://registry.npmjs.org/acorn/-/acorn-8.7.1.tgz", + "integrity": "sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==", "dev": true }, - "ini": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", - "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", + "acorn-import-assertions": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/acorn-import-assertions/-/acorn-import-assertions-1.8.0.tgz", + "integrity": "sha512-m7VZ3jwz4eK6A4Vtt8Ew1/mNbP24u0FhdyfA7fSvnJR6LMdfOYnmuIrrJAgrYfYJ10F/otaHTtrtrtmHdMNzEw==", "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" + "acorn-walk": { + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-8.2.0.tgz", + "integrity": "sha512-k+iyHEuPgSw6SbuDpGQM+06HQUa04DZ3o+F6CSzXMvvI5KMvnaEqXe+YVe555R9nn6GPt404fos4wcgpw12SDA==", + "dev": true + }, + "adjust-sourcemap-loader": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/adjust-sourcemap-loader/-/adjust-sourcemap-loader-4.0.0.tgz", + "integrity": "sha512-OXwN5b9pCUXNQHJpwwD2qP40byEmSgzj8B4ydSN0uMNYWiFmJ6x6KwUllMmfk8Rwu/HJDFR7U8ubsWBoN0Xp0A==", + "dev": true, + "requires": { + "loader-utils": "^2.0.0", + "regex-parser": "^2.2.11" }, "dependencies": { - "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" - } - }, - "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 - }, - "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" - } - }, - "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" - } - }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" - }, - "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", - "dev": true - } + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } } } }, - "inquirer-autocomplete-prompt": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-1.3.0.tgz", - "integrity": "sha512-zvAc+A6SZdcN+earG5SsBu1RnQdtBS4o8wZ/OqJiCfL34cfOx+twVRq7wumYix6Rkdjn1N2nVCcO3wHqKqgdGg==", + "adm-zip": { + "version": "0.4.16", + "resolved": "https://registry.npmjs.org/adm-zip/-/adm-zip-0.4.16.tgz", + "integrity": "sha512-TFi4HBKSGfIKsK5YCkKaaFG2m4PEDyViZmEwof3MTIgzimHLto6muaHVpbrljdIvIrFZzEq/p4nafOeLcYegrg==", + "dev": true + }, + "agent-base": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.3.0.tgz", + "integrity": "sha512-salcGninV0nPrwpGNn4VTXBb1SOuXQBiqbrNXoeizJsHrsL6ERFM2Ne3JUSBWRE6aeNJI2ROP/WEEIDUiDe3cg==", "dev": true, "requires": { - "ansi-escapes": "^4.3.1", - "chalk": "^4.0.0", - "figures": "^3.2.0", - "run-async": "^2.4.0", - "rxjs": "^6.6.2" + "es6-promisify": "^5.0.0" + } + }, + "agentkeepalive": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/agentkeepalive/-/agentkeepalive-4.2.1.tgz", + "integrity": "sha512-Zn4cw2NEqd+9fiSVWMscnjyQ1a8Yfoc5oBajLeo5w+YBHgDUcEBY2hS4YpTz6iN5f/2zQiktcuM6tS8x1p9dpA==", + "dev": true, + "requires": { + "debug": "^4.1.0", + "depd": "^1.1.2", + "humanize-ms": "^1.2.1" + } + }, + "aggregate-error": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/aggregate-error/-/aggregate-error-3.1.0.tgz", + "integrity": "sha512-4I7Td01quW/RpocfNayFdFVk1qSuoh0E7JrbRJ16nH01HhKFQ88INq9Sd+nd72zqRySlr9BmDA8xlEJ6vJMrYA==", + "dev": true, + "requires": { + "clean-stack": "^2.0.0", + "indent-string": "^4.0.0" + } + }, + "ajv": { + "version": "8.11.0", + "resolved": "https://registry.npmjs.org/ajv/-/ajv-8.11.0.tgz", + "integrity": "sha512-wGgprdCvMalC0BztXvitD2hC04YffAvtsUn93JbGXYLAtCUO4xd17mCCZQxUOItiBwZvJScWo8NIvQMQ71rdpg==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.1", + "json-schema-traverse": "^1.0.0", + "require-from-string": "^2.0.2", + "uri-js": "^4.2.2" }, "dependencies": { - "ansi-escapes": { - "version": "4.3.1", - "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.1.tgz", - "integrity": "sha512-JWF7ocqNrp8u9oqpgV+wH5ftbt+cfvv+PTjOvKLT3AdYly/LmORARfEVT1iyjwN+4MqE5UmVKoAdIBqeoCHgLA==", - "dev": true, - "requires": { - "type-fest": "^0.11.0" - } - }, - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", - "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", - "dev": true, - "requires": { - "color-name": "~1.1.4" - } - }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "figures": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", - "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", - "dev": true, - "requires": { - "escape-string-regexp": "^1.0.5" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "rxjs": { - "version": "6.6.3", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.3.tgz", - "integrity": "sha512-trsQc+xYYXZ3urjOiJOuCOa5N3jAZ3eiSpQB5hIT8zGlL2QfnHLJ2r7GMkBGuIausdJN1OneaI6gQlsqNHHmZQ==", - "dev": true, - "requires": { - "tslib": "^1.9.0" - } - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", - "dev": true, - "requires": { - "has-flag": "^4.0.0" - } - }, - "type-fest": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.11.0.tgz", - "integrity": "sha512-OdjXJxnCN1AvyLSzeKIgXTXxV+99ZuXl3Hpo9XpJAv9MBcHrrJOQ5kV7ypXOuQie+AmWG25hLbiKdwYTifzcfQ==", + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==", "dev": true } } }, - "install-artifact-from-github": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/install-artifact-from-github/-/install-artifact-from-github-1.2.0.tgz", - "integrity": "sha512-3OxCPcY55XlVM3kkfIpeCgmoSKnMsz2A3Dbhsq0RXpIknKQmrX1YiznCeW9cD2ItFmDxziA3w6Eg8d80AoL3oA==", - "dev": true, - "optional": true - }, - "internal-ip": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/internal-ip/-/internal-ip-4.3.0.tgz", - "integrity": "sha512-S1zBo1D6zcsyuC6PMmY5+55YMILQ9av8lotMx447Bq6SAgo/sDK6y6uUKmuYhW7eacnIhFfsPmCNYdDzsnnDCg==", + "ajv-formats": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/ajv-formats/-/ajv-formats-2.1.1.tgz", + "integrity": "sha512-Wx0Kx52hxE7C18hkMEggYlEifqWZtYaRgouJor+WMdPnQyEK13vgEWyVNup7SoeeoLMsr4kf5h6dOW11I15MUA==", "dev": true, "requires": { - "default-gateway": "^4.2.0", - "ipaddr.js": "^1.9.0" + "ajv": "^8.0.0" } }, - "invariant": { - "version": "2.2.4", - "resolved": "https://registry.npmjs.org/invariant/-/invariant-2.2.4.tgz", - "integrity": "sha512-phJfQVBuaJM5raOpJjSfkiD6BpbCE4Ns//LaXl6wGYtUBY83nWS6Rf9tXm2e8VaK60JEjYldbPif/A2B1C2gNA==", - "dev": true, + "ajv-keywords": { + "version": "3.5.2", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", + "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", + "dev": true + }, + "angular-walkthrough": { + "version": "0.9.8", + "resolved": "https://registry.npmjs.org/angular-walkthrough/-/angular-walkthrough-0.9.8.tgz", + "integrity": "sha512-aYfLM4nkWHRbiOlDEzwQ29CyJg/7xDQ2p/tYczw09oIamsoJYUw90bEBEPuhPx1+u69PeR98mbnNJrVomnW+Yg==", "requires": { - "loose-envify": "^1.0.0" + "tslib": "^2.0.0" } }, - "invert-kv": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-2.0.0.tgz", - "integrity": "sha512-wPVv/y/QQ/Uiirj/vh3oP+1Ww+AWehmi1g5fFWGPF6IpCBCDVrhgHRMvrLfdYcwDh3QJbGXDW4JAuzxElLSqKA==", + "ansi-colors": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/ansi-colors/-/ansi-colors-4.1.1.tgz", + "integrity": "sha512-JoX0apGbHaUJBNl6yF+p6JAFYZ666/hhCGKN5t9QFjbJQKUU/g8MNbFDbvfrgKXvI1QpZplPOnwIo99lX/AAmA==", "dev": true }, - "ip": { - "version": "1.1.5", - "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz", - "integrity": "sha1-vd7XARQpCCjAoDnnLvJfWq7ENUo=", + "ansi-html-community": { + "version": "0.0.8", + "resolved": "https://registry.npmjs.org/ansi-html-community/-/ansi-html-community-0.0.8.tgz", + "integrity": "sha512-1APHAyr3+PCamwNw3bXCPp4HFLONZt/yIH0sZp0/469KWNTEy+qN5jQ3GVX6DMZ1UXAi34yVwtTeaG/HpBuuzw==", "dev": true }, - "ip-regex": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-2.1.0.tgz", - "integrity": "sha1-+ni/XS5pE8kRzp+BnuUUa7bYROk=", + "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": "3.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-3.2.1.tgz", + "integrity": "sha512-VT0ZI6kZRdTh8YyJw3SMbYm/u+NqfsAxEpWO0Pf9sq8/e94WxxOpPKx9FR1FlyCtOVDNOQ+8ntlqFxiRc+r5qA==", + "requires": { + "color-convert": "^1.9.0" + } + }, + "anymatch": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz", + "integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "apexcharts": { + "version": "3.35.3", + "resolved": "https://registry.npmjs.org/apexcharts/-/apexcharts-3.35.3.tgz", + "integrity": "sha512-UDlxslJr3DG63I/SgoiivIu4lpP25GMaKFK8NvCHmTksTQshx4ng3oPPrYvdsBFOvD/ajPYIh/p7rNB0jq8vXg==", + "requires": { + "svg.draggable.js": "^2.2.2", + "svg.easing.js": "^2.0.0", + "svg.filter.js": "^2.0.2", + "svg.pathmorphing.js": "^0.1.3", + "svg.resize.js": "^1.4.3", + "svg.select.js": "^3.0.1" + } + }, + "app-root-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/app-root-path/-/app-root-path-3.0.0.tgz", + "integrity": "sha512-qMcx+Gy2UZynHjOHOIXPNvpf+9cjvk3cWrBBK7zg4gH9+clobJRb9NGzcT7mQTcV/6Gm/1WelUtqxVXnNlrwcw==", "dev": true }, - "ipaddr.js": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", - "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "aproba": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/aproba/-/aproba-1.2.0.tgz", + "integrity": "sha512-Y9J6ZjXtoYh8RnXVCMOU/ttDmk1aBjunq9vO0ta5x85WDQiQfUF9sIPBITdbiiIVcBo03Hi3jMxigBtsddlXRw==", "dev": true }, - "is-absolute-url": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-2.1.0.tgz", - "integrity": "sha1-UFMN+4T8yap9vnhS6Do3uTufKqY=", + "arg": { + "version": "4.1.3", + "resolved": "https://registry.npmjs.org/arg/-/arg-4.1.3.tgz", + "integrity": "sha512-58S9QDqG0Xx27YwPSt9fJxivjYl432YCwfDMfZ+71RAqUrZef7LrKQZ3LHLOwCS4FLNBplP533Zx895SeOCHvA==", "dev": true }, - "is-accessor-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-0.1.6.tgz", - "integrity": "sha1-qeEss66Nh2cn7u84Q/igiXtcmNY=", + "argparse": { + "version": "1.0.10", + "resolved": "https://registry.npmjs.org/argparse/-/argparse-1.0.10.tgz", + "integrity": "sha512-o5Roy6tNG4SL/FOkCAN6RzjiakZS25RLYFrcMttJqbdd8BWrnA+fGz57iN5Pb06pvBGvl5gQ0B48dJlslXvoTg==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "sprintf-js": "~1.0.2" } }, - "is-arguments": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-arguments/-/is-arguments-1.1.0.tgz", - "integrity": "sha512-1Ij4lOMPl/xB5kBDn7I+b2ttPMKa8szhEIrXDuXQD/oe3HJLTLhqhgGspwgyGd6MOywBUqVvYicF72lkgDnIHg==", + "aria-query": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/aria-query/-/aria-query-3.0.0.tgz", + "integrity": "sha512-majUxHgLehQTeSA+hClx+DY09OVUqG3GtezWkF1krgLGNdlDu9l9V8DaqNMWbq4Eddc8wsyDA0hpDUtnYxQEXw==", "dev": true, "requires": { - "call-bind": "^1.0.0" + "ast-types-flow": "0.0.7", + "commander": "^2.11.0" } }, - "is-arrayish": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", - "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=", + "array-flatten": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-2.1.2.tgz", + "integrity": "sha512-hNfzcOV8W4NdualtqBFPyVO+54DSJuZGY9qT4pRroB6S9e3iiido2ISIC5h9R2sPJ8H3FHCIiEnsv1lPXO3KtQ==", "dev": true }, - "is-binary-path": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", - "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", + "array-union": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-1.0.2.tgz", + "integrity": "sha1-mjRBDk9OPaI96jdb5b5w8kd47Dk=", "dev": true, "requires": { - "binary-extensions": "^2.0.0" + "array-uniq": "^1.0.1" } }, - "is-buffer": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/is-buffer/-/is-buffer-1.1.6.tgz", - "integrity": "sha512-NcdALwpXkTm5Zvvbk7owOUSvVvBKDgKP5/ewfXEznmQFfs4ZRmanOeKBTjRVjka3QFoN6XJ+9F3USqfHqTaU5w==", + "array-uniq": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/array-uniq/-/array-uniq-1.0.3.tgz", + "integrity": "sha1-r2rId6Jcx/dOBYiUdThY39sk/bY=", "dev": true }, - "is-callable": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", - "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==", + "arrify": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/arrify/-/arrify-1.0.1.tgz", + "integrity": "sha512-3CYzex9M9FGQjCGMGyi6/31c8GJbgb0qGyrx5HWxPd0aCwh4cB2YjMb2Xf9UuoogrMrlO9cTqnB5rI5GHZTcUA==", "dev": true }, - "is-ci": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-ci/-/is-ci-2.0.0.tgz", - "integrity": "sha512-YfJT7rkpQB0updsdHLGWrvhBJfcfzNNawYDNIyQXJz0IViGf75O8EBPKSdvw2rF+LGCsX4FZ8tcr3b19LcZq4w==", + "asn1": { + "version": "0.2.4", + "resolved": "https://registry.npmjs.org/asn1/-/asn1-0.2.4.tgz", + "integrity": "sha512-jxwzQpLQjSmWXgwaCZE9Nz+glAG01yF1QnWgbhGwHI5A6FRIEY6IVqtHhIepHqI7/kyEyQEagBC5mBEFlIYvdg==", "dev": true, "requires": { - "ci-info": "^2.0.0" + "safer-buffer": "~2.1.0" } }, - "is-color-stop": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-color-stop/-/is-color-stop-1.1.0.tgz", - "integrity": "sha1-z/9HGu5N1cnhWFmPvhKWe1za00U=", + "assert-plus": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/assert-plus/-/assert-plus-1.0.0.tgz", + "integrity": "sha1-8S4PPF13sLHN2RRpQuTpbB5N1SU=", + "dev": true + }, + "ast-types-flow": { + "version": "0.0.7", + "resolved": "https://registry.npmjs.org/ast-types-flow/-/ast-types-flow-0.0.7.tgz", + "integrity": "sha512-eBvWn1lvIApYMhzQMsu9ciLfkBY499mFZlNqG+/9WR7PVlroQw0vG30cOQQbaKz3sCEc44TAOu2ykzqXSNnwag==", + "dev": true + }, + "asynckit": { + "version": "0.4.0", + "resolved": "https://registry.npmjs.org/asynckit/-/asynckit-0.4.0.tgz", + "integrity": "sha1-x57Zf380y48robyXkLzDZkdLS3k=", + "dev": true + }, + "atob": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/atob/-/atob-2.1.2.tgz", + "integrity": "sha512-Wm6ukoaOGJi/73p/cl2GvLjTI5JM1k/O14isD73YML8StrH/7/lRFgmg8nICZgD3bZZvjwCGxtMOD3wWNAu8cg==", + "dev": true + }, + "autoprefixer": { + "version": "10.4.7", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.7.tgz", + "integrity": "sha512-ypHju4Y2Oav95SipEcCcI5J7CGPuvz8oat7sUtYj3ClK44bldfvtvcxK6IEK++7rqB7YchDGzweZIBG+SD0ZAA==", "dev": true, "requires": { - "css-color-names": "^0.0.4", - "hex-color-regex": "^1.1.0", - "hsl-regex": "^1.0.0", - "hsla-regex": "^1.0.0", - "rgb-regex": "^1.0.1", - "rgba-regex": "^1.0.0" + "browserslist": "^4.20.3", + "caniuse-lite": "^1.0.30001335", + "fraction.js": "^4.2.0", + "normalize-range": "^0.1.2", + "picocolors": "^1.0.0", + "postcss-value-parser": "^4.2.0" } }, - "is-core-module": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", - "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", + "aws-sign2": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/aws-sign2/-/aws-sign2-0.7.0.tgz", + "integrity": "sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg=", + "dev": true + }, + "aws4": { + "version": "1.11.0", + "resolved": "https://registry.npmjs.org/aws4/-/aws4-1.11.0.tgz", + "integrity": "sha512-xh1Rl34h6Fi1DC2WWKfxUTVqRsNnr6LsKz2+hfwDxQJWmrx8+c7ylaqBMcHfl1U1r2dsifOvKX3LQuLNZ+XSvA==", + "dev": true + }, + "axobject-query": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/axobject-query/-/axobject-query-2.0.2.tgz", + "integrity": "sha512-MCeek8ZH7hKyO1rWUbKNQBbl4l2eY0ntk7OGi+q0RlafrCnfPxC06WZA+uebCfmYp4mNU9jRBP1AhGyf8+W3ww==", "dev": true, "requires": { - "has": "^1.0.3" + "ast-types-flow": "0.0.7" } }, - "is-data-descriptor": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-0.1.4.tgz", - "integrity": "sha1-C17mSDiOLIYCgueT8YVv7D8wG1Y=", + "babel-loader": { + "version": "8.2.5", + "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.2.5.tgz", + "integrity": "sha512-OSiFfH89LrEMiWd4pLNqGz4CwJDtbs2ZVc+iGu2HrkRfPxId9F2anQj38IxWpmRfsUY0aBZYi1EFcd3mhtRMLQ==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "find-cache-dir": "^3.3.1", + "loader-utils": "^2.0.0", + "make-dir": "^3.1.0", + "schema-utils": "^2.6.5" }, "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", + "dev": true, + "requires": { + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" + } + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "semver": "^6.0.0" } } } }, - "is-date-object": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-date-object/-/is-date-object-1.0.2.tgz", - "integrity": "sha512-USlDT524woQ08aoZFzh3/Z6ch9Y/EWXEHQ/AaRN0SkKq4t2Jw2R2339tSXmwuVoY7LLlBCbOIlx2myP/L5zk0g==", - "dev": true + "babel-plugin-dynamic-import-node": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/babel-plugin-dynamic-import-node/-/babel-plugin-dynamic-import-node-2.3.3.tgz", + "integrity": "sha512-jZVI+s9Zg3IqA/kdi0i6UDCybUI3aSBLnglhYbSSjKlV7yF1F/5LWv8MakQmvYpnbJDS6fcBL2KzHSxNCMtWSQ==", + "dev": true, + "requires": { + "object.assign": "^4.1.0" + } }, - "is-descriptor": { - "version": "0.1.6", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-0.1.6.tgz", - "integrity": "sha512-avDYr0SB3DwO9zsMov0gKCESFYqCnE4hq/4z3TdUlukEy5t9C0YRq7HLrsN52NAcqXKaepeCD0n+B0arnVG3Hg==", + "babel-plugin-istanbul": { + "version": "6.1.1", + "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-6.1.1.tgz", + "integrity": "sha512-Y1IQok9821cC9onCx5otgFfRm7Lm+I+wwxOx738M/WLPZ9Q42m4IG5W0FNX8WLL2gYMZo3JkuXIH2DOpWM+qwA==", "dev": true, "requires": { - "is-accessor-descriptor": "^0.1.6", - "is-data-descriptor": "^0.1.4", - "kind-of": "^5.0.0" - }, - "dependencies": { - "kind-of": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-5.1.0.tgz", - "integrity": "sha512-NGEErnH6F2vUuXDh+OlbcKW7/wOcfdRHaZ7VWtqCztfHri/++YKmP51OdWeGPuqCOba6kk2OTe5d02VmTB80Pw==", - "dev": true - } + "@babel/helper-plugin-utils": "^7.0.0", + "@istanbuljs/load-nyc-config": "^1.0.0", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-instrument": "^5.0.4", + "test-exclude": "^6.0.0" } }, - "is-directory": { + "babel-plugin-polyfill-corejs2": { "version": "0.3.1", - "resolved": "https://registry.npmjs.org/is-directory/-/is-directory-0.3.1.tgz", - "integrity": "sha1-YTObbyR1/Hcv2cnYP1yFddwVSuE=", - "dev": true - }, - "is-docker": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", - "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==", - "dev": true - }, - "is-extendable": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-0.1.1.tgz", - "integrity": "sha1-YrEQ4omkcUGOPsNqYX1HLjAd/Ik=", - "dev": true - }, - "is-extglob": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", - "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-2.0.0.tgz", - "integrity": "sha1-o7MKXE8ZkYMWeqq5O+764937ZU8=", - "dev": true + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs2/-/babel-plugin-polyfill-corejs2-0.3.1.tgz", + "integrity": "sha512-v7/T6EQcNfVLfcN2X8Lulb7DjprieyLWJK/zOWH5DUYcAgex9sP3h25Q+DLsX9TloXe3y1O8l2q2Jv9q8UVB9w==", + "dev": true, + "requires": { + "@babel/compat-data": "^7.13.11", + "@babel/helper-define-polyfill-provider": "^0.3.1", + "semver": "^6.1.1" + } }, - "is-glob": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", - "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", + "babel-plugin-polyfill-corejs3": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-corejs3/-/babel-plugin-polyfill-corejs3-0.5.2.tgz", + "integrity": "sha512-G3uJih0XWiID451fpeFaYGVuxHEjzKTHtc9uGFEjR6hHrvNzeS/PX+LLLcetJcytsB5m4j+K3o/EpXJNb/5IEQ==", "dev": true, "requires": { - "is-extglob": "^2.1.1" + "@babel/helper-define-polyfill-provider": "^0.3.1", + "core-js-compat": "^3.21.0" } }, - "is-installed-globally": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.2.tgz", - "integrity": "sha512-wZ8x1js7Ia0kecP/CHM/3ABkAmujX7WPvQk6uu3Fly/Mk44pySulQpnHG46OMjHGXApINnV4QhY3SWnECO2z5g==", + "babel-plugin-polyfill-regenerator": { + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/babel-plugin-polyfill-regenerator/-/babel-plugin-polyfill-regenerator-0.3.1.tgz", + "integrity": "sha512-Y2B06tvgHYt1x0yz17jGkGeeMr5FeKUu+ASJ+N6nB5lQ8Dapfg42i0OVrf8PNGJ3zKL4A23snMi1IRwrqqND7A==", "dev": true, "requires": { - "global-dirs": "^2.0.1", - "is-path-inside": "^3.0.1" - }, - "dependencies": { - "is-path-inside": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", - "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", - "dev": true - } + "@babel/helper-define-polyfill-provider": "^0.3.1" } }, - "is-interactive": { + "balanced-match": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", - "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", - "dev": true - }, - "is-negative-zero": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", - "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==", - "dev": true - }, - "is-npm": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", - "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", - "dev": true + "resolved": "https://registry.npmjs.org/balanced-match/-/balanced-match-1.0.0.tgz", + "integrity": "sha1-ibTRmasr7kneFk6gK4nORi1xt2c=" }, - "is-number": { - "version": "7.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", - "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "base64-js": { + "version": "1.5.1", + "resolved": "https://registry.npmjs.org/base64-js/-/base64-js-1.5.1.tgz", + "integrity": "sha512-AKpaYlHn8t4SVbOHCy+b5+KKgvR4vrsD8vbvrbiQJps7fKDTkjkDry6ji0rUJjC0kzbNePLwzxq8iypo41qeWA==", "dev": true }, - "is-obj": { + "base64id": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", - "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "resolved": "https://registry.npmjs.org/base64id/-/base64id-2.0.0.tgz", + "integrity": "sha512-lGe34o6EHj9y3Kts9R4ZYs/Gr+6N7MCaMlIFA3F1R2O5/m7K06AxfSeO5530PEERE6/WyEg3lsuyw4GHlPZHog==", "dev": true }, - "is-path-cwd": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-2.2.0.tgz", - "integrity": "sha512-w942bTcih8fdJPJmQHFzkS76NEP8Kzzvmw92cXsazb8intwLqPibPPdXf4ANdKV3rYMuuQYGIWtvz9JilB3NFQ==", + "batch": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/batch/-/batch-0.6.1.tgz", + "integrity": "sha512-x+VAiMRL6UPkx+kudNvxTl6hB2XNNCG2r+7wixVfIYwu/2HKRXimwQyaumLjMveWvT2Hkd/cAJw+QBMfJ/EKVw==", "dev": true }, - "is-path-in-cwd": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-2.1.0.tgz", - "integrity": "sha512-rNocXHgipO+rvnP6dk3zI20RpOtrAM/kzbB258Uw5BWr3TpXi861yzjo16Dn4hUox07iw5AyeMLHWsujkjzvRQ==", + "bcrypt-pbkdf": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/bcrypt-pbkdf/-/bcrypt-pbkdf-1.0.2.tgz", + "integrity": "sha1-pDAdOJtqQ/m2f/PKEaP2Y342Dp4=", "dev": true, "requires": { - "is-path-inside": "^2.1.0" + "tweetnacl": "^0.14.3" } }, - "is-path-inside": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-2.1.0.tgz", - "integrity": "sha512-wiyhTzfDWsvwAW53OBWF5zuvaOGlZ6PwYxAbPVDhpm+gM09xKQGjBq/8uYN12aDvMxnAnq3dxTyoSoRNmg5YFg==", - "dev": true, - "requires": { - "path-is-inside": "^1.0.2" - } + "big.js": { + "version": "5.2.2", + "resolved": "https://registry.npmjs.org/big.js/-/big.js-5.2.2.tgz", + "integrity": "sha512-vyL2OymJxmarO8gxMr0mhChsO9QGwhynfuu4+MHTAW6czfq9humCB7rKpUjDd9YUiDPU4mzpyupFSvOClAwbmQ==", + "dev": true }, - "is-plain-obj": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-1.1.0.tgz", - "integrity": "sha1-caUMhCnfync8kqOQpKA7OfzVHT4=", + "binary-extensions": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.2.0.tgz", + "integrity": "sha512-jDctJ/IVQbZoJykoeHbhXpOlNBqGNcwXJKJog42E5HDPUwQTSdjCHdihjj0DlnheQ7blbT6dHOafNAiS8ooQKA==", "dev": true }, - "is-plain-object": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", - "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", + "bl": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/bl/-/bl-4.1.0.tgz", + "integrity": "sha512-1W07cM9gS6DcLperZfFSj+bWLtaPGSOHWhPiGzXmvVJbRLdG82sH/Kn8EtW1VqWVA54AKf2h5k5BbnIbwF3h6w==", "dev": true, "requires": { - "isobject": "^3.0.1" - } - }, - "is-promise": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", - "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==", - "dev": true + "buffer": "^5.5.0", + "inherits": "^2.0.4", + "readable-stream": "^3.4.0" + }, + "dependencies": { + "buffer": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/buffer/-/buffer-5.7.1.tgz", + "integrity": "sha512-EHcyIPBQ4BSGlvjB16k5KgAJ27CIsHY/2JBmCRReo48y9rQ3MaUzWX3KVlBa4U7MyX02HdVj0K7C3WaB3ju7FQ==", + "dev": true, + "requires": { + "base64-js": "^1.3.1", + "ieee754": "^1.1.13" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } + } }, - "is-regex": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", - "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", + "blocking-proxy": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/blocking-proxy/-/blocking-proxy-1.0.1.tgz", + "integrity": "sha512-KE8NFMZr3mN2E0HcvCgRtX7DjhiIQrwle+nSVJVC/yqFb9+xznHl2ZcoBp2L9qzkI4t4cBFJ1efXF8Dwi132RA==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "minimist": "^1.2.0" } }, - "is-resolvable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-resolvable/-/is-resolvable-1.1.0.tgz", - "integrity": "sha512-qgDYXFSR5WvEfuS5dMj6oTMEbrrSaM0CrFk2Yiq/gXnBvD9pMa2jGXxyhGLfvhZpuMZe18CJpFxAt3CRs42NMg==", - "dev": true - }, - "is-stream": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", - "integrity": "sha1-EtSj3U5o4Lec6428hBc66A2RykQ=", - "dev": true - }, - "is-stream-ended": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/is-stream-ended/-/is-stream-ended-0.1.4.tgz", - "integrity": "sha512-xj0XPvmr7bQFTvirqnFr50o0hQIh6ZItDqloxt5aJrR4NQsYeSsyFQERYGCAzfindAcnKjINnwEEgLx4IqVzQw==", - "dev": true - }, - "is-svg": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-svg/-/is-svg-3.0.0.tgz", - "integrity": "sha512-gi4iHK53LR2ujhLVVj+37Ykh9GLqYHX6JOVXbLAucaG/Cqw9xwdFOjDM2qeifLs1sF1npXXFvDu0r5HNgCMrzQ==", + "body-parser": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.19.0.tgz", + "integrity": "sha512-dhEPs72UPbDnAQJ9ZKMNTP6ptJaionhP5cBb541nXPlW60Jepo9RV/a4fX4XWW9CuFNK22krhrj1+rgzifNCsw==", "dev": true, "requires": { - "html-comment-regex": "^1.1.0" + "bytes": "3.1.0", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "~1.1.2", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "on-finished": "~2.3.0", + "qs": "6.7.0", + "raw-body": "2.4.0", + "type-is": "~1.6.17" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "dev": true + }, + "qs": { + "version": "6.7.0", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.7.0.tgz", + "integrity": "sha512-VCdBRNFTX1fyE7Nb6FYoURo/SPe62QCaAyzJvUjwRaIsc+NePBEniHlvxFmmX56+HZphIGtV0XeCirBtpDrTyQ==", + "dev": true + } } }, - "is-symbol": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/is-symbol/-/is-symbol-1.0.3.tgz", - "integrity": "sha512-OwijhaRSgqvhm/0ZdAcXNZt9lYdKFpcRDT5ULUuYXPoT794UNOdU+gpT6Rzo7b4V2HUl/op6GqY894AZwv9faQ==", + "bonjour-service": { + "version": "1.0.13", + "resolved": "https://registry.npmjs.org/bonjour-service/-/bonjour-service-1.0.13.tgz", + "integrity": "sha512-LWKRU/7EqDUC9CTAQtuZl5HzBALoCYwtLhffW3et7vZMwv3bWLpJf8bRYlMD5OCcDpTfnPgNCV4yo9ZIaJGMiA==", "dev": true, "requires": { - "has-symbols": "^1.0.1" + "array-flatten": "^2.1.2", + "dns-equal": "^1.0.0", + "fast-deep-equal": "^3.1.3", + "multicast-dns": "^7.2.5" } }, - "is-typedarray": { + "boolbase": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", - "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", - "dev": true - }, - "is-url": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/is-url/-/is-url-1.2.4.tgz", - "integrity": "sha512-ITvGim8FhRiYe4IQ5uHSkj7pVaPDrCTkNd3yq3cV7iZAcJdHTUMPMEHcqSOy9xZ9qFenQCvi+2wjH9a1nXqHww==", + "resolved": "https://registry.npmjs.org/boolbase/-/boolbase-1.0.0.tgz", + "integrity": "sha512-JZOSA7Mo9sNGB8+UjSgzdLtokWAky1zbztM3WRLCbZ70/3cTANmQmOdR7y2g+J0e2WXywy1yS468tY+IruqEww==", "dev": true }, - "is-windows": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-windows/-/is-windows-1.0.2.tgz", - "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==", - "dev": true + "bootstrap": { + "version": "5.1.3", + "resolved": "https://registry.npmjs.org/bootstrap/-/bootstrap-5.1.3.tgz", + "integrity": "sha512-fcQztozJ8jToQWXxVuEyXWW+dSo8AiXWKwiSSrKWsRB/Qt+Ewwza+JWoLKiTuQLaEPhdNAJ7+Dosc9DOIqNy7Q==" }, - "is-wsl": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", - "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", "dev": true, "requires": { - "is-docker": "^2.0.0" + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" } }, - "is-yarn-global": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/is-yarn-global/-/is-yarn-global-0.3.0.tgz", - "integrity": "sha512-VjSeb/lHmkoyd8ryPVIKvOCn4D1koMqY+vqyjjUfc3xyKtP4dYOxM44sZrnqQSzSds3xyOrUTLTC9LVCVgLngw==", - "dev": true - }, - "is2": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/is2/-/is2-2.0.6.tgz", - "integrity": "sha512-+Z62OHOjA6k2sUDOKXoZI3EXv7Fb1K52jpTBLbkfx62bcUeSsrTBLhEquCRDKTx0XE5XbHcG/S2vrtE3lnEDsQ==", + "braces": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz", + "integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==", "dev": true, "requires": { - "deep-is": "^0.1.3", - "ip-regex": "^4.1.0", - "is-url": "^1.2.4" + "fill-range": "^7.0.1" + } + }, + "browser-tabs-lock": { + "version": "1.2.15", + "resolved": "https://registry.npmjs.org/browser-tabs-lock/-/browser-tabs-lock-1.2.15.tgz", + "integrity": "sha512-J8K9vdivK0Di+b8SBdE7EZxDr88TnATing7XoLw6+nFkXMQ6sVBh92K3NQvZlZU91AIkFRi0w3sztk5Z+vsswA==", + "requires": { + "lodash": ">=4.17.21" }, "dependencies": { - "ip-regex": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ip-regex/-/ip-regex-4.3.0.tgz", - "integrity": "sha512-B9ZWJxHHOHUhUjCPrMpLD4xEq35bUTClHM1S6CBU5ixQnkZmwipwgc96vAd7AAGM9TGHvJR+Uss+/Ak6UphK+Q==", - "dev": true + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" } } }, - "isarray": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", - "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", - "dev": true + "browserslist": { + "version": "4.21.1", + "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.21.1.tgz", + "integrity": "sha512-Nq8MFCSrnJXSc88yliwlzQe3qNe3VntIjhsArW9IJOEPSHNx23FalwApUVbzAWABLhYJJ7y8AynWI/XM8OdfjQ==", + "requires": { + "caniuse-lite": "^1.0.30001359", + "electron-to-chromium": "^1.4.172", + "node-releases": "^2.0.5", + "update-browserslist-db": "^1.0.4" + } }, - "isbinaryfile": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-3.0.3.tgz", - "integrity": "sha512-8cJBL5tTd2OS0dM4jz07wQd5g0dCCqIhUxPIGtZfa5L6hWlvV5MHTITy/DBAsF+Oe2LS1X3krBUhNwaGUWpWxw==", + "browserstack": { + "version": "1.6.1", + "resolved": "https://registry.npmjs.org/browserstack/-/browserstack-1.6.1.tgz", + "integrity": "sha512-GxtFjpIaKdbAyzHfFDKixKO8IBT7wR3NjbzrGc78nNs/Ciys9wU3/nBtsqsWv5nDSrdI5tz0peKuzCPuNXNUiw==", "dev": true, "requires": { - "buffer-alloc": "^1.2.0" + "https-proxy-agent": "^2.2.1" } }, - "isexe": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", - "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", - "dev": true - }, - "isobject": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", - "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=", + "buffer-from": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/buffer-from/-/buffer-from-1.1.1.tgz", + "integrity": "sha512-MQcXEUbCKtEo7bhqEs6560Hyd4XaovZlO/k9V3hjVUF/zwW7KBVdSK4gIt/bzwS9MbR5qob+F5jusZsb0YQK2A==", "dev": true }, - "isstream": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", - "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", + "builtin-modules": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/builtin-modules/-/builtin-modules-1.1.1.tgz", + "integrity": "sha512-wxXCdllwGhI2kCC0MnvTGYTMvnVZTvqgypkiTI8Pa5tcz2i6VqsqwYGgqwXji+4RgCzms6EajE4IxiUH6HH8nQ==", "dev": true }, - "istanbul-api": { - "version": "2.1.7", - "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.7.tgz", - "integrity": "sha512-LYTOa2UrYFyJ/aSczZi/6lBykVMjCCvUmT64gOe+jPZFy4w6FYfPGqFT2IiQ2BxVHHDOvCD7qrIXb0EOh4uGWw==", + "builtins": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/builtins/-/builtins-5.0.1.tgz", + "integrity": "sha512-qwVpFEHNfhYJIzNRBvd2C1kyo6jz3ZSMPyyuR47OPdiKWlbYnZNyDWuyR175qDnAJLiCo5fBBqPb3RiXgWlkOQ==", "dev": true, "requires": { - "async": "^2.6.2", - "compare-versions": "^3.4.0", - "fileset": "^2.0.3", - "istanbul-lib-coverage": "^2.0.5", - "istanbul-lib-hook": "^2.0.7", - "istanbul-lib-instrument": "^3.3.0", - "istanbul-lib-report": "^2.0.8", - "istanbul-lib-source-maps": "^3.0.6", - "istanbul-reports": "^2.2.5", - "js-yaml": "^3.13.1", - "make-dir": "^2.1.0", - "minimatch": "^3.0.4", - "once": "^1.4.0" + "semver": "^7.0.0" }, "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", - "dev": true + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } }, - "istanbul-lib-instrument": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.3.0.tgz", - "integrity": "sha512-5nnIN4vo5xQZHdXno/YDXJ0G+I3dAm4XgzfSVTPLQpj/zAV2dV6Juy0yaf10/zrJOJeHoN3fraFe+XRq2bFVZA==", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "@babel/generator": "^7.4.0", - "@babel/parser": "^7.4.3", - "@babel/template": "^7.4.0", - "@babel/traverse": "^7.4.3", - "@babel/types": "^7.4.0", - "istanbul-lib-coverage": "^2.0.5", - "semver": "^6.0.0" + "lru-cache": "^6.0.0" } } } }, - "istanbul-lib-coverage": { + "bytes": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.0.0.tgz", - "integrity": "sha512-UiUIqxMgRDET6eR+o5HbfRYP1l0hqkWOs7vNxC/mggutCMUIhWMm8gAHb8tHlyfD3/l6rlgNA5cKdDzEAf6hEg==", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.0.0.tgz", + "integrity": "sha1-0ygVQE1olpn4Wk6k+odV3ROpYEg=", "dev": true }, - "istanbul-lib-hook": { - "version": "2.0.7", - "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.7.tgz", - "integrity": "sha512-vrRztU9VRRFDyC+aklfLoeXyNdTfga2EI3udDGn4cZ6fpSXpHLV9X6CHvfoMCPtggg8zvDDmC4b9xfu0z6/llA==", - "dev": true, - "requires": { - "append-transform": "^1.0.0" - } - }, - "istanbul-lib-instrument": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-4.0.3.tgz", - "integrity": "sha512-BXgQl9kf4WTCPCCpmFGoJkz/+uhvm7h7PFKUYxh7qarQd3ER33vHG//qaE8eN25l07YqZPpHXU9I09l/RD5aGQ==", - "dev": true, - "requires": { - "@babel/core": "^7.7.5", - "@istanbuljs/schema": "^0.1.2", - "istanbul-lib-coverage": "^3.0.0", - "semver": "^6.3.0" - } - }, - "istanbul-lib-report": { - "version": "2.0.8", - "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.8.tgz", - "integrity": "sha512-fHBeG573EIihhAblwgxrSenp0Dby6tJMFR/HvlerBsrCTD5bkUuoNtn3gVh29ZCS824cGGBPn7Sg7cNk+2xUsQ==", + "cacache": { + "version": "16.0.7", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.0.7.tgz", + "integrity": "sha512-a4zfQpp5vm4Ipdvbj+ZrPonikRhm6WBEd4zT1Yc1DXsmAxrPgDwWBLF/u/wTVXSFPIgOJ1U3ghSa2Xm4s3h28w==", "dev": true, "requires": { - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "supports-color": "^6.1.0" + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" }, "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } - } - } - }, - "istanbul-lib-source-maps": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", - "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", - "dev": true, - "requires": { - "debug": "^4.1.1", - "istanbul-lib-coverage": "^2.0.5", - "make-dir": "^2.1.0", - "rimraf": "^2.6.3", - "source-map": "^0.6.1" - }, - "dependencies": { - "istanbul-lib-coverage": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", - "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + }, + "lru-cache": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", + "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", + "dev": true + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } + }, + "minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, - "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 + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } } } }, - "istanbul-reports": { - "version": "2.2.7", - "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.7.tgz", - "integrity": "sha512-uu1F/L1o5Y6LzPVSVZXNOoD/KXpJue9aeLRd0sM9uMXfZvzomB0WxVamWb5ue8kA2vVWEmW7EG+A5n3f1kqHKg==", + "call-bind": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", + "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", "dev": true, "requires": { - "html-escaper": "^2.0.0" + "function-bind": "^1.1.1", + "get-intrinsic": "^1.0.2" } }, - "jasmine": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", - "integrity": "sha1-awicChFXax8W3xG4AUbZHU6Lij4=", - "dev": true, - "requires": { - "exit": "^0.1.2", - "glob": "^7.0.6", - "jasmine-core": "~2.8.0" - }, - "dependencies": { - "jasmine-core": { - "version": "2.8.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", - "integrity": "sha1-vMl5rh+f0FcB5F5S5l06XWPxok4=", - "dev": true - } - } + "callsites": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", + "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", + "dev": true }, - "jasmine-core": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-3.5.0.tgz", - "integrity": "sha512-nCeAiw37MIMA9w9IXso7bRaLl+c/ef3wnxsoSAlYrzS+Ot0zTG6nU8G/cIfGkqpkjX2wNaIW9RFG0TwIFnG6bA==", + "camelcase": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", + "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==", "dev": true }, - "jasmine-spec-reporter": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-4.2.1.tgz", - "integrity": "sha512-FZBoZu7VE5nR7Nilzy+Np8KuVIOxF4oXDPDknehCYBDE080EnlPu0afdZNmpGDBRCUBv3mj5qgqCRmk6W/K8vg==", - "dev": true, + "caniuse-lite": { + "version": "1.0.30001364", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001364.tgz", + "integrity": "sha512-9O0xzV3wVyX0SlegIQ6knz+okhBB5pE0PC40MNdwcipjwpxoUEHL24uJ+gG42cgklPjfO5ZjZPme9FTSN3QT2Q==" + }, + "caseless": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/caseless/-/caseless-0.12.0.tgz", + "integrity": "sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw=", + "dev": true + }, + "chalk": { + "version": "2.4.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-2.4.2.tgz", + "integrity": "sha512-Mti+f9lpJNcwF4tWV8/OrTTtF1gZi+f8FqlyAdouralcFWFQWF2+NgCHShjkCb+IFBLq9buZwE1xckQU4peSuQ==", "requires": { - "colors": "1.1.2" + "ansi-styles": "^3.2.1", + "escape-string-regexp": "^1.0.5", + "supports-color": "^5.3.0" } }, - "jasminewd2": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", - "integrity": "sha1-43zwsX8ZnM4jvqcbIDk5Uka07E4=", + "chardet": { + "version": "0.7.0", + "resolved": "https://registry.npmjs.org/chardet/-/chardet-0.7.0.tgz", + "integrity": "sha512-mT8iDcrh03qDGRRmoA2hmBJnxpllMR+0/0qlzjqZES6NdiWDcZkCNAk4rPFZ9Q85r27unkiNNg8ZOiwZXBHwcA==", "dev": true }, - "jest-worker": { - "version": "24.9.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.9.0.tgz", - "integrity": "sha512-51PE4haMSXcHohnSMdM42anbvZANYTqMrr52tVKPqqsPJMzoP6FYYDVqahX/HrAoKEKz3uUPzSvKs9A3qR4iVw==", + "chokidar": { + "version": "3.5.1", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.1.tgz", + "integrity": "sha512-9+s+Od+W0VJJzawDma/gvBNQqkTiqYTWLuZoyAsivsI4AaWTCzHG06/TMjsf1cYe9Cb97UCEhjz7HvnPk2p/tw==", "dev": true, "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^6.1.0" + "anymatch": "~3.1.1", + "braces": "~3.0.2", + "fsevents": "~2.3.1", + "glob-parent": "~5.1.0", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.5.0" }, "dependencies": { - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "glob-parent": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.1.tgz", + "integrity": "sha512-FnI+VGOpnlGHWZxthPGR+QhR78fuiK0sNLkHQv+bL9fQi57lNNdquIbna/WrfROrolq8GK5Ek6BiMwqL/voRYQ==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "is-glob": "^4.0.1" } } } }, - "jju": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jju/-/jju-1.4.0.tgz", - "integrity": "sha1-o6vicYryQaKykE+EpiWXDzia4yo=", - "dev": true - }, - "join-path": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/join-path/-/join-path-1.1.1.tgz", - "integrity": "sha1-EFNaEm0ky9Zff/zfFe8uYxB2tQU=", - "dev": true, - "requires": { - "as-array": "^2.0.0", - "url-join": "0.0.1", - "valid-url": "^1" - } - }, - "js-levenshtein": { - "version": "1.1.6", - "resolved": "https://registry.npmjs.org/js-levenshtein/-/js-levenshtein-1.1.6.tgz", - "integrity": "sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==", + "chrome-trace-event": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/chrome-trace-event/-/chrome-trace-event-1.0.3.tgz", + "integrity": "sha512-p3KULyQg4S7NIHixdwbGX+nFHkoBiA4YQmyWtjb8XngSKV124nJmRysgAeujbUVb15vh+RvFUfCPqU7rXk+hZg==", "dev": true }, - "js-tokens": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", - "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==", + "clean-stack": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/clean-stack/-/clean-stack-2.2.0.tgz", + "integrity": "sha512-4diC9HaTE+KRAMWhDhrGOECgWZxoevMc5TlkObMqNSsVU62PYzXZ/SMTjzyGAFF1YusgxGcSWTEXBhp0CPwQ1A==", "dev": true }, - "js-yaml": { - "version": "3.14.1", - "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", - "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", + "cli-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/cli-cursor/-/cli-cursor-3.1.0.tgz", + "integrity": "sha512-I/zHAwsKf9FqGoXM4WWRACob9+SNukZTd94DWF57E4toouRulbCxcUh6RKUEOQlYTHJnzkPMySvPNaaSLNfLZw==", "dev": true, "requires": { - "argparse": "^1.0.7", - "esprima": "^4.0.0" + "restore-cursor": "^3.1.0" } }, - "jsbn": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", - "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", - "dev": true - }, - "jsesc": { - "version": "2.5.2", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", - "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==", + "cli-spinners": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/cli-spinners/-/cli-spinners-2.5.0.tgz", + "integrity": "sha512-PC+AmIuK04E6aeSs/pUccSujsTzBhu4HzC2dL+CfJB/Jcc2qTRbEwZQDfIUpt2Xl8BodYBEq8w4fc0kU2I9DjQ==", "dev": true }, - "json-bigint": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/json-bigint/-/json-bigint-1.0.0.tgz", - "integrity": "sha512-SiPv/8VpZuWbvLSMtTDU8hEfrZWg/mH/nV/b4o0CYbSxu1UIQPLdwKOCIyLQX+VIPO5vrLX3i8qtqFyhdPSUSQ==", + "cliui": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", + "dev": true, "requires": { - "bignumber.js": "^9.0.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, - "json-buffer": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/json-buffer/-/json-buffer-3.0.0.tgz", - "integrity": "sha1-Wx85evx11ne96Lz8Dkfh+aPZqJg=", - "dev": true - }, - "json-parse-better-errors": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/json-parse-better-errors/-/json-parse-better-errors-1.0.2.tgz", - "integrity": "sha512-mrqyZKfX5EhL7hvqcV6WG1yYjnjeuYDzDhhcAAUrq8Po85NBQBJP+ZDUT75qZQ98IkUoBqdkExkukOU7Ts2wrw==", - "dev": true - }, - "json-parse-even-better-errors": { - "version": "2.3.1", - "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", - "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", - "dev": true - }, - "json-parse-helpfulerror": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/json-parse-helpfulerror/-/json-parse-helpfulerror-1.0.3.tgz", - "integrity": "sha1-E/FM4C7tTpgSl7ZOueO5MuLdE9w=", + "clone-deep": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/clone-deep/-/clone-deep-4.0.1.tgz", + "integrity": "sha512-neHB9xuzh/wk0dIHweyAXv2aPGZIVk3pLMe+/RNzINf17fe0OG96QroktYAUm7SM1PBnzTabaLboqqxDyMU+SQ==", "dev": true, "requires": { - "jju": "^1.1.0" + "is-plain-object": "^2.0.4", + "kind-of": "^6.0.2", + "shallow-clone": "^3.0.0" } }, - "json-ptr": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/json-ptr/-/json-ptr-1.3.2.tgz", - "integrity": "sha512-tFH40YQ+lG7mgYYM1kGZOhQngO4SbOEHZJlA4W+NtetWZ20EUU3BPU+30uWRKumuAJoSo5eqrsXD2h72ioS8ew==", + "codelyzer": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/codelyzer/-/codelyzer-6.0.2.tgz", + "integrity": "sha512-v3+E0Ucu2xWJMOJ2fA/q9pDT/hlxHftHGPUay1/1cTgyPV5JTHFdO9hqo837Sx2s9vKBMTt5gO+lhF95PO6J+g==", "dev": true, "requires": { - "tslib": "^2.0.0" + "@angular/compiler": "9.0.0", + "@angular/core": "9.0.0", + "app-root-path": "^3.0.0", + "aria-query": "^3.0.0", + "axobject-query": "2.0.2", + "css-selector-tokenizer": "^0.7.1", + "cssauron": "^1.4.0", + "damerau-levenshtein": "^1.0.4", + "rxjs": "^6.5.3", + "semver-dsl": "^1.0.1", + "source-map": "^0.5.7", + "sprintf-js": "^1.1.2", + "tslib": "^1.10.0", + "zone.js": "~0.10.3" }, "dependencies": { + "@angular/compiler": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-9.0.0.tgz", + "integrity": "sha512-ctjwuntPfZZT2mNj2NDIVu51t9cvbhl/16epc5xEwyzyDt76pX9UgwvY+MbXrf/C/FWwdtmNtfP698BKI+9leQ==", + "dev": true + }, + "@angular/core": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/@angular/core/-/core-9.0.0.tgz", + "integrity": "sha512-6Pxgsrf0qF9iFFqmIcWmjJGkkCaCm6V5QNnxMy2KloO3SDq6QuMVRbN9RtC8Urmo25LP+eZ6ZgYqFYpdD8Hd9w==", + "dev": true + }, + "rxjs": { + "version": "6.6.7", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.6.7.tgz", + "integrity": "sha512-hTdwr+7yYNIT5n4AMYp85KA6yw2Va0FLa3Rguvbpa4W3I5xynaBZo41cM3XM+4Q6fRMj3sBYIR1VAmZMXYJvRQ==", + "dev": true, + "requires": { + "tslib": "^1.9.0" + } + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", + "dev": true + }, + "sprintf-js": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.1.2.tgz", + "integrity": "sha512-VE0SOVEHCk7Qc8ulkWw3ntAzXuqf7S2lvwQaDLRnUeIEaKNQJzV6BwmLKhOqT61aGhfUMrXeaBk+oDGCzvhcug==", + "dev": true + }, "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==", + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", + "dev": true + }, + "zone.js": { + "version": "0.10.3", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", + "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==", "dev": true } } }, - "json-schema": { - "version": "0.2.3", - "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", - "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", - "dev": true + "color-convert": { + "version": "1.9.3", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", + "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", + "requires": { + "color-name": "1.1.3" + } }, - "json-schema-traverse": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", - "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", + "color-name": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", + "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" + }, + "color-support": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/color-support/-/color-support-1.1.3.tgz", + "integrity": "sha512-qiBjkpbMLO/HL68y+lh4q0/O1MZFj2RX6X/KmMa3+gJD3z+WwI1ZzDHysvqHGS3mP6mznPckpXmw1nI9cJjyRg==", "dev": true }, - "json-stringify-safe": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", - "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", + "colorette": { + "version": "2.0.19", + "resolved": "https://registry.npmjs.org/colorette/-/colorette-2.0.19.tgz", + "integrity": "sha512-3tlv/dIP7FWvj3BsbHrGLJ6l/oKh1O3TcgBqMn+yyCagOxc23fyzDS6HypQbgxWbkpDnf52p1LuR4eWDQ/K9WQ==", "dev": true }, - "json3": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/json3/-/json3-3.3.3.tgz", - "integrity": "sha512-c7/8mbUsKigAbLkD5B010BK4D9LZm7A1pNItkEwiUZRpIN66exu/e7YQWysGun+TRKaJp8MhemM+VkfWv42aCA==", + "colors": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", + "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", "dev": true }, - "json5": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/json5/-/json5-1.0.1.tgz", - "integrity": "sha512-aKS4WQjPenRxiQsC93MNfjx+nbF4PAdYzmd/1JIj8HYzqfbu86beTuNgXDzPknWk0n0uARlyewZo4s++ES36Ow==", + "combined-stream": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/combined-stream/-/combined-stream-1.0.8.tgz", + "integrity": "sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg==", "dev": true, "requires": { - "minimist": "^1.2.0" + "delayed-stream": "~1.0.0" } }, - "jsonfile": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-4.0.0.tgz", - "integrity": "sha1-h3Gq4HmbZAdrdmQPygWPnBDjPss=", - "dev": true, - "requires": { - "graceful-fs": "^4.1.6" - } + "commander": { + "version": "2.20.3", + "resolved": "https://registry.npmjs.org/commander/-/commander-2.20.3.tgz", + "integrity": "sha512-GpVkmM8vF2vQUkj2LvZmD35JxeJOLCwJ9cUkugyk2nuhbv3+mJvpLYYt+0+USMxE+oj+ey/lJEnhZw75x/OMcQ==", + "dev": true }, - "jsonparse": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", - "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "commondir": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/commondir/-/commondir-1.0.1.tgz", + "integrity": "sha512-W9pAhw0ja1Edb5GVdIF1mjZw/ASI0AlShXM83UUGe2DVr5TdAPEA1OA8m/g8zWp9x6On7gqufY+FatDbC3MDQg==", "dev": true }, - "jsonschema": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/jsonschema/-/jsonschema-1.4.0.tgz", - "integrity": "sha512-/YgW6pRMr6M7C+4o8kS+B/2myEpHCrxO4PEWnqJNBFMjn7EWXqlQ4tGwL6xTHeRplwuZmcAncdvfOad1nT2yMw==", + "component-emitter": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.3.0.tgz", + "integrity": "sha512-Rd3se6QB+sO1TwqZjscQrurpEPIfO0/yYnSin6Q/rD3mOutHvUrCAhJub3r90uNb+SESBuE0QYoB90YdfatsRg==", "dev": true }, - "JSONStream": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/JSONStream/-/JSONStream-1.3.5.tgz", - "integrity": "sha512-E+iruNOY8VV9s4JEbe1aNEm6MiszPRr/UfcHMz0TQh1BXSxHK+ASV1R6W4HpjBhSeS+54PIsAMCBmwD06LLsqQ==", + "compressible": { + "version": "2.0.18", + "resolved": "https://registry.npmjs.org/compressible/-/compressible-2.0.18.tgz", + "integrity": "sha512-AF3r7P5dWxL8MxyITRMlORQNaOA2IkAFaTr4k7BUumjPtRpGDTZpl0Pb1XCO6JeDCBdp126Cgs9sMxqSjgYyRg==", "dev": true, "requires": { - "jsonparse": "^1.2.0", - "through": ">=2.2.7 <3" + "mime-db": ">= 1.43.0 < 2" } }, - "jsonwebtoken": { - "version": "8.5.1", - "resolved": "https://registry.npmjs.org/jsonwebtoken/-/jsonwebtoken-8.5.1.tgz", - "integrity": "sha512-XjwVfRS6jTMsqYs0EsuJ4LGxXV14zQybNd4L2r0UvbVnSF9Af8x7p5MzbJ90Ioz/9TI41/hTCvznF/loiSzn8w==", + "compression": { + "version": "1.7.4", + "resolved": "https://registry.npmjs.org/compression/-/compression-1.7.4.tgz", + "integrity": "sha512-jaSIDzP9pZVS4ZfQ+TzvtiWhdpFhE2RDHz8QJkpX9SIpLq88VueF5jJw6t+6CUQcAoA6t+x89MLrWAqpfDE8iQ==", "dev": true, "requires": { - "jws": "^3.2.2", - "lodash.includes": "^4.3.0", - "lodash.isboolean": "^3.0.3", - "lodash.isinteger": "^4.0.4", - "lodash.isnumber": "^3.0.3", - "lodash.isplainobject": "^4.0.6", - "lodash.isstring": "^4.0.1", - "lodash.once": "^4.0.0", - "ms": "^2.1.1", - "semver": "^5.6.0" + "accepts": "~1.3.5", + "bytes": "3.0.0", + "compressible": "~2.0.16", + "debug": "2.6.9", + "on-headers": "~1.0.2", + "safe-buffer": "5.1.2", + "vary": "~1.1.2" }, "dependencies": { - "jwa": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-1.4.1.tgz", - "integrity": "sha512-qiLX/xhEEFKUAJ6FiBMbes3w9ATzyk5W7Hvzpa/SLYdxNtng+gcurvrI7TbACjIXlsJyr05/S1oUhZrc63evQA==", - "dev": true, - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/jws/-/jws-3.2.2.tgz", - "integrity": "sha512-YHlZCB6lMTllWDtSPHz/ZXTsi8S00usEV6v1tjq8tOUZzw7DpSDWVXjXDre6ed1w/pd495ODpHZYSdkRTsa0HA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "jwa": "^1.4.1", - "safe-buffer": "^5.0.1" + "ms": "2.0.0" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "jsprim": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", - "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", - "dev": true, - "requires": { - "assert-plus": "1.0.0", - "extsprintf": "1.3.0", - "json-schema": "0.2.3", - "verror": "1.10.0" - } - }, - "jszip": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.5.0.tgz", - "integrity": "sha512-WRtu7TPCmYePR1nazfrtuF216cIVon/3GWOvHS9QR5bIwSbnxtdpma6un3jyGGNhHsKCSzn5Ypk+EkDRvTGiFA==", - "dev": true, - "requires": { - "lie": "~3.3.0", - "pako": "~1.0.2", - "readable-stream": "~2.3.6", - "set-immediate-shim": "~1.0.1" - } - }, - "jwa": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/jwa/-/jwa-2.0.0.tgz", - "integrity": "sha512-jrZ2Qx916EA+fq9cEAeCROWPTfCwi1IVHqT2tapuqLEVVDKFDENFw1oL+MwrTvH6msKxsd1YTDVw6uKEcsrLEA==", - "requires": { - "buffer-equal-constant-time": "1.0.1", - "ecdsa-sig-formatter": "1.0.11", - "safe-buffer": "^5.0.1" - } - }, - "jws": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/jws/-/jws-4.0.0.tgz", - "integrity": "sha512-KDncfTmOZoOMTFG4mBlG0qUIOlc03fmzH+ru6RgYVZhPkyiy/92Owlt/8UEN+a4TXR1FQetfIpJE8ApdvdVxTg==", - "requires": { - "jwa": "^2.0.0", - "safe-buffer": "^5.0.1" - } + "concat-map": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/concat-map/-/concat-map-0.0.1.tgz", + "integrity": "sha1-2Klr13/Wjfd5OnMDajug1UBdR3s=", + "dev": true }, - "karma": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/karma/-/karma-4.3.0.tgz", - "integrity": "sha512-NSPViHOt+RW38oJklvYxQC4BSQsv737oQlr/r06pCM+slDOr4myuI1ivkRmp+3dVpJDfZt2DmaPJ2wkx+ZZuMQ==", + "connect": { + "version": "3.7.0", + "resolved": "https://registry.npmjs.org/connect/-/connect-3.7.0.tgz", + "integrity": "sha512-ZqRXc+tZukToSNmh5C2iWMSoV3X1YUcPbqEM4DkEG5tNQXrQUZCNVGGv3IuicnkMtPfGf3Xtp8WCXs295iQ1pQ==", "dev": true, "requires": { - "bluebird": "^3.3.0", - "body-parser": "^1.16.1", - "braces": "^3.0.2", - "chokidar": "^3.0.0", - "colors": "^1.1.0", - "connect": "^3.6.0", - "core-js": "^3.1.3", - "di": "^0.0.1", - "dom-serialize": "^2.2.0", - "flatted": "^2.0.0", - "glob": "^7.1.1", - "graceful-fs": "^4.1.2", - "http-proxy": "^1.13.0", - "isbinaryfile": "^3.0.0", - "lodash": "^4.17.14", - "log4js": "^4.0.0", - "mime": "^2.3.1", - "minimatch": "^3.0.2", - "optimist": "^0.6.1", - "qjobs": "^1.1.4", - "range-parser": "^1.2.0", - "rimraf": "^2.6.0", - "safe-buffer": "^5.0.1", - "socket.io": "2.1.1", - "source-map": "^0.6.1", - "tmp": "0.0.33", - "useragent": "2.3.0" + "debug": "2.6.9", + "finalhandler": "1.1.2", + "parseurl": "~1.3.3", + "utils-merge": "1.0.1" }, "dependencies": { - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", - "dev": true - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "glob": "^7.1.3" + "ms": "2.0.0" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", "dev": true } } }, - "karma-chrome-launcher": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.0.tgz", - "integrity": "sha512-3dPs/n7vgz1rxxtynpzZTvb9y/GIaW8xjAwcIGttLbycqoFtI7yo1NGnQi6oFTherRE+GIhCAHZC4vEqWGhNvg==", - "dev": true, - "requires": { - "which": "^1.2.1" - } + "connect-history-api-fallback": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/connect-history-api-fallback/-/connect-history-api-fallback-1.6.0.tgz", + "integrity": "sha512-e54B99q/OUoH64zYYRf3HBP5z24G38h5D3qXu23JGRoigpX5Ss4r9ZnDk3g0Z8uQC2x2lPaJ+UlWBc1ZWBWdLg==", + "dev": true }, - "karma-coverage-istanbul-reporter": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-2.1.1.tgz", - "integrity": "sha512-CH8lTi8+kKXGvrhy94+EkEMldLCiUA0xMOiL31vvli9qK0T+qcXJAwWBRVJWnVWxYkTmyWar8lPz63dxX6/z1A==", - "dev": true, - "requires": { - "istanbul-api": "^2.1.6", - "minimatch": "^3.0.4" - } + "console-control-strings": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/console-control-strings/-/console-control-strings-1.1.0.tgz", + "integrity": "sha1-PXz0Rk22RG6mRL9LOVB/mFEAjo4=", + "dev": true }, - "karma-jasmine": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-2.0.1.tgz", - "integrity": "sha512-iuC0hmr9b+SNn1DaUD2QEYtUxkS1J+bSJSn7ejdEexs7P8EYvA1CWkEdrDQ+8jVH3AgWlCNwjYsT1chjcNW9lA==", - "dev": true, + "content-type": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/content-type/-/content-type-1.0.4.tgz", + "integrity": "sha512-hIP3EEPs8tB9AT1L+NUqtwOAps4mk2Zob89MWXMHjHWg9milF/j4osnnQLXBCBFBk/tvIG/tUc9mOUJiPBhPXA==", + "dev": true + }, + "convert-source-map": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.8.0.tgz", + "integrity": "sha512-+OQdjP49zViI/6i7nIJpA8rAl4sV/JdPfU9nZs3VqOwGIgizICvuN2ru6fMd+4llL0tar18UYJXfZ/TWtmhUjA==", "requires": { - "jasmine-core": "^3.3" + "safe-buffer": "~5.1.1" } }, - "karma-jasmine-html-reporter": { - "version": "1.5.4", - "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-1.5.4.tgz", - "integrity": "sha512-PtilRLno5O6wH3lDihRnz0Ba8oSn0YUJqKjjux1peoYGwo0AQqrWRbdWk/RLzcGlb+onTyXAnHl6M+Hu3UxG/Q==", + "cookie-signature": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.0.6.tgz", + "integrity": "sha1-4wOogrNCzD7oylE6eZmXNNqzriw=", "dev": true }, - "karma-source-map-support": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", - "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", + "copy-anything": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/copy-anything/-/copy-anything-2.0.6.tgz", + "integrity": "sha512-1j20GZTsvKNkc4BY3NpMOM8tt///wY3FpIzozTOFO2ffuZcV61nojHXVKIy3WM+7ADCy5FVhdZYHYDdgTU0yJw==", "dev": true, "requires": { - "source-map-support": "^0.5.5" + "is-what": "^3.14.1" } }, - "keyv": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/keyv/-/keyv-3.1.0.tgz", - "integrity": "sha512-9ykJ/46SN/9KPM/sichzQ7OvXyGDYKGTaDlKMGCAlg2UK8KRy4jb0d8sFc+0Tt0YYnThq8X2RZgCg74RPxgcVA==", + "copy-webpack-plugin": { + "version": "10.2.4", + "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", + "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", "dev": true, "requires": { - "json-buffer": "3.0.0" + "fast-glob": "^3.2.7", + "glob-parent": "^6.0.1", + "globby": "^12.0.2", + "normalize-path": "^3.0.0", + "schema-utils": "^4.0.0", + "serialize-javascript": "^6.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } } }, - "killable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", - "integrity": "sha512-LzqtLKlUwirEUyl/nicirVmNiPvYs7l5n8wOPP7fyJVpUPkvCnW/vuiXGpylGUlnPDnB7311rARzAt3Mhswpjg==", - "dev": true - }, - "kind-of": { - "version": "6.0.3", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", - "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", - "dev": true + "core-js-compat": { + "version": "3.23.4", + "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.23.4.tgz", + "integrity": "sha512-RkSRPe+JYEoflcsuxJWaiMPhnZoFS51FcIxm53k4KzhISCBTmaGlto9dTIrYuk0hnJc3G6pKufAKepHnBq6B6Q==", + "dev": true, + "requires": { + "browserslist": "^4.21.1", + "semver": "7.0.0" + }, + "dependencies": { + "semver": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", + "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", + "dev": true + } + } }, - "kuler": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/kuler/-/kuler-2.0.0.tgz", - "integrity": "sha512-Xq9nH7KlWZmXAtodXDDRE7vs6DU1gTU8zYDHDiWLSip45Egwq3plLHzPn27NgvzL2r1LMPC1vdqh98sQxtqj4A==", + "core-util-is": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/core-util-is/-/core-util-is-1.0.2.tgz", + "integrity": "sha1-tf1UIgqivFq1eqtxQMlAdUUDwac=", "dev": true }, - "latest-version": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/latest-version/-/latest-version-5.1.0.tgz", - "integrity": "sha512-weT+r0kTkRQdCdYCNtkMwWXQTMEswKrFBkm4ckQOMVhhqhIMI1UT2hMj+1iigIhgSZm5gTmrRXBNoGUgaTY1xA==", + "cors": { + "version": "2.8.5", + "resolved": "https://registry.npmjs.org/cors/-/cors-2.8.5.tgz", + "integrity": "sha512-KIHbLJqu73RGr/hnbrO9uBeixNGuvSQjul/jdFvS/KFSIH1hWVd1ng7zOHx+YrEfInLG7q4n6GHQ9cDtxv/P6g==", "dev": true, "requires": { - "package-json": "^6.3.0" + "object-assign": "^4", + "vary": "^1" } }, - "lazystream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/lazystream/-/lazystream-1.0.0.tgz", - "integrity": "sha1-9plf4PggOS9hOWvolGJAe7dxaOQ=", + "cosmiconfig": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/cosmiconfig/-/cosmiconfig-7.0.1.tgz", + "integrity": "sha512-a1YWNUV2HwGimB7dU2s1wUMurNKjpx60HxBB6xUM8Re+2s1g1IIfJvFR0/iCF+XHdE0GMTKTuLR32UQff4TEyQ==", "dev": true, "requires": { - "readable-stream": "^2.0.5" + "@types/parse-json": "^4.0.0", + "import-fresh": "^3.2.1", + "parse-json": "^5.0.0", + "path-type": "^4.0.0", + "yaml": "^1.10.0" } }, - "lcid": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/lcid/-/lcid-2.0.0.tgz", - "integrity": "sha512-avPEb8P8EGnwXKClwsNUgryVjllcRqtMYa49NTsbQagYuT1DcXnl1915oxWjoyGrXR6zH/Y0Zc96xWsPcoDKeA==", + "create-require": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/create-require/-/create-require-1.1.1.tgz", + "integrity": "sha512-dcKFX3jn0MpIaXjisoRvexIJVEKzaq7z2rZKxf+MSr9TkdmHmsU4m2lcLojrj/FHl8mk5VxMmYA+ftRkP/3oKQ==", + "dev": true + }, + "critters": { + "version": "0.0.16", + "resolved": "https://registry.npmjs.org/critters/-/critters-0.0.16.tgz", + "integrity": "sha512-JwjgmO6i3y6RWtLYmXwO5jMd+maZt8Tnfu7VVISmEWyQqfLpB8soBswf8/2bu6SBXxtKA68Al3c+qIG1ApT68A==", "dev": true, "requires": { - "invert-kv": "^2.0.0" + "chalk": "^4.1.0", + "css-select": "^4.2.0", + "parse5": "^6.0.1", + "parse5-htmlparser2-tree-adapter": "^6.0.1", + "postcss": "^8.3.7", + "pretty-bytes": "^5.3.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "less": { - "version": "3.10.3", - "resolved": "https://registry.npmjs.org/less/-/less-3.10.3.tgz", - "integrity": "sha512-vz32vqfgmoxF1h3K4J+yKCtajH0PWmjkIFgbs5d78E/c/e+UQTnI+lWK+1eQRE95PXM2mC3rJlLSSP9VQHnaow==", + "css": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/css/-/css-3.0.0.tgz", + "integrity": "sha512-DG9pFfwOrzc+hawpmqX/dHYHJG+Bsdb0klhyi1sDneOgGOXy9wQIC8hzyVp1e4NRYDBdxcylvywPkkXCHAzTyQ==", "dev": true, "requires": { - "clone": "^2.1.2", - "errno": "^0.1.1", - "graceful-fs": "^4.1.2", - "image-size": "~0.5.0", - "mime": "^1.4.1", - "mkdirp": "^0.5.0", - "promise": "^7.1.1", - "request": "^2.83.0", - "source-map": "~0.6.0" + "inherits": "^2.0.4", + "source-map": "^0.6.1", + "source-map-resolve": "^0.6.0" }, "dependencies": { "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, - "optional": true + "dev": true } } }, - "less-loader": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-5.0.0.tgz", - "integrity": "sha512-bquCU89mO/yWLaUq0Clk7qCsKhsF/TZpJUzETRvJa9KSVEL9SO3ovCvdEHISBhrC81OwC8QSVX7E0bzElZj9cg==", + "css-blank-pseudo": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/css-blank-pseudo/-/css-blank-pseudo-3.0.3.tgz", + "integrity": "sha512-VS90XWtsHGqoM0t4KpH053c4ehxZ2E6HtGI7x68YFV0pTo/QmkV/YFA+NnlvK8guxZVNWGQhVNJGC39Q8XF4OQ==", "dev": true, "requires": { - "clone": "^2.1.1", - "loader-utils": "^1.1.0", - "pify": "^4.0.1" + "postcss-selector-parser": "^6.0.9" } }, - "leven": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz", - "integrity": "sha512-qsda+H8jTaUaN/x5vzW2rzc+8Rw4TAQ/4KjB46IwK5VH+IlVeeeje/EoZRpiXvIqjFgK84QffqPztGI3VBLG1A==", - "dev": true - }, - "license-webpack-plugin": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-2.1.3.tgz", - "integrity": "sha512-vTSY5r9HOq4sxR2BIxdIXWKI+9n3b+DoQkhKHedB3TdSxTfXUDRxKXdAj5iejR+qNXprXsxvEu9W+zOhgGIkAw==", + "css-has-pseudo": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/css-has-pseudo/-/css-has-pseudo-3.0.4.tgz", + "integrity": "sha512-Vse0xpR1K9MNlp2j5w1pgWIJtm1a8qS0JwS9goFYcImjlHEmywP9VUF05aGBXzGpDJF86QXk4L0ypBmwPhGArw==", "dev": true, "requires": { - "@types/webpack-sources": "^0.1.5", - "webpack-sources": "^1.2.0" + "postcss-selector-parser": "^6.0.9" } }, - "lie": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", - "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "css-loader": { + "version": "6.7.1", + "resolved": "https://registry.npmjs.org/css-loader/-/css-loader-6.7.1.tgz", + "integrity": "sha512-yB5CNFa14MbPJcomwNh3wLThtkZgcNyI2bNMRt8iE5Z8Vwl7f8vQXFAzn2HDOJvtDq2NTZBUGMSUNNyrv3/+cw==", "dev": true, "requires": { - "immediate": "~3.0.5" + "icss-utils": "^5.1.0", + "postcss": "^8.4.7", + "postcss-modules-extract-imports": "^3.0.0", + "postcss-modules-local-by-default": "^4.0.0", + "postcss-modules-scope": "^3.0.0", + "postcss-modules-values": "^4.0.0", + "postcss-value-parser": "^4.2.0", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "listenercount": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/listenercount/-/listenercount-1.0.1.tgz", - "integrity": "sha1-hMinKrWcRyUyFIDJdeZQg0LnCTc=", - "dev": true - }, - "loader-runner": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-2.4.0.tgz", - "integrity": "sha512-Jsmr89RcXGIwivFY21FcRrisYZfvLMTWx5kOLc+JTxtpBOG6xML0vzbc6SEQG2FO9/4Fc3wW4LVcB5DmGflaRw==", + "css-prefers-color-scheme": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/css-prefers-color-scheme/-/css-prefers-color-scheme-6.0.3.tgz", + "integrity": "sha512-4BqMbZksRkJQx2zAjrokiGMd07RqOa2IxIrrN10lyBe9xhn9DEvjUK79J6jkeiv9D9hQFXKb6g1jwU62jziJZA==", "dev": true }, - "loader-utils": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-1.2.3.tgz", - "integrity": "sha512-fkpz8ejdnEMG3s37wGL07iSBDg99O9D5yflE9RGNH3hRdx9SOwYfnGYdZOUIZitN8E+E2vkq3MUMYMvPYl5ZZA==", + "css-select": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/css-select/-/css-select-4.3.0.tgz", + "integrity": "sha512-wPpOYtnsVontu2mODhA19JrqWxNsfdatRKd64kmpRbQgh1KtItko5sTnEpPdpSaJszTOhEMlF/RPz28qj4HqhQ==", "dev": true, "requires": { - "big.js": "^5.2.2", - "emojis-list": "^2.0.0", - "json5": "^1.0.1" + "boolbase": "^1.0.0", + "css-what": "^6.0.1", + "domhandler": "^4.3.1", + "domutils": "^2.8.0", + "nth-check": "^2.0.1" } }, - "locate-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-3.0.0.tgz", - "integrity": "sha512-7AO748wWnIhNqAuaty2ZWHkQHRSNfPVIsPIfwEOWO22AmaoVrWavlOcMR5nzTLNYvp36X220/maaRsrec1G65A==", + "css-selector-tokenizer": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/css-selector-tokenizer/-/css-selector-tokenizer-0.7.3.tgz", + "integrity": "sha512-jWQv3oCEL5kMErj4wRnK/OPoBi0D+P1FR2cDCKYPaMeD2eW3/mttav8HT4hT1CKopiJI/psEULjkClhvJo4Lvg==", "dev": true, "requires": { - "p-locate": "^3.0.0", - "path-exists": "^3.0.0" + "cssesc": "^3.0.0", + "fastparse": "^1.1.2" } }, - "lodash": { - "version": "4.17.20", - "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", - "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", - "dev": true - }, - "lodash._isnative": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._isnative/-/lodash._isnative-2.4.1.tgz", - "integrity": "sha1-PqZAS3hKe+g2x7V1gOHN95sUgyw=", - "dev": true - }, - "lodash._objecttypes": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._objecttypes/-/lodash._objecttypes-2.4.1.tgz", - "integrity": "sha1-fAt/admKH3ZSn4kLDNsbTf7BHBE=", + "css-what": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/css-what/-/css-what-6.1.0.tgz", + "integrity": "sha512-HTUrgRJ7r4dsZKU6GjmpfRK1O76h97Z8MfS1G0FozR+oF2kG6Vfe8JE6zwrkbxigziPHinCJ+gCPjA9EaBDtRw==", "dev": true }, - "lodash._shimkeys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash._shimkeys/-/lodash._shimkeys-2.4.1.tgz", - "integrity": "sha1-bpzJZm/wgfC1psl4uD4kLmlJ0gM=", + "cssauron": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/cssauron/-/cssauron-1.4.0.tgz", + "integrity": "sha512-Ht70DcFBh+/ekjVrYS2PlDMdSQEl3OFNmjK6lcn49HptBgilXf/Zwg4uFh9Xn0pX3Q8YOkSjIFOfK2osvdqpBw==", "dev": true, "requires": { - "lodash._objecttypes": "~2.4.1" + "through": "X.X.X" } }, - "lodash.at": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.at/-/lodash.at-4.6.0.tgz", - "integrity": "sha1-k83OZk8KGZTqM9181A4jr9EbD/g=", - "dev": true - }, - "lodash.camelcase": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.camelcase/-/lodash.camelcase-4.3.0.tgz", - "integrity": "sha1-soqmKIorn8ZRA1x3EfZathkDMaY=" - }, - "lodash.clonedeep": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.clonedeep/-/lodash.clonedeep-4.5.0.tgz", - "integrity": "sha1-4j8/nE+Pvd6HJSnBBxhXoIblzO8=", - "dev": true - }, - "lodash.defaults": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/lodash.defaults/-/lodash.defaults-4.2.0.tgz", - "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=", + "cssdb": { + "version": "6.6.3", + "resolved": "https://registry.npmjs.org/cssdb/-/cssdb-6.6.3.tgz", + "integrity": "sha512-7GDvDSmE+20+WcSMhP17Q1EVWUrLlbxxpMDqG731n8P99JhnQZHR9YvtjPvEHfjFUjvQJvdpKCjlKOX+xe4UVA==", "dev": true }, - "lodash.difference": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.difference/-/lodash.difference-4.5.0.tgz", - "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=", + "cssesc": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/cssesc/-/cssesc-3.0.0.tgz", + "integrity": "sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==", "dev": true }, - "lodash.flatten": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.flatten/-/lodash.flatten-4.4.0.tgz", - "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=", + "custom-event": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/custom-event/-/custom-event-1.0.1.tgz", + "integrity": "sha512-GAj5FOq0Hd+RsCGVJxZuKaIDXDf3h6GQoNEjFgbLLI/trgtavwUbSnZ5pVfg27DVCaWjIohryS0JFwIJyT2cMg==", "dev": true }, - "lodash.has": { - "version": "4.5.2", - "resolved": "https://registry.npmjs.org/lodash.has/-/lodash.has-4.5.2.tgz", - "integrity": "sha1-0Z9NwQlQWMzL4rDN9O4P5Ko3yGI=", + "damerau-levenshtein": { + "version": "1.0.8", + "resolved": "https://registry.npmjs.org/damerau-levenshtein/-/damerau-levenshtein-1.0.8.tgz", + "integrity": "sha512-sdQSFB7+llfUcQHUQO3+B8ERRj0Oa4w9POWMI/puGtuf7gFywGmkaLCElnudfTiKZV+NvHqL0ifzdrI8Ro7ESA==", "dev": true }, - "lodash.includes": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/lodash.includes/-/lodash.includes-4.3.0.tgz", - "integrity": "sha1-YLuYqHy5I8aMoeUTJUgzFISfVT8=", - "dev": true + "dashdash": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/dashdash/-/dashdash-1.14.1.tgz", + "integrity": "sha1-hTz6D3y+L+1d4gMmuN1YEDX24vA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0" + } }, - "lodash.isarguments": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/lodash.isarguments/-/lodash.isarguments-3.1.0.tgz", - "integrity": "sha1-L1c9hcaiQon/AGY7SRwdM4/zRYo=", + "date-format": { + "version": "4.0.11", + "resolved": "https://registry.npmjs.org/date-format/-/date-format-4.0.11.tgz", + "integrity": "sha512-VS20KRyorrbMCQmpdl2hg5KaOUsda1RbnsJg461FfrcyCUg+pkd0b40BSW4niQyTheww4DBXQnS7HwSrKkipLw==", "dev": true }, - "lodash.isboolean": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isboolean/-/lodash.isboolean-3.0.3.tgz", - "integrity": "sha1-bC4XHbKiV82WgC/UOwGyDV9YcPY=", - "dev": true + "debug": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.1.tgz", + "integrity": "sha512-doEwdvm4PCeK4K3RQN2ZC2BYUBaxwLARCqZmMjtF8a51J2Rb0xpVloFRnCODwqjpwnAoao4pelN8l3RJdv3gRQ==", + "requires": { + "ms": "2.1.2" + } }, - "lodash.isinteger": { - "version": "4.0.4", - "resolved": "https://registry.npmjs.org/lodash.isinteger/-/lodash.isinteger-4.0.4.tgz", - "integrity": "sha1-YZwK89A/iwTDH1iChAt3sRzWg0M=", + "decamelize": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/decamelize/-/decamelize-1.2.0.tgz", + "integrity": "sha1-9lNNFRSCabIDUue+4m9QH5oZEpA=", "dev": true }, - "lodash.isnumber": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/lodash.isnumber/-/lodash.isnumber-3.0.3.tgz", - "integrity": "sha1-POdoEMWSjQM1IwGsKHMX8RwLH/w=", + "decode-uri-component": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/decode-uri-component/-/decode-uri-component-0.2.0.tgz", + "integrity": "sha512-hjf+xovcEn31w/EUYdTXQh/8smFL/dzYjohQGEIgjyNavaJfBY2p5F527Bo1VPATxv0VYTUC2bOcXvqFwk78Og==", "dev": true }, - "lodash.isobject": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.isobject/-/lodash.isobject-2.4.1.tgz", - "integrity": "sha1-Wi5H/mmVPx7mMafrof5k0tBlWPU=", + "default-gateway": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/default-gateway/-/default-gateway-6.0.3.tgz", + "integrity": "sha512-fwSOJsbbNzZ/CUFpqFBqYfYNLj1NbMPm8MMCIzHjC83iSJRBEGmDUxU+WP661BaBQImeC2yHwXtz+P/O9o+XEg==", "dev": true, "requires": { - "lodash._objecttypes": "~2.4.1" + "execa": "^5.0.0" } }, - "lodash.isplainobject": { - "version": "4.0.6", - "resolved": "https://registry.npmjs.org/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", - "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=", - "dev": true + "defaults": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/defaults/-/defaults-1.0.3.tgz", + "integrity": "sha1-xlYFHpgX2f8I7YgUd/P+QBnz730=", + "dev": true, + "requires": { + "clone": "^1.0.2" + }, + "dependencies": { + "clone": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/clone/-/clone-1.0.4.tgz", + "integrity": "sha1-2jCcwmPfFZlMaIypAheco8fNfH4=", + "dev": true + } + } }, - "lodash.isstring": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/lodash.isstring/-/lodash.isstring-4.0.1.tgz", - "integrity": "sha1-1SfftUVuynzJu5XV2ur4i6VKVFE=", - "dev": true + "define-lazy-prop": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/define-lazy-prop/-/define-lazy-prop-2.0.0.tgz", + "integrity": "sha512-Ds09qNh8yw3khSjiJjiUInaGX9xlqZDY7JVryGxdxV7NPeuqQfplOpQ66yJFZut3jLa5zOwkXw1g9EI2uKh4Og==" }, - "lodash.keys": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.keys/-/lodash.keys-2.4.1.tgz", - "integrity": "sha1-SN6kbfj/djKxDXBrissmWR4rNyc=", + "define-properties": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/define-properties/-/define-properties-1.1.4.tgz", + "integrity": "sha512-uckOqKcfaVvtBdsVkdPv3XjveQJsNQqmhXgRi8uhvWWuPYZCNlzT8qAyblUgNoXdHdjMTzAqeGjAoli8f+bzPA==", "dev": true, "requires": { - "lodash._isnative": "~2.4.1", - "lodash._shimkeys": "~2.4.1", - "lodash.isobject": "~2.4.1" + "has-property-descriptors": "^1.0.0", + "object-keys": "^1.1.1" } }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha1-vMbEmkKihA7Zl/Mj6tpezRguC/4=", + "delayed-stream": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delayed-stream/-/delayed-stream-1.0.0.tgz", + "integrity": "sha1-3zrhmayt+31ECqrgsp4icrJOxhk=", "dev": true }, - "lodash.once": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.once/-/lodash.once-4.1.1.tgz", - "integrity": "sha1-DdOXEhPHxW34gJd9UEyI+0cal6w=", + "delegates": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/delegates/-/delegates-1.0.0.tgz", + "integrity": "sha1-hMbhWbgZBP3KWaDvRM2HDTElD5o=", "dev": true }, - "lodash.snakecase": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.snakecase/-/lodash.snakecase-4.1.1.tgz", - "integrity": "sha1-OdcUo1NXFHg3rv1ktdy7Fr7Nj40=", + "depd": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/depd/-/depd-1.1.2.tgz", + "integrity": "sha1-m81S4UwJd2PnSbJ0xDRu0uVgtak=", "dev": true }, - "lodash.toarray": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/lodash.toarray/-/lodash.toarray-4.4.0.tgz", - "integrity": "sha1-JMS/zWsvuji/0FlNsRedjptlZWE=", + "dependency-graph": { + "version": "0.11.0", + "resolved": "https://registry.npmjs.org/dependency-graph/-/dependency-graph-0.11.0.tgz", + "integrity": "sha512-JeMq7fEshyepOWDfcfHK06N3MhyPhz++vtqWhMT5O9A3K42rdsEDpfdVqjaqaAhsw6a+ZqeDvQVtD0hFHQWrzg==", "dev": true }, - "lodash.union": { - "version": "4.6.0", - "resolved": "https://registry.npmjs.org/lodash.union/-/lodash.union-4.6.0.tgz", - "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=", + "detect-node": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.1.0.tgz", + "integrity": "sha512-T0NIuQpnTvFDATNuHN5roPwSBG83rFsuO+MXXH9/3N1eFbn4wcPjttvjMLEPWJ0RGUYgQE7cGgS3tNxbqCGM7g==", "dev": true }, - "lodash.uniq": { - "version": "4.5.0", - "resolved": "https://registry.npmjs.org/lodash.uniq/-/lodash.uniq-4.5.0.tgz", - "integrity": "sha1-0CJTc662Uq3BvILklFM5qEJ1R3M=", + "di": { + "version": "0.0.1", + "resolved": "https://registry.npmjs.org/di/-/di-0.0.1.tgz", + "integrity": "sha512-uJaamHkagcZtHPqCIHZxnFrXlunQXgBOsZSUOWwFw31QJCAbyTBoHMW75YOTur5ZNx8pIeAKgf6GWIgaqqiLhA==", "dev": true }, - "lodash.values": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/lodash.values/-/lodash.values-2.4.1.tgz", - "integrity": "sha1-q/UUQ2s8twUAFieXjLzzCxKA7qQ=", - "dev": true, - "requires": { - "lodash.keys": "~2.4.1" - } + "diff": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.2.tgz", + "integrity": "sha512-58lmxKSA4BNyLz+HHMUzlOEpg09FV+ev6ZMe3vJihgdxzgcwZ8VoEEPmALCZG9LmqfVoNMMKpttIYTVG6uDY7A==", + "dev": true }, - "log-symbols": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-3.0.0.tgz", - "integrity": "sha512-dSkNGuI7iG3mfvDzUuYZyvk5dD9ocYCYzNU6CYDE6+Xqd+gwme6Z00NS3dUh8mq/73HaEtT7m6W+yUPtU6BZnQ==", + "dir-glob": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/dir-glob/-/dir-glob-3.0.1.tgz", + "integrity": "sha512-WkrWp9GR4KXfKGYzOLmTuGVi1UWFfws377n9cc55/tb6DuqyF6pcQ5AbiHEshaDpY9v6oaSr2XCDidGmMwdzIA==", "dev": true, "requires": { - "chalk": "^2.4.2" + "path-type": "^4.0.0" } }, - "log4js": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/log4js/-/log4js-4.5.1.tgz", - "integrity": "sha512-EEEgFcE9bLgaYUKuozyFfytQM2wDHtXn4tAN41pkaxpNjAykv11GVdeI4tHtmPWW4Xrgh9R/2d7XYghDVjbKKw==", + "dns-equal": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/dns-equal/-/dns-equal-1.0.0.tgz", + "integrity": "sha512-z+paD6YUQsk+AbGCEM4PrOXSss5gd66QfcVBFTKR/HpFL9jCqikS94HYwKww6fQyO7IxrIIyUu+g0Ka9tUS2Cg==", + "dev": true + }, + "dns-packet": { + "version": "5.4.0", + "resolved": "https://registry.npmjs.org/dns-packet/-/dns-packet-5.4.0.tgz", + "integrity": "sha512-EgqGeaBB8hLiHLZtp/IbaDQTL8pZ0+IvwzSHA6d7VyMDM+B9hgddEMa9xjK5oYnw0ci0JQ6g2XCD7/f6cafU6g==", "dev": true, "requires": { - "date-format": "^2.0.0", - "debug": "^4.1.1", - "flatted": "^2.0.0", - "rfdc": "^1.1.4", - "streamroller": "^1.0.6" + "@leichtgewicht/ip-codec": "^2.0.1" } }, - "logform": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/logform/-/logform-2.2.0.tgz", - "integrity": "sha512-N0qPlqfypFx7UHNn4B3lzS/b0uLqt2hmuoa+PpuXNYgozdJYAyauF5Ky0BWVjrxDlMWiT3qN4zPq3vVAfZy7Yg==", + "dom-serialize": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/dom-serialize/-/dom-serialize-2.2.1.tgz", + "integrity": "sha512-Yra4DbvoW7/Z6LBN560ZwXMjoNOSAN2wRsKFGc4iBeso+mpIA6qj1vfdf9HpMaKAqG6wXTy+1SYEzmNpKXOSsQ==", "dev": true, "requires": { - "colors": "^1.2.1", - "fast-safe-stringify": "^2.0.4", - "fecha": "^4.2.0", - "ms": "^2.1.1", - "triple-beam": "^1.3.0" - }, - "dependencies": { - "colors": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/colors/-/colors-1.4.0.tgz", - "integrity": "sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA==", - "dev": true - } + "custom-event": "~1.0.0", + "ent": "~2.2.0", + "extend": "^3.0.0", + "void-elements": "^2.0.0" } }, - "loglevel": { - "version": "1.7.1", - "resolved": "https://registry.npmjs.org/loglevel/-/loglevel-1.7.1.tgz", - "integrity": "sha512-Hesni4s5UkWkwCGJMQGAh71PaLUmKFM60dHvq0zi/vDhhrzuk+4GgNbTXJ12YYQJn6ZKBDNIjYcuQGKudvqrIw==", - "dev": true - }, - "long": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/long/-/long-4.0.0.tgz", - "integrity": "sha512-XsP+KhQif4bjX1kbuSiySJFNAehNxgLb6hPRGJ9QsUr8ajHkuXGdrHmFUTUUXhDwVX2R5bY4JNZEwbUiMhV+MA==" - }, - "loose-envify": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", - "integrity": "sha512-lyuxPGr/Wfhrlem2CL/UcnUc1zcqKAImBDzukY7Y5F/yQiNdko6+fRLevlw1HgMySw7f611UIY408EtxRSoK3Q==", + "dom-serializer": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/dom-serializer/-/dom-serializer-1.4.1.tgz", + "integrity": "sha512-VHwB3KfrcOOkelEG2ZOfxqLZdfkil8PtJi4P8N2MMXucZq2yLp75ClViUlOVwyoHEDjYU433Aq+5zWP61+RGag==", "dev": true, "requires": { - "js-tokens": "^3.0.0 || ^4.0.0" + "domelementtype": "^2.0.1", + "domhandler": "^4.2.0", + "entities": "^2.0.0" } }, - "lottie-web": { - "version": "5.7.6", - "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.7.6.tgz", - "integrity": "sha512-qn/KYMI4QQvFDhtoxs0RPkn9uZKhDB9keE5BKgbJlSRfNEZpRiDlwBE9ibYz4nPhbyE+NUlt8IRIVR7g5OSX3w==" - }, - "lowercase-keys": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/lowercase-keys/-/lowercase-keys-1.0.1.tgz", - "integrity": "sha512-G2Lj61tXDnVFFOi8VZds+SoQjtQC3dgokKdDG2mTm1tx4m50NUHBOZSBwQQHyy0V12A0JTG4icfZQH+xPyh8VA==", + "domelementtype": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-2.3.0.tgz", + "integrity": "sha512-OLETBj6w0OsagBwdXnPdN0cnMfF9opN69co+7ZrbfPGrdpPVNBUj02spi6B1N7wChLQiPn4CSH/zJvXw56gmHw==", "dev": true }, - "lru-cache": { - "version": "5.1.1", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", - "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "domhandler": { + "version": "4.3.1", + "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-4.3.1.tgz", + "integrity": "sha512-GrwoxYN+uWlzO8uhUXRl0P+kHE4GtVPfYzVLcUxPL7KNdHKj66vvlhiweIHqYYXWlw+T8iLMp42Lm67ghw4WMQ==", "dev": true, "requires": { - "yallist": "^3.0.2" - }, - "dependencies": { - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true - } + "domelementtype": "^2.2.0" } }, - "lru-queue": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/lru-queue/-/lru-queue-0.1.0.tgz", - "integrity": "sha1-Jzi9nw089PhEkMVzbEhpmsYyzaM=", + "domutils": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/domutils/-/domutils-2.8.0.tgz", + "integrity": "sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==", "dev": true, "requires": { - "es5-ext": "~0.10.2" + "dom-serializer": "^1.0.1", + "domelementtype": "^2.2.0", + "domhandler": "^4.2.0" } }, - "magic-string": { - "version": "0.25.4", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.25.4.tgz", - "integrity": "sha512-oycWO9nEVAP2RVPbIoDoA4Y7LFIJ3xRYov93gAyJhZkET1tNuB0u7uWkZS2LpBWTJUWnmau/To8ECWRC+jKNfw==", + "ecc-jsbn": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/ecc-jsbn/-/ecc-jsbn-0.1.2.tgz", + "integrity": "sha1-OoOpBOVDUyh4dMVkt1SThoSamMk=", "dev": true, "requires": { - "sourcemap-codec": "^1.4.4" + "jsbn": "~0.1.0", + "safer-buffer": "^2.1.0" } }, - "make-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", - "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "ee-first": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/ee-first/-/ee-first-1.1.1.tgz", + "integrity": "sha1-WQxhFWsK4vTwJVcyoViyZrxWsh0=", + "dev": true + }, + "electron-to-chromium": { + "version": "1.4.185", + "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.4.185.tgz", + "integrity": "sha512-9kV/isoOGpKkBt04yYNaSWIBn3187Q5VZRtoReq8oz5NY/A4XmU6cAoqgQlDp7kKJCZMRjWZ8nsQyxfpFHvfyw==" + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==" + }, + "emojis-list": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/emojis-list/-/emojis-list-3.0.0.tgz", + "integrity": "sha512-/kyM18EfinwXZbno9FyUGeFh87KC8HRQBQGildHZbEuRyWFOmv1U10o9BBp8XVZDVNNuQKyIGIu5ZYAAXJ0V2Q==", + "dev": true + }, + "encodeurl": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/encodeurl/-/encodeurl-1.0.2.tgz", + "integrity": "sha1-rT/0yG7C0CkyL1oCw6mmBslbP1k=", + "dev": true + }, + "encoding": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/encoding/-/encoding-0.1.13.tgz", + "integrity": "sha512-ETBauow1T35Y/WZMkio9jiM0Z5xjHHmJ4XmjZOq1l/dXz3lr2sRn87nJy20RupqSh1F2m3HHPSp8ShIPQJrJ3A==", "dev": true, + "optional": true, "requires": { - "pify": "^4.0.1", - "semver": "^5.6.0" + "iconv-lite": "^0.6.2" }, "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "optional": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } } } }, - "make-error": { - "version": "1.3.6", - "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", - "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", - "dev": true - }, - "make-fetch-happen": { - "version": "5.0.2", - "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-5.0.2.tgz", - "integrity": "sha512-07JHC0r1ykIoruKO8ifMXu+xEU8qOXDFETylktdug6vJDACnP+HKevOu3PXyNPzFyTSlz8vrBYlBO1JZRe8Cag==", - "dev": true, - "requires": { - "agentkeepalive": "^3.4.1", - "cacache": "^12.0.0", - "http-cache-semantics": "^3.8.1", - "http-proxy-agent": "^2.1.0", - "https-proxy-agent": "^2.2.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "node-fetch-npm": "^2.0.2", - "promise-retry": "^1.1.1", - "socks-proxy-agent": "^4.0.0", - "ssri": "^6.0.0" + "engine.io": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/engine.io/-/engine.io-6.2.0.tgz", + "integrity": "sha512-4KzwW3F3bk+KlzSOY57fj/Jx6LyRQ1nbcyIadehl+AnXjKT7gDO0ORdRi/84ixvMKTym6ZKuxvbzN62HDDU1Lg==", + "dev": true, + "requires": { + "@types/cookie": "^0.4.1", + "@types/cors": "^2.8.12", + "@types/node": ">=10.0.0", + "accepts": "~1.3.4", + "base64id": "2.0.0", + "cookie": "~0.4.1", + "cors": "~2.8.5", + "debug": "~4.3.1", + "engine.io-parser": "~5.0.3", + "ws": "~8.2.3" }, "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", - "dev": true, - "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" - } - }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } + "cookie": { + "version": "0.4.2", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.2.tgz", + "integrity": "sha512-aSWTXFzaKWkvHO1Ny/s+ePFpvKsPnjc551iI41v3ny/ow6tBG5Vd+FuqGNhh1LxOmVzOlGUriIlOaokOvhaStA==", + "dev": true }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1" - } + "ws": { + "version": "8.2.3", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.2.3.tgz", + "integrity": "sha512-wBuoj1BDpC6ZQ1B7DWQBYVLphPWkm8i9Y0/3YdHjHKHiohOJ1ws+3OccDWtH+PoC9DZD5WOTrJvNbWvjS6JWaA==", + "dev": true } } }, - "mamacro": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/mamacro/-/mamacro-0.0.3.tgz", - "integrity": "sha512-qMEwh+UujcQ+kbz3T6V+wAmO2U8veoq2w+3wY8MquqwVA3jChfwY+Tk52GZKDfACEPjuZ7r2oJLejwpt8jtwTA==", + "engine.io-parser": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/engine.io-parser/-/engine.io-parser-5.0.4.tgz", + "integrity": "sha512-+nVFp+5z1E3HcToEnO7ZIj3g+3k9389DvWtvJZz0T6/eOCPIyyxehFcedoYrZQrp0LgQbD9pPXhpMBKMd5QURg==", "dev": true }, - "map-age-cleaner": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", - "integrity": "sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w==", + "enhanced-resolve": { + "version": "5.10.0", + "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-5.10.0.tgz", + "integrity": "sha512-T0yTFjdpldGY8PmuXXR0PyQ1ufZpEGiHVrp7zHKB7jdR4qlmZHhONVM5AQOAWXuF/w3dnHbEQVrNptJgt7F+cQ==", "dev": true, "requires": { - "p-defer": "^1.0.0" + "graceful-fs": "^4.2.4", + "tapable": "^2.2.0" } }, - "map-cache": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/map-cache/-/map-cache-0.2.2.tgz", - "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=", + "ent": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/ent/-/ent-2.2.0.tgz", + "integrity": "sha512-GHrMyVZQWvTIdDtpiEXdHZnFQKzeO09apj8Cbl4pKWy4i0Oprcq17usfDt5aO63swf0JOeMWjWQE/LzgSRuWpA==", "dev": true }, - "map-visit": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/map-visit/-/map-visit-1.0.0.tgz", - "integrity": "sha1-7Nyo8TFE5mDxtb1B8S80edmN+48=", - "dev": true, - "requires": { - "object-visit": "^1.0.0" - } + "entities": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/entities/-/entities-2.2.0.tgz", + "integrity": "sha512-p92if5Nz619I0w+akJrLZH0MX0Pb5DX39XOwQTtXSdQQOaYH03S1uIQp4mhOZtAXrxq4ViO67YTiLBo2638o9A==", + "dev": true }, - "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==", + "env-paths": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/env-paths/-/env-paths-2.2.0.tgz", + "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", "dev": true }, - "marked-terminal": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/marked-terminal/-/marked-terminal-3.3.0.tgz", - "integrity": "sha512-+IUQJ5VlZoAFsM5MHNT7g3RHSkA3eETqhRCdXv4niUMAKHQ7lb1yvAcuGPmm4soxhmtX13u4Li6ZToXtvSEH+A==", + "err-code": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/err-code/-/err-code-2.0.3.tgz", + "integrity": "sha512-2bmlRpNKBxT/CRmPOlyISQpNj+qSeYvcym/uT0Jx2bMOlKLtSy1ZmLuVxSEKKyor/N5yhvp/ZiG1oE3DEYMSFA==", + "dev": true + }, + "errno": { + "version": "0.1.8", + "resolved": "https://registry.npmjs.org/errno/-/errno-0.1.8.tgz", + "integrity": "sha512-dJ6oBr5SQ1VSd9qkk7ByRgb/1SH4JZjCHSW/mr63/QcXO9zLVxvJ6Oy13nio03rxpSnVDDjFor75SjVeZWPW/A==", "dev": true, + "optional": true, "requires": { - "ansi-escapes": "^3.1.0", - "cardinal": "^2.1.1", - "chalk": "^2.4.1", - "cli-table": "^0.3.1", - "node-emoji": "^1.4.1", - "supports-hyperlinks": "^1.0.1" + "prr": "~1.0.1" } }, - "md5.js": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/md5.js/-/md5.js-1.3.5.tgz", - "integrity": "sha512-xitP+WxNPcTTOgnTJcrhM0xvdPepipPSf3I8EIpGKeFLjt3PlJLIDG3u8EX53ZIubkb+5U2+3rELYpEhHhzdkg==", + "error-ex": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/error-ex/-/error-ex-1.3.2.tgz", + "integrity": "sha512-7dFHNmqeFSEt2ZBsCriorKnn3Z2pj+fd9kmI6QoWw4//DL+icEBfc0U7qJCisqrTsKTjw4fNFy2pW9OqStD84g==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1", - "safe-buffer": "^5.1.2" + "is-arrayish": "^0.2.1" } }, - "mdn-data": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", - "integrity": "sha512-iV3XNKw06j5Q7mi6h+9vbx23Tv7JkjEVgKHW4pimwyDGWm0OIQntJJ+u1C6mg6mK1EaTv42XQ7w76yuzH7M2cA==", + "es-cookie": { + "version": "1.3.2", + "resolved": "https://registry.npmjs.org/es-cookie/-/es-cookie-1.3.2.tgz", + "integrity": "sha512-UTlYYhXGLOy05P/vKVT2Ui7WtC7NiRzGtJyAKKn32g5Gvcjn7KAClLPWlipCtxIus934dFg9o9jXiBL0nP+t9Q==" + }, + "es-module-lexer": { + "version": "0.9.3", + "resolved": "https://registry.npmjs.org/es-module-lexer/-/es-module-lexer-0.9.3.tgz", + "integrity": "sha512-1HQ2M2sPtxwnvOvT1ZClHyQDiggdNjURWpY2we6aMKCQiUVxTmVs2UYPLIrD84sS+kMdUwfBSylbJPwNnBrnHQ==", "dev": true }, - "media-typer": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", - "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "es6-promise": { + "version": "4.2.8", + "resolved": "https://registry.npmjs.org/es6-promise/-/es6-promise-4.2.8.tgz", + "integrity": "sha512-HJDGx5daxeIvxdBxvG2cb9g4tEvwIk3i8+nhX0yGrYmZUzbkdg8QbDevheDB8gd0//uPj4c1EQua8Q+MViT0/w==", "dev": true }, - "mem": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/mem/-/mem-4.3.0.tgz", - "integrity": "sha512-qX2bG48pTqYRVmDB37rn/6PT7LcR8T7oAX3bf99u1Tt1nzxYfxkgqDwUwolPlXweM0XzBOBFzSx4kfp7KP1s/w==", + "es6-promisify": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/es6-promisify/-/es6-promisify-5.0.0.tgz", + "integrity": "sha1-UQnWLz5W6pZ8S2NQWu8IKRyKUgM=", "dev": true, "requires": { - "map-age-cleaner": "^0.1.1", - "mimic-fn": "^2.0.0", - "p-is-promise": "^2.0.0" + "es6-promise": "^4.0.3" } }, - "memoizee": { - "version": "0.4.15", - "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", - "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", + "esbuild-android-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-64/-/esbuild-android-64-0.14.38.tgz", + "integrity": "sha512-aRFxR3scRKkbmNuGAK+Gee3+yFxkTJO/cx83Dkyzo4CnQl/2zVSurtG6+G86EQIZ+w+VYngVyK7P3HyTBKu3nw==", "dev": true, - "requires": { - "d": "^1.0.1", - "es5-ext": "^0.10.53", - "es6-weak-map": "^2.0.3", - "event-emitter": "^0.3.5", - "is-promise": "^2.2.2", - "lru-queue": "^0.1.0", - "next-tick": "^1.1.0", - "timers-ext": "^0.1.7" - }, - "dependencies": { - "next-tick": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", - "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==", - "dev": true - } - } + "optional": true }, - "memory-fs": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", - "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", + "esbuild-android-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-android-arm64/-/esbuild-android-arm64-0.14.38.tgz", + "integrity": "sha512-L2NgQRWuHFI89IIZIlpAcINy9FvBk6xFVZ7xGdOwIm8VyhX1vNCEqUJO3DPSSy945Gzdg98cxtNt8Grv1CsyhA==", "dev": true, - "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" - } + "optional": true }, - "merge-descriptors": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", - "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", - "dev": true + "esbuild-darwin-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-64/-/esbuild-darwin-64-0.14.38.tgz", + "integrity": "sha512-5JJvgXkX87Pd1Og0u/NJuO7TSqAikAcQQ74gyJ87bqWRVeouky84ICoV4sN6VV53aTW+NE87qLdGY4QA2S7KNA==", + "dev": true, + "optional": true }, - "merge-source-map": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/merge-source-map/-/merge-source-map-1.1.0.tgz", - "integrity": "sha512-Qkcp7P2ygktpMPh2mCQZaf3jhN6D3Z/qVZHSdWvQ+2Ef5HgRAPBO57A77+ENm0CPx2+1Ce/MYKi3ymqdfuqibw==", + "esbuild-darwin-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-darwin-arm64/-/esbuild-darwin-arm64-0.14.38.tgz", + "integrity": "sha512-eqF+OejMI3mC5Dlo9Kdq/Ilbki9sQBw3QlHW3wjLmsLh+quNfHmGMp3Ly1eWm981iGBMdbtSS9+LRvR2T8B3eQ==", "dev": true, - "requires": { - "source-map": "^0.6.1" - }, - "dependencies": { - "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 - } - } + "optional": true }, - "merge-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", - "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", - "dev": true + "esbuild-freebsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-64/-/esbuild-freebsd-64-0.14.38.tgz", + "integrity": "sha512-epnPbhZUt93xV5cgeY36ZxPXDsQeO55DppzsIgWM8vgiG/Rz+qYDLmh5ts3e+Ln1wA9dQ+nZmVHw+RjaW3I5Ig==", + "dev": true, + "optional": true }, - "methods": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", - "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", - "dev": true + "esbuild-freebsd-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-freebsd-arm64/-/esbuild-freebsd-arm64-0.14.38.tgz", + "integrity": "sha512-/9icXUYJWherhk+y5fjPI5yNUdFPtXHQlwP7/K/zg8t8lQdHVj20SqU9/udQmeUo5pDFHMYzcEFfJqgOVeKNNQ==", + "dev": true, + "optional": true }, - "micromatch": { - "version": "3.1.10", - "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-3.1.10.tgz", - "integrity": "sha512-MWikgl9n9M3w+bpsY3He8L+w9eF9338xRl8IAO5viDizwSzziFEyUzo2xrrloB64ADbTf8uA8vRqqttDTOmccg==", - "dev": true, - "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "braces": "^2.3.1", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "extglob": "^2.0.4", - "fragment-cache": "^0.2.1", - "kind-of": "^6.0.2", - "nanomatch": "^1.2.9", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.2" - }, - "dependencies": { - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "esbuild-linux-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-32/-/esbuild-linux-32-0.14.38.tgz", + "integrity": "sha512-QfgfeNHRFvr2XeHFzP8kOZVnal3QvST3A0cgq32ZrHjSMFTdgXhMhmWdKzRXP/PKcfv3e2OW9tT9PpcjNvaq6g==", + "dev": true, + "optional": true + }, + "esbuild-linux-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-64/-/esbuild-linux-64-0.14.38.tgz", + "integrity": "sha512-uuZHNmqcs+Bj1qiW9k/HZU3FtIHmYiuxZ/6Aa+/KHb/pFKr7R3aVqvxlAudYI9Fw3St0VCPfv7QBpUITSmBR1Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm/-/esbuild-linux-arm-0.14.38.tgz", + "integrity": "sha512-FiFvQe8J3VKTDXG01JbvoVRXQ0x6UZwyrU4IaLBZeq39Bsbatd94Fuc3F1RGqPF5RbIWW7RvkVQjn79ejzysnA==", + "dev": true, + "optional": true + }, + "esbuild-linux-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-arm64/-/esbuild-linux-arm64-0.14.38.tgz", + "integrity": "sha512-HlMGZTEsBrXrivr64eZ/EO0NQM8H8DuSENRok9d+Jtvq8hOLzrxfsAT9U94K3KOGk2XgCmkaI2KD8hX7F97lvA==", + "dev": true, + "optional": true + }, + "esbuild-linux-mips64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-mips64le/-/esbuild-linux-mips64le-0.14.38.tgz", + "integrity": "sha512-qd1dLf2v7QBiI5wwfil9j0HG/5YMFBAmMVmdeokbNAMbcg49p25t6IlJFXAeLzogv1AvgaXRXvgFNhScYEUXGQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-ppc64le": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-ppc64le/-/esbuild-linux-ppc64le-0.14.38.tgz", + "integrity": "sha512-mnbEm7o69gTl60jSuK+nn+pRsRHGtDPfzhrqEUXyCl7CTOCLtWN2bhK8bgsdp6J/2NyS/wHBjs1x8aBWwP2X9Q==", + "dev": true, + "optional": true + }, + "esbuild-linux-riscv64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-riscv64/-/esbuild-linux-riscv64-0.14.38.tgz", + "integrity": "sha512-+p6YKYbuV72uikChRk14FSyNJZ4WfYkffj6Af0/Tw63/6TJX6TnIKE+6D3xtEc7DeDth1fjUOEqm+ApKFXbbVQ==", + "dev": true, + "optional": true + }, + "esbuild-linux-s390x": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-linux-s390x/-/esbuild-linux-s390x-0.14.38.tgz", + "integrity": "sha512-0zUsiDkGJiMHxBQ7JDU8jbaanUY975CdOW1YDrurjrM0vWHfjv9tLQsW9GSyEb/heSK1L5gaweRjzfUVBFoybQ==", + "dev": true, + "optional": true + }, + "esbuild-netbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-netbsd-64/-/esbuild-netbsd-64-0.14.38.tgz", + "integrity": "sha512-cljBAApVwkpnJZfnRVThpRBGzCi+a+V9Ofb1fVkKhtrPLDYlHLrSYGtmnoTVWDQdU516qYI8+wOgcGZ4XIZh0Q==", + "dev": true, + "optional": true + }, + "esbuild-openbsd-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-openbsd-64/-/esbuild-openbsd-64-0.14.38.tgz", + "integrity": "sha512-CDswYr2PWPGEPpLDUO50mL3WO/07EMjnZDNKpmaxUPsrW+kVM3LoAqr/CE8UbzugpEiflYqJsGPLirThRB18IQ==", + "dev": true, + "optional": true + }, + "esbuild-sunos-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-sunos-64/-/esbuild-sunos-64-0.14.38.tgz", + "integrity": "sha512-2mfIoYW58gKcC3bck0j7lD3RZkqYA7MmujFYmSn9l6TiIcAMpuEvqksO+ntBgbLep/eyjpgdplF7b+4T9VJGOA==", + "dev": true, + "optional": true + }, + "esbuild-wasm": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-wasm/-/esbuild-wasm-0.14.38.tgz", + "integrity": "sha512-mObTw5/3+KIOTShVgk3fuEn+INnHgOSbWJuGkInEZTWpUOh/+TCSgRxl5cDon4OkoaLU5rWm7R7Dkl/mJv8SGw==", + "dev": true + }, + "esbuild-windows-32": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-32/-/esbuild-windows-32-0.14.38.tgz", + "integrity": "sha512-L2BmEeFZATAvU+FJzJiRLFUP+d9RHN+QXpgaOrs2klshoAm1AE6Us4X6fS9k33Uy5SzScn2TpcgecbqJza1Hjw==", + "dev": true, + "optional": true + }, + "esbuild-windows-64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-64/-/esbuild-windows-64-0.14.38.tgz", + "integrity": "sha512-Khy4wVmebnzue8aeSXLC+6clo/hRYeNIm0DyikoEqX+3w3rcvrhzpoix0S+MF9vzh6JFskkIGD7Zx47ODJNyCw==", + "dev": true, + "optional": true + }, + "esbuild-windows-arm64": { + "version": "0.14.38", + "resolved": "https://registry.npmjs.org/esbuild-windows-arm64/-/esbuild-windows-arm64-0.14.38.tgz", + "integrity": "sha512-k3FGCNmHBkqdJXuJszdWciAH77PukEyDsdIryEHn9cKLQFxzhT39dSumeTuggaQcXY57UlmLGIkklWZo2qzHpw==", + "dev": true, + "optional": true + }, + "escalade": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", + "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==" + }, + "escape-html": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.3.tgz", + "integrity": "sha1-Aljq5NPQwJdN4cFpGI7wBR0dGYg=", + "dev": true + }, + "escape-string-regexp": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/escape-string-regexp/-/escape-string-regexp-1.0.5.tgz", + "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=" + }, + "eslint-scope": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/eslint-scope/-/eslint-scope-5.1.1.tgz", + "integrity": "sha512-2NxwbF/hZ0KpepYN0cNbo+FN6XoK7GaHlQhgx/hIZl6Va0bF45RQOOwhLIy8lQDbuCiadSLCBnH2CFYquit5bw==", + "dev": true, + "requires": { + "esrecurse": "^4.3.0", + "estraverse": "^4.1.1" } }, - "miller-rabin": { + "esprima": { "version": "4.0.1", - "resolved": "https://registry.npmjs.org/miller-rabin/-/miller-rabin-4.0.1.tgz", - "integrity": "sha512-115fLhvZVqWwHPbClyntxEVfVDfl9DLLTuJvq3g2O/Oxi8AiNouAHvDSzHS0viUJc+V5vm3eq91Xwqn9dp4jRA==", + "resolved": "https://registry.npmjs.org/esprima/-/esprima-4.0.1.tgz", + "integrity": "sha512-eGuFFw7Upda+g4p+QHvnW0RyTX/SVeJBDM/gCtMARO0cLuT2HcEKnTPvhjV6aGeqrCB/sbNop0Kszm0jsaWU4A==", + "dev": true + }, + "esrecurse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/esrecurse/-/esrecurse-4.3.0.tgz", + "integrity": "sha512-KmfKL3b6G+RXvP8N1vr3Tq1kL/oCFgn2NYXEtqP8/L3pKapUA4G8cFVaoF3SU323CD4XypR/ffioHmkti6/Tag==", "dev": true, "requires": { - "bn.js": "^4.0.0", - "brorand": "^1.0.1" + "estraverse": "^5.2.0" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "estraverse": { + "version": "5.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-5.3.0.tgz", + "integrity": "sha512-MMdARuVEQziNTeJD8DgMqmhwR11BRQ/cBP+pLtYdSTnf3MIO8fFeiINEbX36ZdNlfU/7A9f3gUw49B3oQsvwBA==", "dev": true } } }, - "mime": { - "version": "1.6.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", - "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "estraverse": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/estraverse/-/estraverse-4.3.0.tgz", + "integrity": "sha512-39nnKffWz8xN1BU/2c79n9nB9HDzo0niYUqx6xyqUnyoAnQyyWpOTdZEeiCch8BBu515t4wp9ZmgVfVhn9EBpw==", "dev": true }, - "mime-db": { - "version": "1.45.0", - "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", - "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "esutils": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/esutils/-/esutils-2.0.3.tgz", + "integrity": "sha512-kVscqXk4OCp68SZ0dkgEKVi6/8ij300KBWTJq32P/dYeWTSwK41WyTxalN1eRmA5Z9UU/LX9D7FWSmV9SAYx6g==", "dev": true }, - "mime-types": { - "version": "2.1.28", - "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", - "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", - "dev": true, - "requires": { - "mime-db": "1.45.0" - } + "etag": { + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/etag/-/etag-1.8.1.tgz", + "integrity": "sha1-Qa4u62XvpiJorr/qg6x9eSmbCIc=", + "dev": true }, - "mimic-fn": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "eventemitter-asyncresource": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/eventemitter-asyncresource/-/eventemitter-asyncresource-1.0.0.tgz", + "integrity": "sha512-39F7TBIV0G7gTelxwbEqnwhp90eqCPON1k0NwNfwhgKn4Co4ybUbj2pECcXT0B3ztRKZ7Pw1JujUUgmQJHcVAQ==", "dev": true }, - "mimic-response": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/mimic-response/-/mimic-response-1.0.1.tgz", - "integrity": "sha512-j5EctnkH7amfV/q5Hgmoal1g2QHFJRraOtmx0JpIqkxhBhI/lJSl1nMpQ45hVarwNETOoWEimndZ4QK0RHxuxQ==", + "eventemitter3": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/eventemitter3/-/eventemitter3-4.0.7.tgz", + "integrity": "sha512-8guHBZCwKnFhYdHr2ysuRWErTwhoN2X8XELRlrRwpmfeY2jjuUN4taQMsULKUVo1K4DvZl+0pgfyoysHxvmvEw==", "dev": true }, - "mini-css-extract-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-0.8.0.tgz", - "integrity": "sha512-MNpRGbNA52q6U92i0qbVpQNsgk7LExy41MdAlG84FeytfDOtRIf/mCHdEgG8rpTKOaNKiqUnZdlptF469hxqOw==", + "events": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/events/-/events-3.3.0.tgz", + "integrity": "sha512-mQw+2fkQbALzQ7V0MY0IqdnXNOeTtP4r0lN9z7AAawCXgqea7bDii20AYrIBrFd/Hx0M2Ocz6S111CaFkUcb0Q==", + "dev": true + }, + "execa": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/execa/-/execa-5.1.1.tgz", + "integrity": "sha512-8uSpZZocAZRBAPIEINJj3Lo9HyGitllczc27Eh5YYojjMFMn8yHMDMaUHE2Jqfq05D/wucwI4JGURyXt1vchyg==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "normalize-url": "1.9.1", - "schema-utils": "^1.0.0", - "webpack-sources": "^1.1.0" + "cross-spawn": "^7.0.3", + "get-stream": "^6.0.0", + "human-signals": "^2.1.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^4.0.1", + "onetime": "^5.1.2", + "signal-exit": "^3.0.3", + "strip-final-newline": "^2.0.0" }, "dependencies": { - "normalize-url": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", - "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", + "cross-spawn": { + "version": "7.0.3", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.3.tgz", + "integrity": "sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w==", "dev": true, "requires": { - "object-assign": "^4.0.1", - "prepend-http": "^1.0.0", - "query-string": "^4.1.0", - "sort-keys": "^1.0.0" + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "get-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-6.0.1.tgz", + "integrity": "sha512-ts6Wi+2j3jQjqi70w5AlN8DFnkSwC+MqmxEzdEALB2qXZYV3X/b1CTfgPLGJNMeAWxdPfU8FO1ms3NUfaHCPYg==", + "dev": true + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", + "dev": true + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "dev": true, + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==", + "dev": true + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "dev": true, + "requires": { + "isexe": "^2.0.0" } } } }, - "minimalistic-assert": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", - "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "exit": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", + "integrity": "sha512-Zk/eNKV2zbjpKzrsQ+n1G6poVbErQxJ0LBOJXaKZ1EViLzH+hrLu9cdXI4zw9dBQJslwBEpbQ2P1oS7nDxs6jQ==", "dev": true }, - "minimalistic-crypto-utils": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/minimalistic-crypto-utils/-/minimalistic-crypto-utils-1.0.1.tgz", - "integrity": "sha1-9sAMHAsIIkblxNmd+4x8CDsrWCo=", + "extend": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/extend/-/extend-3.0.2.tgz", + "integrity": "sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g==", "dev": true }, - "minimatch": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", - "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", + "external-editor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/external-editor/-/external-editor-3.1.0.tgz", + "integrity": "sha512-hMQ4CX1p1izmuLYyZqLMO/qGNw10wSv9QDCPfzXfyFrOaCSSoRfqE1Kf1s5an66J5JZC62NewG+mK49jOCtQew==", "dev": true, "requires": { - "brace-expansion": "^1.1.7" + "chardet": "^0.7.0", + "iconv-lite": "^0.4.24", + "tmp": "^0.0.33" } }, - "minimist": { - "version": "1.2.5", - "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", - "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "extsprintf": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/extsprintf/-/extsprintf-1.3.0.tgz", + "integrity": "sha1-lpGEQOMEGnpBT4xS48V06zw+HgU=", "dev": true }, - "minipass": { + "fast-deep-equal": { "version": "3.1.3", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", - "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", - "dev": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minipass-collect": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", - "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-flush": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", - "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } - }, - "minipass-pipeline": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", - "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", - "dev": true, - "requires": { - "minipass": "^3.0.0" - } + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true }, - "minizlib": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.3.3.tgz", - "integrity": "sha512-6ZYMOEnmVsdCeTJVE0W9ZD+pVnE8h9Hma/iOwwRDsdQoePpoX56/8B6z3P9VNwppJuBKNRuFDRNRqRWexT9G9Q==", + "fast-glob": { + "version": "3.2.11", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.11.tgz", + "integrity": "sha512-xrO3+1bxSo3ZVHAnqzyuewYT6aMFHRAd4Kcs92MAonjwQZLsK9d0SF1IyQ3k5PoirxTW0Oe/RqFgMQ6TcNE5Ew==", "dev": true, "requires": { - "minipass": "^2.9.0" + "@nodelib/fs.stat": "^2.0.2", + "@nodelib/fs.walk": "^1.2.3", + "glob-parent": "^5.1.2", + "merge2": "^1.3.0", + "micromatch": "^4.0.4" }, "dependencies": { - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "is-glob": "^4.0.1" } - }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", - "dev": true } } }, - "mississippi": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/mississippi/-/mississippi-3.0.0.tgz", - "integrity": "sha512-x471SsVjUtBRtcvd4BzKE9kFC+/2TeWgKCgw0bZcw1b9l2X3QX5vCWgF+KaZaYm87Ss//rHnWryupDrgLvmSkA==", + "fast-json-stable-stringify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/fast-json-stable-stringify/-/fast-json-stable-stringify-2.0.0.tgz", + "integrity": "sha1-1RQsDK7msRifh9OnYREGT4bIu/I=", + "dev": true + }, + "fast-text-encoding": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fast-text-encoding/-/fast-text-encoding-1.0.3.tgz", + "integrity": "sha512-dtm4QZH9nZtcDt8qJiOH9fcQd1NAgi+K1O2DbE6GG1PPCK/BWfOH3idCTRQ4ImXRUOyopDEgDEnVEE7Y/2Wrig==" + }, + "fastparse": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/fastparse/-/fastparse-1.1.2.tgz", + "integrity": "sha512-483XLLxTVIwWK3QTrMGRqUfUpoOs/0hbQrl2oz4J0pAcm3A3bu84wxTFqGqkJzewCLdME38xJLJAxBABfQT8sQ==", + "dev": true + }, + "fastq": { + "version": "1.13.0", + "resolved": "https://registry.npmjs.org/fastq/-/fastq-1.13.0.tgz", + "integrity": "sha512-YpkpUnK8od0o1hmeSc7UUs/eB/vIPWJYjKck2QKIzAf71Vm1AAQ3EbuZB3g2JIy+pg+ERD0vqI79KyZiB2e2Nw==", "dev": true, "requires": { - "concat-stream": "^1.5.0", - "duplexify": "^3.4.2", - "end-of-stream": "^1.1.0", - "flush-write-stream": "^1.0.0", - "from2": "^2.1.0", - "parallel-transform": "^1.1.0", - "pump": "^3.0.0", - "pumpify": "^1.3.3", - "stream-each": "^1.1.0", - "through2": "^2.0.0" + "reusify": "^1.0.4" } }, - "mixin-deep": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/mixin-deep/-/mixin-deep-1.3.2.tgz", - "integrity": "sha512-WRoDn//mXBiJ1H40rqa3vH0toePwSsGb45iInWlTySa+Uu4k3tYUSxa2v1KqAiLtvlrSzaExqS1gtk96A9zvEA==", + "faye-websocket": { + "version": "0.11.4", + "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.4.tgz", + "integrity": "sha512-CzbClwlXAuiRQAlUyfqPgvPoNKTckTPGfwZV4ZdAhVcP2lh9KUxJg2b5GkE7XbjKQ3YJnQ9z6D9ntLAlB+tP8g==", "dev": true, "requires": { - "for-in": "^1.0.2", - "is-extendable": "^1.0.1" - }, - "dependencies": { - "is-extendable": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-extendable/-/is-extendable-1.0.1.tgz", - "integrity": "sha512-arnXMxT1hhoKo9k1LZdmlNyJdDDfy2v0fXjFlmok4+i8ul/6WlbVge9bhM74OpNPQPMGUToDtz+KXa1PneJxOA==", - "dev": true, - "requires": { - "is-plain-object": "^2.0.4" - } - } + "websocket-driver": ">=0.5.1" } }, - "mkdirp": { - "version": "0.5.5", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", - "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", + "fill-range": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz", + "integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==", "dev": true, "requires": { - "minimist": "^1.2.5" + "to-regex-range": "^5.0.1" } }, - "morgan": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/morgan/-/morgan-1.10.0.tgz", - "integrity": "sha512-AbegBVI4sh6El+1gNwvD5YIck7nSA36weD7xvIxG4in80j/UoK8AEGaWnnz8v1GxonMCltmlNs5ZKbGvl9b1XQ==", + "finalhandler": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.1.2.tgz", + "integrity": "sha512-aAWcW57uxVNrQZqFXjITpW3sIUQmHGG3qSb9mUah9MgMC4NeWhNOlNjXEYq3HjRAvL6arUviZGGJsBg6z0zsWA==", "dev": true, "requires": { - "basic-auth": "~2.0.1", "debug": "2.6.9", - "depd": "~2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", "on-finished": "~2.3.0", - "on-headers": "~1.0.2" + "parseurl": "~1.3.3", + "statuses": "~1.5.0", + "unpipe": "~1.0.0" }, "dependencies": { "debug": { @@ -30238,12 +5878,6 @@ "ms": "2.0.0" } }, - "depd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", - "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", - "dev": true - }, "ms": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", @@ -30252,4026 +5886,4135 @@ } } }, - "move-concurrently": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/move-concurrently/-/move-concurrently-1.0.1.tgz", - "integrity": "sha1-viwAX9oy4LKa8fBdfEszIUxwH5I=", + "find-cache-dir": { + "version": "3.3.2", + "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.2.tgz", + "integrity": "sha512-wXZV5emFEjrridIgED11OoUKLxiYjAcqot/NJdAkOhlJ+vGzwhOAfcG5OX1jP+S0PcjEn8bdMJv+g2jwQ3Onig==", "dev": true, "requires": { - "aproba": "^1.1.1", - "copy-concurrently": "^1.0.0", - "fs-write-stream-atomic": "^1.0.8", - "mkdirp": "^0.5.1", - "rimraf": "^2.5.4", - "run-queue": "^1.0.3" + "commondir": "^1.0.1", + "make-dir": "^3.0.2", + "pkg-dir": "^4.1.0" }, "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", "dev": true, "requires": { - "glob": "^7.1.3" + "semver": "^6.0.0" } } } }, - "ms": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", - "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } }, - "multicast-dns": { - "version": "6.2.3", - "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-6.2.3.tgz", - "integrity": "sha512-ji6J5enbMyGRHIAkAOu3WdV8nggqviKCEKtXcOqfphZZtQrmHKycfynJ2V7eVPUA4NhJ6V7Wf4TmGbTwKE9B6g==", + "flatted": { + "version": "3.2.6", + "resolved": "https://registry.npmjs.org/flatted/-/flatted-3.2.6.tgz", + "integrity": "sha512-0sQoMh9s0BYsm+12Huy/rkKxVu4R1+r96YX5cG44rHV0pQ6iC3Q+mkoMFaGWObMFYQxCVT+ssG1ksneA2MI9KQ==", + "dev": true + }, + "follow-redirects": { + "version": "1.15.1", + "resolved": "https://registry.npmjs.org/follow-redirects/-/follow-redirects-1.15.1.tgz", + "integrity": "sha512-yLAMQs+k0b2m7cVxpS1VKJVvoz7SS9Td1zss3XRwXj+ZDH00RJgnuLx7E44wx02kQLrdM3aOOy+FpzS7+8OizA==", + "dev": true + }, + "forever-agent": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/forever-agent/-/forever-agent-0.6.1.tgz", + "integrity": "sha1-+8cfDEGt6zf5bFd60e1C2P2sypE=", + "dev": true + }, + "form-data": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/form-data/-/form-data-2.3.3.tgz", + "integrity": "sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ==", "dev": true, "requires": { - "dns-packet": "^1.3.1", - "thunky": "^1.0.2" + "asynckit": "^0.4.0", + "combined-stream": "^1.0.6", + "mime-types": "^2.1.12" } }, - "multicast-dns-service-types": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/multicast-dns-service-types/-/multicast-dns-service-types-1.1.0.tgz", - "integrity": "sha1-iZ8R2WhuXgXLkbNdXw5jt3PPyQE=", + "fraction.js": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", + "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", "dev": true }, - "mute-stream": { - "version": "0.0.7", - "resolved": "https://registry.npmjs.org/mute-stream/-/mute-stream-0.0.7.tgz", - "integrity": "sha1-MHXOk7whuPq0PhvE2n6BFe0ee6s=", + "fresh": { + "version": "0.5.2", + "resolved": "https://registry.npmjs.org/fresh/-/fresh-0.5.2.tgz", + "integrity": "sha1-PYyt2Q2XZWn6g1qx+OSyOhBWBac=", + "dev": true + }, + "fs-minipass": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-2.1.0.tgz", + "integrity": "sha512-V/JgOLFCS+R6Vcq0slCuaeWEdNC3ouDlJMNIsacH2VtALiu9mV4LPrHc5cDl8k5aw6J8jwgWWpiTo5RYhmIzvg==", + "dev": true, + "requires": { + "minipass": "^3.0.0" + } + }, + "fs-monkey": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/fs-monkey/-/fs-monkey-1.0.3.tgz", + "integrity": "sha512-cybjIfiiE+pTWicSCLFHSrXZ6EilF30oh91FDP9S2B051prEa7QWfrVTQm10/dDpswBDXZugPa1Ogu8Yh+HV0Q==", "dev": true }, - "nan": { - "version": "2.14.2", - "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.2.tgz", - "integrity": "sha512-M2ufzIiINKCuDfBSAUr1vWQ+vuVcA9kqx8JJUsbQi6yf1uGRyb7HfpdfUr5qLXf3B/t8dPvcjhKMmlfnP47EzQ==", + "fs.realpath": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/fs.realpath/-/fs.realpath-1.0.0.tgz", + "integrity": "sha1-FQStJSMVjKpA20onh8sBQRmU6k8=" + }, + "fsevents": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.1.tgz", + "integrity": "sha512-YR47Eg4hChJGAB1O3yEAOkGO+rlzutoICGqGo9EZ4lKWokzZRSyIW1QmTzqjtw8MJdj9srP869CuWw/hyzSiBw==", "dev": true, "optional": true }, - "nanomatch": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/nanomatch/-/nanomatch-1.2.13.tgz", - "integrity": "sha512-fpoe2T0RbHwBTBUOftAfBPaDEi06ufaUai0mE6Yn1kacc3SnTErfb/h+X94VXzI64rKFHYImXSvdwGGCmwOqCA==", + "function-bind": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", + "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", + "dev": true + }, + "fuzzy": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/fuzzy/-/fuzzy-0.1.3.tgz", + "integrity": "sha1-THbsL/CsGjap3M+aAN+GIweNTtg=", + "dev": true + }, + "gensync": { + "version": "1.0.0-beta.2", + "resolved": "https://registry.npmjs.org/gensync/-/gensync-1.0.0-beta.2.tgz", + "integrity": "sha512-3hN7NaskYvMDLQY55gnW3NQ+mesEAepTqlg+VEbj7zzqEMBVNhzcGYYeqFo/TlYz6eQiFcp1HcsCZO+nGgS8zg==" + }, + "get-caller-file": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", + "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==" + }, + "get-intrinsic": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.2.tgz", + "integrity": "sha512-Jfm3OyCxHh9DJyc28qGk+JmfkpO41A4XkneDSujN9MDXrm4oDKdHvndhZ2dN94+ERNfkYJWDclW6k2L/ZGHjXA==", + "dev": true, + "requires": { + "function-bind": "^1.1.1", + "has": "^1.0.3", + "has-symbols": "^1.0.3" + } + }, + "get-package-type": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/get-package-type/-/get-package-type-0.1.0.tgz", + "integrity": "sha512-pjzuKtY64GYfWizNAJ0fr9VqttZkNiK2iS430LtIHzjBEr6bX8Am2zm4sW4Ro5wjWW5cAlRL1qAMTcXbjNAO2Q==", + "dev": true + }, + "getpass": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/getpass/-/getpass-0.1.7.tgz", + "integrity": "sha1-Xv+OPmhNVprkyysSgmBOi6YhSfo=", "dev": true, "requires": { - "arr-diff": "^4.0.0", - "array-unique": "^0.3.2", - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "fragment-cache": "^0.2.1", - "is-windows": "^1.0.2", - "kind-of": "^6.0.2", - "object.pick": "^1.3.0", - "regex-not": "^1.0.0", - "snapdragon": "^0.8.1", - "to-regex": "^3.0.1" + "assert-plus": "^1.0.0" } }, - "nash": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/nash/-/nash-3.0.0.tgz", - "integrity": "sha512-M5SahEycXUmko3zOvsBkF6p94CWLhnyy9hfpQ9Qzp+rQkQ8D1OaTlfTl1OBWktq9Fak3oDXKU+ev7tiMaMu+1w==", + "glob": { + "version": "7.1.5", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.1.5.tgz", + "integrity": "sha512-J9dlskqUXK1OeTOYBEn5s8aMukWMwWfs+rPTn/jn50Ux4MNXVhubL1wu/j2t+H4NVI+cXEcCaYellqaPVGXNqQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.0.4", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "glob-parent": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", + "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", + "dev": true, + "requires": { + "is-glob": "^4.0.3" + }, + "dependencies": { + "is-glob": { + "version": "4.0.3", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "dev": true, + "requires": { + "is-extglob": "^2.1.1" + } + } + } + }, + "glob-to-regexp": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/glob-to-regexp/-/glob-to-regexp-0.4.1.tgz", + "integrity": "sha512-lkX1HJXwyMcprw/5YUZc2s7DrpAiHB21/V+E1rHUrVNokkvB6bqMzT0VfV6/86ZNabt1k14YOIaT7nDvOX3Iiw==", + "dev": true + }, + "globals": { + "version": "11.12.0", + "resolved": "https://registry.npmjs.org/globals/-/globals-11.12.0.tgz", + "integrity": "sha512-WOBp/EEGUiIsJSp7wcv/y6MO+lV9UoncWqxuFfm8eBwzWNgyfBd6Gz+IeKQ9jCmyhoH99g15M3T+QaVHFjizVA==" + }, + "globby": { + "version": "12.2.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", + "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", "dev": true, "requires": { - "async": "^1.3.0", - "flat-arguments": "^1.0.0", - "lodash": "^4.17.5", - "minimist": "^1.1.0" + "array-union": "^3.0.1", + "dir-glob": "^3.0.1", + "fast-glob": "^3.2.7", + "ignore": "^5.1.9", + "merge2": "^1.4.1", + "slash": "^4.0.0" }, "dependencies": { - "async": { - "version": "1.5.2", - "resolved": "https://registry.npmjs.org/async/-/async-1.5.2.tgz", - "integrity": "sha1-7GphrlZIDAw8skHJVhjiCJL5Zyo=", + "array-union": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", + "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", "dev": true } } }, - "negotiator": { - "version": "0.6.2", - "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", - "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "graceful-fs": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", + "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", "dev": true }, - "neo-async": { - "version": "2.6.2", - "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", - "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "handle-thing": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/handle-thing/-/handle-thing-2.0.1.tgz", + "integrity": "sha512-9Qn4yBxelxoh2Ow62nP+Ka/kMnOXRi8BXnRaUwezLNhqelnN49xKz4F/dPP8OYLxLxq6JDtZb2i9XznUQbNPTg==", "dev": true }, - "next-tick": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", - "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", + "har-schema": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/har-schema/-/har-schema-2.0.0.tgz", + "integrity": "sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI=", "dev": true }, - "ng-apexcharts": { - "version": "1.5.7", - "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.5.7.tgz", - "integrity": "sha512-7swEdaoXIZ1E6zfUpFfIJYNerPGBz47XRCa0ReyFGbj785LJPAOlTeo7t8CRzMI/ACKhHD/Y1IQatlwQkI2shg==", + "har-validator": { + "version": "5.1.5", + "resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.5.tgz", + "integrity": "sha512-nmT2T0lljbxdQZfspsno9hgrG3Uir6Ks5afism62poxqBM6sDnMEuPmzTq8XN0OEwqKLLdh1jQI3qyE66Nzb3w==", + "dev": true, "requires": { - "tslib": "^1.10.0" + "ajv": "^6.12.3", + "har-schema": "^2.0.0" + }, + "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" + } + }, + "fast-deep-equal": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", + "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", + "dev": true + } } }, - "ng-waveform": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/ng-waveform/-/ng-waveform-0.2.1.tgz", - "integrity": "sha512-pGaxEro60TrvnrKJYj8i8Mq4arY/kU8wl7XYUwX+LOzGjrwsWL/5jnQAnW1bHQzrs4LmoDRybjj77nQH0WdS8A==", + "has": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has/-/has-1.0.3.tgz", + "integrity": "sha512-f2dvO0VU6Oej7RkWJGrehjbzMAjFp5/VKPp5tTpWIV4JHHZK1/BxbFRtf/siA2SWTe09caDmVtYYzWEIbBS4zw==", + "dev": true, "requires": { - "tslib": "^1.9.0" + "function-bind": "^1.1.1" } }, - "ng2-pdf-viewer": { - "version": "6.4.1", - "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-6.4.1.tgz", - "integrity": "sha512-A8R9SGa2bu4n+mtagGX8DqBrVAbuROrEgcAOQwCdciYTLAq9EFGEB8TCQZpjvYVaFTNwjKWTMTjFQVEorjbLeQ==", + "has-ansi": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/has-ansi/-/has-ansi-2.0.0.tgz", + "integrity": "sha1-NPUEnOHs3ysGSa8+8k5F7TVBbZE=", + "dev": true, "requires": { - "@types/pdfjs-dist": "~2.1.7", - "pdfjs-dist": "~2.5.207", - "tslib": "^1.10.0" + "ansi-regex": "^2.0.0" } }, - "ngx-countdown": { - "version": "11.0.1", - "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-11.0.1.tgz", - "integrity": "sha512-0qGSM+GSj/vQBJNy0rwPIsLFhm6Ley3tDtJPo+qJO0LqHq3zW5cTi5Pcf2YqypnxywLraJ4DX3WzhWMCDsDZkA==", + "has-flag": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-3.0.0.tgz", + "integrity": "sha1-tdRU3CGZriJWmfNGfloH87lVuv0=" + }, + "has-property-descriptors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.0.tgz", + "integrity": "sha512-62DVLZGoiEBDHQyqG4w9xCuZ7eJEwNmJRWw2VY84Oedb7WFcA27fiEVe8oUQx9hAUJ4ekurquucTGwsyO1XGdQ==", + "dev": true, "requires": { - "tslib": "^2.0.0" - }, - "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" - } + "get-intrinsic": "^1.1.1" + } + }, + "has-symbols": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.3.tgz", + "integrity": "sha512-l3LCuF6MgDNwTDKkdYGEihYjt5pRPbEg46rtlmnSPlUbgmB8LOIrKJbYYFBSbnPaJexMKtiPO8hmeRjRz2Td+A==", + "dev": true + }, + "has-unicode": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/has-unicode/-/has-unicode-2.0.1.tgz", + "integrity": "sha1-4Ob+aijPUROIVeCG0Wkedx3iqLk=", + "dev": true + }, + "hdr-histogram-js": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/hdr-histogram-js/-/hdr-histogram-js-2.0.3.tgz", + "integrity": "sha512-Hkn78wwzWHNCp2uarhzQ2SGFLU3JY8SBDDd3TAABK4fc30wm+MuPOrg5QVFVfkKOQd6Bfz3ukJEI+q9sXEkK1g==", + "dev": true, + "requires": { + "@assemblyscript/loader": "^0.10.1", + "base64-js": "^1.2.0", + "pako": "^1.0.3" } }, - "ngx-lottie": { - "version": "6.4.0", - "resolved": "https://registry.npmjs.org/ngx-lottie/-/ngx-lottie-6.4.0.tgz", - "integrity": "sha512-RuXljkSOpZyt/NLL2X89gNMIxvGrj/D1rRN4qrOrAZHdREeGAIapqvrldJpQDeiThkHeNfyWfmnDavhJfP/DHA==", + "hdr-histogram-percentiles-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/hdr-histogram-percentiles-obj/-/hdr-histogram-percentiles-obj-3.0.0.tgz", + "integrity": "sha512-7kIufnBqdsBGcSZLPJwqHT3yhk1QTsSlFsVD3kx5ixH/AlgBs9yM1q6DPhXZ8f8gtdqgh7N7/5btRLpQsS2gHw==", + "dev": true + }, + "hosted-git-info": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-5.0.0.tgz", + "integrity": "sha512-rRnjWu0Bxj+nIfUOkz0695C0H6tRrN5iYIzYejb0tDEefe2AekHu/U5Kn9pEie5vsJqpNQU02az7TGSH3qpz4Q==", + "dev": true, "requires": { - "tslib": "^2.0.0" + "lru-cache": "^7.5.1" }, "dependencies": { - "tslib": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.1.0.tgz", - "integrity": "sha512-hcVC3wYEziELGGmEEXue7D75zbwIIVUMWAVbHItGPx0ziyXxrOMQx4rQEVEV45Ut/1IotuEvwqPopzIOkDMf0A==" + "lru-cache": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", + "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", + "dev": true } } }, - "ngx-walkthrough": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/ngx-walkthrough/-/ngx-walkthrough-0.3.2.tgz", - "integrity": "sha512-fRfMJEngKuPS9b+6qH0e3FylpJy/ejoG2whySZWzKGxhbPFs4cPje3J7QZHQDYSK725GR+Dw/s0z/U43c6ZJnw==", + "hpack.js": { + "version": "2.1.6", + "resolved": "https://registry.npmjs.org/hpack.js/-/hpack.js-2.1.6.tgz", + "integrity": "sha512-zJxVehUdMGIKsRaNt7apO2Gqp0BdqW5yaiGHXXmbpvxgBYVZnAql+BJb4RO5ad2MgpbZKn5G6nMnegrH1FcNYQ==", + "dev": true, "requires": { - "tslib": "^1.7.1" + "inherits": "^2.0.1", + "obuf": "^1.0.0", + "readable-stream": "^2.0.1", + "wbuf": "^1.1.0" } }, - "nice-try": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/nice-try/-/nice-try-1.0.5.tgz", - "integrity": "sha512-1nh45deeb5olNY7eX82BkPO7SSxR5SSYJiPTrTdFUVYwAl8CKMA5N9PjTYkHiRjisVcxcQ1HXdLhx2qxxJzLNQ==", + "html-entities": { + "version": "2.3.3", + "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-2.3.3.tgz", + "integrity": "sha512-DV5Ln36z34NNTDgnz0EWGBLZENelNAtkiFA4kyNOG2tDI6Mz1uSWiq1wAKdyjnJwyDiDO7Fa2SO1CTxPXL8VxA==", "dev": true }, - "node-emoji": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/node-emoji/-/node-emoji-1.10.0.tgz", - "integrity": "sha512-Yt3384If5H6BYGVHiHwTL+99OzJKHhgp82S8/dktEK73T26BazdgZ4JZh92xSVtGNJvz9UbXdNAc5hcrXV42vw==", + "html-escaper": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/html-escaper/-/html-escaper-2.0.2.tgz", + "integrity": "sha512-H2iMtd0I4Mt5eYiapRdIDjp+XzelXQ0tFE4JS7YFwFevXXMmOp9myNrUvCg0D6ws8iqkRPBfKHgbwig1SmlLfg==", + "dev": true + }, + "http-cache-semantics": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz", + "integrity": "sha512-carPklcUh7ROWRK7Cv27RPtdhYhUsela/ue5/jKzjegVvXDqM2ILE9Q2BGn9JZJh1g87cp56su/FgQSzcWS8cQ==", + "dev": true + }, + "http-deceiver": { + "version": "1.2.7", + "resolved": "https://registry.npmjs.org/http-deceiver/-/http-deceiver-1.2.7.tgz", + "integrity": "sha512-LmpOGxTfbpgtGVxJrj5k7asXHCgNZp5nLfp+hWc8QQRqtb7fUy6kRY3BO1h9ddF6yIPYUARgxGOwB42DnxIaNw==", + "dev": true + }, + "http-errors": { + "version": "1.7.2", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.7.2.tgz", + "integrity": "sha512-uUQBt3H/cSIVfch6i1EuPNy/YsRSOUBXTVfZ+yR7Zjez3qjBz6i9+i4zjNaoqcoFVI4lQJ5plg63TvGfRSDCRg==", "dev": true, "requires": { - "lodash.toarray": "^4.4.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.1", + "statuses": ">= 1.5.0 < 2", + "toidentifier": "1.0.0" + }, + "dependencies": { + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "dev": true + } } }, - "node-fetch": { - "version": "2.6.1", - "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-2.6.1.tgz", - "integrity": "sha512-V4aYg89jEoVRxRb2fJdAg8FHvI7cEyYdVAh94HH0UIK8oJxUfkjlDQN9RbMx+bEjP7+ggMiFRprSti032Oipxw==" + "http-parser-js": { + "version": "0.5.3", + "resolved": "https://registry.npmjs.org/http-parser-js/-/http-parser-js-0.5.3.tgz", + "integrity": "sha512-t7hjvef/5HEK7RWTdUzVUhl8zkEu+LlaE0IYzdMuvbSDipxBRpOn4Uhw8ZyECEa808iVT8XCjzo6xmYt4CiLZg==", + "dev": true }, - "node-fetch-npm": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/node-fetch-npm/-/node-fetch-npm-2.0.4.tgz", - "integrity": "sha512-iOuIQDWDyjhv9qSDrj9aq/klt6F9z1p2otB3AV7v3zBDcL/x+OfGsvGQZZCcMZbUf4Ujw1xGNQkjvGnVT22cKg==", + "http-proxy": { + "version": "1.18.1", + "resolved": "https://registry.npmjs.org/http-proxy/-/http-proxy-1.18.1.tgz", + "integrity": "sha512-7mz/721AbnJwIVbnaSv1Cz3Am0ZLT/UBwkC92VlxhXv/k/BBQfM2fXElQNC27BVGr0uwUpplYPQM9LnaBMR5NQ==", "dev": true, "requires": { - "encoding": "^0.1.11", - "json-parse-better-errors": "^1.0.0", - "safe-buffer": "^5.1.1" + "eventemitter3": "^4.0.0", + "follow-redirects": "^1.0.0", + "requires-port": "^1.0.0" } }, - "node-forge": { - "version": "0.10.0", - "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-0.10.0.tgz", - "integrity": "sha512-PPmu8eEeG9saEUvI97fm4OYxXVB6bFvyNTyiUOBichBpFG8A1Ljw3bY62+5oOjDEMHRnd0Y7HQ+x7uzxOzC6JA==" - }, - "node-gyp": { - "version": "7.1.2", - "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-7.1.2.tgz", - "integrity": "sha512-CbpcIo7C3eMu3dL1c3d0xw449fHIGALIJsRP4DDPHpyiW8vcriNY7ubh9TE4zEKfSxscY7PjeFnshE7h75ynjQ==", + "http-proxy-agent": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-4.0.1.tgz", + "integrity": "sha512-k0zdNgqWTGA6aeIRVpvfVob4fL52dTfaehylg0Y4UvSySvOq/Y+BOyPrgpUrA7HylqvU8vIZGsRuXmspskV0Tg==", "dev": true, - "optional": true, "requires": { - "env-paths": "^2.2.0", - "glob": "^7.1.4", - "graceful-fs": "^4.2.3", - "nopt": "^5.0.0", - "npmlog": "^4.1.2", - "request": "^2.88.2", - "rimraf": "^3.0.2", - "semver": "^7.3.2", - "tar": "^6.0.2", - "which": "^2.0.2" + "@tootallnate/once": "1", + "agent-base": "6", + "debug": "4" }, "dependencies": { - "chownr": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", - "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", - "dev": true, - "optional": true - }, - "lru-cache": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", - "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", - "dev": true, - "optional": true, - "requires": { - "yallist": "^4.0.0" - } - }, - "minizlib": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", - "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", - "dev": true, - "optional": true, - "requires": { - "minipass": "^3.0.0", - "yallist": "^4.0.0" - } - }, - "mkdirp": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", - "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", - "dev": true, - "optional": true - }, - "rimraf": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", - "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", - "dev": true, - "optional": true, - "requires": { - "glob": "^7.1.3" - } - }, - "semver": { - "version": "7.3.4", - "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", - "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", - "dev": true, - "optional": true, - "requires": { - "lru-cache": "^6.0.0" - } - }, - "tar": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.0.tgz", - "integrity": "sha512-DUCttfhsnLCjwoDoFcI+B2iJgYa93vBnDUATYEeRx6sntCTdN01VnqsIuTlALXla/LWooNg0yEGeB+Y8WdFxGA==", - "dev": true, - "optional": true, - "requires": { - "chownr": "^2.0.0", - "fs-minipass": "^2.0.0", - "minipass": "^3.0.0", - "minizlib": "^2.1.1", - "mkdirp": "^1.0.3", - "yallist": "^4.0.0" - } - }, - "which": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", - "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, - "optional": true, "requires": { - "isexe": "^2.0.0" + "debug": "4" } } } }, - "node-libs-browser": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz", - "integrity": "sha512-h/zcD8H9kaDZ9ALUWwlBUDo6TKF8a7qBSCSEGfjTVIYeqsioSKaAX+BN7NgiMGp6iSIXZ3PxgCu8KS3b71YK5Q==", - "dev": true, - "requires": { - "assert": "^1.1.1", - "browserify-zlib": "^0.2.0", - "buffer": "^4.3.0", - "console-browserify": "^1.1.0", - "constants-browserify": "^1.0.0", - "crypto-browserify": "^3.11.0", - "domain-browser": "^1.1.1", - "events": "^3.0.0", - "https-browserify": "^1.0.0", - "os-browserify": "^0.3.0", - "path-browserify": "0.0.1", - "process": "^0.11.10", - "punycode": "^1.2.4", - "querystring-es3": "^0.2.0", - "readable-stream": "^2.3.3", - "stream-browserify": "^2.0.1", - "stream-http": "^2.7.2", - "string_decoder": "^1.0.0", - "timers-browserify": "^2.0.4", - "tty-browserify": "0.0.0", - "url": "^0.11.0", - "util": "^0.11.0", - "vm-browserify": "^1.0.1" - }, - "dependencies": { - "punycode": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz", - "integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=", - "dev": true - } + "http-proxy-middleware": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/http-proxy-middleware/-/http-proxy-middleware-2.0.6.tgz", + "integrity": "sha512-ya/UeJ6HVBYxrgYotAZo1KvPWlgB48kUJLDePFeneHsVujFaW5WNj2NgWCAE//B1Dl02BIfYlpNgBy8Kf8Rjmw==", + "dev": true, + "requires": { + "@types/http-proxy": "^1.17.8", + "http-proxy": "^1.18.1", + "is-glob": "^4.0.1", + "is-plain-obj": "^3.0.0", + "micromatch": "^4.0.2" } }, - "node-releases": { - "version": "1.1.70", - "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.70.tgz", - "integrity": "sha512-Slf2s69+2/uAD79pVVQo8uSiC34+g8GWY8UH2Qtqv34ZfhYrxpYpfzs9Js9d6O0mbDmALuxaTlplnBTnSELcrw==", - "dev": true - }, - "nopt": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", - "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "http-signature": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/http-signature/-/http-signature-1.2.0.tgz", + "integrity": "sha1-muzZJRFHcvPZW2WmCruPfBj7rOE=", "dev": true, - "optional": true, "requires": { - "abbrev": "1" + "assert-plus": "^1.0.0", + "jsprim": "^1.2.2", + "sshpk": "^1.7.0" } }, - "normalize-package-data": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.5.0.tgz", - "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "https-proxy-agent": { + "version": "2.2.4", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-2.2.4.tgz", + "integrity": "sha512-OmvfoQ53WLjtA9HeYP9RNrWMJzzAz1JGaSFr1nijg0PVR1JaD/xbJq1mdEIIlxGpXp9eSe/O2LgU9DJmTPd0Eg==", "dev": true, "requires": { - "hosted-git-info": "^2.1.4", - "resolve": "^1.10.0", - "semver": "2 || 3 || 4 || 5", - "validate-npm-package-license": "^3.0.1" + "agent-base": "^4.3.0", + "debug": "^3.1.0" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true - }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "requires": { + "ms": "^2.1.1" + } } } }, - "normalize-path": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", - "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", - "dev": true - }, - "normalize-range": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", - "integrity": "sha1-LRDAa9/TEuqXd2laTShDlFa3WUI=", + "human-signals": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/human-signals/-/human-signals-2.1.0.tgz", + "integrity": "sha512-B4FFZ6q/T2jhhksgkbEW3HBvWIfDW85snkQgawt07S7J5QXTk6BkNV+0yAeZrM5QpMAdYlocGoljn0sJ/WQkFw==", "dev": true }, - "normalize-url": { - "version": "3.3.0", - "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-3.3.0.tgz", - "integrity": "sha512-U+JJi7duF1o+u2pynbp2zXDW2/PADgC30f0GsHZtRh+HOcXHnw137TrNlyxxRvWW5fjKd3bcLHPxofWuCjaeZg==", - "dev": true + "humanize-ms": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/humanize-ms/-/humanize-ms-1.2.1.tgz", + "integrity": "sha512-Fl70vYtsAFb/C06PTS9dZBo7ihau+Tu/DNCk/OyHhea07S+aeMWpFFkUaXRa8fI+ScZbEI8dfSxwY7gxZ9SAVQ==", + "dev": true, + "requires": { + "ms": "^2.0.0" + } }, - "npm-bundled": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.1.tgz", - "integrity": "sha512-gqkfgGePhTpAEgUsGEgcq1rqPXA+tv/aVBlgEzfXwA1yiUJF7xtEt3CtVwOjNYQOVknDk0F20w58Fnm3EtG0fA==", + "iconv-lite": { + "version": "0.4.24", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.4.24.tgz", + "integrity": "sha512-v3MXnZAcvnywkTUEZomIActle7RXXeedOR31wwl7VlyoXO4Qi9arvSenNQWne1TcRwhCL1HwLI21bEqdpj8/rA==", "dev": true, "requires": { - "npm-normalize-package-bin": "^1.0.1" + "safer-buffer": ">= 2.1.2 < 3" } }, - "npm-normalize-package-bin": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", - "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", + "icss-utils": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/icss-utils/-/icss-utils-5.1.0.tgz", + "integrity": "sha512-soFhflCVWLfRNOPU3iv5Z9VUdT44xFRbzjLsEzSr5AQmgqPMTHdU3PMT1Cf1ssx8fLNJDA1juftYl+PUcv3MqA==", "dev": true }, - "npm-package-arg": { - "version": "6.1.1", - "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-6.1.1.tgz", - "integrity": "sha512-qBpssaL3IOZWi5vEKUKW0cO7kzLeT+EQO9W8RsLOZf76KF9E/K9+wH0C7t06HXPpaH8WH5xF1MExLuCwbTqRUg==", + "ieee754": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==", + "dev": true + }, + "ignore": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/ignore/-/ignore-5.2.0.tgz", + "integrity": "sha512-CmxgYGiEPCLhfLnpPp1MoRmifwEIOgjcHXxOBjv7mY96c+eWScsOP9c112ZyLdWHi0FxHjI+4uVhKYp/gcdRmQ==", + "dev": true + }, + "ignore-walk": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ignore-walk/-/ignore-walk-5.0.1.tgz", + "integrity": "sha512-yemi4pMf51WKT7khInJqAvsIGzoqYXblnsz0ql8tM+yi1EKYTY1evX4NAbJrLL/Aanr2HyZeluqU+Oi7MGHokw==", "dev": true, "requires": { - "hosted-git-info": "^2.7.1", - "osenv": "^0.1.5", - "semver": "^5.6.0", - "validate-npm-package-name": "^3.0.0" + "minimatch": "^5.0.1" }, "dependencies": { - "hosted-git-info": { - "version": "2.8.8", - "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-2.8.8.tgz", - "integrity": "sha512-f/wzC2QaWBs7t9IYqB4T3sR1xviIViXJRJTWBlx2Gf3g0Xi5vI7Yy4koXQ1c9OYDGHN9sBy1DQ2AB8fqZBWhUg==", - "dev": true + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } } } }, - "npm-packlist": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.4.8.tgz", - "integrity": "sha512-5+AZgwru5IevF5ZdnFglB5wNlHG1AOOuw28WhUq8/8emhBmLv6jX5by4WJCh7lW0uSYZYS6DXqIsyZVIXRZU9A==", + "image-size": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/image-size/-/image-size-0.5.5.tgz", + "integrity": "sha512-6TDAlDPZxUFCv+fuOkIoXT/V/f3Qbq8e37p+YOiYrUv3v9cc3/6x78VdfPgFVaB9dZYeLUfKgHRebpkm/oP2VQ==", "dev": true, - "requires": { - "ignore-walk": "^3.0.1", - "npm-bundled": "^1.0.1", - "npm-normalize-package-bin": "^1.0.1" - } + "optional": true }, - "npm-pick-manifest": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-3.0.2.tgz", - "integrity": "sha512-wNprTNg+X5nf+tDi+hbjdHhM4bX+mKqv6XmPh7B5eG+QY9VARfQPfCEH013H5GqfNj6ee8Ij2fg8yk0mzps1Vw==", - "dev": true, - "requires": { - "figgy-pudding": "^3.5.1", - "npm-package-arg": "^6.0.0", - "semver": "^5.4.1" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } - } + "immediate": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/immediate/-/immediate-3.0.6.tgz", + "integrity": "sha512-XXOFtyqDjNDAQxVfYxuF7g9Il/IbWmmlQg2MYKOH8ExIT1qg6xc4zyS3HaEEATgs1btfzxq15ciUiY7gjSXRGQ==", + "dev": true }, - "npm-registry-fetch": { - "version": "4.0.7", - "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-4.0.7.tgz", - "integrity": "sha512-cny9v0+Mq6Tjz+e0erFAB+RYJ/AVGzkjnISiobqP8OWj9c9FLoZZu8/SPSKJWE17F1tk4018wfjV+ZbIbqC7fQ==", + "immutable": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/immutable/-/immutable-4.1.0.tgz", + "integrity": "sha512-oNkuqVTA8jqG1Q6c+UglTOD1xhC1BtjKI7XkCXRkZHrN5m18/XsnUp8Q89GkQO/z+0WjonSvl0FLhDYftp46nQ==", + "dev": true + }, + "import-fresh": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/import-fresh/-/import-fresh-3.3.0.tgz", + "integrity": "sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw==", "dev": true, "requires": { - "bluebird": "^3.5.1", - "figgy-pudding": "^3.4.1", - "JSONStream": "^1.3.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", - "npm-package-arg": "^6.1.0", - "safe-buffer": "^5.2.0" + "parent-module": "^1.0.0", + "resolve-from": "^4.0.0" }, "dependencies": { - "safe-buffer": { - "version": "5.2.1", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", - "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "resolve-from": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", + "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", "dev": true } } }, - "npm-run-path": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-2.0.2.tgz", - "integrity": "sha1-NakjLfo11wZ7TLLd8jV7GHFTbF8=", - "dev": true, - "requires": { - "path-key": "^2.0.0" - } - }, - "npmlog": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/npmlog/-/npmlog-4.1.2.tgz", - "integrity": "sha512-2uUqazuKlTaSI/dC8AzicUck7+IrEaOnN/e0jd3Xtt1KcGpwx30v50mL7oPyr/h9bL3E4aZccVwpwP+5W9Vjkg==", - "dev": true, - "optional": true, - "requires": { - "are-we-there-yet": "~1.1.2", - "console-control-strings": "~1.1.0", - "gauge": "~2.7.3", - "set-blocking": "~2.0.0" - } - }, - "nth-check": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-1.0.2.tgz", - "integrity": "sha512-WeBOdju8SnzPN5vTUJYxYUxLeXpCaVP5i5e0LF8fg7WORF2Wd7wFX/pk0tYZk7s8T+J7VLy0Da6J1+wCT0AtHg==", - "dev": true, - "requires": { - "boolbase": "~1.0.0" - } - }, - "num2fraction": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/num2fraction/-/num2fraction-1.2.2.tgz", - "integrity": "sha1-b2gragJ6Tp3fpFZM0lidHU5mnt4=", + "imurmurhash": { + "version": "0.1.4", + "resolved": "https://registry.npmjs.org/imurmurhash/-/imurmurhash-0.1.4.tgz", + "integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=", "dev": true }, - "number-is-nan": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", - "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=", + "indent-string": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", + "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", "dev": true }, - "oauth-sign": { - "version": "0.9.0", - "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", - "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", + "infer-owner": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/infer-owner/-/infer-owner-1.0.4.tgz", + "integrity": "sha512-IClj+Xz94+d7irH5qRyfJonOdfTzuDaifE6ZPWfx0N0+/ATZCbuTPq2prFl526urkQd90WyUKIh1DfBQ2hMz9A==", "dev": true }, - "object-assign": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", - "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", - "dev": true + "inflight": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } }, - "object-component": { - "version": "0.0.3", - "resolved": "https://registry.npmjs.org/object-component/-/object-component-0.0.3.tgz", - "integrity": "sha1-8MaapQ78lbhmwYb0AKM3acsvEpE=", + "inherits": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.5", + "resolved": "https://registry.npmjs.org/ini/-/ini-1.3.5.tgz", + "integrity": "sha512-RZY5huIKCMRWDUqZlEi72f/lmXKMvuszcMBduliQ3nnWbx9X/ZBQO7DijMEYS9EhHBb2qacRUMtC7svLwe0lcw==", "dev": true }, - "object-copy": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/object-copy/-/object-copy-0.1.0.tgz", - "integrity": "sha1-fn2Fi3gb18mRpBupde04EnVOmYw=", - "dev": true, + "inquirer-autocomplete-prompt": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/inquirer-autocomplete-prompt/-/inquirer-autocomplete-prompt-2.0.0.tgz", + "integrity": "sha512-c2LljLP3ewVJe4AUZzKdA6oWjqhpy5pfsisHAjh7mP3WUQ/O02x5OLMMqcLOYuRHx6i2hlVSIhUv0xYGyFxFYA==", "requires": { - "copy-descriptor": "^0.1.0", - "define-property": "^0.2.5", - "kind-of": "^3.0.3" + "ansi-escapes": "^4.3.2", + "figures": "^3.2.0", + "picocolors": "^1.0.0", + "run-async": "^2.4.1", + "rxjs": "^7.5.4" }, "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, + "ansi-escapes": { + "version": "4.3.2", + "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-4.3.2.tgz", + "integrity": "sha512-gKXj5ALrKWQLsYG9jlTRmR/xKluxHV+Z9QEwNIgCfM1/uwPMCuzVVnh5mwTd+OuBZcwSIMbqssNWRm1lE51QaQ==", "requires": { - "is-descriptor": "^0.1.0" + "type-fest": "^0.21.3" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, + "figures": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/figures/-/figures-3.2.0.tgz", + "integrity": "sha512-yaduQFRKLXYOGgEn6AZau90j3ggSOyiqXU0F9JZfeXYhNa+Jk4X+s45A2zg5jns87GAFa34BBm2kXw4XpNcbdg==", + "requires": { + "escape-string-regexp": "^1.0.5" + } + }, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "requires": { - "is-buffer": "^1.1.5" + "tslib": "^2.1.0" } + }, + "type-fest": { + "version": "0.21.3", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.21.3.tgz", + "integrity": "sha512-t0rzBq87m3fVcduHDUFhKmyyX+9eo6WQjZvf51Ea/M0Q7+T374Jp1aUiyUl0GKxp8M/OETVHSDvmkyPgvX+X2w==" } } }, - "object-inspect": { - "version": "1.9.0", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", - "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==", + "ip": { + "version": "1.1.8", + "resolved": "https://registry.npmjs.org/ip/-/ip-1.1.8.tgz", + "integrity": "sha512-PuExPYUiu6qMBQb4l06ecm6T6ujzhmh+MeJcW9wa89PoAz5pvd4zPgN5WJV104mb6S2T1AwNIAaB70JNrLQWhg==", "dev": true }, - "object-is": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.1.4.tgz", - "integrity": "sha512-1ZvAZ4wlF7IyPVOcE1Omikt7UpaFlOQq0HlSti+ZvDH3UiD2brwGMwDbyV43jao2bKJ+4+WdPJHSd7kgzKYVqg==", - "dev": true, - "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" - } - }, - "object-keys": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", - "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha512-zz06S8t0ozoDXMG+ube26zeCTNXcKIPJZJi8hBrF4idCLms4CG9QtK7qBl1boi5ODzFpjswb5JPmHCbMpjaYzg==", "dev": true }, - "object-visit": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/object-visit/-/object-visit-1.0.1.tgz", - "integrity": "sha1-95xEk68MU3e1n+OdOV5BBC3QRbs=", + "is-binary-path": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz", + "integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==", "dev": true, "requires": { - "isobject": "^3.0.0" + "binary-extensions": "^2.0.0" } }, - "object.assign": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", - "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "is-core-module": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.2.0.tgz", + "integrity": "sha512-XRAfAdyyY5F5cOXn7hYQDqh2Xmii+DEfIcQGxK/uNwMHhIkPWO0g8msXcbzLe+MpGoR951MlqM/2iIlU4vKDdQ==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "has-symbols": "^1.0.1", - "object-keys": "^1.1.1" + "has": "^1.0.3" } }, - "object.getownpropertydescriptors": { + "is-docker": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/is-docker/-/is-docker-2.1.1.tgz", + "integrity": "sha512-ZOoqiXfEwtGknTiuDEy8pN2CfE3TxMHprvNer1mXiqwkOT77Rw3YVrUQ52EqAOU3QAWDQ+bQdx7HJzrv7LS2Hw==" + }, + "is-extglob": { "version": "2.1.1", - "resolved": "https://registry.npmjs.org/object.getownpropertydescriptors/-/object.getownpropertydescriptors-2.1.1.tgz", - "integrity": "sha512-6DtXgZ/lIZ9hqx4GtZETobXLR/ZLaa0aqV0kzbn80Rf8Z2e/XFnhA0I7p07N2wH8bBBltr2xQPi6sbKWAY2Eng==", + "resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=", + "dev": true + }, + "is-glob": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz", + "integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1" + "is-extglob": "^2.1.1" } }, - "object.pick": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/object.pick/-/object.pick-1.3.0.tgz", - "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "is-interactive": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-interactive/-/is-interactive-1.0.0.tgz", + "integrity": "sha512-2HvIEKRoqS62guEC+qBjpvRubdX910WCMuJTZ+I9yvqKU2/12eSL549HMwtabb4oupdj2sMP50k+XJfB/8JE6w==", + "dev": true + }, + "is-lambda": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-lambda/-/is-lambda-1.0.1.tgz", + "integrity": "sha512-z7CMFGNrENq5iFB9Bqo64Xk6Y9sg+epq1myIcdHaGnbMTYOxvzsEtdYqQUylB7LxfkvgrrjP32T6Ywciio9UIQ==", + "dev": true + }, + "is-number": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==", + "dev": true + }, + "is-plain-obj": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-plain-obj/-/is-plain-obj-3.0.0.tgz", + "integrity": "sha512-gwsOE28k+23GP1B6vFl1oVh/WOzmawBrKwo5Ev6wMKzPkaXaCDIQKzLnvsA42DRlbVTWorkgTKIviAKCWkfUwA==", + "dev": true + }, + "is-plain-object": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/is-plain-object/-/is-plain-object-2.0.4.tgz", + "integrity": "sha512-h5PpgXkWitc38BBMYawTYMWJHFZJVnBquFE57xFpjB8pJFiF6gZ+bU+WyI/yqXiFR5mdLsgYNaPe8uao6Uv9Og==", "dev": true, "requires": { "isobject": "^3.0.1" } }, - "object.values": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/object.values/-/object.values-1.1.2.tgz", - "integrity": "sha512-MYC0jvJopr8EK6dPBiO8Nb9mvjdypOachO5REGk6MXzujbBrAisKo3HmdEI6kZDL6fC31Mwee/5YbtMebixeag==", - "dev": true, + "is-stream": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==", + "dev": true + }, + "is-typedarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", + "integrity": "sha1-5HnICFjfDBsR3dppQPlgEfzaSpo=", + "dev": true + }, + "is-unicode-supported": { + "version": "0.1.0", + "resolved": "https://registry.npmjs.org/is-unicode-supported/-/is-unicode-supported-0.1.0.tgz", + "integrity": "sha512-knxG2q4UC3u8stRGyAVJCOdxFmv5DZiRcdlIaAQXAbSfJya+OhopNotLQrstBhququ4ZpuKbDc/8S6mgXgPFPw==", + "dev": true + }, + "is-what": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/is-what/-/is-what-3.14.1.tgz", + "integrity": "sha512-sNxgpk9793nzSs7bA6JQJGeIuRBQhAaNGG77kzYQgMkrID+lS6SlK07K5LaptscDlSaIgH+GPFzf+d75FVxozA==", + "dev": true + }, + "is-wsl": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-2.2.0.tgz", + "integrity": "sha512-fKzAra0rGJUUBwGBgNkHZuToZcn+TtXHpeCgmkMJMMYx1sQDYaCSyjJBSCa2nH1DGm7s3n1oBnohoVTBaN7Lww==", "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3", - "es-abstract": "^1.18.0-next.1", - "has": "^1.0.3" + "is-docker": "^2.0.0" } }, - "obuf": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", - "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", + "isarray": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=", + "dev": true + }, + "isbinaryfile": { + "version": "4.0.10", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.10.tgz", + "integrity": "sha512-iHrqe5shvBUcFbmZq9zOQHBoeOhZJu6RQGrDpBgenUm/Am+F3JM2MgQj+rK3Z601fzrL5gLZWtAPH2OBaSVcyw==", + "dev": true + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=", + "dev": true + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha512-WhB9zCku7EGTj/HQQRz5aUQEUeoQZH2bWcltRErOpymJ4boYE6wL9Tbr23krRPSZ+C5zqNSrSw+Cc7sZZ4b7vg==", + "dev": true + }, + "isstream": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", + "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", "dev": true }, - "on-finished": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", - "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", - "dev": true, - "requires": { - "ee-first": "1.1.1" - } - }, - "on-headers": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", - "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", + "istanbul-lib-coverage": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-3.2.0.tgz", + "integrity": "sha512-eOeJ5BHCmHYvQK7xt9GkdHuzuCGS1Y6g9Gvnx3Ym33fz/HpLRYxiS0wHNr+m/MBC8B647Xt608vCDEvhl9c6Mw==", "dev": true }, - "once": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", - "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "istanbul-lib-instrument": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-5.2.0.tgz", + "integrity": "sha512-6Lthe1hqXHBNsqvgDzGO6l03XNeu3CrG4RqQ1KM9+l5+jNGpEJfIELx1NS3SEHmJQA8np/u+E4EPRKRiu6m19A==", "dev": true, "requires": { - "wrappy": "1" + "@babel/core": "^7.12.3", + "@babel/parser": "^7.14.7", + "@istanbuljs/schema": "^0.1.2", + "istanbul-lib-coverage": "^3.2.0", + "semver": "^6.3.0" } }, - "one-time": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/one-time/-/one-time-1.0.0.tgz", - "integrity": "sha512-5DXOiRKwuSEcQ/l0kGCF6Q3jcADFv5tSmRaJck/OqkVFcOzutB134KRSfF0xDrL39MNnqxbHBbUUcjZIhTgb2g==", + "istanbul-lib-report": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-3.0.0.tgz", + "integrity": "sha512-wcdi+uAKzfiGT2abPpKZ0hSU1rGQjUQnLvtY5MpQ7QCTahD3VODhcu4wcfY1YtkGaDD5yuydOLINXsfbus9ROw==", "dev": true, "requires": { - "fn.name": "1.x.x" + "istanbul-lib-coverage": "^3.0.0", + "make-dir": "^3.0.0", + "supports-color": "^7.1.0" + }, + "dependencies": { + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "make-dir": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", + "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, - "onetime": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", - "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "istanbul-lib-source-maps": { + "version": "3.0.6", + "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.6.tgz", + "integrity": "sha512-R47KzMtDJH6X4/YW9XTx+jrLnZnscW4VpNN+1PViSYTejLVPWv7oov+Duf8YQSPyVRUvueQqz1TcsC6mooZTXw==", "dev": true, "requires": { - "mimic-fn": "^2.1.0" + "debug": "^4.1.1", + "istanbul-lib-coverage": "^2.0.5", + "make-dir": "^2.1.0", + "rimraf": "^2.6.3", + "source-map": "^0.6.1" + }, + "dependencies": { + "istanbul-lib-coverage": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.5.tgz", + "integrity": "sha512-8aXznuEPCJvGnMSRft4udDRDtb1V3pkQkMMI5LI+6HuQz5oQ4J2UFn1H82raA3qJtyOLkkwVqICBQkjnGtn5mA==", + "dev": true + }, + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "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 + } } }, - "open": { - "version": "7.4.0", - "resolved": "https://registry.npmjs.org/open/-/open-7.4.0.tgz", - "integrity": "sha512-PGoBCX/lclIWlpS/R2PQuIR4NJoXh6X5AwVzE7WXnWRGvHg7+4TBCgsujUgiPpm0K1y4qvQeWnCWVTpTKZBtvA==", + "istanbul-reports": { + "version": "3.1.4", + "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-3.1.4.tgz", + "integrity": "sha512-r1/DshN4KSE7xWEknZLLLLDn5CJybV3nw01VTkp6D5jzLuELlcbudfj/eSQFvrKsJuTVCGnePO7ho82Nw9zzfw==", "dev": true, "requires": { - "is-docker": "^2.0.0", - "is-wsl": "^2.1.1" + "html-escaper": "^2.0.0", + "istanbul-lib-report": "^3.0.0" } }, - "openapi3-ts": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/openapi3-ts/-/openapi3-ts-1.4.0.tgz", - "integrity": "sha512-8DmE2oKayvSkIR3XSZ4+pRliBsx19bSNeIzkTPswY8r4wvjX86bMxsORdqwAwMxE8PefOcSAT2auvi/0TZe9yA==", - "dev": true - }, - "opn": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/opn/-/opn-5.5.0.tgz", - "integrity": "sha512-PqHpggC9bLV0VeWcdKhkpxY+3JTzetLSqTCWL/z/tFIbI6G8JCjondXklT1JinczLz2Xib62sSp0T/gKT4KksA==", + "jasmine": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine/-/jasmine-2.8.0.tgz", + "integrity": "sha512-KbdGQTf5jbZgltoHs31XGiChAPumMSY64OZMWLNYnEnMfG5uwGBhffePwuskexjT+/Jea/gU3qAU8344hNohSw==", "dev": true, "requires": { - "is-wsl": "^1.1.0" + "exit": "^0.1.2", + "glob": "^7.0.6", + "jasmine-core": "~2.8.0" }, "dependencies": { - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "jasmine-core": { + "version": "2.8.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-2.8.0.tgz", + "integrity": "sha512-SNkOkS+/jMZvLhuSx1fjhcNWUC/KG6oVyFUGkSBEr9n1axSNduWU8GlI7suaHXr4yxjet6KjrUZxUTE5WzzWwQ==", "dev": true } } }, - "optimist": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/optimist/-/optimist-0.6.1.tgz", - "integrity": "sha1-2j6nRob6IaGaERwybpDrFaAZZoY=", + "jasmine-core": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/jasmine-core/-/jasmine-core-4.2.0.tgz", + "integrity": "sha512-OcFpBrIhnbmb9wfI8cqPSJ50pv3Wg4/NSgoZIqHzIwO/2a9qivJWzv8hUvaREIMYYJBas6AvfXATFdVuzzCqVw==", + "dev": true + }, + "jasmine-spec-reporter": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/jasmine-spec-reporter/-/jasmine-spec-reporter-7.0.0.tgz", + "integrity": "sha512-OtC7JRasiTcjsaCBPtMO0Tl8glCejM4J4/dNuOJdA8lBjz4PmWjYQ6pzb0uzpBNAWJMDudYuj9OdXJWqM2QTJg==", "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 - } + "colors": "1.4.0" } }, - "ora": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/ora/-/ora-4.0.2.tgz", - "integrity": "sha512-YUOZbamht5mfLxPmk4M35CD/5DuOkAacxlEUbStVXpBAt4fyhBf+vZHI/HRkI++QUp3sNoeA2Gw4C+hi4eGSig==", + "jasminewd2": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/jasminewd2/-/jasminewd2-2.2.0.tgz", + "integrity": "sha512-Rn0nZe4rfDhzA63Al3ZGh0E+JTmM6ESZYXJGKuqKGZObsAB9fwXPD03GjtIEvJBDOhN94T5MzbwZSqzFHSQPzg==", + "dev": true + }, + "jest-worker": { + "version": "27.5.1", + "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-27.5.1.tgz", + "integrity": "sha512-7vuh85V5cdDofPyxn58nrPjBktZo0u9x1g8WtjQol+jZDaE+fhN+cIvTj11GndBnMnyfrUOG1sZQxCdjKh+DKg==", "dev": true, "requires": { - "chalk": "^2.4.2", - "cli-cursor": "^3.1.0", - "cli-spinners": "^2.2.0", - "is-interactive": "^1.0.0", - "log-symbols": "^3.0.0", - "strip-ansi": "^5.2.0", - "wcwidth": "^1.0.1" + "@types/node": "*", + "merge-stream": "^2.0.0", + "supports-color": "^8.0.0" }, "dependencies": { - "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true }, - "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "supports-color": { + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-8.1.1.tgz", + "integrity": "sha512-MpUEN2OodtUzxvKQl72cUF7RQ5EiHsGvSsVG0ia9c5RbWGL2CI4C7EpPS8UTBIplnlzZiNuV56w+FuNxy3ty2Q==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^4.0.0" } } } }, - "original": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/original/-/original-1.0.2.tgz", - "integrity": "sha512-hyBVl6iqqUOJ8FqRe+l/gS8H+kKYjrEndd5Pm1MfBtsEKA038HkkdbAl/72EAXGyonD/PFsvmVG+EvcIpliMBg==", - "dev": true, - "requires": { - "url-parse": "^1.4.3" - } - }, - "os-browserify": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/os-browserify/-/os-browserify-0.3.0.tgz", - "integrity": "sha1-hUNzx/XCMVkU/Jv8a9gjj92h7Cc=", - "dev": true - }, - "os-homedir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-homedir/-/os-homedir-1.0.2.tgz", - "integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=", - "dev": true + "js-tokens": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", + "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" }, - "os-locale": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-3.1.0.tgz", - "integrity": "sha512-Z8l3R4wYWM40/52Z+S265okfFj8Kt2cC2MKY+xNi3kFs+XGI7WXu/I309QQQYbRW4ijiZ+yxs9pqEhJh0DqW3Q==", + "js-yaml": { + "version": "3.14.1", + "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.1.tgz", + "integrity": "sha512-okMH7OXXJ7YrN9Ok3/SXrnu4iX9yOk+25nqX4imS2npuvTYDmo/QEZoqwZkYaIDk3jVvBOTOIEgEhaLOynBS9g==", "dev": true, "requires": { - "execa": "^1.0.0", - "lcid": "^2.0.0", - "mem": "^4.0.0" + "argparse": "^1.0.7", + "esprima": "^4.0.0" } }, - "os-tmpdir": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", - "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "jsbn": { + "version": "0.1.1", + "resolved": "https://registry.npmjs.org/jsbn/-/jsbn-0.1.1.tgz", + "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", "dev": true }, - "osenv": { - "version": "0.1.5", - "resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz", - "integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==", - "dev": true, - "requires": { - "os-homedir": "^1.0.0", - "os-tmpdir": "^1.0.0" - } + "jsesc": { + "version": "2.5.2", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", + "integrity": "sha512-OYu7XEzjkCQ3C5Ps3QIZsQfNpqoJyZZA99wd9aWd05NCtC5pWOkShK2mkL6HXQR6/Cy2lbNdPlZBpuQHXE63gA==" }, - "p-cancelable": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/p-cancelable/-/p-cancelable-1.1.0.tgz", - "integrity": "sha512-s73XxOZ4zpt1edZYZzvhqFa6uvQc1vwUa0K0BdtIZgQMAJj9IbebH+JkgKZc9h+B05PKHLOTl4ajG1BmNrVZlw==", + "json-parse-even-better-errors": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/json-parse-even-better-errors/-/json-parse-even-better-errors-2.3.1.tgz", + "integrity": "sha512-xyFwyhro/JEof6Ghe2iz2NcXoj2sloNsWr/XsERDK/oiPCfaNhl5ONfp+jQdAZRQQ0IJWNzH9zIZF7li91kh2w==", "dev": true }, - "p-defer": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-defer/-/p-defer-1.0.0.tgz", - "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", + "json-schema": { + "version": "0.2.3", + "resolved": "https://registry.npmjs.org/json-schema/-/json-schema-0.2.3.tgz", + "integrity": "sha1-tIDIkuWaLwWVTOcnvT8qTogvnhM=", "dev": true }, - "p-finally": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", - "integrity": "sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4=", + "json-schema-traverse": { + "version": "0.4.1", + "resolved": "https://registry.npmjs.org/json-schema-traverse/-/json-schema-traverse-0.4.1.tgz", + "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", "dev": true }, - "p-is-promise": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/p-is-promise/-/p-is-promise-2.1.0.tgz", - "integrity": "sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg==", + "json-stringify-safe": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz", + "integrity": "sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus=", "dev": true }, - "p-limit": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", - "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", - "dev": true, - "requires": { - "p-try": "^2.0.0" - } + "json5": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.2.1.tgz", + "integrity": "sha512-1hqLFMSrGHRHxav9q9gNjJ5EXznIxGVO09xQRrwplcS8qs28pZ8s8hupZAmqDwZUmVZ2Qb2jnyPOWcDH8m8dlA==" }, - "p-locate": { + "jsonc-parser": { "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-3.0.0.tgz", - "integrity": "sha512-x+12w/To+4GFfgJhBEpiDcLozRJGegY+Ei7/z0tSLkMmxGZNybVMSfWj9aJn8Z5Fc7dBUNJOOVgPv2H7IwulSQ==", - "dev": true, - "requires": { - "p-limit": "^2.0.0" - } + "resolved": "https://registry.npmjs.org/jsonc-parser/-/jsonc-parser-3.0.0.tgz", + "integrity": "sha512-fQzRfAbIBnR0IQvftw9FJveWiHp72Fg20giDrHz6TdfB12UH/uue0D3hm57UB5KgAVuniLMCaS8P1IMj9NR7cA==", + "dev": true }, - "p-map": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/p-map/-/p-map-3.0.0.tgz", - "integrity": "sha512-d3qXVTF/s+W+CdJ5A29wywV2n8CQQYahlgz2bFiA+4eVNJbHJodPZ+/gXwPGh0bOqA+j8S+6+ckmvLGPk1QpxQ==", - "dev": true, - "requires": { - "aggregate-error": "^3.0.0" - } + "jsonparse": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", + "integrity": "sha1-P02uSpH6wxX3EGL4UhzCOfE2YoA=", + "dev": true }, - "p-retry": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-3.0.1.tgz", - "integrity": "sha512-XE6G4+YTTkT2a0UWb2kjZe8xNwf8bIbnqpc/IS/idOBVhyves0mK5OJgeocjx7q5pvX/6m23xuzVPYT1uGM73w==", + "jsprim": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/jsprim/-/jsprim-1.4.1.tgz", + "integrity": "sha1-MT5mvB5cwG5Di8G3SZwuXFastqI=", "dev": true, "requires": { - "retry": "^0.12.0" + "assert-plus": "1.0.0", + "extsprintf": "1.3.0", + "json-schema": "0.2.3", + "verror": "1.10.0" } }, - "p-try": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", - "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", - "dev": true - }, - "package-json": { - "version": "6.5.0", - "resolved": "https://registry.npmjs.org/package-json/-/package-json-6.5.0.tgz", - "integrity": "sha512-k3bdm2n25tkyxcjSKzB5x8kfVxlMdgsbPr0GkZcwHsLpba6cBjqCt1KlcChKEvxHIcTB1FVMuwoijZ26xex5MQ==", + "jszip": { + "version": "3.10.0", + "resolved": "https://registry.npmjs.org/jszip/-/jszip-3.10.0.tgz", + "integrity": "sha512-LDfVtOLtOxb9RXkYOwPyNBTQDL4eUbqahtoY6x07GiDJHwSYvn8sHHIw8wINImV3MqbMNve2gSuM1DDqEKk09Q==", "dev": true, "requires": { - "got": "^9.6.0", - "registry-auth-token": "^4.0.0", - "registry-url": "^5.0.0", - "semver": "^6.2.0" + "lie": "~3.3.0", + "pako": "~1.0.2", + "readable-stream": "~2.3.6", + "setimmediate": "^1.0.5" } }, - "pacote": { - "version": "9.5.8", - "resolved": "https://registry.npmjs.org/pacote/-/pacote-9.5.8.tgz", - "integrity": "sha512-0Tl8Oi/K0Lo4MZmH0/6IsT3gpGf9eEAznLXEQPKgPq7FscnbUOyopnVpwXlnQdIbCUaojWy1Wd7VMyqfVsRrIw==", + "karma": { + "version": "6.4.0", + "resolved": "https://registry.npmjs.org/karma/-/karma-6.4.0.tgz", + "integrity": "sha512-s8m7z0IF5g/bS5ONT7wsOavhW4i4aFkzD4u4wgzAQWT4HGUeWI3i21cK2Yz6jndMAeHETp5XuNsRoyGJZXVd4w==", "dev": true, "requires": { - "bluebird": "^3.5.3", - "cacache": "^12.0.2", - "chownr": "^1.1.2", - "figgy-pudding": "^3.5.1", - "get-stream": "^4.1.0", - "glob": "^7.1.3", - "infer-owner": "^1.0.4", - "lru-cache": "^5.1.1", - "make-fetch-happen": "^5.0.0", + "@colors/colors": "1.5.0", + "body-parser": "^1.19.0", + "braces": "^3.0.2", + "chokidar": "^3.5.1", + "connect": "^3.7.0", + "di": "^0.0.1", + "dom-serialize": "^2.2.1", + "glob": "^7.1.7", + "graceful-fs": "^4.2.6", + "http-proxy": "^1.18.1", + "isbinaryfile": "^4.0.8", + "lodash": "^4.17.21", + "log4js": "^6.4.1", + "mime": "^2.5.2", "minimatch": "^3.0.4", - "minipass": "^2.3.5", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "normalize-package-data": "^2.4.0", - "npm-package-arg": "^6.1.0", - "npm-packlist": "^1.1.12", - "npm-pick-manifest": "^3.0.0", - "npm-registry-fetch": "^4.0.0", - "osenv": "^0.1.5", - "promise-inflight": "^1.0.1", - "promise-retry": "^1.1.1", - "protoduck": "^5.0.1", - "rimraf": "^2.6.2", - "safe-buffer": "^5.1.2", - "semver": "^5.6.0", - "ssri": "^6.0.1", - "tar": "^4.4.10", - "unique-filename": "^1.1.1", - "which": "^1.3.1" + "mkdirp": "^0.5.5", + "qjobs": "^1.2.0", + "range-parser": "^1.2.1", + "rimraf": "^3.0.2", + "socket.io": "^4.4.1", + "source-map": "^0.6.1", + "tmp": "^0.2.1", + "ua-parser-js": "^0.7.30", + "yargs": "^16.1.1" }, "dependencies": { - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "color-convert": "^2.0.1" } }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "cliui": { + "version": "7.0.4", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-7.0.4.tgz", + "integrity": "sha512-OcRE68cOsVMXp1Yvonl/fzkQOyjLSu/8bhPDfQt0e0/Eb283TKP20Fs2MqoPsr9SwA595rRCA+QMzYc9nBP+JQ==", + "dev": true, + "requires": { + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^7.0.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + }, + "dependencies": { + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } } }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==", + "dev": true + }, + "mime": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-2.6.0.tgz", + "integrity": "sha512-USPkMeET31rOMiarsBNIHZKLGgvKc/LrjofAnBlOttf5ajRvqiRA8QsenbcooctK6d6Ts6aqZXBA+XbkKthiQg==", + "dev": true + }, "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { "glob": "^7.1.3" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "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 }, - "ssri": { + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "ansi-regex": "^5.0.1" } }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "tmp": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.2.1.tgz", + "integrity": "sha512-76SUhtfqR2Ijn+xllcI5P1oyannHNHByD80W1q447gU3mp9G9PSpGdWmjUOHRDPiHYacIk66W7ubDTuPF3BEtQ==", + "dev": true, + "requires": { + "rimraf": "^3.0.0" + } + }, + "wrap-ansi": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-7.0.0.tgz", + "integrity": "sha512-YVGIj2kamLSTxw6NsZjoBxfSwsn0ycdesmc4p+Q21c5zPuZ1pl+NfxVdxPtdHvmNVOQ6XSYG4AUtyt/Fi7D16Q==", + "dev": true, + "requires": { + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" + } + }, + "y18n": { + "version": "5.0.8", + "resolved": "https://registry.npmjs.org/y18n/-/y18n-5.0.8.tgz", + "integrity": "sha512-0pfFzegeDWJHJIAmTLRP2DwHjdF5s7jo9tuztdQxAhINCdvS+3nGINqPd00AphqJR/0LhANUS6/+7SCb98YOfA==", + "dev": true + }, + "yargs": { + "version": "16.2.0", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-16.2.0.tgz", + "integrity": "sha512-D1mvvtDG0L5ft/jGWkLpG1+m0eQxOfaBvTNELraWj22wSVUMWxZUvYgJYcKh6jGGIkJFhH4IZPQhR4TKpc8mBw==", + "dev": true, + "requires": { + "cliui": "^7.0.2", + "escalade": "^3.1.1", + "get-caller-file": "^2.0.5", + "require-directory": "^2.1.1", + "string-width": "^4.2.0", + "y18n": "^5.0.5", + "yargs-parser": "^20.2.2" + } + }, + "yargs-parser": { + "version": "20.2.9", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-20.2.9.tgz", + "integrity": "sha512-y11nGElTIV+CT3Zv9t7VKl+Q3hTQoT9a1Qzezhhl6Rp21gJ/IVTW7Z3y9EWXhuUBC2Shnf+DX0antecpAwSP8w==", "dev": true } } }, - "pako": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", - "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", - "dev": true - }, - "parallel-transform": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/parallel-transform/-/parallel-transform-1.2.0.tgz", - "integrity": "sha512-P2vSmIu38uIlvdcU7fDkyrxj33gTUy/ABO5ZUbGowxNCopBq/OoD42bP4UmMrJoPyk4Uqf0mu3mtWBhHCZD8yg==", + "karma-chrome-launcher": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/karma-chrome-launcher/-/karma-chrome-launcher-3.1.1.tgz", + "integrity": "sha512-hsIglcq1vtboGPAN+DGCISCFOxW+ZVnIqhDQcCMqqCp+4dmJ0Qpq5QAjkbA0X2L9Mi6OBkHi2Srrbmm7pUKkzQ==", "dev": true, "requires": { - "cyclist": "^1.0.1", - "inherits": "^2.0.3", - "readable-stream": "^2.1.5" + "which": "^1.2.1" } }, - "parse-asn1": { - "version": "5.1.6", - "resolved": "https://registry.npmjs.org/parse-asn1/-/parse-asn1-5.1.6.tgz", - "integrity": "sha512-RnZRo1EPU6JBnra2vGHj0yhp6ebyjBZpmUCLHWiFhxlzvBCCpAuZ7elsBp1PVAbQN0/04VD/19rfzlBSwLstMw==", + "karma-coverage-istanbul-reporter": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/karma-coverage-istanbul-reporter/-/karma-coverage-istanbul-reporter-3.0.3.tgz", + "integrity": "sha512-wE4VFhG/QZv2Y4CdAYWDbMmcAHeS926ZIji4z+FkB2aF/EposRb6DP6G5ncT/wXhqUfAb/d7kZrNKPonbvsATw==", "dev": true, "requires": { - "asn1.js": "^5.2.0", - "browserify-aes": "^1.0.0", - "evp_bytestokey": "^1.0.0", - "pbkdf2": "^3.0.3", - "safe-buffer": "^5.1.1" + "istanbul-lib-coverage": "^3.0.0", + "istanbul-lib-report": "^3.0.0", + "istanbul-lib-source-maps": "^3.0.6", + "istanbul-reports": "^3.0.2", + "minimatch": "^3.0.4" } }, - "parse-json": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-4.0.0.tgz", - "integrity": "sha1-vjX1Qlvh9/bHRxhPmKeIy5lHfuA=", + "karma-jasmine": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/karma-jasmine/-/karma-jasmine-5.1.0.tgz", + "integrity": "sha512-i/zQLFrfEpRyQoJF9fsCdTMOF5c2dK7C7OmsuKg2D0YSsuZSfQDiLuaiktbuio6F2wiCsZSnSnieIQ0ant/uzQ==", "dev": true, "requires": { - "error-ex": "^1.3.1", - "json-parse-better-errors": "^1.0.1" + "jasmine-core": "^4.1.0" } }, - "parse5": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", - "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", - "dev": true - }, - "parseqs": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseqs/-/parseqs-0.0.5.tgz", - "integrity": "sha1-1SCKNzjkZ2bikbouoXNoSSGouJ0=", - "dev": true, - "requires": { - "better-assert": "~1.0.0" - } + "karma-jasmine-html-reporter": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/karma-jasmine-html-reporter/-/karma-jasmine-html-reporter-2.0.0.tgz", + "integrity": "sha512-SB8HNNiazAHXM1vGEzf8/tSyEhkfxuDdhYdPBX2Mwgzt0OuF2gicApQ+uvXLID/gXyJQgvrM9+1/2SxZFUUDIA==" }, - "parseuri": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/parseuri/-/parseuri-0.0.5.tgz", - "integrity": "sha1-gCBKUNTbt3m/3G6+J3jZDkvOMgo=", + "karma-source-map-support": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/karma-source-map-support/-/karma-source-map-support-1.4.0.tgz", + "integrity": "sha512-RsBECncGO17KAoJCYXjv+ckIz+Ii9NCi+9enk+rq6XC81ezYkb4/RHE6CTXdA7IOJqoF3wcaLfVG0CPmE5ca6A==", "dev": true, "requires": { - "better-assert": "~1.0.0" + "source-map-support": "^0.5.5" } }, - "parseurl": { - "version": "1.3.3", - "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", - "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", - "dev": true - }, - "pascalcase": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/pascalcase/-/pascalcase-0.1.1.tgz", - "integrity": "sha1-s2PlXoAGym/iF4TS2yK9FdeRfxQ=", - "dev": true - }, - "path-browserify": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/path-browserify/-/path-browserify-0.0.1.tgz", - "integrity": "sha512-BapA40NHICOS+USX9SN4tyhq+A2RrN/Ws5F0Z5aMHDp98Fl86lX8Oti8B7uN93L4Ifv4fHOEA+pQw87gmMO/lQ==", - "dev": true - }, - "path-dirname": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-dirname/-/path-dirname-1.0.2.tgz", - "integrity": "sha1-zDPSTVJeCZpTiMAzbG4yuRYGCeA=", - "dev": true - }, - "path-exists": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-3.0.0.tgz", - "integrity": "sha1-zg6+ql94yxiSXqfYENe1mwEP1RU=", - "dev": true - }, - "path-is-absolute": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", - "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", - "dev": true - }, - "path-is-inside": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", - "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", - "dev": true - }, - "path-key": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/path-key/-/path-key-2.0.1.tgz", - "integrity": "sha1-QRyttXTFoUDTpLGRDUDYDMn0C0A=", - "dev": true - }, - "path-parse": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", - "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", + "kind-of": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", "dev": true }, - "path-to-regexp": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", - "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", + "klona": { + "version": "2.0.5", + "resolved": "https://registry.npmjs.org/klona/-/klona-2.0.5.tgz", + "integrity": "sha512-pJiBpiXMbt7dkzXe8Ghj/u4FfXOOa98fPW+bihOJ4SjnoijweJrNThJfd3ifXpXhREjpoF2mZVH1GfS9LV3kHQ==", "dev": true }, - "path-type": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/path-type/-/path-type-3.0.0.tgz", - "integrity": "sha512-T2ZUsdZFHgA3u4e5PfPbjd7HDDpxPnQb5jN0SrDsjNSuVXHJqtwTnWqG0B1jZrgmJ/7lj1EmVIByWt1gxGkWvg==", + "less": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/less/-/less-4.1.2.tgz", + "integrity": "sha512-EoQp/Et7OSOVu0aJknJOtlXZsnr8XE8KwuzTHOLeVSEx8pVWUICc8Q0VYRHgzyjX78nMEyC/oztWFbgyhtNfDA==", "dev": true, "requires": { - "pify": "^3.0.0" + "copy-anything": "^2.0.1", + "errno": "^0.1.1", + "graceful-fs": "^4.1.2", + "image-size": "~0.5.0", + "make-dir": "^2.1.0", + "mime": "^1.4.1", + "needle": "^2.5.2", + "parse-node-version": "^1.0.1", + "source-map": "~0.6.0", + "tslib": "^2.3.0" }, "dependencies": { - "pify": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-3.0.0.tgz", - "integrity": "sha1-5aSs0sEB/fPZpNB/DbxNtJ3SgXY=", - "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, + "optional": true } } }, - "pbkdf2": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/pbkdf2/-/pbkdf2-3.1.1.tgz", - "integrity": "sha512-4Ejy1OPxi9f2tt1rRV7Go7zmfDQ+ZectEQz3VGUQhgq62HtIRPDyG/JtnwIxs6x3uNMwo2V7q1fMvKjb+Tnpqg==", + "less-loader": { + "version": "10.2.0", + "resolved": "https://registry.npmjs.org/less-loader/-/less-loader-10.2.0.tgz", + "integrity": "sha512-AV5KHWvCezW27GT90WATaDnfXBv99llDbtaj4bshq6DvAihMdNjaPDcUMa6EXKLRF+P2opFenJp89BXg91XLYg==", "dev": true, "requires": { - "create-hash": "^1.1.2", - "create-hmac": "^1.1.4", - "ripemd160": "^2.0.1", - "safe-buffer": "^5.0.1", - "sha.js": "^2.4.8" + "klona": "^2.0.4" } }, - "pdfjs-dist": { - "version": "2.5.207", - "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.5.207.tgz", - "integrity": "sha512-xGDUhnCYPfHy+unMXCLCJtlpZaaZ17Ew3WIL0tnSgKFUZXHAPD49GO9xScyszSsQMoutNDgRb+rfBXIaX/lJbw==" + "license-webpack-plugin": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/license-webpack-plugin/-/license-webpack-plugin-4.0.2.tgz", + "integrity": "sha512-771TFWFD70G1wLTC4oU2Cw4qvtmNrIw+wRvBtn+okgHl7slJVi7zfNcdmqDL72BojM30VNJ2UHylr1o77U37Jw==", + "dev": true, + "requires": { + "webpack-sources": "^3.0.0" + } }, - "performance-now": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", - "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", - "dev": true + "lie": { + "version": "3.3.0", + "resolved": "https://registry.npmjs.org/lie/-/lie-3.3.0.tgz", + "integrity": "sha512-UaiMJzeWRlEujzAuw5LokY1L5ecNQYZKfmyZ9L7wDHb/p5etKaxXhohBcrw0EYby+G/NA52vRSN4N39dxHAIwQ==", + "dev": true, + "requires": { + "immediate": "~3.0.5" + } }, - "picomatch": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", - "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", + "lines-and-columns": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/lines-and-columns/-/lines-and-columns-1.2.4.tgz", + "integrity": "sha512-7ylylesZQ/PV29jhEDl3Ufjo6ZX7gCqJr5F7PKrqc93v7fzSymt1BpwEU8nAUXs8qzzvqhbjhK5QZg6Mt/HkBg==", "dev": true }, - "pify": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", - "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", + "loader-runner": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/loader-runner/-/loader-runner-4.3.0.tgz", + "integrity": "sha512-3R/1M+yS3j5ou80Me59j7F9IMs4PXs3VqRrm0TU3AbKPxlmpoY1TNscJV/oGJXo8qCatFGTfDbY6W6ipGOYXfg==", "dev": true }, - "pinkie": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", - "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "loader-utils": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-3.2.0.tgz", + "integrity": "sha512-HVl9ZqccQihZ7JM85dco1MvO9G+ONvxoGa9rkhzFsneGLKSUg1gJf9bWzhRhcvm2qChhWpebQhP44qxjKIUCaQ==", "dev": true }, - "pinkie-promise": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", - "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", "dev": true, "requires": { - "pinkie": "^2.0.0" + "p-locate": "^4.1.0" } }, - "pkg-dir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", - "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", - "dev": true, - "requires": { - "find-up": "^3.0.0" - } + "lodash.debounce": { + "version": "4.0.8", + "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, - "plist": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/plist/-/plist-3.0.1.tgz", - "integrity": "sha512-GpgvHHocGRyQm74b6FWEZZVRroHKE1I0/BTjAmySaohK+cUn+hZpbqXkc3KWgW3gQYkqcQej35FohcT0FRlkRQ==", + "lodash.sortby": { + "version": "4.7.0", + "resolved": "https://registry.npmjs.org/lodash.sortby/-/lodash.sortby-4.7.0.tgz", + "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", + "dev": true + }, + "log-symbols": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/log-symbols/-/log-symbols-4.1.0.tgz", + "integrity": "sha512-8XPvpAA8uyhfteu8pIvQxpJZ7SYYdpUivZpGy6sFsBuKRY/7rQGavedeB8aK+Zkyq6upMFVL/9AW6vOYzfRyLg==", "dev": true, "requires": { - "base64-js": "^1.2.3", - "xmlbuilder": "^9.0.7", - "xmldom": "0.1.x" + "chalk": "^4.1.0", + "is-unicode-supported": "^0.1.0" }, "dependencies": { - "xmlbuilder": { - "version": "9.0.7", - "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", - "integrity": "sha1-Ey7mPS7FVlxVfiD0wi35rKaGsQ0=", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", + "dev": true, + "requires": { + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "portfinder": { - "version": "1.0.28", - "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.28.tgz", - "integrity": "sha512-Se+2isanIcEqf2XMHjyUKskczxbPH7dQnlMjXX6+dybayyHvAf/TCgyMRlzf/B6QDhAEFOGes0pzRo3by4AbMA==", + "log4js": { + "version": "6.6.0", + "resolved": "https://registry.npmjs.org/log4js/-/log4js-6.6.0.tgz", + "integrity": "sha512-3v8R7fd45UB6THucSht6wN2/7AZEruQbXdjygPZcxt5TA/msO6si9CN5MefUuKXbYnJHTBnYcx4famwcyQd+sA==", "dev": true, "requires": { - "async": "^2.6.2", - "debug": "^3.1.1", - "mkdirp": "^0.5.5" + "date-format": "^4.0.11", + "debug": "^4.3.4", + "flatted": "^3.2.5", + "rfdc": "^1.3.0", + "streamroller": "^3.1.1" }, "dependencies": { "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "ms": "^2.1.1" + "ms": "2.1.2" } } } }, - "posix-character-classes": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/posix-character-classes/-/posix-character-classes-0.1.1.tgz", - "integrity": "sha1-AerA/jta9xoqbAL+q7jB/vfgDqs=", - "dev": true + "lottie-web": { + "version": "5.9.6", + "resolved": "https://registry.npmjs.org/lottie-web/-/lottie-web-5.9.6.tgz", + "integrity": "sha512-JFs7KsHwflugH5qIXBpB4905yC1Sub2MZWtl/elvO/QC6qj1ApqbUZJyjzJseJUtVpgiDaXQLjBlIJGS7UUUXA==" }, - "postcss": { - "version": "7.0.21", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.21.tgz", - "integrity": "sha512-uIFtJElxJo29QC753JzhidoAhvp/e/Exezkdhfmt8AymWT6/5B7W1WmponYWkHk2eg6sONyTch0A3nkMPun3SQ==", + "magic-string": { + "version": "0.26.1", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.26.1.tgz", + "integrity": "sha512-ndThHmvgtieXe8J/VGPjG+Apu7v7ItcD5mhEIvOscWjPF/ccOiLxHaSuCAS2G+3x4GKsAbT8u7zdyamupui8Tg==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "sourcemap-codec": "^1.4.8" + } + }, + "make-dir": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", + "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", + "dev": true, + "requires": { + "pify": "^4.0.1", + "semver": "^5.6.0" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true - }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } } } }, - "postcss-calc": { - "version": "7.0.5", - "resolved": "https://registry.npmjs.org/postcss-calc/-/postcss-calc-7.0.5.tgz", - "integrity": "sha512-1tKHutbGtLtEZF6PT4JSihCHfIVldU72mZ8SdZHIYriIZ9fh9k9aWSppaT8rHsyI3dX+KSR+W+Ix9BMY3AODrg==", + "make-error": { + "version": "1.3.6", + "resolved": "https://registry.npmjs.org/make-error/-/make-error-1.3.6.tgz", + "integrity": "sha512-s8UhlNe7vPKomQhC1qFelMokr/Sc3AgNbso3n74mVPA5LTZwkB9NlXf4XPamLxJE8h0gh73rM94xvwRT2CVInw==", + "dev": true + }, + "make-fetch-happen": { + "version": "9.1.0", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-9.1.0.tgz", + "integrity": "sha512-+zopwDy7DNknmwPQplem5lAZX/eCOzSvSNNcSKm5eVwTkOBzoktEfXsa9L23J/GIRhxRsaxzkPEhrJEpE2F4Gg==", "dev": true, "requires": { - "postcss": "^7.0.27", - "postcss-selector-parser": "^6.0.2", - "postcss-value-parser": "^4.0.2" + "agentkeepalive": "^4.1.3", + "cacache": "^15.2.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^4.0.1", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^6.0.0", + "minipass": "^3.1.3", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^1.3.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.2", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^6.0.0", + "ssri": "^8.0.0" }, "dependencies": { - "postcss": { - "version": "7.0.35", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-7.0.35.tgz", - "integrity": "sha512-3QT8bBJeX/S5zKTTjTCIjRF3If4avAT6kqxcASlTWEtAFCb9NH0OUxNDfgZSWdP5fJnBYCMEWkIFfWeugjzYMg==", + "@npmcli/fs": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/@npmcli/fs/-/fs-1.1.1.tgz", + "integrity": "sha512-8KG5RD0GVP4ydEzRn/I4BNDuxDtqVbOdm8675T49OIG/NGhaK0pjPX7ZcDlvKYbA+ulvVK3ztfcF4uBdOxuJbQ==", "dev": true, "requires": { - "chalk": "^2.4.2", - "source-map": "^0.6.1", - "supports-color": "^6.1.0" + "@gar/promisify": "^1.0.1", + "semver": "^7.3.5" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "@npmcli/move-file": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/@npmcli/move-file/-/move-file-1.1.2.tgz", + "integrity": "sha512-1SUf/Cg2GzGDyaf15aR9St9TWlb+XvbZXWpDx8YKs7MLzMH/BCeopv+y9vzrzgkfykCGuWOlSu3mZhj2+FQcrg==", + "dev": true, + "requires": { + "mkdirp": "^1.0.4", + "rimraf": "^3.0.2" + } + }, + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", + "dev": true, + "requires": { + "debug": "4" + } + }, + "cacache": { + "version": "15.3.0", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-15.3.0.tgz", + "integrity": "sha512-VVdYzXEn+cnbXpFgWs5hTT7OScegHVmLhJIR8Ufqk3iFD6A6j5iSX1KuBTfNEv4tdJWE2PzA6IVFtcLC7fN9wQ==", + "dev": true, + "requires": { + "@npmcli/fs": "^1.0.0", + "@npmcli/move-file": "^1.0.1", + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "glob": "^7.1.4", + "infer-owner": "^1.0.4", + "lru-cache": "^6.0.0", + "minipass": "^3.1.1", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.2", + "mkdirp": "^1.0.3", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^8.0.1", + "tar": "^6.0.2", + "unique-filename": "^1.1.1" + } + }, + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", "dev": true, "requires": { - "has-flag": "^3.0.0" + "agent-base": "6", + "debug": "4" } - } - } - }, - "postcss-colormin": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-colormin/-/postcss-colormin-4.0.3.tgz", - "integrity": "sha512-WyQFAdDZpExQh32j0U0feWisZ0dmOtPl44qYmJKkq9xFWY3p+4qnRzCHeNrkeRhwPHz9bQ3mo0/yVkaply0MNw==", - "dev": true, - "requires": { - "browserslist": "^4.0.0", - "color": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + }, + "ssri": { + "version": "8.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-8.0.1.tgz", + "integrity": "sha512-97qShzy1AiyxvPNIkLWoGua7xoQzzPjQ0HAH4B0rWKo7SZ6USuPcrUiAFrws0UH8RrbWmgq3LMTObhPIHbbBeQ==", + "dev": true, + "requires": { + "minipass": "^3.1.1" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } } } }, - "postcss-convert-values": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-convert-values/-/postcss-convert-values-4.0.1.tgz", - "integrity": "sha512-Kisdo1y77KUC0Jmn0OXU/COOJbzM8cImvw1ZFsBgBgMgb1iL23Zs/LXRe3r+EZqM3vGYKdQ2YJVQ5VkJI+zEJQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } + "media-typer": { + "version": "0.3.0", + "resolved": "https://registry.npmjs.org/media-typer/-/media-typer-0.3.0.tgz", + "integrity": "sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g=", + "dev": true }, - "postcss-discard-comments": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-comments/-/postcss-discard-comments-4.0.2.tgz", - "integrity": "sha512-RJutN259iuRf3IW7GZyLM5Sw4GLTOH8FmsXBnv8Ab/Tc2k4SR4qbV4DNbyyY4+Sjo362SyDmW2DQ7lBSChrpkg==", + "memfs": { + "version": "3.4.7", + "resolved": "https://registry.npmjs.org/memfs/-/memfs-3.4.7.tgz", + "integrity": "sha512-ygaiUSNalBX85388uskeCyhSAoOSgzBbtVCr9jA2RROssFL9Q19/ZXFqS+2Th2sr1ewNIWgFdLzLC3Yl1Zv+lw==", "dev": true, "requires": { - "postcss": "^7.0.0" + "fs-monkey": "^1.0.3" } }, - "postcss-discard-duplicates": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-discard-duplicates/-/postcss-discard-duplicates-4.0.2.tgz", - "integrity": "sha512-ZNQfR1gPNAiXZhgENFfEglF93pciw0WxMkJeVmw8eF+JZBbMD7jp6C67GqJAXVZP2BWbOztKfbsdmMp/k8c6oQ==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } + "merge-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/merge-descriptors/-/merge-descriptors-1.0.1.tgz", + "integrity": "sha1-sAqqVW3YtEVoFQ7J0blT8/kMu2E=", + "dev": true }, - "postcss-discard-empty": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-empty/-/postcss-discard-empty-4.0.1.tgz", - "integrity": "sha512-B9miTzbznhDjTfjvipfHoqbWKwd0Mj+/fL5s1QOz06wufguil+Xheo4XpOnc4NqKYBCNqqEzgPv2aPBIJLox0w==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==", + "dev": true }, - "postcss-discard-overridden": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-discard-overridden/-/postcss-discard-overridden-4.0.1.tgz", - "integrity": "sha512-IYY2bEDD7g1XM1IDEsUT4//iEYCxAmP5oDSFMVU/JVvT7gh+l4fmjciLqGgwjdWpQIdb0Che2VX00QObS5+cTg==", - "dev": true, - "requires": { - "postcss": "^7.0.0" - } + "merge2": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/merge2/-/merge2-1.4.1.tgz", + "integrity": "sha512-8q7VEgMJW4J8tcfVPy8g09NcQwZdbwFEqhe/WZkoIzjn/3TGDwtOCYtXGxA3O8tPzpczCCDgv+P2P5y00ZJOOg==", + "dev": true }, - "postcss-import": { - "version": "12.0.1", - "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-12.0.1.tgz", - "integrity": "sha512-3Gti33dmCjyKBgimqGxL3vcV8w9+bsHwO5UrBawp796+jdardbcFl4RP5w/76BwNL7aGzpKstIfF9I+kdE8pTw==", + "methods": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/methods/-/methods-1.1.2.tgz", + "integrity": "sha1-VSmk1nZUE07cxSZmVoNbD4Ua/O4=", + "dev": true + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", "dev": true, "requires": { - "postcss": "^7.0.1", - "postcss-value-parser": "^3.2.3", - "read-cache": "^1.0.0", - "resolve": "^1.1.7" + "braces": "^3.0.2", + "picomatch": "^2.3.1" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", + "picomatch": { + "version": "2.3.1", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==", "dev": true } } }, - "postcss-load-config": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/postcss-load-config/-/postcss-load-config-2.1.2.tgz", - "integrity": "sha512-/rDeGV6vMUo3mwJZmeHfEDvwnTKKqQ0S7OHUi/kJvvtx3aWtyWG2/0ZWnzCt2keEclwN6Tf0DST2v9kITdOKYw==", - "dev": true, - "requires": { - "cosmiconfig": "^5.0.0", - "import-cwd": "^2.0.0" - } + "mime": { + "version": "1.6.0", + "resolved": "https://registry.npmjs.org/mime/-/mime-1.6.0.tgz", + "integrity": "sha512-x0Vn8spI+wuJ1O6S7gnbaQg8Pxh4NNHb7KSINmEWKiPE4RKOplvijn+NkmYmmRgP68mc70j2EbeTFRsrswaQeg==", + "dev": true + }, + "mime-db": { + "version": "1.45.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.45.0.tgz", + "integrity": "sha512-CkqLUxUk15hofLoLyljJSrukZi8mAtgd+yE5uO4tqRZsdsAJKv0O+rFMhVDRJgozy+yG6md5KwuXhD4ocIoP+w==", + "dev": true }, - "postcss-loader": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-3.0.0.tgz", - "integrity": "sha512-cLWoDEY5OwHcAjDnkyRQzAXfs2jrKjXpO/HQFcc5b5u/r7aa471wdmChmwfnv7x2u840iat/wi0lQ5nbRgSkUA==", + "mime-types": { + "version": "2.1.28", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.28.tgz", + "integrity": "sha512-0TO2yJ5YHYr7M2zzT7gDU1tbwHxEUWBCLt0lscSNpcdAfFyJOVEpRYNS7EXVcTLNj/25QO8gulHC5JtTzSE2UQ==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "postcss": "^7.0.0", - "postcss-load-config": "^2.0.0", - "schema-utils": "^1.0.0" + "mime-db": "1.45.0" } }, - "postcss-merge-longhand": { - "version": "4.0.11", - "resolved": "https://registry.npmjs.org/postcss-merge-longhand/-/postcss-merge-longhand-4.0.11.tgz", - "integrity": "sha512-alx/zmoeXvJjp7L4mxEMjh8lxVlDFX1gqWHzaaQewwMZiVhLo42TEClKaeHbRf6J7j82ZOdTJ808RtN0ZOZwvw==", - "dev": true, - "requires": { - "css-color-names": "0.0.4", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "stylehacks": "^4.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", + "dev": true }, - "postcss-merge-rules": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-merge-rules/-/postcss-merge-rules-4.0.3.tgz", - "integrity": "sha512-U7e3r1SbvYzO0Jr3UT/zKBVgYYyhAz0aitvGIYOYK5CPmkNih+WDSsS5tvPrJ8YMQYlEMvsZIiqmn7HdFUaeEQ==", + "mini-css-extract-plugin": { + "version": "2.6.0", + "resolved": "https://registry.npmjs.org/mini-css-extract-plugin/-/mini-css-extract-plugin-2.6.0.tgz", + "integrity": "sha512-ndG8nxCEnAemsg4FSgS+yNyHKgkTB4nPKqCOgh65j3/30qqC5RaSQQXMm++Y6sb6E1zRSxPkztj9fqxhS1Eo6w==", "dev": true, "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "cssnano-util-same-parent": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0", - "vendors": "^1.0.0" + "schema-utils": "^4.0.0" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", + "dev": true, + "requires": { + "fast-deep-equal": "^3.1.3" + } + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" } } } }, - "postcss-minify-font-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-font-values/-/postcss-minify-font-values-4.0.2.tgz", - "integrity": "sha512-j85oO6OnRU9zPf04+PZv1LYIYOprWm6IA6zkXkrJXyRveDEuQggG6tvoy8ir8ZwjLxLuGfNkCZEQG7zan+Hbtg==", + "minimalistic-assert": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minimalistic-assert/-/minimalistic-assert-1.0.1.tgz", + "integrity": "sha512-UtJcAD4yEaGtjPezWuO9wC4nwUnVH/8/Im3yEHQP4b67cXlD/Qr9hdITCU1xDbSEXg2XKNaP8jsReV7vQd00/A==", + "dev": true + }, + "minimatch": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.0.4.tgz", + "integrity": "sha512-yJHVQEhyqPLUTgt9B83PXu6W3rx4MvvHvSUvToogpwoGDOUQ+yDrR0HRot+yOCdCO7u4hX3pWft6kWBBcqh0UA==", "dev": true, "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "brace-expansion": "^1.1.7" } }, - "postcss-minify-gradients": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-gradients/-/postcss-minify-gradients-4.0.2.tgz", - "integrity": "sha512-qKPfwlONdcf/AndP1U8SJ/uzIJtowHlMaSioKzebAXSG4iJthlWC9iSWznQcX4f66gIWX44RSA841HTHj3wK+Q==", + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true + }, + "minipass": { + "version": "3.1.3", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.1.3.tgz", + "integrity": "sha512-Mgd2GdMVzY+x3IJ+oHnVM+KG3lA5c8tnabyJKmHSaG2kAGpudxuOf8ToDkhumF7UzME7DecbQE9uOZhNm7PuJg==", "dev": true, "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "is-color-stop": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "yallist": "^4.0.0" } }, - "postcss-minify-params": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-params/-/postcss-minify-params-4.0.2.tgz", - "integrity": "sha512-G7eWyzEx0xL4/wiBBJxJOz48zAKV2WG3iZOqVhPet/9geefm/Px5uo1fzlHu+DOjT+m0Mmiz3jkQzVHe6wxAWg==", + "minipass-collect": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/minipass-collect/-/minipass-collect-1.0.2.tgz", + "integrity": "sha512-6T6lH0H8OG9kITm/Jm6tdooIbogG9e0tLgpY6mphXSm/A9u8Nq1ryBG+Qspiub9LjWlBPsPS3tWQ/Botq4FdxA==", "dev": true, "requires": { - "alphanum-sort": "^1.0.0", - "browserslist": "^4.0.0", - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "uniqs": "^2.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "minipass": "^3.0.0" } }, - "postcss-minify-selectors": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-minify-selectors/-/postcss-minify-selectors-4.0.2.tgz", - "integrity": "sha512-D5S1iViljXBj9kflQo4YutWnJmwm8VvIsU1GeXJGiG9j8CIg9zs4voPMdQDUmIxetUOh60VilsNzCiAFTOqu3g==", + "minipass-fetch": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-1.4.1.tgz", + "integrity": "sha512-CGH1eblLq26Y15+Azk7ey4xh0J/XfJfrCox5LDJiKqI2Q2iwOLOKrlmIaODiSQS8d18jalF6y2K2ePUm0CmShw==", "dev": true, "requires": { - "alphanum-sort": "^1.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" + "encoding": "^0.1.12", + "minipass": "^3.1.0", + "minipass-sized": "^1.0.3", + "minizlib": "^2.0.0" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "minipass": "^3.0.0", + "yallist": "^4.0.0" } } } }, - "postcss-normalize-charset": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-charset/-/postcss-normalize-charset-4.0.1.tgz", - "integrity": "sha512-gMXCrrlWh6G27U0hF3vNvR3w8I1s2wOBILvA87iNXaPvSNo5uZAMYsZG7XjCUf1eVxuPfyL4TJ7++SGZLc9A3g==", + "minipass-flush": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/minipass-flush/-/minipass-flush-1.0.5.tgz", + "integrity": "sha512-JmQSYYpPUqX5Jyn1mXaRwOda1uQ8HP5KAT/oDSLCzt1BYRhQU0/hDtsB1ufZfEEzMZ9aAVmsBw8+FWsIXlClWw==", "dev": true, "requires": { - "postcss": "^7.0.0" + "minipass": "^3.0.0" } }, - "postcss-normalize-display-values": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-display-values/-/postcss-normalize-display-values-4.0.2.tgz", - "integrity": "sha512-3F2jcsaMW7+VtRMAqf/3m4cPFhPD3EFRgNs18u+k3lTJJlVe7d0YPO+bnwqo2xg8YiRpDXJI2u8A0wqJxMsQuQ==", + "minipass-json-stream": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/minipass-json-stream/-/minipass-json-stream-1.0.1.tgz", + "integrity": "sha512-ODqY18UZt/I8k+b7rl2AENgbWE8IDYam+undIJONvigAz8KR5GWblsFTEfQs0WODsjbSXWlm+JHEv8Gr6Tfdbg==", "dev": true, "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "jsonparse": "^1.3.1", + "minipass": "^3.0.0" } }, - "postcss-normalize-positions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-positions/-/postcss-normalize-positions-4.0.2.tgz", - "integrity": "sha512-Dlf3/9AxpxE+NF1fJxYDeggi5WwV35MXGFnnoccP/9qDtFrTArZ0D0R+iKcg5WsUd8nUYMIl8yXDCtcrT8JrdA==", + "minipass-pipeline": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/minipass-pipeline/-/minipass-pipeline-1.2.4.tgz", + "integrity": "sha512-xuIq7cIOt09RPRJ19gdi4b+RiNvDFYe5JH+ggNvBqGqpQXcru3PcRmOZuHBKWK1Txf9+cQ+HMVN4d6z46LZP7A==", "dev": true, "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "minipass": "^3.0.0" } }, - "postcss-normalize-repeat-style": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-repeat-style/-/postcss-normalize-repeat-style-4.0.2.tgz", - "integrity": "sha512-qvigdYYMpSuoFs3Is/f5nHdRLJN/ITA7huIoCyqqENJe9PvPmLhNLMu7QTjPdtnVf6OcYYO5SHonx4+fbJE1+Q==", + "minipass-sized": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/minipass-sized/-/minipass-sized-1.0.3.tgz", + "integrity": "sha512-MbkQQ2CTiBMlA2Dm/5cY+9SWFEN8pzzOXi6rlM5Xxq0Yqbda5ZQy9sU75a673FE9ZK0Zsbr6Y5iP6u9nktfg2g==", "dev": true, "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "minipass": "^3.0.0" } }, - "postcss-normalize-string": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-string/-/postcss-normalize-string-4.0.2.tgz", - "integrity": "sha512-RrERod97Dnwqq49WNz8qo66ps0swYZDSb6rM57kN2J+aoyEAJfZ6bMx0sx/F9TIEX0xthPGCmeyiam/jXif0eA==", + "mkdirp": { + "version": "0.5.5", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-0.5.5.tgz", + "integrity": "sha512-NKmAlESf6jMGym1++R0Ra7wvhV+wFW63FaSOFPwRahvea0gMUcGUhVeAg/0BC0wiv9ih5NYPB1Wn1UEI1/L+xQ==", "dev": true, "requires": { - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "minimist": "^1.2.5" } }, - "postcss-normalize-timing-functions": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-timing-functions/-/postcss-normalize-timing-functions-4.0.2.tgz", - "integrity": "sha512-acwJY95edP762e++00Ehq9L4sZCEcOPyaHwoaFOhIwWCDfik6YvqsYNxckee65JHLKzuNSSmAdxwD2Cud1Z54A==", + "ms": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "multicast-dns": { + "version": "7.2.5", + "resolved": "https://registry.npmjs.org/multicast-dns/-/multicast-dns-7.2.5.tgz", + "integrity": "sha512-2eznPJP8z2BFLX50tf0LuODrpINqP1RVIm/CObbTcBRITQgmC/TjcREF1NeTBzIcR5XO/ukWo+YHOjBbFwIupg==", "dev": true, "requires": { - "cssnano-util-get-match": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "dns-packet": "^5.2.2", + "thunky": "^1.0.2" } }, - "postcss-normalize-unicode": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-unicode/-/postcss-normalize-unicode-4.0.1.tgz", - "integrity": "sha512-od18Uq2wCYn+vZ/qCOeutvHjB5jm57ToxRaMeNuf0nWVHaP9Hua56QyMF6fs/4FSUnVIw0CBPsU0K4LnBPwYwg==", + "nanoid": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/nanoid/-/nanoid-3.3.4.tgz", + "integrity": "sha512-MqBkQh/OHTS2egovRtLk45wEyNXwF+cokD+1YPf9u5VfJiRdAiRwB2froX5Co9Rh20xs4siNPm8naNotSD6RBw==", + "dev": true + }, + "needle": { + "version": "2.9.1", + "resolved": "https://registry.npmjs.org/needle/-/needle-2.9.1.tgz", + "integrity": "sha512-6R9fqJ5Zcmf+uYaFgdIHmLwNldn5HbK8L5ybn7Uz+ylX/rnOsSp1AHcvQSrCaFN+qNM1wpymHqD7mVasEOlHGQ==", "dev": true, + "optional": true, "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "debug": "^3.2.6", + "iconv-lite": "^0.4.4", + "sax": "^1.2.4" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true + "debug": { + "version": "3.2.7", + "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", + "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "dev": true, + "optional": true, + "requires": { + "ms": "^2.1.1" + } } } }, - "postcss-normalize-url": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-normalize-url/-/postcss-normalize-url-4.0.1.tgz", - "integrity": "sha512-p5oVaF4+IHwu7VpMan/SSpmpYxcJMtkGppYf0VbdH5B6hN8YNmVyJLuY9FmLQTzY3fag5ESUUHDqM+heid0UVA==", - "dev": true, + "negotiator": { + "version": "0.6.2", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.2.tgz", + "integrity": "sha512-hZXc7K2e+PgeI1eDBe/10Ard4ekbfrrqG8Ep+8Jmf4JID2bNg7NvCPOZN+kfF574pFQI7mum2AUqDidoKqcTOw==", + "dev": true + }, + "neo-async": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/neo-async/-/neo-async-2.6.2.tgz", + "integrity": "sha512-Yd3UES5mWCSqR+qNT93S3UoYUkqAZ9lLg8a7g9rimsWmYGK8cVToA4/sF3RrshdyV3sAGMXVUmpMYOw+dLpOuw==", + "dev": true + }, + "ng-apexcharts": { + "version": "1.7.1", + "resolved": "https://registry.npmjs.org/ng-apexcharts/-/ng-apexcharts-1.7.1.tgz", + "integrity": "sha512-GTRhF70G0leGVGjx4cbLKGusZxF7FogFgJ59q3Ntk0MIEvJqfpSYywmocselh3cGR0S/Zt/d7JEgt/f2HOzpTA==", "requires": { - "is-absolute-url": "^2.0.0", - "normalize-url": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "tslib": "^2.0.0" } }, - "postcss-normalize-whitespace": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-normalize-whitespace/-/postcss-normalize-whitespace-4.0.2.tgz", - "integrity": "sha512-tO8QIgrsI3p95r8fyqKV+ufKlSHh9hMJqACqbv2XknufqEDhDvbguXGBBqxw9nsQoXWf0qOqppziKJKHMD4GtA==", - "dev": true, + "ng-waveform": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/ng-waveform/-/ng-waveform-0.2.1.tgz", + "integrity": "sha512-pGaxEro60TrvnrKJYj8i8Mq4arY/kU8wl7XYUwX+LOzGjrwsWL/5jnQAnW1bHQzrs4LmoDRybjj77nQH0WdS8A==", "requires": { - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "tslib": "^1.9.0" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, - "postcss-ordered-values": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/postcss-ordered-values/-/postcss-ordered-values-4.1.2.tgz", - "integrity": "sha512-2fCObh5UanxvSxeXrtLtlwVThBvHn6MQcu4ksNT2tsaV2Fg76R2CV98W7wNSlX+5/pFwEyaDwKLLoEV7uRybAw==", - "dev": true, + "ng2-pdf-viewer": { + "version": "9.0.0", + "resolved": "https://registry.npmjs.org/ng2-pdf-viewer/-/ng2-pdf-viewer-9.0.0.tgz", + "integrity": "sha512-MaPCQJMeSRV7kzVTRskygdf1YrCCfmHqKPGrhQjdkBPj5HDFX02SOxVTlnJrl2KLO6nUyJ8xAdf4Pojf85gKaw==", "requires": { - "cssnano-util-get-arguments": "^4.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } + "pdfjs-dist": "~2.13.216", + "tslib": "^2.3.1" } }, - "postcss-reduce-initial": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/postcss-reduce-initial/-/postcss-reduce-initial-4.0.3.tgz", - "integrity": "sha512-gKWmR5aUulSjbzOfD9AlJiHCGH6AEVLaM0AV+aSioxUDd16qXP1PCh8d1/BGVvpdWn8k/HiK7n6TjeoXN1F7DA==", - "dev": true, + "ngx-countdown": { + "version": "14.0.0", + "resolved": "https://registry.npmjs.org/ngx-countdown/-/ngx-countdown-14.0.0.tgz", + "integrity": "sha512-XZyRQM7lT174phm15WiqnenYShZ9+RkaSYNsFvM5GREPgAnWE9Yl7tjC6aH4tijdnYPsbAqSIyqhzg/TERiKjQ==", "requires": { - "browserslist": "^4.0.0", - "caniuse-api": "^3.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0" + "tslib": "^2.3.0" } }, - "postcss-reduce-transforms": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-reduce-transforms/-/postcss-reduce-transforms-4.0.2.tgz", - "integrity": "sha512-EEVig1Q2QJ4ELpJXMZR8Vt5DQx8/mo+dGWSR7vWXqcob2gQLyQGsionYcGKATXvQzMPn6DSN1vTN7yFximdIAg==", - "dev": true, + "ngx-walkthrough": { + "version": "0.3.2", + "resolved": "https://registry.npmjs.org/ngx-walkthrough/-/ngx-walkthrough-0.3.2.tgz", + "integrity": "sha512-fRfMJEngKuPS9b+6qH0e3FylpJy/ejoG2whySZWzKGxhbPFs4cPje3J7QZHQDYSK725GR+Dw/s0z/U43c6ZJnw==", "requires": { - "cssnano-util-get-match": "^4.0.0", - "has": "^1.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0" + "tslib": "^1.7.1" }, "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" } } }, - "postcss-selector-parser": { - "version": "6.0.4", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.4.tgz", - "integrity": "sha512-gjMeXBempyInaBqpp8gODmwZ52WaYsVOsfr4L4lDQ7n3ncD6mEyySiDtgzCT+NYC0mmeOLvtsF8iaEf0YT6dBw==", + "nice-napi": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/nice-napi/-/nice-napi-1.0.2.tgz", + "integrity": "sha512-px/KnJAJZf5RuBGcfD+Sp2pAKq0ytz8j+1NehvgIGFkvtvFrDM3T8E4x/JJODXK9WZow8RRGrbA9QQ3hs+pDhA==", "dev": true, + "optional": true, "requires": { - "cssesc": "^3.0.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1", - "util-deprecate": "^1.0.2" + "node-addon-api": "^3.0.0", + "node-gyp-build": "^4.2.2" } }, - "postcss-svgo": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/postcss-svgo/-/postcss-svgo-4.0.2.tgz", - "integrity": "sha512-C6wyjo3VwFm0QgBy+Fu7gCYOkCmgmClghO+pjcxvrcBKtiKt0uCF+hvbMO1fyv5BMImRK90SMb+dwUnfbGd+jw==", + "node-addon-api": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.2.1.tgz", + "integrity": "sha512-mmcei9JghVNDYydghQmeDX8KoAm0FAiYyIcUt/N4nhyAipB17pllZQDOJD2fotxABnt4Mdz+dKTO7eftLg4d0A==", "dev": true, - "requires": { - "is-svg": "^3.0.0", - "postcss": "^7.0.0", - "postcss-value-parser": "^3.0.0", - "svgo": "^1.0.0" - }, - "dependencies": { - "postcss-value-parser": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-3.3.1.tgz", - "integrity": "sha512-pISE66AbVkp4fDQ7VHBwRNXzAAKJjw4Vw7nWI/+Q3vuly7SNfgYXvm6i5IgFylHGK5sP/xHAbB7N49OS4gWNyQ==", - "dev": true - } - } + "optional": true }, - "postcss-unique-selectors": { - "version": "4.0.1", - "resolved": "https://registry.npmjs.org/postcss-unique-selectors/-/postcss-unique-selectors-4.0.1.tgz", - "integrity": "sha512-+JanVaryLo9QwZjKrmJgkI4Fn8SBgRO6WXQBJi7KiAVPlmxikB5Jzc4EvXMT2H0/m0RjrVVm9rGNhZddm/8Spg==", + "node-gyp-build": { + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/node-gyp-build/-/node-gyp-build-4.5.0.tgz", + "integrity": "sha512-2iGbaQBV+ITgCz76ZEjmhUKAKVf7xfY1sRl4UiKQspfZMH2h06SyhNsnSVy50cwkFQDGLyif6m/6uFXHkOZ6rg==", "dev": true, - "requires": { - "alphanum-sort": "^1.0.0", - "postcss": "^7.0.0", - "uniqs": "^2.0.0" - } + "optional": true }, - "postcss-value-parser": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.1.0.tgz", - "integrity": "sha512-97DXOFbQJhk71ne5/Mt6cOu6yxsSfM0QGQyl0L25Gca4yGWEGJaig7l7gbCX623VqTBNGLRLaVUCnNkcedlRSQ==", - "dev": true + "node-releases": { + "version": "2.0.6", + "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-2.0.6.tgz", + "integrity": "sha512-PiVXnNuFm5+iYkLBNeq5211hvO38y63T0i2KKh2KnUs3RpzJ+JtODFjkD8yjLwnDkTYF1eKXheUwdssR+NRZdg==" }, - "prepend-http": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz", - "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw=", - "dev": true + "nopt": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/nopt/-/nopt-5.0.0.tgz", + "integrity": "sha512-Tbj67rffqceeLpcRXrT7vKAN8CwfPeIBgM7E6iBkmKLV7bEMwpGgYLGv0jACUsECaa/vuxP0IjEont6umdMgtQ==", + "dev": true, + "requires": { + "abbrev": "1" + } }, - "process": { - "version": "0.11.10", - "resolved": "https://registry.npmjs.org/process/-/process-0.11.10.tgz", - "integrity": "sha1-czIwDoQBYb2j5podHZGn1LwW8YI=", - "dev": true + "normalize-package-data": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-4.0.0.tgz", + "integrity": "sha512-m+GL22VXJKkKbw62ZaBBjv8u6IE3UI4Mh5QakIqs3fWiKe0Xyi6L97hakwZK41/LD4R/2ly71Bayx0NLMwLA/g==", + "dev": true, + "requires": { + "hosted-git-info": "^5.0.0", + "is-core-module": "^2.8.1", + "semver": "^7.3.5", + "validate-npm-package-license": "^3.0.4" + }, + "dependencies": { + "is-core-module": { + "version": "2.9.0", + "resolved": "https://registry.npmjs.org/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "dev": true, + "requires": { + "has": "^1.0.3" + } + }, + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } }, - "process-nextick-args": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", - "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "normalize-path": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==", "dev": true }, - "progress": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/progress/-/progress-2.0.3.tgz", - "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", + "normalize-range": { + "version": "0.1.2", + "resolved": "https://registry.npmjs.org/normalize-range/-/normalize-range-0.1.2.tgz", + "integrity": "sha512-bdok/XvKII3nUpklnV6P2hxtMNrCboOjAcyBuQnWEhO665FwrSNRxU+AqpsyvO6LgGYPspN+lu5CLtw4jPRKNA==", "dev": true }, - "promise": { - "version": "7.3.1", - "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", - "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", + "npm-bundled": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/npm-bundled/-/npm-bundled-1.1.2.tgz", + "integrity": "sha512-x5DHup0SuyQcmL3s7Rx/YQ8sbw/Hzg0rj48eN0dV7hf5cmQq5PXIeioroH3raV1QC1yh3uTYuMThvEQF3iKgGQ==", "dev": true, - "optional": true, "requires": { - "asap": "~2.0.3" + "npm-normalize-package-bin": "^1.0.1" } }, - "promise-breaker": { + "npm-install-checks": { "version": "5.0.0", - "resolved": "https://registry.npmjs.org/promise-breaker/-/promise-breaker-5.0.0.tgz", - "integrity": "sha512-mgsWQuG4kJ1dtO6e/QlNDLFtMkMzzecsC69aI5hlLEjGHFNpHrvGhFi4LiK5jg2SMQj74/diH+wZliL9LpGsyA==", - "dev": true + "resolved": "https://registry.npmjs.org/npm-install-checks/-/npm-install-checks-5.0.0.tgz", + "integrity": "sha512-65lUsMI8ztHCxFz5ckCEC44DRvEGdZX5usQFriauxHEwt7upv1FKaQEmAtU0YnOAdwuNWCmk64xYiQABNrEyLA==", + "dev": true, + "requires": { + "semver": "^7.1.1" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } + } }, - "promise-inflight": { + "npm-normalize-package-bin": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", - "integrity": "sha1-mEcocL8igTL8vdhoEputEsPAKeM=", + "resolved": "https://registry.npmjs.org/npm-normalize-package-bin/-/npm-normalize-package-bin-1.0.1.tgz", + "integrity": "sha512-EPfafl6JL5/rU+ot6P3gRSCpPDW5VmIzX959Ob1+ySFUuuYHWHekXpwdUZcKP5C+DS4GEtdJluwBjnsNDl+fSA==", "dev": true }, - "promise-polyfill": { - "version": "8.1.3", - "resolved": "https://registry.npmjs.org/promise-polyfill/-/promise-polyfill-8.1.3.tgz", - "integrity": "sha512-MG5r82wBzh7pSKDRa9y+vllNHz3e3d4CNj1PQE4BQYxLme0gKYYBm9YENq+UkEikyZ0XbiGWxYlVw3Rl9O/U8g==" - }, - "promise-retry": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-1.1.1.tgz", - "integrity": "sha1-ZznpaOMFHaIM5kl/srUPaRHfPW0=", + "npm-package-arg": { + "version": "9.0.2", + "resolved": "https://registry.npmjs.org/npm-package-arg/-/npm-package-arg-9.0.2.tgz", + "integrity": "sha512-v/miORuX8cndiOheW8p2moNuPJ7QhcFh9WGlTorruG8hXSA23vMTEp5hTCmDxic0nD8KHhj/NQgFuySD3GYY3g==", "dev": true, "requires": { - "err-code": "^1.0.0", - "retry": "^0.10.0" + "hosted-git-info": "^5.0.0", + "semver": "^7.3.5", + "validate-npm-package-name": "^4.0.0" }, "dependencies": { - "retry": { - "version": "0.10.1", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.10.1.tgz", - "integrity": "sha1-52OI0heZLCUnUCQdPTlW/tmNj/Q=", - "dev": true + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } } } }, - "protobufjs": { - "version": "6.10.2", - "resolved": "https://registry.npmjs.org/protobufjs/-/protobufjs-6.10.2.tgz", - "integrity": "sha512-27yj+04uF6ya9l+qfpH187aqEzfCF4+Uit0I9ZBQVqK09hk/SQzKa2MUqUpXaVa7LOFRg1TSSr3lVxGOk6c0SQ==", - "requires": { - "@protobufjs/aspromise": "^1.1.2", - "@protobufjs/base64": "^1.1.2", - "@protobufjs/codegen": "^2.0.4", - "@protobufjs/eventemitter": "^1.1.0", - "@protobufjs/fetch": "^1.1.0", - "@protobufjs/float": "^1.0.2", - "@protobufjs/inquire": "^1.1.0", - "@protobufjs/path": "^1.1.2", - "@protobufjs/pool": "^1.1.0", - "@protobufjs/utf8": "^1.1.0", - "@types/long": "^4.0.1", - "@types/node": "^13.7.0", - "long": "^4.0.0" + "npm-packlist": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-5.1.1.tgz", + "integrity": "sha512-UfpSvQ5YKwctmodvPPkK6Fwk603aoVsf8AEbmVKAEECrfvL8SSe1A2YIwrJ6xmTHAITKPwwZsWo7WwEbNk0kxw==", + "dev": true, + "requires": { + "glob": "^8.0.1", + "ignore-walk": "^5.0.1", + "npm-bundled": "^1.1.2", + "npm-normalize-package-bin": "^1.0.1" }, "dependencies": { - "@types/node": { - "version": "13.13.41", - "resolved": "https://registry.npmjs.org/@types/node/-/node-13.13.41.tgz", - "integrity": "sha512-qLT9IvHiXJfdrje9VmsLzun7cQ65obsBTmtU3EOnCSLFOoSHx1hpiRHoBnpdbyFqnzqdUUIv81JcEJQCB8un9g==" + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" + } } } }, - "protoduck": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/protoduck/-/protoduck-5.0.1.tgz", - "integrity": "sha512-WxoCeDCoCBY55BMvj4cAEjdVUFGRWed9ZxPlqTKYyw1nDDTQ4pqmnIMAGfJlg7Dx35uB/M+PHJPTmGOvaCaPTg==", + "npm-pick-manifest": { + "version": "7.0.1", + "resolved": "https://registry.npmjs.org/npm-pick-manifest/-/npm-pick-manifest-7.0.1.tgz", + "integrity": "sha512-IA8+tuv8KujbsbLQvselW2XQgmXWS47t3CB0ZrzsRZ82DbDfkcFunOaPm4X7qNuhMfq+FmV7hQT4iFVpHqV7mg==", "dev": true, "requires": { - "genfun": "^5.0.0" + "npm-install-checks": "^5.0.0", + "npm-normalize-package-bin": "^1.0.1", + "npm-package-arg": "^9.0.0", + "semver": "^7.3.5" + }, + "dependencies": { + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", + "dev": true, + "requires": { + "lru-cache": "^6.0.0" + } + } } }, - "protractor": { - "version": "5.4.4", - "resolved": "https://registry.npmjs.org/protractor/-/protractor-5.4.4.tgz", - "integrity": "sha512-BaL4vePgu3Vfa/whvTUAlgaCAId4uNSGxIFSCXMgj7LMYENPWLp85h5RBi9pdpX/bWQ8SF6flP7afmi2TC4eHw==", + "npm-registry-fetch": { + "version": "13.1.1", + "resolved": "https://registry.npmjs.org/npm-registry-fetch/-/npm-registry-fetch-13.1.1.tgz", + "integrity": "sha512-5p8rwe6wQPLJ8dMqeTnA57Dp9Ox6GH9H60xkyJup07FmVlu3Mk7pf/kIIpl9gaN5bM8NM+UUx3emUWvDNTt39w==", "dev": true, "requires": { - "@types/q": "^0.0.32", - "@types/selenium-webdriver": "^3.0.0", - "blocking-proxy": "^1.0.0", - "browserstack": "^1.5.1", - "chalk": "^1.1.3", - "glob": "^7.0.3", - "jasmine": "2.8.0", - "jasminewd2": "^2.1.0", - "q": "1.4.1", - "saucelabs": "^1.5.0", - "selenium-webdriver": "3.6.0", - "source-map-support": "~0.4.0", - "webdriver-js-extender": "2.1.0", - "webdriver-manager": "^12.0.6", - "yargs": "^12.0.5" + "make-fetch-happen": "^10.0.6", + "minipass": "^3.1.6", + "minipass-fetch": "^2.0.3", + "minipass-json-stream": "^1.0.1", + "minizlib": "^2.1.2", + "npm-package-arg": "^9.0.1", + "proc-log": "^2.0.0" }, "dependencies": { - "@types/q": { - "version": "0.0.32", - "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", - "integrity": "sha1-vShOV8hPEyXacCur/IKlMoGQwMU=", - "dev": true - }, - "ansi-styles": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", - "integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=", + "@tootallnate/once": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/@tootallnate/once/-/once-2.0.0.tgz", + "integrity": "sha512-XCuKFP5PS55gnMVu3dty8KPatLqUoy/ZYzDzAGCQ8JNFCkLXzmI7vNHCR+XpbZaMWQK/vQubr7PkYq8g470J/A==", "dev": true }, - "chalk": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", - "integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "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" + "debug": "4" } }, - "del": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", - "integrity": "sha1-wSyYHQZ4RshLyvhiz/kw2Qf/0ag=", + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "globby": "^5.0.0", - "is-path-cwd": "^1.0.0", - "is-path-in-cwd": "^1.0.0", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0", - "rimraf": "^2.2.8" + "balanced-match": "^1.0.0" } }, - "globby": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", - "integrity": "sha1-69hGZ8oNuzMLmbz8aOrCvFQ3Dg0=", + "cacache": { + "version": "16.1.1", + "resolved": "https://registry.npmjs.org/cacache/-/cacache-16.1.1.tgz", + "integrity": "sha512-VDKN+LHyCQXaaYZ7rA/qtkURU+/yYhviUdvqEv2LT6QPZU8jpyzEkEVAcKlKLt5dJ5BRp11ym8lo3NKLluEPLg==", "dev": true, "requires": { - "array-union": "^1.0.1", - "arrify": "^1.0.0", - "glob": "^7.0.3", - "object-assign": "^4.0.1", - "pify": "^2.0.0", - "pinkie-promise": "^2.0.0" + "@npmcli/fs": "^2.1.0", + "@npmcli/move-file": "^2.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "glob": "^8.0.1", + "infer-owner": "^1.0.4", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "mkdirp": "^1.0.4", + "p-map": "^4.0.0", + "promise-inflight": "^1.0.1", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11", + "unique-filename": "^1.1.1" } }, - "is-path-cwd": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", - "integrity": "sha1-0iXsIxMuie3Tj9p2dHLmLmXxEG0=", + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", "dev": true }, - "is-path-in-cwd": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", - "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", "dev": true, "requires": { - "is-path-inside": "^1.0.0" + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" } }, - "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", + "http-proxy-agent": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/http-proxy-agent/-/http-proxy-agent-5.0.0.tgz", + "integrity": "sha512-n2hY8YdoRE1i7r6M0w9DIw5GgZN0G25P8zLCRQ8rjXtTU3vsNFBI/vWK/UIeE6g5MUUz6avwAPXmL6Fy9D/90w==", "dev": true, "requires": { - "path-is-inside": "^1.0.1" + "@tootallnate/once": "2", + "agent-base": "6", + "debug": "4" } }, - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", - "dev": true + "https-proxy-agent": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/https-proxy-agent/-/https-proxy-agent-5.0.1.tgz", + "integrity": "sha512-dFcAjpTQFgoLMzC2VwU+C/CbS7uRL0lWmxDITmqm7C+7F0Odmj6s9l6alZc6AELXhrnggM2CeWSXHGOdX2YtwA==", + "dev": true, + "requires": { + "agent-base": "6", + "debug": "4" + } }, - "q": { - "version": "1.4.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", - "integrity": "sha1-VXBbzZPF82c1MMLCy8DCs63cKG4=", + "lru-cache": { + "version": "7.12.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-7.12.0.tgz", + "integrity": "sha512-OIP3DwzRZDfLg9B9VP/huWBlpvbkmbfiBy8xmsXp4RPmE4A3MhwNozc5ZJ3fWnSg8fDcdlE/neRTPG2ycEKliw==", "dev": true }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "make-fetch-happen": { + "version": "10.1.8", + "resolved": "https://registry.npmjs.org/make-fetch-happen/-/make-fetch-happen-10.1.8.tgz", + "integrity": "sha512-0ASJbG12Au6+N5I84W+8FhGS6iM8MyzvZady+zaQAu+6IOaESFzCLLD0AR1sAFF3Jufi8bxm586ABN6hWd3k7g==", "dev": true, "requires": { - "glob": "^7.1.3" + "agentkeepalive": "^4.2.1", + "cacache": "^16.1.0", + "http-cache-semantics": "^4.1.0", + "http-proxy-agent": "^5.0.0", + "https-proxy-agent": "^5.0.0", + "is-lambda": "^1.0.1", + "lru-cache": "^7.7.1", + "minipass": "^3.1.6", + "minipass-collect": "^1.0.2", + "minipass-fetch": "^2.0.3", + "minipass-flush": "^1.0.5", + "minipass-pipeline": "^1.2.4", + "negotiator": "^0.6.3", + "promise-retry": "^2.0.1", + "socks-proxy-agent": "^7.0.0", + "ssri": "^9.0.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minipass-fetch": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/minipass-fetch/-/minipass-fetch-2.1.0.tgz", + "integrity": "sha512-H9U4UVBGXEyyWJnqYDCLp1PwD8XIkJ4akNHp1aGVI+2Ym7wQMlxDKi4IB4JbmyU+pl9pEs/cVrK6cOuvmbK4Sg==", + "dev": true, + "requires": { + "encoding": "^0.1.13", + "minipass": "^3.1.6", + "minipass-sized": "^1.0.3", + "minizlib": "^2.1.2" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", "dev": true }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", "dev": true }, - "source-map-support": { - "version": "0.4.18", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", - "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + }, + "dependencies": { + "brace-expansion": { + "version": "1.1.11", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-1.1.11.tgz", + "integrity": "sha512-iCuPHDFgrHX7H2vEI/5xpz07zSHB00TpugqhmYtVmMO6518mCuRMoOYFldEBl0g187ufozdaHgWKcYFb61qGiA==", + "dev": true, + "requires": { + "balanced-match": "^1.0.0", + "concat-map": "0.0.1" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } + } + } + }, + "socks-proxy-agent": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-7.0.0.tgz", + "integrity": "sha512-Fgl0YPZ902wEsAyiQ+idGd1A7rSFx/ayC1CQVMw5P+EQx2V0SgpGtf6OKFhVjPflPUl9YMmEOnmfjCdMUsygww==", "dev": true, "requires": { - "source-map": "^0.5.6" + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" + }, + "dependencies": { + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + } } }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", - "dev": true - }, - "webdriver-manager": { - "version": "12.1.8", - "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", - "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", "dev": true, "requires": { - "adm-zip": "^0.4.9", - "chalk": "^1.1.1", - "del": "^2.2.0", - "glob": "^7.0.3", - "ini": "^1.3.4", - "minimist": "^1.2.0", - "q": "^1.4.1", - "request": "^2.87.0", - "rimraf": "^2.5.2", - "semver": "^5.3.0", - "xml2js": "^0.4.17" + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" } } } }, - "proxy-addr": { - "version": "2.0.6", - "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.6.tgz", - "integrity": "sha512-dh/frvCBVmSsDYzw6n926jv974gddhkFPfiN8hPOi30Wax25QZyZEGveluCgliBnqmuM+UJmBErbAUFIoDbjOw==", - "dev": true, - "requires": { - "forwarded": "~0.1.2", - "ipaddr.js": "1.9.1" - } - }, - "prr": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", - "integrity": "sha1-0/wRS6BplaRexok/SEzrHXj19HY=", - "dev": true - }, - "pseudomap": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/pseudomap/-/pseudomap-1.0.2.tgz", - "integrity": "sha1-8FKijacOYYkX7wqKw0wa5aaChrM=", - "dev": true - }, - "psl": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", - "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", - "dev": true - }, - "public-encrypt": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/public-encrypt/-/public-encrypt-4.0.3.tgz", - "integrity": "sha512-zVpa8oKZSz5bTMTFClc1fQOnyyEzpl5ozpi1B5YcvBrdohMjH2rfsBtyXcuNuwjsDIXmBYlF2N5FlJYhR29t8Q==", + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", "dev": true, "requires": { - "bn.js": "^4.1.0", - "browserify-rsa": "^4.0.0", - "create-hash": "^1.1.0", - "parse-asn1": "^5.0.0", - "randombytes": "^2.0.1", - "safe-buffer": "^5.1.2" + "path-key": "^3.0.0" }, "dependencies": { - "bn.js": { - "version": "4.11.9", - "resolved": "https://registry.npmjs.org/bn.js/-/bn.js-4.11.9.tgz", - "integrity": "sha512-E6QoYqCKZfgatHTdHzs1RRKP7ip4vvm+EyRUeE2RF0NblwVvb0p6jSVeNTOFxPn26QXN2o6SMfNxKp6kU8zQaw==", + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==", "dev": true } } }, - "pump": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/pump/-/pump-3.0.0.tgz", - "integrity": "sha512-LwZy+p3SFs1Pytd/jYct4wpv49HiYCqd9Rlc5ZVdk0V+8Yzv6jR5Blk3TRmPL1ft69TxP0IMZGJ+WPFU2BFhww==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - }, - "pumpify": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/pumpify/-/pumpify-1.5.1.tgz", - "integrity": "sha512-oClZI37HvuUJJxSKKrC17bZ9Cu0ZYhEAGPsPUy9KlMUmv9dKX2o77RUmq7f3XjIxbwyGwYzbzQ1L2Ks8sIradQ==", + "nth-check": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/nth-check/-/nth-check-2.1.1.tgz", + "integrity": "sha512-lqjrjmaOoAnWfMmBPL+XNnynZh2+swxiX3WUE0s4yEHI6m+AwrK2UZOimIRl3X/4QctVqS8AiZjFqyOGrMXb/w==", "dev": true, "requires": { - "duplexify": "^3.6.0", - "inherits": "^2.0.3", - "pump": "^2.0.0" - }, - "dependencies": { - "pump": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/pump/-/pump-2.0.1.tgz", - "integrity": "sha512-ruPMNRkN3MHP1cWJc9OWr+T/xDP0jhXYCLfJcBuX54hhfIBnaQmAUMfDcG4DM5UMWByBbJY69QSphm3jtDKIkA==", - "dev": true, - "requires": { - "end-of-stream": "^1.1.0", - "once": "^1.3.1" - } - } + "boolbase": "^1.0.0" } }, - "punycode": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", - "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", + "oauth-sign": { + "version": "0.9.0", + "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", + "integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==", "dev": true }, - "pupa": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.1.1.tgz", - "integrity": "sha512-l1jNAspIBSFqbT+y+5FosojNpVpF94nlI+wDUpqP9enwOTfHx9f0gh5nB96vl+6yTpsJsypeNrwfzPrKuHB41A==", - "dev": true, - "requires": { - "escape-goat": "^2.0.0" - } - }, - "q": { - "version": "1.5.1", - "resolved": "https://registry.npmjs.org/q/-/q-1.5.1.tgz", - "integrity": "sha1-fjL3W0E4EpHQRhHxvxQQmsAGUdc=", + "object-assign": { + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/object-assign/-/object-assign-4.1.1.tgz", + "integrity": "sha1-IQmtx5ZYh8/AXLvUQsrIv7s2CGM=", "dev": true }, - "qjobs": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", - "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", + "object-inspect": { + "version": "1.12.2", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.2.tgz", + "integrity": "sha512-z+cPxW0QGUp0mcqcsgQyLVRDoXFQbXOwBaqyF7VIgI4TWNQsDHrBpUQslRmIfAoYWdYzs6UlKJtB2XJpTaNSpQ==", "dev": true }, - "qs": { - "version": "6.5.2", - "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", - "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", + "object-keys": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==", "dev": true }, - "query-string": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/query-string/-/query-string-4.3.4.tgz", - "integrity": "sha1-u7aTucqRXCMlFbIosaArYJBD2+s=", + "object.assign": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", "dev": true, "requires": { - "object-assign": "^4.1.0", - "strict-uri-encode": "^1.0.0" + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" } }, - "querystring": { - "version": "0.2.0", - "resolved": "https://registry.npmjs.org/querystring/-/querystring-0.2.0.tgz", - "integrity": "sha1-sgmEkgO7Jd+CDadW50cAWHhSFiA=", + "obuf": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/obuf/-/obuf-1.1.2.tgz", + "integrity": "sha512-PX1wu0AmAdPqOL1mWhqmlOd8kOIZQwGZw6rh7uby9fTc5lhaOWFLX3I6R1hrF9k3zUY40e6igsLGkDXK92LJNg==", "dev": true }, - "querystring-es3": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/querystring-es3/-/querystring-es3-0.2.1.tgz", - "integrity": "sha1-nsYfeQSYdXB9aUFFlv2Qek1xHnM=", - "dev": true + "on-finished": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.3.0.tgz", + "integrity": "sha1-IPEzZIGwg811M3mSoWlxqi2QaUc=", + "dev": true, + "requires": { + "ee-first": "1.1.1" + } }, - "querystringify": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/querystringify/-/querystringify-2.2.0.tgz", - "integrity": "sha512-FIqgj2EUvTa7R50u0rGsyTftzjYmv/a3hO345bZNrqabNqjtgiDMgmo4mkUjd+nzU5oF3dClKqFIPUKybUyqoQ==", + "on-headers": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/on-headers/-/on-headers-1.0.2.tgz", + "integrity": "sha512-pZAE+FJLoyITytdqK0U5s+FIpjN0JP3OzFi/u8Rx+EV5/W+JTWGXG8xFzevE7AjBfDqHv/8vL8qQsIhHnqRkrA==", "dev": true }, - "randombytes": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", - "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", - "dev": true, + "once": { + "version": "1.4.0", + "resolved": "https://registry.npmjs.org/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", "requires": { - "safe-buffer": "^5.1.0" + "wrappy": "1" } }, - "randomfill": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/randomfill/-/randomfill-1.0.4.tgz", - "integrity": "sha512-87lcbR8+MhcWcUiQ+9e+Rwx8MyR2P7qnt15ynUlbm3TU/fjbgz4GsvfSUDTemtCCtVCqb4ZcEFlyPNTh9bBTLw==", + "onetime": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", "dev": true, "requires": { - "randombytes": "^2.0.5", - "safe-buffer": "^5.1.0" + "mimic-fn": "^2.1.0" } }, - "range-parser": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", - "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", - "dev": true - }, - "raw-body": { - "version": "2.4.0", - "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", - "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", - "dev": true, + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "requires": { - "bytes": "3.1.0", - "http-errors": "1.7.2", - "iconv-lite": "0.4.24", - "unpipe": "1.0.0" - }, - "dependencies": { - "bytes": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", - "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", - "dev": true - } + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, - "raw-loader": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/raw-loader/-/raw-loader-3.1.0.tgz", - "integrity": "sha512-lzUVMuJ06HF4rYveaz9Tv0WRlUMxJ0Y1hgSkkgg+50iEdaI0TthyEDe08KIHb0XsF6rn8WYTqPCaGTZg3sX+qA==", + "ora": { + "version": "5.4.1", + "resolved": "https://registry.npmjs.org/ora/-/ora-5.4.1.tgz", + "integrity": "sha512-5b6Y85tPxZZ7QytO+BQzysW31HJku27cRIlkbAXaNx+BdcVi+LlRFmVXzeF6a7JCwJpyw5c4b+YSVImQIrBpuQ==", "dev": true, "requires": { - "loader-utils": "^1.1.0", - "schema-utils": "^2.0.1" + "bl": "^4.1.0", + "chalk": "^4.1.0", + "cli-cursor": "^3.1.0", + "cli-spinners": "^2.5.0", + "is-interactive": "^1.0.0", + "is-unicode-supported": "^0.1.0", + "log-symbols": "^4.1.0", + "strip-ansi": "^6.0.0", + "wcwidth": "^1.0.1" }, "dependencies": { - "ajv": { - "version": "6.12.6", - "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", - "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "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" + "color-convert": "^2.0.1" } }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true + "chalk": { + "version": "4.1.2", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.2.tgz", + "integrity": "sha512-oKnbhFyRIXpUuez8iBMmyEa4nbj4IOQyuhc/wy9kY7/WVPcwIO9VA668Pu8RkO7+0G76SLROeyw9CpQ061i4mA==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "color-name": "~1.1.4" } - } - } - }, - "rc": { - "version": "1.2.8", - "resolved": "https://registry.npmjs.org/rc/-/rc-1.2.8.tgz", - "integrity": "sha512-y3bGgqKj3QBdxLbLkomlohkvsA8gdAiUQlSBJnBhfn+BPxg4bc62d8TcBW15wavDfgexCgccckhcZvywyQYPOw==", - "dev": true, - "requires": { - "deep-extend": "^0.6.0", - "ini": "~1.3.0", - "minimist": "^1.2.0", - "strip-json-comments": "~2.0.1" - } - }, - "re2": { - "version": "1.15.9", - "resolved": "https://registry.npmjs.org/re2/-/re2-1.15.9.tgz", - "integrity": "sha512-AXWEhpMTBdC+3oqbjdU07dk0pBCvxh5vbOMLERL6Y8FYBSGn4vXlLe8cYszn64Yy7H8keVMrgPzoSvOd4mePpg==", - "dev": true, - "optional": true, - "requires": { - "install-artifact-from-github": "^1.2.0", - "nan": "^2.14.2", - "node-gyp": "^7.1.2" - } - }, - "read-cache": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", - "integrity": "sha1-5mTvMRYRZsl1HNvo28+GtftY93Q=", - "dev": true, - "requires": { - "pify": "^2.3.0" - }, - "dependencies": { - "pify": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", - "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", "dev": true + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + }, + "supports-color": { + "version": "7.2.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", + "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, - "read-package-json": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-2.1.2.tgz", - "integrity": "sha512-D1KmuLQr6ZSJS0tW8hf3WGpRlwszJOXZ3E8Yd/DNRaM5d+1wVRZdHlpGBLAuovjr28LbWvjpWkBHMxpRGGjzNA==", - "dev": true, - "requires": { - "glob": "^7.1.1", - "json-parse-even-better-errors": "^2.3.0", - "normalize-package-data": "^2.0.0", - "npm-normalize-package-bin": "^1.0.0" - } - }, - "read-package-tree": { - "version": "5.3.1", - "resolved": "https://registry.npmjs.org/read-package-tree/-/read-package-tree-5.3.1.tgz", - "integrity": "sha512-mLUDsD5JVtlZxjSlPPx1RETkNjjvQYuweKwNVt1Sn8kP5Jh44pvYuUHCp6xSVDZWbNxVxG5lyZJ921aJH61sTw==", - "dev": true, - "requires": { - "read-package-json": "^2.0.0", - "readdir-scoped-modules": "^1.0.0", - "util-promisify": "^2.1.0" - } + "os-tmpdir": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz", + "integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=", + "dev": true }, - "readable-stream": { - "version": "2.3.7", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", - "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "p-limit": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-2.3.0.tgz", + "integrity": "sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==", "dev": true, "requires": { - "core-util-is": "~1.0.0", - "inherits": "~2.0.3", - "isarray": "~1.0.0", - "process-nextick-args": "~2.0.0", - "safe-buffer": "~5.1.1", - "string_decoder": "~1.1.1", - "util-deprecate": "~1.0.1" + "p-try": "^2.0.0" } }, - "readdir-scoped-modules": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/readdir-scoped-modules/-/readdir-scoped-modules-1.1.0.tgz", - "integrity": "sha512-asaikDeqAQg7JifRsZn1NJZXo9E+VwlyCfbkZhwyISinqk5zNS6266HS5kah6P0SaQKGF6SkNnZVHUzHFYxYDw==", + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", "dev": true, "requires": { - "debuglog": "^1.0.1", - "dezalgo": "^1.0.0", - "graceful-fs": "^4.1.2", - "once": "^1.3.0" + "p-limit": "^2.2.0" } }, - "readdirp": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", - "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", + "p-map": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/p-map/-/p-map-4.0.0.tgz", + "integrity": "sha512-/bjOqmgETBYB5BoEeGVea8dmvHb2m9GLy1E9W43yeyfP6QQCZGFNa+XRceJEuDB6zqr+gKpIAmlLebMpykw/MQ==", "dev": true, "requires": { - "picomatch": "^2.2.1" + "aggregate-error": "^3.0.0" } }, - "recordrtc": { - "version": "5.6.1", - "resolved": "https://registry.npmjs.org/recordrtc/-/recordrtc-5.6.1.tgz", - "integrity": "sha512-UU7Fd9IIuz60TPq4GgL1qtgo2mzEZWzPxEraNe32eo4/ndjKmuj715HB7W1k63G09teM1dXJYubPEmLkQ/lq5Q==" - }, - "redeyed": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/redeyed/-/redeyed-2.1.1.tgz", - "integrity": "sha1-iYS1gV2ZyyIEacme7v/jiRPmzAs=", + "p-retry": { + "version": "4.6.2", + "resolved": "https://registry.npmjs.org/p-retry/-/p-retry-4.6.2.tgz", + "integrity": "sha512-312Id396EbJdvRONlngUx0NydfrIQ5lsYu0znKVUzVvArzEIt08V1qhtyESbGVd1FGX7UKtiFp5uwKZdM8wIuQ==", "dev": true, "requires": { - "esprima": "~4.0.0" + "@types/retry": "0.12.0", + "retry": "^0.13.1" } }, - "reflect-metadata": { - "version": "0.1.13", - "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", - "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", - "dev": true - }, - "regenerate": { - "version": "1.4.2", - "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", - "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "p-try": { + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/p-try/-/p-try-2.2.0.tgz", + "integrity": "sha512-R4nPAVTAU0B9D35/Gk3uJf/7XYbQcyohSKdvAxIRSNghFl4e71hVoGnBNQz9cWaXxO2I10KTC+3jMdvvoKw6dQ==", "dev": true }, - "regenerate-unicode-properties": { - "version": "8.2.0", - "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", - "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", + "pacote": { + "version": "13.3.0", + "resolved": "https://registry.npmjs.org/pacote/-/pacote-13.3.0.tgz", + "integrity": "sha512-auhJAUlfC2TALo6I0s1vFoPvVFgWGx+uz/PnIojTTgkGwlK3Np8sGJ0ghfFhiuzJXTZoTycMLk8uLskdntPbDw==", "dev": true, "requires": { - "regenerate": "^1.4.0" + "@npmcli/git": "^3.0.0", + "@npmcli/installed-package-contents": "^1.0.7", + "@npmcli/promise-spawn": "^3.0.0", + "@npmcli/run-script": "^3.0.1", + "cacache": "^16.0.0", + "chownr": "^2.0.0", + "fs-minipass": "^2.1.0", + "infer-owner": "^1.0.4", + "minipass": "^3.1.6", + "mkdirp": "^1.0.4", + "npm-package-arg": "^9.0.0", + "npm-packlist": "^5.0.0", + "npm-pick-manifest": "^7.0.0", + "npm-registry-fetch": "^13.0.1", + "proc-log": "^2.0.0", + "promise-retry": "^2.0.1", + "read-package-json": "^5.0.0", + "read-package-json-fast": "^2.0.3", + "rimraf": "^3.0.2", + "ssri": "^9.0.0", + "tar": "^6.1.11" + }, + "dependencies": { + "chownr": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/chownr/-/chownr-2.0.0.tgz", + "integrity": "sha512-bIomtDF5KGpdogkLd9VspvFzk9KfpyyGlS8YFVZl7TGPBHL5snIOnxeshwVgPteQ9b4Eydl+pVbIyE1DcvCWgQ==", + "dev": true + }, + "minipass": { + "version": "3.3.4", + "resolved": "https://registry.npmjs.org/minipass/-/minipass-3.3.4.tgz", + "integrity": "sha512-I9WPbWHCGu8W+6k1ZiGpPu0GkoKBeorkfKNuAFBNS1HNFJvke82sxvI5bzcCNpWPorkOO5QQ+zomzzwRxejXiw==", + "dev": true, + "requires": { + "yallist": "^4.0.0" + } + }, + "minizlib": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-2.1.2.tgz", + "integrity": "sha512-bAxsR8BVfj60DWXHE3u30oHzfl4G7khkSuPW+qvpd7jFRHm7dLxOjUk1EHACJ/hxLY8phGJ0YhYHZo7jil7Qdg==", + "dev": true, + "requires": { + "minipass": "^3.0.0", + "yallist": "^4.0.0" + } + }, + "mkdirp": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/mkdirp/-/mkdirp-1.0.4.tgz", + "integrity": "sha512-vVqVZQyf3WLx2Shd0qJ9xuvqgAyKPLAiqITEtqW0oIUjzo3PePDd6fW9iFz30ef7Ysp/oiWqbhszeGWW2T6Gzw==", + "dev": true + }, + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", + "dev": true, + "requires": { + "glob": "^7.1.3" + } + }, + "tar": { + "version": "6.1.11", + "resolved": "https://registry.npmjs.org/tar/-/tar-6.1.11.tgz", + "integrity": "sha512-an/KZQzQUkZCkuoAA64hM92X0Urb6VpRhAFllDzz44U2mcD5scmT3zBc4VgVpkugF580+DQn8eAFSyoQt0tznA==", + "dev": true, + "requires": { + "chownr": "^2.0.0", + "fs-minipass": "^2.0.0", + "minipass": "^3.0.0", + "minizlib": "^2.1.1", + "mkdirp": "^1.0.3", + "yallist": "^4.0.0" + } + } } }, - "regenerator-runtime": { - "version": "0.13.3", - "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.3.tgz", - "integrity": "sha512-naKIZz2GQ8JWh///G7L3X6LaQUAMp2lvb1rvwwsURe/VXwD6VMfr+/1NuNw3ag8v2kY1aQ/go5SNn79O9JU7yw==", + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==", "dev": true }, - "regenerator-transform": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.14.5.tgz", - "integrity": "sha512-eOf6vka5IO151Jfsw2NO9WpGX58W6wWmefK3I1zEGr0lOD0u8rwPaNqQL1aRxUaxLeKO3ArNh3VYg1KbaD+FFw==", + "parent-module": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parent-module/-/parent-module-1.0.1.tgz", + "integrity": "sha512-GQ2EWRpQV8/o+Aw8YqtfZZPfNRWZYkbidE9k5rpl/hC3vtHHBfGm2Ifi6qWV+coDGkrUKZAxE3Lot5kcsRlh+g==", "dev": true, "requires": { - "@babel/runtime": "^7.8.4" + "callsites": "^3.0.0" } }, - "regex-not": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/regex-not/-/regex-not-1.0.2.tgz", - "integrity": "sha512-J6SDjUgDxQj5NusnOtdFxDwN/+HWykR8GELwctJ7mdqhcyy1xEc4SRFHUXvxTp661YaVKAjfRLZ9cCqS6tn32A==", + "parse-json": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.2.0.tgz", + "integrity": "sha512-ayCKvm/phCGxOkYRSCM82iDwct8/EonSEgCSxWxD7ve6jHggsFl4fZVQBPRNgQoKiuV/odhFrGzQXZwbifC8Rg==", "dev": true, "requires": { - "extend-shallow": "^3.0.2", - "safe-regex": "^1.1.0" + "@babel/code-frame": "^7.0.0", + "error-ex": "^1.3.1", + "json-parse-even-better-errors": "^2.3.0", + "lines-and-columns": "^1.1.6" } }, - "regexp.prototype.flags": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/regexp.prototype.flags/-/regexp.prototype.flags-1.3.1.tgz", - "integrity": "sha512-JiBdRBq91WlY7uRJ0ds7R+dU02i6LKi8r3BuQhNXn+kmeLN+EfHhfjqMRis1zJxnlu88hq/4dx0P2OP3APRTOA==", - "dev": true, - "requires": { - "call-bind": "^1.0.2", - "define-properties": "^1.1.3" - } + "parse-node-version": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/parse-node-version/-/parse-node-version-1.0.1.tgz", + "integrity": "sha512-3YHlOa/JgH6Mnpr05jP9eDG254US9ek25LyIxZlDItp2iJtwyaXQb57lBYLdT3MowkUFYEV2XXNAYIPlESvJlA==", + "dev": true }, - "regexpu-core": { - "version": "4.7.1", - "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", - "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", - "dev": true, - "requires": { - "regenerate": "^1.4.0", - "regenerate-unicode-properties": "^8.2.0", - "regjsgen": "^0.5.1", - "regjsparser": "^0.6.4", - "unicode-match-property-ecmascript": "^1.0.4", - "unicode-match-property-value-ecmascript": "^1.2.0" - } + "parse5": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5/-/parse5-6.0.1.tgz", + "integrity": "sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==", + "dev": true }, - "registry-auth-token": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.2.1.tgz", - "integrity": "sha512-6gkSb4U6aWJB4SF2ZvLb76yCBjcvufXBqvvEx1HbmKPkutswjW1xNVRY0+daljIYRbogN7O0etYSlbiaEQyMyw==", + "parse5-html-rewriting-stream": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-html-rewriting-stream/-/parse5-html-rewriting-stream-6.0.1.tgz", + "integrity": "sha512-vwLQzynJVEfUlURxgnf51yAJDQTtVpNyGD8tKi2Za7m+akukNHxCcUQMAa/mUGLhCeicFdpy7Tlvj8ZNKadprg==", "dev": true, "requires": { - "rc": "^1.2.8" + "parse5": "^6.0.1", + "parse5-sax-parser": "^6.0.1" } }, - "registry-url": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/registry-url/-/registry-url-5.1.0.tgz", - "integrity": "sha512-8acYXXTI0AkQv6RAOjE3vOaIXZkT9wo4LOFbBKYQEEnnMNBpKqdUrI6S4NT0KPIo/WVvJ5tE/X5LF/TQUf0ekw==", + "parse5-htmlparser2-tree-adapter": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz", + "integrity": "sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==", "dev": true, "requires": { - "rc": "^1.2.8" + "parse5": "^6.0.1" } }, - "regjsgen": { - "version": "0.5.2", - "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.5.2.tgz", - "integrity": "sha512-OFFT3MfrH90xIW8OOSyUrk6QHD5E9JOTeGodiJeBS3J6IwlgzJMNE/1bZklWz5oTg+9dCMyEetclvCVXOPoN3A==", - "dev": true - }, - "regjsparser": { - "version": "0.6.6", - "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.6.tgz", - "integrity": "sha512-jjyuCp+IEMIm3N1H1LLTJW1EISEJV9+5oHdEyrt43Pg9cDSb6rrLZei2cVWpl0xTjmmlpec/lEQGYgM7xfpGCQ==", + "parse5-sax-parser": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/parse5-sax-parser/-/parse5-sax-parser-6.0.1.tgz", + "integrity": "sha512-kXX+5S81lgESA0LsDuGjAlBybImAChYRMT+/uKCEXFBFOeEhS52qUCydGhU3qLRD8D9DVjaUo821WK7DM4iCeg==", "dev": true, "requires": { - "jsesc": "~0.5.0" - }, - "dependencies": { - "jsesc": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", - "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", - "dev": true - } + "parse5": "^6.0.1" } }, - "remove-trailing-separator": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/remove-trailing-separator/-/remove-trailing-separator-1.1.0.tgz", - "integrity": "sha1-wkvOKig62tW8P1jg1IJJuSN52O8=", + "parseurl": { + "version": "1.3.3", + "resolved": "https://registry.npmjs.org/parseurl/-/parseurl-1.3.3.tgz", + "integrity": "sha512-CiyeOxFT/JZyN5m0z9PfXw4SCBJ6Sygz1Dpl0wqjlhDEGGBP1GnsUVEL0p63hoG1fcj3fHynXi9NYO4nWOL+qQ==", "dev": true }, - "repeat-element": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/repeat-element/-/repeat-element-1.1.3.tgz", - "integrity": "sha512-ahGq0ZnV5m5XtZLMb+vP76kcAM5nkLqk0lpqAuojSKGgQtn4eRi4ZZGm2olo2zKFH+sMsWaqOCW1dqAnOru72g==", + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", "dev": true }, - "repeat-string": { - "version": "1.6.1", - "resolved": "https://registry.npmjs.org/repeat-string/-/repeat-string-1.6.1.tgz", - "integrity": "sha1-jcrkcOHIirwtYA//Sndihtp15jc=", + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=", "dev": true }, - "request": { - "version": "2.88.2", - "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", - "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", - "dev": true, - "requires": { - "aws-sign2": "~0.7.0", - "aws4": "^1.8.0", - "caseless": "~0.12.0", - "combined-stream": "~1.0.6", - "extend": "~3.0.2", - "forever-agent": "~0.6.1", - "form-data": "~2.3.2", - "har-validator": "~5.1.3", - "http-signature": "~1.2.0", - "is-typedarray": "~1.0.0", - "isstream": "~0.1.2", - "json-stringify-safe": "~5.0.1", - "mime-types": "~2.1.19", - "oauth-sign": "~0.9.0", - "performance-now": "^2.1.0", - "qs": "~6.5.2", - "safe-buffer": "^5.1.2", - "tough-cookie": "~2.5.0", - "tunnel-agent": "^0.6.0", - "uuid": "^3.3.2" - } + "path-is-inside": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/path-is-inside/-/path-is-inside-1.0.2.tgz", + "integrity": "sha1-NlQX3t5EQw0cEa9hAn+s8HS9/FM=", + "dev": true }, - "require-directory": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", - "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=", + "path-parse": { + "version": "1.0.6", + "resolved": "https://registry.npmjs.org/path-parse/-/path-parse-1.0.6.tgz", + "integrity": "sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==", "dev": true }, - "require-main-filename": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-1.0.1.tgz", - "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=", + "path-to-regexp": { + "version": "0.1.7", + "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-0.1.7.tgz", + "integrity": "sha1-32BBeABfUi8V60SQ5yR6G/qmf4w=", "dev": true }, - "requires-port": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", - "integrity": "sha1-kl0mAdOaxIXgkc8NpcbmlNw9yv8=", + "path-type": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-type/-/path-type-4.0.0.tgz", + "integrity": "sha512-gDKb8aZMDeD/tZWs9P6+q0J9Mwkdl6xMV8TjnGP3qJVJ06bdMgkbBlLU8IdfOsIsFz2BW1rNVT3XuNEl8zPAvw==", "dev": true }, - "resolve": { - "version": "1.19.0", - "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", - "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", - "dev": true, + "pdfjs-dist": { + "version": "2.13.216", + "resolved": "https://registry.npmjs.org/pdfjs-dist/-/pdfjs-dist-2.13.216.tgz", + "integrity": "sha512-qn/9a/3IHIKZarTK6ajeeFXBkG15Lg1Fx99PxU09PAU2i874X8mTcHJYyDJxu7WDfNhV6hM7bRQBZU384anoqQ==", "requires": { - "is-core-module": "^2.1.0", - "path-parse": "^1.0.6" + "web-streams-polyfill": "^3.2.0" } }, - "resolve-cwd": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/resolve-cwd/-/resolve-cwd-2.0.0.tgz", - "integrity": "sha1-AKn3OHVW4nA46uIyyqNypqWbZlo=", - "dev": true, - "requires": { - "resolve-from": "^3.0.0" - } + "performance-now": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/performance-now/-/performance-now-2.1.0.tgz", + "integrity": "sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns=", + "dev": true }, - "resolve-from": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-3.0.0.tgz", - "integrity": "sha1-six699nWiBvItuZTM17rywoYh0g=", + "picocolors": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/picocolors/-/picocolors-1.0.0.tgz", + "integrity": "sha512-1fygroTLlHu66zi26VoTDv8yRgm0Fccecssto+MhsZ0D/DGW2sm8E8AjW7NU5VVTRt5GxbeZ5qBuJr+HyLYkjQ==" + }, + "picomatch": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/picomatch/-/picomatch-2.2.2.tgz", + "integrity": "sha512-q0M/9eZHzmr0AulXyPwNfZjtwZ/RBZlbN3K3CErVrk50T2ASYI7Bye0EvekFY3IP1Nt2DHu0re+V2ZHIpMkuWg==", "dev": true }, - "resolve-url": { - "version": "0.2.1", - "resolved": "https://registry.npmjs.org/resolve-url/-/resolve-url-0.2.1.tgz", - "integrity": "sha1-LGN/53yJOv0qZj/iGqkIAGjiBSo=", + "pify": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", + "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", "dev": true }, - "responselike": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/responselike/-/responselike-1.0.2.tgz", - "integrity": "sha1-kYcg7ztjHFZCvgaPFa3lpG9Loec=", + "pinkie": { + "version": "2.0.4", + "resolved": "https://registry.npmjs.org/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=", + "dev": true + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", "dev": true, "requires": { - "lowercase-keys": "^1.0.0" + "pinkie": "^2.0.0" } }, - "restore-cursor": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", - "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "piscina": { + "version": "3.2.0", + "resolved": "https://registry.npmjs.org/piscina/-/piscina-3.2.0.tgz", + "integrity": "sha512-yn/jMdHRw+q2ZJhFhyqsmANcbF6V2QwmD84c6xRau+QpQOmtrBCoRGdvTfeuFDYXB5W2m6MfLkjkvQa9lUSmIA==", "dev": true, "requires": { - "onetime": "^5.1.0", - "signal-exit": "^3.0.2" + "eventemitter-asyncresource": "^1.0.0", + "hdr-histogram-js": "^2.0.1", + "hdr-histogram-percentiles-obj": "^3.0.0", + "nice-napi": "^1.0.2" } }, - "ret": { - "version": "0.1.15", - "resolved": "https://registry.npmjs.org/ret/-/ret-0.1.15.tgz", - "integrity": "sha512-TTlYpa+OL+vMMNG24xSlQGEJ3B/RzEfUlLct7b5G/ytav+wPrplCpVMFuwzXbkecJrb6IYo1iFb0S9v37754mg==", - "dev": true - }, - "retry": { - "version": "0.12.0", - "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", - "integrity": "sha1-G0KmJmoh8HQh0bC1S33BZ7AcATs=", - "dev": true - }, - "retry-request": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/retry-request/-/retry-request-4.1.3.tgz", - "integrity": "sha512-QnRZUpuPNgX0+D1xVxul6DbJ9slvo4Rm6iV/dn63e048MvGbUZiKySVt6Tenp04JqmchxjiLltGerOJys7kJYQ==", + "pkg-dir": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", + "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", "dev": true, "requires": { - "debug": "^4.1.1" + "find-up": "^4.0.0" } }, - "rfdc": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.2.0.tgz", - "integrity": "sha512-ijLyszTMmUrXvjSooucVQwimGUk84eRcmCuLV8Xghe3UO85mjUtRAHRyoMM6XtyqbECaXuBWx18La3523sXINA==", - "dev": true - }, - "rgb-regex": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/rgb-regex/-/rgb-regex-1.0.1.tgz", - "integrity": "sha1-wODWiC3w4jviVKR16O3UGRX+rrE=", - "dev": true - }, - "rgba-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/rgba-regex/-/rgba-regex-1.0.0.tgz", - "integrity": "sha1-QzdOLiyglosO8VI0YLfXMP8i7rM=", - "dev": true - }, - "rimraf": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.0.tgz", - "integrity": "sha512-NDGVxTsjqfunkds7CqsOiEnxln4Bo7Nddl3XhS4pXg5OzwkLqJ971ZVAAnB+DDLnF76N+VnDEiBHaVV8I06SUg==", + "postcss": { + "version": "8.4.13", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.13.tgz", + "integrity": "sha512-jtL6eTBrza5MPzy8oJLFuUscHDXTV5KcLlqAWHl5q5WYRfnNRGSmOZmOZ1T6Gy7A99mOZfqungmZMpMmCVJ8ZA==", "dev": true, "requires": { - "glob": "^7.1.3" + "nanoid": "^3.3.3", + "picocolors": "^1.0.0", + "source-map-js": "^1.0.2" } }, - "ripemd160": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/ripemd160/-/ripemd160-2.0.2.tgz", - "integrity": "sha512-ii4iagi25WusVoiC4B4lq7pbXfAp3D9v5CwfkY33vffw2+pkDjY1D8GaN7spsxvCSx8dkPqOZCEZyfxcmJG2IA==", + "postcss-attribute-case-insensitive": { + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/postcss-attribute-case-insensitive/-/postcss-attribute-case-insensitive-5.0.2.tgz", + "integrity": "sha512-XIidXV8fDr0kKt28vqki84fRK8VW8eTuIa4PChv2MqKuT6C9UjmSKzen6KaWhWEoYvwxFCa7n/tC1SZ3tyq4SQ==", "dev": true, "requires": { - "hash-base": "^3.0.0", - "inherits": "^2.0.1" + "postcss-selector-parser": "^6.0.10" } }, - "rollup": { - "version": "1.25.2", - "resolved": "https://registry.npmjs.org/rollup/-/rollup-1.25.2.tgz", - "integrity": "sha512-+7z6Wab/L45QCPcfpuTZKwKiB0tynj05s/+s2U3F2Bi7rOLPr9UcjUwO7/xpjlPNXA/hwnth6jBExFRGyf3tMg==", + "postcss-clamp": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/postcss-clamp/-/postcss-clamp-4.1.0.tgz", + "integrity": "sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==", "dev": true, "requires": { - "@types/estree": "*", - "@types/node": "*", - "acorn": "^7.1.0" + "postcss-value-parser": "^4.2.0" } }, - "router": { - "version": "1.3.5", - "resolved": "https://registry.npmjs.org/router/-/router-1.3.5.tgz", - "integrity": "sha512-kozCJZUhuSJ5VcLhSb3F8fsmGXy+8HaDbKCAerR1G6tq3mnMZFMuSohbFvGv1c5oMFipijDjRZuuN/Sq5nMf3g==", + "postcss-color-functional-notation": { + "version": "4.2.4", + "resolved": "https://registry.npmjs.org/postcss-color-functional-notation/-/postcss-color-functional-notation-4.2.4.tgz", + "integrity": "sha512-2yrTAUZUab9s6CpxkxC4rVgFEVaR6/2Pipvi6qcgvnYiVqZcbDHEoBDhrXzyb7Efh2CCfHQNtcqWcIruDTIUeg==", "dev": true, "requires": { - "array-flatten": "3.0.0", - "debug": "2.6.9", - "methods": "~1.1.2", - "parseurl": "~1.3.3", - "path-to-regexp": "0.1.7", - "setprototypeof": "1.2.0", - "utils-merge": "1.0.1" - }, - "dependencies": { - "array-flatten": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-3.0.0.tgz", - "integrity": "sha512-zPMVc3ZYlGLNk4mpK1NzP2wg0ml9t7fUgDsayR5Y5rSzxQilzR9FGu/EH2jQOcKSAeAfWeylyW8juy3OkWRvNA==", - "dev": true - }, - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", - "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", - "dev": true - } + "postcss-value-parser": "^4.2.0" } }, - "rsvp": { - "version": "4.8.5", - "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.5.tgz", - "integrity": "sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA==", - "dev": true - }, - "run-async": { - "version": "2.4.1", - "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", - "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==", - "dev": true - }, - "run-queue": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/run-queue/-/run-queue-1.0.3.tgz", - "integrity": "sha1-6Eg5bwV9Ij8kOGkkYY4laUFh7Ec=", + "postcss-color-hex-alpha": { + "version": "8.0.4", + "resolved": "https://registry.npmjs.org/postcss-color-hex-alpha/-/postcss-color-hex-alpha-8.0.4.tgz", + "integrity": "sha512-nLo2DCRC9eE4w2JmuKgVA3fGL3d01kGq752pVALF68qpGLmx2Qrk91QTKkdUqqp45T1K1XV8IhQpcu1hoAQflQ==", "dev": true, "requires": { - "aproba": "^1.1.1" + "postcss-value-parser": "^4.2.0" } }, - "rxjs": { - "version": "6.5.5", - "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-6.5.5.tgz", - "integrity": "sha512-WfQI+1gohdf0Dai/Bbmk5L5ItH5tYqm3ki2c5GdWhKjalzjg93N3avFjVStyZZz+A2Em+ZxKH5bNghw9UeylGQ==", + "postcss-color-rebeccapurple": { + "version": "7.1.1", + "resolved": "https://registry.npmjs.org/postcss-color-rebeccapurple/-/postcss-color-rebeccapurple-7.1.1.tgz", + "integrity": "sha512-pGxkuVEInwLHgkNxUc4sdg4g3py7zUeCQ9sMfwyHAT+Ezk8a4OaaVZ8lIY5+oNqA/BXXgLyXv0+5wHP68R79hg==", + "dev": true, "requires": { - "tslib": "^1.9.0" + "postcss-value-parser": "^4.2.0" } }, - "safe-buffer": { - "version": "5.1.2", - "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", - "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" - }, - "safe-regex": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/safe-regex/-/safe-regex-1.1.0.tgz", - "integrity": "sha1-QKNmnzsHfR6UPURinhV91IAjvy4=", + "postcss-custom-media": { + "version": "8.0.2", + "resolved": "https://registry.npmjs.org/postcss-custom-media/-/postcss-custom-media-8.0.2.tgz", + "integrity": "sha512-7yi25vDAoHAkbhAzX9dHx2yc6ntS4jQvejrNcC+csQJAXjj15e7VcWfMgLqBNAbOvqi5uIa9huOVwdHbf+sKqg==", "dev": true, "requires": { - "ret": "~0.1.10" + "postcss-value-parser": "^4.2.0" } }, - "safer-buffer": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", - "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", - "dev": true - }, - "sass": { - "version": "1.23.3", - "resolved": "https://registry.npmjs.org/sass/-/sass-1.23.3.tgz", - "integrity": "sha512-1DKRZxJMOh4Bme16AbWTyYeJAjTlrvw2+fWshHHaepeJfGq2soFZTnt0YhWit+bohtDu4LdyPoEj6VFD4APHog==", + "postcss-custom-properties": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/postcss-custom-properties/-/postcss-custom-properties-12.1.8.tgz", + "integrity": "sha512-8rbj8kVu00RQh2fQF81oBqtduiANu4MIxhyf0HbbStgPtnFlWn0yiaYTpLHrPnJbffVY1s9apWsIoVZcc68FxA==", "dev": true, "requires": { - "chokidar": ">=2.0.0 <4.0.0" + "postcss-value-parser": "^4.2.0" } }, - "sass-loader": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-8.0.0.tgz", - "integrity": "sha512-+qeMu563PN7rPdit2+n5uuYVR0SSVwm0JsOUsaJXzgYcClWSlmX0iHDnmeOobPkf5kUglVot3QS6SyLyaQoJ4w==", + "postcss-custom-selectors": { + "version": "6.0.3", + "resolved": "https://registry.npmjs.org/postcss-custom-selectors/-/postcss-custom-selectors-6.0.3.tgz", + "integrity": "sha512-fgVkmyiWDwmD3JbpCmB45SvvlCD6z9CG6Ie6Iere22W5aHea6oWa7EM2bpnv2Fj3I94L3VbtvX9KqwSi5aFzSg==", "dev": true, "requires": { - "clone-deep": "^4.0.1", - "loader-utils": "^1.2.3", - "neo-async": "^2.6.1", - "schema-utils": "^2.1.0", - "semver": "^6.3.0" - }, - "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" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } - } + "postcss-selector-parser": "^6.0.4" } }, - "saucelabs": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", - "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", + "postcss-dir-pseudo-class": { + "version": "6.0.5", + "resolved": "https://registry.npmjs.org/postcss-dir-pseudo-class/-/postcss-dir-pseudo-class-6.0.5.tgz", + "integrity": "sha512-eqn4m70P031PF7ZQIvSgy9RSJ5uI2171O/OO/zcRNYpJbvaeKFUlar1aJ7rmgiQtbm0FSPsRewjpdS0Oew7MPA==", "dev": true, "requires": { - "https-proxy-agent": "^2.2.1" + "postcss-selector-parser": "^6.0.10" } }, - "sax": { - "version": "1.2.4", - "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", - "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", - "dev": true - }, - "schema-utils": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-1.0.0.tgz", - "integrity": "sha512-i27Mic4KovM/lnGsy8whRCHhc7VicJajAjTrYg11K9zfZXnYIt4k5F+kZkwjnrhKzLic/HLU4j11mjsz2G/75g==", + "postcss-double-position-gradients": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/postcss-double-position-gradients/-/postcss-double-position-gradients-3.1.2.tgz", + "integrity": "sha512-GX+FuE/uBR6eskOK+4vkXgT6pDkexLokPaz/AbJna9s5Kzp/yl488pKPjhy0obB475ovfT1Wv8ho7U/cHNaRgQ==", "dev": true, "requires": { - "ajv": "^6.1.0", - "ajv-errors": "^1.0.0", - "ajv-keywords": "^3.1.0" + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" } }, - "select-hose": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", - "integrity": "sha1-Yl2GWPhlr0Psliv8N2o3NZpJlMo=", - "dev": true - }, - "selenium-webdriver": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", - "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", + "postcss-env-function": { + "version": "4.0.6", + "resolved": "https://registry.npmjs.org/postcss-env-function/-/postcss-env-function-4.0.6.tgz", + "integrity": "sha512-kpA6FsLra+NqcFnL81TnsU+Z7orGtDTxcOhl6pwXeEq1yFPpRMkCDpHhrz8CFQDr/Wfm0jLiNQ1OsGGPjlqPwA==", "dev": true, "requires": { - "jszip": "^3.1.3", - "rimraf": "^2.5.4", - "tmp": "0.0.30", - "xml2js": "^0.4.17" - }, - "dependencies": { - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", - "dev": true, - "requires": { - "glob": "^7.1.3" - } - }, - "tmp": { - "version": "0.0.30", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", - "integrity": "sha1-ckGdSovn1s51FI/YsyTlk6cRwu0=", - "dev": true, - "requires": { - "os-tmpdir": "~1.0.1" - } - } + "postcss-value-parser": "^4.2.0" } }, - "selfsigned": { - "version": "1.10.8", - "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-1.10.8.tgz", - "integrity": "sha512-2P4PtieJeEwVgTU9QEcwIRDQ/mXJLX8/+I3ur+Pg16nS8oNbrGxEso9NyYWy8NAmXiNl4dlAp5MwoNeCWzON4w==", + "postcss-focus-visible": { + "version": "6.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-visible/-/postcss-focus-visible-6.0.4.tgz", + "integrity": "sha512-QcKuUU/dgNsstIK6HELFRT5Y3lbrMLEOwG+A4s5cA+fx3A3y/JTq3X9LaOj3OC3ALH0XqyrgQIgey/MIZ8Wczw==", "dev": true, "requires": { - "node-forge": "^0.10.0" + "postcss-selector-parser": "^6.0.9" } }, - "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" - }, - "semver-diff": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", - "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", + "postcss-focus-within": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-focus-within/-/postcss-focus-within-5.0.4.tgz", + "integrity": "sha512-vvjDN++C0mu8jz4af5d52CB184ogg/sSxAFS+oUJQq2SuCe7T5U2iIsVJtsCp2d6R4j0jr5+q3rPkBVZkXD9fQ==", "dev": true, "requires": { - "semver": "^6.3.0" + "postcss-selector-parser": "^6.0.9" } }, - "semver-dsl": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", - "integrity": "sha1-02eN5VVeimH2Ke7QJTZq5fJzQKA=", + "postcss-font-variant": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-font-variant/-/postcss-font-variant-5.0.0.tgz", + "integrity": "sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==", + "dev": true + }, + "postcss-gap-properties": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-gap-properties/-/postcss-gap-properties-3.0.4.tgz", + "integrity": "sha512-PaEM4AUQY7uomyuVVXsIntdo4eT8VkBMrSinQxvXuMcJ1z3RHlFw4Kqef2X+rRVz3WHaYCa0EEtwousBT6vcIA==", + "dev": true + }, + "postcss-image-set-function": { + "version": "4.0.7", + "resolved": "https://registry.npmjs.org/postcss-image-set-function/-/postcss-image-set-function-4.0.7.tgz", + "integrity": "sha512-9T2r9rsvYzm5ndsBE8WgtrMlIT7VbtTfE7b3BQnudUqnBcBo7L758oc+o+pdj/dUV0l5wjwSdjeOH2DZtfv8qw==", "dev": true, "requires": { - "semver": "^5.3.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "postcss-value-parser": "^4.2.0" } }, - "semver-intersect": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/semver-intersect/-/semver-intersect-1.4.0.tgz", - "integrity": "sha512-d8fvGg5ycKAq0+I6nfWeCx6ffaWJCsBYU0H2Rq56+/zFePYfT8mXkB3tWBSjR5BerkHNZ5eTPIk1/LBYas35xQ==", + "postcss-import": { + "version": "14.1.0", + "resolved": "https://registry.npmjs.org/postcss-import/-/postcss-import-14.1.0.tgz", + "integrity": "sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==", "dev": true, "requires": { - "semver": "^5.0.0" - }, - "dependencies": { - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", - "dev": true - } + "postcss-value-parser": "^4.0.0", + "read-cache": "^1.0.0", + "resolve": "^1.1.7" } }, - "send": { - "version": "0.17.1", - "resolved": "https://registry.npmjs.org/send/-/send-0.17.1.tgz", - "integrity": "sha512-BsVKsiGcQMFwT8UxypobUKyv7irCNRHk1T0G680vk88yf6LBByGcZJOTJCrTP2xVN6yI+XjPJcNuE3V4fT9sAg==", + "postcss-initial": { + "version": "4.0.1", + "resolved": "https://registry.npmjs.org/postcss-initial/-/postcss-initial-4.0.1.tgz", + "integrity": "sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==", + "dev": true + }, + "postcss-lab-function": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/postcss-lab-function/-/postcss-lab-function-4.2.1.tgz", + "integrity": "sha512-xuXll4isR03CrQsmxyz92LJB2xX9n+pZJ5jE9JgcnmsCammLyKdlzrBin+25dy6wIjfhJpKBAN80gsTlCgRk2w==", "dev": true, "requires": { - "debug": "2.6.9", - "depd": "~1.1.2", - "destroy": "~1.0.4", - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "etag": "~1.8.1", - "fresh": "0.5.2", - "http-errors": "~1.7.2", - "mime": "1.6.0", - "ms": "2.1.1", - "on-finished": "~2.3.0", - "range-parser": "~1.2.1", - "statuses": "~1.5.0" - }, - "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - }, - "dependencies": { - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - } - } - }, - "ms": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz", - "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==", - "dev": true - } + "@csstools/postcss-progressive-custom-properties": "^1.1.0", + "postcss-value-parser": "^4.2.0" } }, - "serialize-javascript": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-2.1.2.tgz", - "integrity": "sha512-rs9OggEUF0V4jUSecXazOYsLfu7OGK2qIn3c7IPBiffz32XniEp/TX9Xmc9LQfK2nQ2QKHvZ2oygKUGU0lG4jQ==", - "dev": true - }, - "serve-index": { - "version": "1.9.1", - "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", - "integrity": "sha1-03aNabHn2C5c4FD/9bRTvqEqkjk=", + "postcss-loader": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/postcss-loader/-/postcss-loader-6.2.1.tgz", + "integrity": "sha512-WbbYpmAaKcux/P66bZ40bpWsBucjx/TTgVVzRZ9yUO8yQfVBlameJ0ZGVaPfH64hNSBh63a+ICP5nqOpBA0w+Q==", "dev": true, "requires": { - "accepts": "~1.3.4", - "batch": "0.6.1", - "debug": "2.6.9", - "escape-html": "~1.0.3", - "http-errors": "~1.6.2", - "mime-types": "~2.1.17", - "parseurl": "~1.3.2" + "cosmiconfig": "^7.0.0", + "klona": "^2.0.5", + "semver": "^7.3.5" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "lru-cache": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", + "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", "dev": true, "requires": { - "ms": "2.0.0" + "yallist": "^4.0.0" } }, - "http-errors": { - "version": "1.6.3", - "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", - "integrity": "sha1-i1VoC7S+KDoLW/TqLjhYC+HZMg0=", + "semver": { + "version": "7.3.7", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.7.tgz", + "integrity": "sha512-QlYTucUYOews+WeEujDoEGziz4K6c47V/Bd+LjSSYcA94p+DmINdf7ncaUinThfvZyu13lN9OY1XDxt8C0Tw0g==", "dev": true, "requires": { - "depd": "~1.1.2", - "inherits": "2.0.3", - "setprototypeof": "1.1.0", - "statuses": ">= 1.4.0 < 2" + "lru-cache": "^6.0.0" } - }, - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", - "dev": true - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "setprototypeof": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", - "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", - "dev": true } } }, - "serve-static": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.14.1.tgz", - "integrity": "sha512-JMrvUwE54emCYWlTI+hGrGv5I8dEwmco/00EvkzIIsR7MqrHonbD9pO2MOfFnpFntl7ecpZs+3mW+XbQZu9QCg==", - "dev": true, - "requires": { - "encodeurl": "~1.0.2", - "escape-html": "~1.0.3", - "parseurl": "~1.3.3", - "send": "0.17.1" - } + "postcss-logical": { + "version": "5.0.4", + "resolved": "https://registry.npmjs.org/postcss-logical/-/postcss-logical-5.0.4.tgz", + "integrity": "sha512-RHXxplCeLh9VjinvMrZONq7im4wjWGlRJAqmAVLXyZaXwfDWP73/oq4NdIp+OZwhQUMj0zjqDfM5Fj7qby+B4g==", + "dev": true }, - "set-blocking": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", - "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "postcss-media-minmax": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-media-minmax/-/postcss-media-minmax-5.0.0.tgz", + "integrity": "sha512-yDUvFf9QdFZTuCUg0g0uNSHVlJ5X1lSzDZjPSFaiCWvjgsvu8vEVxtahPrLMinIDEEGnx6cBe6iqdx5YWz08wQ==", "dev": true }, - "set-immediate-shim": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/set-immediate-shim/-/set-immediate-shim-1.0.1.tgz", - "integrity": "sha1-SysbJ+uAip+NzEgaWOXlb1mfP2E=", + "postcss-modules-extract-imports": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-extract-imports/-/postcss-modules-extract-imports-3.0.0.tgz", + "integrity": "sha512-bdHleFnP3kZ4NYDhuGlVK+CMrQ/pqUm8bx/oGL93K6gVwiclvX5x0n76fYMKuIGKzlABOy13zsvqjb0f92TEXw==", "dev": true }, - "set-value": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", - "integrity": "sha512-JxHc1weCN68wRY0fhCoXpyK55m/XPHafOmK4UWD7m2CI14GMcFypt4w/0+NV5f/ZMby2F6S2wwA7fgynh9gWSw==", + "postcss-modules-local-by-default": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-local-by-default/-/postcss-modules-local-by-default-4.0.0.tgz", + "integrity": "sha512-sT7ihtmGSF9yhm6ggikHdV0hlziDTX7oFoXtuVWeDd3hHObNkcHRo9V3yg7vCAY7cONyxJC/XXCmmiHHcvX7bQ==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-extendable": "^0.1.1", - "is-plain-object": "^2.0.3", - "split-string": "^3.0.1" - }, - "dependencies": { - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "requires": { - "is-extendable": "^0.1.0" - } - } + "icss-utils": "^5.0.0", + "postcss-selector-parser": "^6.0.2", + "postcss-value-parser": "^4.1.0" } }, - "setimmediate": { - "version": "1.0.5", - "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", - "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", - "dev": true + "postcss-modules-scope": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-scope/-/postcss-modules-scope-3.0.0.tgz", + "integrity": "sha512-hncihwFA2yPath8oZ15PZqvWGkWf+XUfQgUGamS4LqoP1anQLOsOJw0vr7J7IwLpoY9fatA2qiGUGmuZL0Iqlg==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.4" + } }, - "setprototypeof": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", - "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "postcss-modules-values": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-modules-values/-/postcss-modules-values-4.0.0.tgz", + "integrity": "sha512-RDxHkAiEGI78gS2ofyvCsu7iycRv7oqw5xMWn9iMoR0N/7mf9D50ecQqUo5BZ9Zh2vH4bCUR/ktCqbB9m8vJjQ==", + "dev": true, + "requires": { + "icss-utils": "^5.0.0" + } + }, + "postcss-nesting": { + "version": "10.1.10", + "resolved": "https://registry.npmjs.org/postcss-nesting/-/postcss-nesting-10.1.10.tgz", + "integrity": "sha512-lqd7LXCq0gWc0wKXtoKDru5wEUNjm3OryLVNRZ8OnW8km6fSNUuFrjEhU3nklxXE2jvd4qrox566acgh+xQt8w==", + "dev": true, + "requires": { + "@csstools/selector-specificity": "^2.0.0", + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-opacity-percentage": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/postcss-opacity-percentage/-/postcss-opacity-percentage-1.1.2.tgz", + "integrity": "sha512-lyUfF7miG+yewZ8EAk9XUBIlrHyUE6fijnesuz+Mj5zrIHIEw6KcIZSOk/elVMqzLvREmXB83Zi/5QpNRYd47w==", "dev": true }, - "sha.js": { - "version": "2.4.11", - "resolved": "https://registry.npmjs.org/sha.js/-/sha.js-2.4.11.tgz", - "integrity": "sha512-QMEp5B7cftE7APOjk5Y6xgrbWu+WkLVQwk8JNjZ8nKRciZaByEW6MubieAiToS7+dwvrjGhH8jRXz3MVd0AYqQ==", + "postcss-overflow-shorthand": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-overflow-shorthand/-/postcss-overflow-shorthand-3.0.4.tgz", + "integrity": "sha512-otYl/ylHK8Y9bcBnPLo3foYFLL6a6Ak+3EQBPOTR7luMYCOsiVTUk1iLvNf6tVPNGXcoL9Hoz37kpfriRIFb4A==", "dev": true, "requires": { - "inherits": "^2.0.1", - "safe-buffer": "^5.0.1" + "postcss-value-parser": "^4.2.0" } }, - "shallow-clone": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", - "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "postcss-page-break": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/postcss-page-break/-/postcss-page-break-3.0.4.tgz", + "integrity": "sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==", + "dev": true + }, + "postcss-place": { + "version": "7.0.5", + "resolved": "https://registry.npmjs.org/postcss-place/-/postcss-place-7.0.5.tgz", + "integrity": "sha512-wR8igaZROA6Z4pv0d+bvVrvGY4GVHihBCBQieXFY3kuSuMyOmEnnfFzHl/tQuqHZkfkIVBEbDvYcFfHmpSet9g==", + "dev": true, + "requires": { + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-preset-env": { + "version": "7.5.0", + "resolved": "https://registry.npmjs.org/postcss-preset-env/-/postcss-preset-env-7.5.0.tgz", + "integrity": "sha512-0BJzWEfCdTtK2R3EiKKSdkE51/DI/BwnhlnicSW482Ym6/DGHud8K0wGLcdjip1epVX0HKo4c8zzTeV/SkiejQ==", + "dev": true, + "requires": { + "@csstools/postcss-color-function": "^1.1.0", + "@csstools/postcss-font-format-keywords": "^1.0.0", + "@csstools/postcss-hwb-function": "^1.0.0", + "@csstools/postcss-ic-unit": "^1.0.0", + "@csstools/postcss-is-pseudo-class": "^2.0.2", + "@csstools/postcss-normalize-display-values": "^1.0.0", + "@csstools/postcss-oklab-function": "^1.1.0", + "@csstools/postcss-progressive-custom-properties": "^1.3.0", + "@csstools/postcss-stepped-value-functions": "^1.0.0", + "@csstools/postcss-unset-value": "^1.0.0", + "autoprefixer": "^10.4.6", + "browserslist": "^4.20.3", + "css-blank-pseudo": "^3.0.3", + "css-has-pseudo": "^3.0.4", + "css-prefers-color-scheme": "^6.0.3", + "cssdb": "^6.6.1", + "postcss-attribute-case-insensitive": "^5.0.0", + "postcss-clamp": "^4.1.0", + "postcss-color-functional-notation": "^4.2.2", + "postcss-color-hex-alpha": "^8.0.3", + "postcss-color-rebeccapurple": "^7.0.2", + "postcss-custom-media": "^8.0.0", + "postcss-custom-properties": "^12.1.7", + "postcss-custom-selectors": "^6.0.0", + "postcss-dir-pseudo-class": "^6.0.4", + "postcss-double-position-gradients": "^3.1.1", + "postcss-env-function": "^4.0.6", + "postcss-focus-visible": "^6.0.4", + "postcss-focus-within": "^5.0.4", + "postcss-font-variant": "^5.0.0", + "postcss-gap-properties": "^3.0.3", + "postcss-image-set-function": "^4.0.6", + "postcss-initial": "^4.0.1", + "postcss-lab-function": "^4.2.0", + "postcss-logical": "^5.0.4", + "postcss-media-minmax": "^5.0.0", + "postcss-nesting": "^10.1.4", + "postcss-opacity-percentage": "^1.1.2", + "postcss-overflow-shorthand": "^3.0.3", + "postcss-page-break": "^3.0.4", + "postcss-place": "^7.0.4", + "postcss-pseudo-class-any-link": "^7.1.2", + "postcss-replace-overflow-wrap": "^4.0.0", + "postcss-selector-not": "^5.0.0", + "postcss-value-parser": "^4.2.0" + } + }, + "postcss-pseudo-class-any-link": { + "version": "7.1.6", + "resolved": "https://registry.npmjs.org/postcss-pseudo-class-any-link/-/postcss-pseudo-class-any-link-7.1.6.tgz", + "integrity": "sha512-9sCtZkO6f/5ML9WcTLcIyV1yz9D1rf0tWc+ulKcvV30s0iZKS/ONyETvoWsr6vnrmW+X+KmuK3gV/w5EWnT37w==", + "dev": true, + "requires": { + "postcss-selector-parser": "^6.0.10" + } + }, + "postcss-replace-overflow-wrap": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/postcss-replace-overflow-wrap/-/postcss-replace-overflow-wrap-4.0.0.tgz", + "integrity": "sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==", + "dev": true + }, + "postcss-selector-not": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/postcss-selector-not/-/postcss-selector-not-5.0.0.tgz", + "integrity": "sha512-/2K3A4TCP9orP4TNS7u3tGdRFVKqz/E6pX3aGnriPG0jU78of8wsUcqE4QAhWEU0d+WnMSF93Ah3F//vUtK+iQ==", "dev": true, "requires": { - "kind-of": "^6.0.2" + "balanced-match": "^1.0.0" } }, - "shebang-command": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-1.2.0.tgz", - "integrity": "sha1-RKrGW2lbAzmJaMOfNj/uXer98eo=", + "postcss-selector-parser": { + "version": "6.0.10", + "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-6.0.10.tgz", + "integrity": "sha512-IQ7TZdoaqbT+LCpShg46jnZVlhWD2w6iQYAcYXfHARZ7X1t/UGhhceQDs5X0cGqKvYlHNOuv7Oa1xmb0oQuA3w==", "dev": true, "requires": { - "shebang-regex": "^1.0.0" + "cssesc": "^3.0.0", + "util-deprecate": "^1.0.2" } }, - "shebang-regex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", - "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", + "postcss-value-parser": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/postcss-value-parser/-/postcss-value-parser-4.2.0.tgz", + "integrity": "sha512-1NNCs6uurfkVbeXG4S8JFT9t19m45ICnif8zWLd5oPSZ50QnwMfK+H3jv408d4jw/7Bttv5axS5IiHoLaVNHeQ==", "dev": true }, - "signal-exit": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", - "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "pretty-bytes": { + "version": "5.6.0", + "resolved": "https://registry.npmjs.org/pretty-bytes/-/pretty-bytes-5.6.0.tgz", + "integrity": "sha512-FFw039TmrBqFK8ma/7OL3sDz/VytdtJr044/QUJtH0wK9lb9jLq9tJyIxUwtQJHwar2BqtiA4iCWSwo9JLkzFg==", + "dev": true + }, + "proc-log": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/proc-log/-/proc-log-2.0.1.tgz", + "integrity": "sha512-Kcmo2FhfDTXdcbfDH76N7uBYHINxc/8GW7UAVuVP9I+Va3uHSerrnKV6dLooga/gh7GlgzuCCr/eoldnL1muGw==", + "dev": true + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==", + "dev": true + }, + "promise-inflight": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", + "integrity": "sha512-6zWPyEOFaQBJYcGMHBKTKJ3u6TBsnMFOIZSa6ce1e/ZrrsOlnHRHbabMjLiBYKp+n44X9eUI6VUPaukCXHuG4g==", "dev": true }, - "simple-swizzle": { - "version": "0.2.2", - "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", - "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", + "promise-retry": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/promise-retry/-/promise-retry-2.0.1.tgz", + "integrity": "sha512-y+WKFlBR8BGXnsNlIHFGPZmyDf3DFMoLhaflAnyZgV6rG6xu+JwesTo2Q9R6XwYmtmwAFCkAk3e35jEdoeh/3g==", "dev": true, "requires": { - "is-arrayish": "^0.3.1" + "err-code": "^2.0.2", + "retry": "^0.12.0" }, "dependencies": { - "is-arrayish": { - "version": "0.3.2", - "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", - "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==", + "retry": { + "version": "0.12.0", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.12.0.tgz", + "integrity": "sha512-9LkiTwjUh6rT555DtE9rTX+BKByPfrMzEAtnlEtdEwr3Nkffwiihqe2bWADg+OQRjt9gl6ICdmB/ZFDCGAtSow==", "dev": true } } }, - "slash": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-1.0.0.tgz", - "integrity": "sha1-xB8vbDn8FtHNF61LXYlhFK5HDVU=", - "dev": true - }, - "smart-buffer": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.1.0.tgz", - "integrity": "sha512-iVICrxOzCynf/SNaBQCw34eM9jROU/s5rzIhpOvzhzuYHfJR/DhZfDkXiZSgKXfgv26HT3Yni3AV/DGw0cGnnw==", - "dev": true - }, - "snapdragon": { - "version": "0.8.2", - "resolved": "https://registry.npmjs.org/snapdragon/-/snapdragon-0.8.2.tgz", - "integrity": "sha512-FtyOnWN/wCHTVXOMwvSv26d+ko5vWlIDD6zoUJ7LW8vh+ZBC8QdljveRP+crNrtBwioEUWy/4dMtbBjA4ioNlg==", + "protractor": { + "version": "7.0.0", + "resolved": "https://registry.npmjs.org/protractor/-/protractor-7.0.0.tgz", + "integrity": "sha512-UqkFjivi4GcvUQYzqGYNe0mLzfn5jiLmO8w9nMhQoJRLhy2grJonpga2IWhI6yJO30LibWXJJtA4MOIZD2GgZw==", "dev": true, "requires": { - "base": "^0.11.1", - "debug": "^2.2.0", - "define-property": "^0.2.5", - "extend-shallow": "^2.0.1", - "map-cache": "^0.2.2", - "source-map": "^0.5.6", - "source-map-resolve": "^0.5.0", - "use": "^3.1.0" + "@types/q": "^0.0.32", + "@types/selenium-webdriver": "^3.0.0", + "blocking-proxy": "^1.0.0", + "browserstack": "^1.5.1", + "chalk": "^1.1.3", + "glob": "^7.0.3", + "jasmine": "2.8.0", + "jasminewd2": "^2.1.0", + "q": "1.4.1", + "saucelabs": "^1.5.0", + "selenium-webdriver": "3.6.0", + "source-map-support": "~0.4.0", + "webdriver-js-extender": "2.1.0", + "webdriver-manager": "^12.1.7", + "yargs": "^15.3.1" }, "dependencies": { - "debug": { - "version": "2.6.9", - "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", - "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", - "dev": true, - "requires": { - "ms": "2.0.0" - } + "@types/q": { + "version": "0.0.32", + "resolved": "https://registry.npmjs.org/@types/q/-/q-0.0.32.tgz", + "integrity": "sha512-qYi3YV9inU/REEfxwVcGZzbS3KG/Xs90lv0Pr+lDtuVjBPGd1A+eciXzVSaRvLify132BfcvhvEjeVahrUl0Ug==", + "dev": true + }, + "ansi-styles": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz", + "integrity": "sha512-kmCevFghRiWM7HB5zTPULl4r9bVFSWjz62MhqizDGUrq2NWuNMQyuv4tHHoKJHs69M/MF64lEcHdYIocrdWQYA==", + "dev": true }, - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", + "chalk": { + "version": "1.1.3", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz", + "integrity": "sha512-U3lRVLMSlsCfjqYPbLyVv11M9CPW4I728d6TCKMAOJueEeB9/8o+eSsMnxPJD+Q+K909sdESg7C+tIkoH6on1A==", "dev": true, "requires": { - "is-descriptor": "^0.1.0" + "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" } }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "del": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/del/-/del-2.2.2.tgz", + "integrity": "sha512-Z4fzpbIRjOu7lO5jCETSWoqUDVe0IPOlfugBsF6suen2LKDlVb4QZpKEM9P+buNJ4KI1eN7I083w/pbKUpsrWQ==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "globby": "^5.0.0", + "is-path-cwd": "^1.0.0", + "is-path-in-cwd": "^1.0.0", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "rimraf": "^2.2.8" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true - }, - "source-map": { - "version": "0.5.7", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", - "integrity": "sha1-igOdLRAh0i0eoUyA2OpGi6LvP8w=", - "dev": true - } - } - }, - "snapdragon-node": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/snapdragon-node/-/snapdragon-node-2.1.1.tgz", - "integrity": "sha512-O27l4xaMYt/RSQ5TR3vpWCAB5Kb/czIcqUFOM/C4fYcLnbZUc1PkjTAMjof2pBWaSTwOUd6qUHcFGVGj7aIwnw==", - "dev": true, - "requires": { - "define-property": "^1.0.0", - "isobject": "^3.0.0", - "snapdragon-util": "^3.0.1" - }, - "dependencies": { - "define-property": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", - "integrity": "sha1-dp66rz9KY6rTr56NMEybvnm/sOY=", + "globby": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/globby/-/globby-5.0.0.tgz", + "integrity": "sha512-HJRTIH2EeH44ka+LWig+EqT2ONSYpVlNfx6pyd592/VF1TbfljJ7elwie7oSwcViLGqOdWocSdu2txwBF9bjmQ==", "dev": true, "requires": { - "is-descriptor": "^1.0.0" + "array-union": "^1.0.1", + "arrify": "^1.0.0", + "glob": "^7.0.3", + "object-assign": "^4.0.1", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" } }, - "is-accessor-descriptor": { + "is-path-cwd": { "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-accessor-descriptor/-/is-accessor-descriptor-1.0.0.tgz", - "integrity": "sha512-m5hnHTkcVsPfqx3AKlyttIPb7J+XykHvJP2B9bZDjlhLIoEq4XoK64Vg7boZlVWYK6LUY94dYPEE7Lh0ZkZKcQ==", - "dev": true, - "requires": { - "kind-of": "^6.0.0" - } + "resolved": "https://registry.npmjs.org/is-path-cwd/-/is-path-cwd-1.0.0.tgz", + "integrity": "sha512-cnS56eR9SPAscL77ik76ATVqoPARTqPIVkMDVxRaWH06zT+6+CzIroYRJ0VVvm0Z1zfAvxvz9i/D3Ppjaqt5Nw==", + "dev": true }, - "is-data-descriptor": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-data-descriptor/-/is-data-descriptor-1.0.0.tgz", - "integrity": "sha512-jbRXy1FmtAoCjQkVmIVYwuuqDFUbaOeDjmed1tOGPrsMhtJA4rD9tkgA0F1qJ3gRFRXcHYVkdeaP50Q5rE/jLQ==", + "is-path-in-cwd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-in-cwd/-/is-path-in-cwd-1.0.1.tgz", + "integrity": "sha512-FjV1RTW48E7CWM7eE/J2NJvAEEVektecDBVBE5Hh3nM1Jd0kvhHtX68Pr3xsDf857xt3Y4AkwVULK1Vku62aaQ==", "dev": true, "requires": { - "kind-of": "^6.0.0" + "is-path-inside": "^1.0.0" } }, - "is-descriptor": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/is-descriptor/-/is-descriptor-1.0.2.tgz", - "integrity": "sha512-2eis5WqQGV7peooDyLmNEPUrps9+SXX5c9pL3xEB+4e9HnGuDa7mB7kHxHw4CbqS9k1T2hOH3miL8n8WtiYVtg==", - "dev": true, - "requires": { - "is-accessor-descriptor": "^1.0.0", - "is-data-descriptor": "^1.0.0", - "kind-of": "^6.0.2" - } - } - } - }, - "snapdragon-util": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/snapdragon-util/-/snapdragon-util-3.0.1.tgz", - "integrity": "sha512-mbKkMdQKsjX4BAL4bRYTj21edOf8cN7XHdYUJEe+Zn99hVEYcMvKPct1IqNe7+AZPirn8BCDOQBHQZknqmKlZQ==", - "dev": true, - "requires": { - "kind-of": "^3.2.0" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } - } - }, - "socket.io": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-2.1.1.tgz", - "integrity": "sha512-rORqq9c+7W0DAK3cleWNSyfv/qKXV99hV4tZe+gGLfBECw3XEhBy7x85F3wypA9688LKjtwO9pX9L33/xQI8yA==", - "dev": true, - "requires": { - "debug": "~3.1.0", - "engine.io": "~3.2.0", - "has-binary2": "~1.0.2", - "socket.io-adapter": "~1.1.0", - "socket.io-client": "2.1.1", - "socket.io-parser": "~3.2.0" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "is-path-inside": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", + "integrity": "sha512-qhsCR/Esx4U4hg/9I19OVUAJkGWtjRYHMRgUMZE2TDdj+Ag+kttZanLupfddNyglzz50cUlmWzUaI37GDfNx/g==", "dev": true, "requires": { - "ms": "2.0.0" + "path-is-inside": "^1.0.1" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", "dev": true - } - } - }, - "socket.io-adapter": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-1.1.2.tgz", - "integrity": "sha512-WzZRUj1kUjrTIrUKpZLEzFZ1OLj5FwLlAFQs9kuZJzJi5DKdU7FsWc36SNmA8iDOtwBQyT8FkrriRM8vXLYz8g==", - "dev": true - }, - "socket.io-client": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/socket.io-client/-/socket.io-client-2.1.1.tgz", - "integrity": "sha512-jxnFyhAuFxYfjqIgduQlhzqTcOEQSn+OHKVfAxWaNWa7ecP7xSNk2Dx/3UEsDcY7NcFafxvNvKPmmO7HTwTxGQ==", - "dev": true, - "requires": { - "backo2": "1.0.2", - "base64-arraybuffer": "0.1.5", - "component-bind": "1.0.0", - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "engine.io-client": "~3.2.0", - "has-binary2": "~1.0.2", - "has-cors": "1.1.0", - "indexof": "0.0.1", - "object-component": "0.0.3", - "parseqs": "0.0.5", - "parseuri": "0.0.5", - "socket.io-parser": "~3.2.0", - "to-array": "0.1.4" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + }, + "q": { + "version": "1.4.1", + "resolved": "https://registry.npmjs.org/q/-/q-1.4.1.tgz", + "integrity": "sha512-/CdEdaw49VZVmyIDGUQKDDT53c7qBkO6g5CefWz91Ae+l4+cRtcDYwMTXh6me4O8TMldeGHG3N2Bl84V78Ywbg==", "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "ms": "2.0.0" + "glob": "^7.1.3" } }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true - } - } - }, - "socket.io-parser": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-3.2.0.tgz", - "integrity": "sha512-FYiBx7rc/KORMJlgsXysflWx/RIvtqZbyGLlHZvjfmPTPeuD/I8MaW7cfFrj5tRltICJdgwflhfZ3NVVbVLFQA==", - "dev": true, - "requires": { - "component-emitter": "1.2.1", - "debug": "~3.1.0", - "isarray": "2.0.1" - }, - "dependencies": { - "component-emitter": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/component-emitter/-/component-emitter-1.2.1.tgz", - "integrity": "sha1-E3kY1teCg/ffemt8WmPhQOaUJeY=", + }, + "source-map": { + "version": "0.5.7", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.5.7.tgz", + "integrity": "sha512-LbrmJOMUSdEVxIKvdcJzQC+nQhe8FUZQTXQy6+I75skNgn3OoQ0DZA8YnFa7gp8tqtL3KPf1kmo0R5DoApeSGQ==", "dev": true }, - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + "source-map-support": { + "version": "0.4.18", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.4.18.tgz", + "integrity": "sha512-try0/JqxPLF9nOjvSta7tVondkP5dwgyLDjVoyMDlmjugT2lRZ1OfsrYTkCd2hkDnJTKRbO/Rl3orm8vlsUzbA==", "dev": true, "requires": { - "ms": "2.0.0" + "source-map": "^0.5.6" } }, - "isarray": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-2.0.1.tgz", - "integrity": "sha1-o32U7ZzaLVmGXJ92/llu4fM4dB4=", - "dev": true - }, - "ms": { + "supports-color": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", + "integrity": "sha512-KKNVtd6pCYgPIKU4cp2733HWYCpplQhddZLBUryaAHou723x+FRzQ5Df824Fj+IyyuiQTRoub4SnIFfIcrp70g==", "dev": true - } - } - }, - "sockjs": { - "version": "0.3.19", - "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.19.tgz", - "integrity": "sha512-V48klKZl8T6MzatbLlzzRNhMepEys9Y4oGFpypBFFn1gLI/QQ9HtLLyWJNbPlwGLelOVOEijUbTTJeLLI59jLw==", - "dev": true, - "requires": { - "faye-websocket": "^0.10.0", - "uuid": "^3.0.1" - } - }, - "sockjs-client": { - "version": "1.4.0", - "resolved": "https://registry.npmjs.org/sockjs-client/-/sockjs-client-1.4.0.tgz", - "integrity": "sha512-5zaLyO8/nri5cua0VtOrFXBPK1jbL4+1cebT/mmKA1E1ZXOvJrII75bPu0l0k843G/+iAbhEqzyKr0w/eCCj7g==", - "dev": true, - "requires": { - "debug": "^3.2.5", - "eventsource": "^1.0.7", - "faye-websocket": "~0.11.1", - "inherits": "^2.0.3", - "json3": "^3.3.2", - "url-parse": "^1.4.3" - }, - "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", - "dev": true, - "requires": { - "ms": "^2.1.1" - } }, - "faye-websocket": { - "version": "0.11.3", - "resolved": "https://registry.npmjs.org/faye-websocket/-/faye-websocket-0.11.3.tgz", - "integrity": "sha512-D2y4bovYpzziGgbHYtGCMjlJM36vAl/y+xUyn1C+FVx8szd1E+86KwVw6XvYSzOP8iMpm1X0I4xJD+QtUb36OA==", - "dev": true, - "requires": { - "websocket-driver": ">=0.5.1" - } - } - } - }, - "socks": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/socks/-/socks-2.3.3.tgz", - "integrity": "sha512-o5t52PCNtVdiOvzMry7wU4aOqYWL0PeCXRWBEiJow4/i/wr+wpsJQ9awEu1EonLIqsfGd5qSgDdxEOvCdmBEpA==", - "dev": true, - "requires": { - "ip": "1.1.5", - "smart-buffer": "^4.1.0" - } - }, - "socks-proxy-agent": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-4.0.2.tgz", - "integrity": "sha512-NT6syHhI9LmuEMSK6Kd2V7gNv5KFZoLE7V5udWmn0de+3Mkj3UMA/AJPLyeNUVmElCurSHtUdM3ETpR3z770Wg==", - "dev": true, - "requires": { - "agent-base": "~4.2.1", - "socks": "~2.3.2" - }, - "dependencies": { - "agent-base": { - "version": "4.2.1", - "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-4.2.1.tgz", - "integrity": "sha512-JVwXMr9nHYTUXsBFKUqhJwvlcYU/blreOEUkhNR2eXZIvwd+c+o5V4MgDPKWnMS/56awN3TRzIP+KoPn+roQtg==", + "webdriver-manager": { + "version": "12.1.8", + "resolved": "https://registry.npmjs.org/webdriver-manager/-/webdriver-manager-12.1.8.tgz", + "integrity": "sha512-qJR36SXG2VwKugPcdwhaqcLQOD7r8P2Xiv9sfNbfZrKBnX243iAkOueX1yAmeNgIKhJ3YAT/F2gq6IiEZzahsg==", "dev": true, "requires": { - "es6-promisify": "^5.0.0" + "adm-zip": "^0.4.9", + "chalk": "^1.1.1", + "del": "^2.2.0", + "glob": "^7.0.3", + "ini": "^1.3.4", + "minimist": "^1.2.0", + "q": "^1.4.1", + "request": "^2.87.0", + "rimraf": "^2.5.2", + "semver": "^5.3.0", + "xml2js": "^0.4.17" } } } }, - "sort-keys": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/sort-keys/-/sort-keys-1.1.2.tgz", - "integrity": "sha1-RBttTTRnmPG05J6JIK37oOVD+a0=", + "prr": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/prr/-/prr-1.0.1.tgz", + "integrity": "sha512-yPw4Sng1gWghHQWj0B3ZggWUm4qVbPwPFcRG8KyxiU7J2OHFSoEHKS+EZ3fv5l1t9CyCiop6l/ZYeWbrgoQejw==", "dev": true, - "requires": { - "is-plain-obj": "^1.0.0" - } + "optional": true }, - "source-list-map": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/source-list-map/-/source-list-map-2.0.1.tgz", - "integrity": "sha512-qnQ7gVMxGNxsiL4lEuJwe/To8UnK7fAnmbGEEH8RpLouuKbeEm0lhbQVFIrNSuB+G7tVrAlVsZgETT5nljf+Iw==", + "psl": { + "version": "1.8.0", + "resolved": "https://registry.npmjs.org/psl/-/psl-1.8.0.tgz", + "integrity": "sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ==", "dev": true }, - "source-map": { - "version": "0.7.3", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", - "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", + "punycode": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==", "dev": true }, - "source-map-loader": { - "version": "0.2.4", - "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-0.2.4.tgz", - "integrity": "sha512-OU6UJUty+i2JDpTItnizPrlpOIBLmQbWMuBg9q5bVtnHACqw1tn9nNwqJLbv0/00JjnJb/Ee5g5WS5vrRv7zIQ==", - "dev": true, - "requires": { - "async": "^2.5.0", - "loader-utils": "^1.1.0" - } - }, - "source-map-resolve": { - "version": "0.5.3", - "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.5.3.tgz", - "integrity": "sha512-Htz+RnsXWk5+P2slx5Jh3Q66vhQj1Cllm0zvnaY98+NFx+Dv2CF/f5O/t8x+KaNdrdIAsruNzoh/KpialbqAnw==", - "dev": true, - "requires": { - "atob": "^2.1.2", - "decode-uri-component": "^0.2.0", - "resolve-url": "^0.2.1", - "source-map-url": "^0.4.0", - "urix": "^0.1.0" - } - }, - "source-map-support": { - "version": "0.5.16", - "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", - "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", - "dev": true, - "requires": { - "buffer-from": "^1.0.0", - "source-map": "^0.6.0" - }, - "dependencies": { - "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 - } - } - }, - "source-map-url": { - "version": "0.4.0", - "resolved": "https://registry.npmjs.org/source-map-url/-/source-map-url-0.4.0.tgz", - "integrity": "sha1-PpNdfd1zYxuXZZlW1VEo6HtQhKM=", + "qjobs": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/qjobs/-/qjobs-1.2.0.tgz", + "integrity": "sha512-8YOJEHtxpySA3fFDyCRxA+UUV+fA+rTWnuWvylOK/NCjhY+b4ocCtmu8TtsWb+mYeU+GCHf/S66KZF/AsteKHg==", "dev": true }, - "sourcemap-codec": { - "version": "1.4.8", - "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", - "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", + "qs": { + "version": "6.5.2", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz", + "integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==", "dev": true }, - "spdx-correct": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", - "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", - "dev": true, - "requires": { - "spdx-expression-parse": "^3.0.0", - "spdx-license-ids": "^3.0.0" - } - }, - "spdx-exceptions": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", - "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", + "queue-microtask": { + "version": "1.2.3", + "resolved": "https://registry.npmjs.org/queue-microtask/-/queue-microtask-1.2.3.tgz", + "integrity": "sha512-NuaNSa6flKT5JaSYQzJok04JzTL1CA6aGhv5rfLW3PgqA+M2ChpZQnAC8h8i4ZFkBS8X5RqkDBHA7r4hej3K9A==", "dev": true }, - "spdx-expression-parse": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", - "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "randombytes": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/randombytes/-/randombytes-2.1.0.tgz", + "integrity": "sha512-vYl3iOX+4CKUWuxGi9Ukhie6fsqXqS9FE2Zaic4tNFD2N2QQaXOMFbuKK4QmDHC0JO6B1Zp41J0LpT0oR68amQ==", "dev": true, "requires": { - "spdx-exceptions": "^2.1.0", - "spdx-license-ids": "^3.0.0" + "safe-buffer": "^5.1.0" } }, - "spdx-license-ids": { - "version": "3.0.7", - "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.7.tgz", - "integrity": "sha512-U+MTEOO0AiDzxwFvoa4JVnMV6mZlJKk2sBLt90s7G0Gd0Mlknc7kxEn3nuDPNZRta7O2uy8oLcZLVT+4sqNZHQ==", + "range-parser": { + "version": "1.2.1", + "resolved": "https://registry.npmjs.org/range-parser/-/range-parser-1.2.1.tgz", + "integrity": "sha512-Hrgsx+orqoygnmhFbKaHE6c296J+HTAQXoxEF6gNupROmmGJRoyzfG3ccAveqCBrwr/2yxQ5BVd/GTl5agOwSg==", "dev": true }, - "spdy": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", - "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", + "raw-body": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.4.0.tgz", + "integrity": "sha512-4Oz8DUIwdvoa5qMJelxipzi/iJIi40O5cGV1wNYp5hvZP8ZN0T+jiNkL0QepXs+EsQ9XJ8ipEDoiH70ySUJP3Q==", "dev": true, "requires": { - "debug": "^4.1.0", - "handle-thing": "^2.0.0", - "http-deceiver": "^1.2.7", - "select-hose": "^2.0.0", - "spdy-transport": "^3.0.0" + "bytes": "3.1.0", + "http-errors": "1.7.2", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + }, + "dependencies": { + "bytes": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.0.tgz", + "integrity": "sha512-zauLjrfCG+xvoyaqLoV8bLVXXNGC4JqlxFCutSDWA6fJrTo2ZuvLYTqZ7aHBLZSMOopbzwv8f+wZcVzfVTI2Dg==", + "dev": true + } } }, - "spdy-transport": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", - "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", + "read-cache": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/read-cache/-/read-cache-1.0.0.tgz", + "integrity": "sha512-Owdv/Ft7IjOgm/i0xvNDZ1LrRANRfew4b2prF3OWMQLxLfu3bS8FVhCsrSCMK4lR56Y9ya+AThoTpDCTxCmpRA==", "dev": true, "requires": { - "debug": "^4.1.0", - "detect-node": "^2.0.4", - "hpack.js": "^2.1.6", - "obuf": "^1.1.2", - "readable-stream": "^3.0.6", - "wbuf": "^1.7.3" + "pify": "^2.3.0" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "pify": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", + "integrity": "sha512-udgsAY+fTnvv7kI7aaxbqwWNb0AHiB0qBO89PZKPkoTmGOgdbrHDKD+0B2X4uTfJ/FT1R09r9gTsjUjNJotuog==", + "dev": true + } + } + }, + "read-package-json": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/read-package-json/-/read-package-json-5.0.1.tgz", + "integrity": "sha512-MALHuNgYWdGW3gKzuNMuYtcSSZbGQm94fAp16xt8VsYTLBjUSc55bLMKe6gzpWue0Tfi6CBgwCSdDAqutGDhMg==", + "dev": true, + "requires": { + "glob": "^8.0.1", + "json-parse-even-better-errors": "^2.3.1", + "normalize-package-data": "^4.0.0", + "npm-normalize-package-bin": "^1.0.1" + }, + "dependencies": { + "brace-expansion": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/brace-expansion/-/brace-expansion-2.0.1.tgz", + "integrity": "sha512-XnAIvQ8eM+kC6aULx6wuQiwVsnzsi9d3WxzV3FpWTGA19F621kwdbsAcFKXgKUHZWsy+mY6iL1sHTxWEFCytDA==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "balanced-match": "^1.0.0" + } + }, + "glob": { + "version": "8.0.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-8.0.3.tgz", + "integrity": "sha512-ull455NHSHI/Y1FqGaaYFaLGkNMMJbavMrEGFXG/PGrg6y7sutWHUHrz6gy6WEBH6akM1M414dWKCNs+IhKdiQ==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^5.0.1", + "once": "^1.3.0" + } + }, + "minimatch": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-5.1.0.tgz", + "integrity": "sha512-9TPBGGak4nHfGZsPBohm9AWg6NoT7QTCehS3BIJABslyZbzxfV78QM2Y6+i741OPZIafFAaiiEMh5OyIrJPgtg==", + "dev": true, + "requires": { + "brace-expansion": "^2.0.1" } } } }, - "speed-measure-webpack-plugin": { - "version": "1.3.1", - "resolved": "https://registry.npmjs.org/speed-measure-webpack-plugin/-/speed-measure-webpack-plugin-1.3.1.tgz", - "integrity": "sha512-qVIkJvbtS9j/UeZumbdfz0vg+QfG/zxonAjzefZrqzkr7xOncLVXkeGbTpzd1gjCBM4PmVNkWlkeTVhgskAGSQ==", + "read-package-json-fast": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/read-package-json-fast/-/read-package-json-fast-2.0.3.tgz", + "integrity": "sha512-W/BKtbL+dUjTuRL2vziuYhp76s5HZ9qQhd/dKfWIZveD0O40453QNyZhC0e63lqZrAQ4jiOapVoeJ7JrszenQQ==", "dev": true, "requires": { - "chalk": "^2.0.1" + "json-parse-even-better-errors": "^2.3.0", + "npm-normalize-package-bin": "^1.0.1" } }, - "split-string": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/split-string/-/split-string-3.1.0.tgz", - "integrity": "sha512-NzNVhJDYpwceVVii8/Hu6DKfD2G+NrQHlS/V/qgv763EYudVwEcMQNxd2lh+0VrUByXN/oJkl5grOhYWvQUYiw==", + "readable-stream": { + "version": "2.3.7", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", "dev": true, "requires": { - "extend-shallow": "^3.0.0" + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" } }, - "sprintf-js": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", - "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", - "dev": true - }, - "sshpk": { - "version": "1.16.1", - "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", - "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", + "readdirp": { + "version": "3.5.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.5.0.tgz", + "integrity": "sha512-cMhu7c/8rdhkHXWsY+osBhfSy0JikwpHK/5+imo+LpeasTF8ouErHrlYkwT0++njiyuDvc7OFY5T3ukvZ8qmFQ==", "dev": true, "requires": { - "asn1": "~0.2.3", - "assert-plus": "^1.0.0", - "bcrypt-pbkdf": "^1.0.0", - "dashdash": "^1.12.0", - "ecc-jsbn": "~0.1.1", - "getpass": "^0.1.1", - "jsbn": "~0.1.0", - "safer-buffer": "^2.0.2", - "tweetnacl": "~0.14.0" + "picomatch": "^2.2.1" } }, - "ssri": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-7.1.0.tgz", - "integrity": "sha512-77/WrDZUWocK0mvA5NTRQyveUf+wsrIc6vyrxpS8tVvYBcX215QbafrJR3KtkpskIzoFLqqNuuYQvxaMjXJ/0g==", + "recordrtc": { + "version": "5.6.2", + "resolved": "https://registry.npmjs.org/recordrtc/-/recordrtc-5.6.2.tgz", + "integrity": "sha512-1QNKKNtl7+KcwD1lyOgP3ZlbiJ1d0HtXnypUy7yq49xEERxk31PHvE9RCciDrulPCY7WJ+oz0R9hpNxgsIurGQ==" + }, + "reflect-metadata": { + "version": "0.1.13", + "resolved": "https://registry.npmjs.org/reflect-metadata/-/reflect-metadata-0.1.13.tgz", + "integrity": "sha512-Ts1Y/anZELhSsjMcU605fU9RE4Oi3p5ORujwbIKXfWa+0Zxs510Qrmrce5/Jowq3cHSZSJqBjypxmHarc+vEWg==", + "dev": true + }, + "regenerate": { + "version": "1.4.2", + "resolved": "https://registry.npmjs.org/regenerate/-/regenerate-1.4.2.tgz", + "integrity": "sha512-zrceR/XhGYU/d/opr2EKO7aRHUeiBI8qjtfHqADTwZd6Szfy16la6kqD0MIUs5z5hx6AaKa+PixpPrR289+I0A==", + "dev": true + }, + "regenerate-unicode-properties": { + "version": "10.0.1", + "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz", + "integrity": "sha512-vn5DU6yg6h8hP/2OkQo3K7uVILvY4iu0oI4t3HFa81UPkhGJwkRwM10JEc3upjdhHjs/k8GJY1sRBhk5sr69Bw==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1", - "minipass": "^3.1.1" + "regenerate": "^1.4.2" } }, - "stable": { - "version": "0.1.8", - "resolved": "https://registry.npmjs.org/stable/-/stable-0.1.8.tgz", - "integrity": "sha512-ji9qxRnOVfcuLDySj9qzhGSEFVobyt1kIOSkj1qZzYLzq7Tos/oUUWvotUPQLlrsidqsK6tBH89Bc9kL5zHA6w==", + "regenerator-runtime": { + "version": "0.13.9", + "resolved": "https://registry.npmjs.org/regenerator-runtime/-/regenerator-runtime-0.13.9.tgz", + "integrity": "sha512-p3VT+cOEgxFsRRA9X4lkI1E+k2/CtnKtU4gcxyaCUreilL/vqI6CdZ3wxVUx3UOUg+gnUOQQcRI7BmSI656MYA==", "dev": true }, - "stack-trace": { - "version": "0.0.10", - "resolved": "https://registry.npmjs.org/stack-trace/-/stack-trace-0.0.10.tgz", - "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", + "regenerator-transform": { + "version": "0.15.0", + "resolved": "https://registry.npmjs.org/regenerator-transform/-/regenerator-transform-0.15.0.tgz", + "integrity": "sha512-LsrGtPmbYg19bcPHwdtmXwbW+TqNvtY4riE3P83foeHRroMbH6/2ddFBfab3t7kbzc7v7p4wbkIecHImqt0QNg==", + "dev": true, + "requires": { + "@babel/runtime": "^7.8.4" + } + }, + "regex-parser": { + "version": "2.2.11", + "resolved": "https://registry.npmjs.org/regex-parser/-/regex-parser-2.2.11.tgz", + "integrity": "sha512-jbD/FT0+9MBU2XAZluI7w2OBs1RBi6p9M83nkoZayQXXU9e8Robt69FcZc7wU4eJD/YFTjn1JdCk3rbMJajz8Q==", "dev": true }, - "static-extend": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/static-extend/-/static-extend-0.1.2.tgz", - "integrity": "sha1-YICcOcv/VTNyJv1eC1IPNB8ftcY=", + "regexpu-core": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-5.1.0.tgz", + "integrity": "sha512-bb6hk+xWd2PEOkj5It46A16zFMs2mv86Iwpdu94la4S3sJ7C973h2dHpYKwIBGaWSO7cIRJ+UX0IeMaWcO4qwA==", "dev": true, "requires": { - "define-property": "^0.2.5", - "object-copy": "^0.1.0" - }, - "dependencies": { - "define-property": { - "version": "0.2.5", - "resolved": "https://registry.npmjs.org/define-property/-/define-property-0.2.5.tgz", - "integrity": "sha1-w1se+RjsPJkPmlvFe+BKrOxcgRY=", - "dev": true, - "requires": { - "is-descriptor": "^0.1.0" - } - } + "regenerate": "^1.4.2", + "regenerate-unicode-properties": "^10.0.1", + "regjsgen": "^0.6.0", + "regjsparser": "^0.8.2", + "unicode-match-property-ecmascript": "^2.0.0", + "unicode-match-property-value-ecmascript": "^2.0.0" } }, - "statuses": { - "version": "1.5.0", - "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", - "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", + "regjsgen": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/regjsgen/-/regjsgen-0.6.0.tgz", + "integrity": "sha512-ozE883Uigtqj3bx7OhL1KNbCzGyW2NQZPl6Hs09WTvCuZD5sTI4JY58bkbQWa/Y9hxIsvJ3M8Nbf7j54IqeZbA==", "dev": true }, - "stream-browserify": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", - "integrity": "sha512-nX6hmklHs/gr2FuxYDltq8fJA1GDlxKQCz8O/IM4atRqBH8OORmBNgfvW5gG10GT/qQ9u0CzIvr2X5Pkt6ntqg==", + "regjsparser": { + "version": "0.8.4", + "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.8.4.tgz", + "integrity": "sha512-J3LABycON/VNEu3abOviqGHuB/LOtOQj8SKmfP9anY5GfAVw/SPjwzSjxGjbZXIxbGfqTHtJw58C2Li/WkStmA==", "dev": true, "requires": { - "inherits": "~2.0.1", - "readable-stream": "^2.0.2" + "jsesc": "~0.5.0" + }, + "dependencies": { + "jsesc": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", + "integrity": "sha512-uZz5UnB7u4T9LvwmFqXii7pZSouaRPorGs5who1Ip7VO0wxanFvBL7GkM6dTHlgX+jhBApRetaWpnDabOeTcnA==", + "dev": true + } } }, - "stream-each": { - "version": "1.2.3", - "resolved": "https://registry.npmjs.org/stream-each/-/stream-each-1.2.3.tgz", - "integrity": "sha512-vlMC2f8I2u/bZGqkdfLQW/13Zihpej/7PmSiMQsbYddxuTsJp8vRe2x2FvVExZg7FaOds43ROAuFJwPR4MTZLw==", + "request": { + "version": "2.88.2", + "resolved": "https://registry.npmjs.org/request/-/request-2.88.2.tgz", + "integrity": "sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw==", "dev": true, "requires": { - "end-of-stream": "^1.1.0", - "stream-shift": "^1.0.0" + "aws-sign2": "~0.7.0", + "aws4": "^1.8.0", + "caseless": "~0.12.0", + "combined-stream": "~1.0.6", + "extend": "~3.0.2", + "forever-agent": "~0.6.1", + "form-data": "~2.3.2", + "har-validator": "~5.1.3", + "http-signature": "~1.2.0", + "is-typedarray": "~1.0.0", + "isstream": "~0.1.2", + "json-stringify-safe": "~5.0.1", + "mime-types": "~2.1.19", + "oauth-sign": "~0.9.0", + "performance-now": "^2.1.0", + "qs": "~6.5.2", + "safe-buffer": "^5.1.2", + "tough-cookie": "~2.5.0", + "tunnel-agent": "^0.6.0", + "uuid": "^3.3.2" } }, - "stream-http": { - "version": "2.8.3", - "resolved": "https://registry.npmjs.org/stream-http/-/stream-http-2.8.3.tgz", - "integrity": "sha512-+TSkfINHDo4J+ZobQLWiMouQYB+UVYFttRA94FpEzzJ7ZdqcL4uUUQ7WkdkI4DSozGmgBUE/a47L+38PenXhUw==", + "require-directory": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==", + "dev": true + }, + "require-main-filename": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", + "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", + "dev": true + }, + "requires-port": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/requires-port/-/requires-port-1.0.0.tgz", + "integrity": "sha512-KigOCHcocU3XODJxsu8i/j8T9tzT4adHiecwORRQ0ZZFcp7ahwXuRU1m+yuO90C5ZUyGeGfocHDI14M3L3yDAQ==", + "dev": true + }, + "resolve": { + "version": "1.19.0", + "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.19.0.tgz", + "integrity": "sha512-rArEXAgsBG4UgRGcynxWIWKFvh/XZCcS8UJdHhwy91zwAvCZIbcs+vAbflgBnNjYMs/i/i+/Ux6IZhML1yPvxg==", "dev": true, "requires": { - "builtin-status-codes": "^3.0.0", - "inherits": "^2.0.1", - "readable-stream": "^2.3.6", - "to-arraybuffer": "^1.0.0", - "xtend": "^4.0.0" + "is-core-module": "^2.1.0", + "path-parse": "^1.0.6" } }, - "stream-shift": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/stream-shift/-/stream-shift-1.0.1.tgz", - "integrity": "sha512-AiisoFqQ0vbGcZgQPY1cdP2I76glaVA/RauYR4G4thNFgkTqr90yXTo4LYX60Jl+sIlPNHHdGSwo01AvbKUSVQ==", + "resolve-from": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-5.0.0.tgz", + "integrity": "sha512-qYg9KP24dD5qka9J47d0aVky0N+b4fTU89LN9iDnjB5waksiC49rvMB0PrUJQGoTmH50XPiqOvAjDfaijGxYZw==", "dev": true }, - "streamroller": { - "version": "1.0.6", - "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-1.0.6.tgz", - "integrity": "sha512-3QC47Mhv3/aZNFpDDVO44qQb9gwB9QggMEE0sQmkTAwBVYdBRWISdsywlkfm5II1Q5y/pmrHflti/IgmIzdDBg==", + "resolve-url-loader": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/resolve-url-loader/-/resolve-url-loader-5.0.0.tgz", + "integrity": "sha512-uZtduh8/8srhBoMx//5bwqjQ+rfYOUq8zC9NrMUGtjBiGTtFJM42s58/36+hTqeqINcnYe08Nj3LkK9lW4N8Xg==", "dev": true, "requires": { - "async": "^2.6.2", - "date-format": "^2.0.0", - "debug": "^3.2.6", - "fs-extra": "^7.0.1", - "lodash": "^4.17.14" + "adjust-sourcemap-loader": "^4.0.0", + "convert-source-map": "^1.7.0", + "loader-utils": "^2.0.0", + "postcss": "^8.2.14", + "source-map": "0.6.1" }, "dependencies": { - "debug": { - "version": "3.2.7", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.2.7.tgz", - "integrity": "sha512-CFjzYYAi4ThfiQvizrFQevTTXHtnCqWfe7x1AhgEscTz6ZbLbfoLRLPugTQyBth6f8ZERVUSyWHFD/7Wu4t1XQ==", + "loader-utils": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/loader-utils/-/loader-utils-2.0.2.tgz", + "integrity": "sha512-TM57VeHptv569d/GKh6TAYdzKblwDNiumOdkFnejjD0XwTH87K90w3O7AiJRqdQoXygvi1VQTJTLGhJl7WqA7A==", "dev": true, "requires": { - "ms": "^2.1.1" + "big.js": "^5.2.2", + "emojis-list": "^3.0.0", + "json5": "^2.1.2" } }, - "fs-extra": { - "version": "7.0.1", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-7.0.1.tgz", - "integrity": "sha512-YJDaCJZEnBmcbw13fvdAM9AwNOJwOzrE4pqMqBq5nFiEqXUqHwlK4B+3pUw6JNvfSPtX05xFHtYy/1ni01eGCw==", - "dev": true, - "requires": { - "graceful-fs": "^4.1.2", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } + "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 } } }, - "strict-uri-encode": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", - "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=", + "restore-cursor": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/restore-cursor/-/restore-cursor-3.1.0.tgz", + "integrity": "sha512-l+sSefzHpj5qimhFSE5a8nufZYAM3sBSVMAPtYkmC+4EH2anSGaEMXSD0izRQbu9nfyQ9y5JrVmp7E8oZrUjvA==", + "dev": true, + "requires": { + "onetime": "^5.1.0", + "signal-exit": "^3.0.2" + } + }, + "retry": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/retry/-/retry-0.13.1.tgz", + "integrity": "sha512-XQBQ3I8W1Cge0Seh+6gjj03LbmRFWuoszgK9ooCpwYIrhhoO80pfq4cUkU5DkknwfOfFteRwlZ56PYOGYyFWdg==", + "dev": true + }, + "reusify": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/reusify/-/reusify-1.0.4.tgz", + "integrity": "sha512-U9nH88a3fc/ekCF1l0/UP1IosiuIjyTh7hBvXVMHYgVcfGvt897Xguj2UOLDeI5BG2m7/uwyaLVT6fbtCwTyzw==", + "dev": true + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://registry.npmjs.org/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==", "dev": true }, - "string_decoder": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", - "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", - "dev": true, - "requires": { - "safe-buffer": "~5.1.0" - } + "run-async": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.4.1.tgz", + "integrity": "sha512-tvVnVv01b8c1RrA6Ep7JkStj85Guv/YrMcwqYQnwjsAS2cTmmPGBBjAjpCW7RrSodNSoE2/qg9O4bceNvUuDgQ==" }, - "string-length": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/string-length/-/string-length-1.0.1.tgz", - "integrity": "sha1-VpcPscOFWOnnC3KL894mmsRa36w=", + "run-parallel": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/run-parallel/-/run-parallel-1.2.0.tgz", + "integrity": "sha512-5l4VyZR86LZ/lDxZTR6jqL8AFE2S0IFLMP26AbjsLVADxHdhB/c0GUsH+y39UfCi3dzz8OlQuPmnaJOMoDHQBA==", "dev": true, "requires": { - "strip-ansi": "^3.0.0" + "queue-microtask": "^1.2.2" } }, - "string-width": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", - "integrity": "sha512-nOqH59deCq9SRHlxq1Aw85Jnt4w6KvLKqWVik6oA9ZklXLNIOlqg4F2yrT1MVaTjAqvVwdfeZ7w7aCvJD7ugkw==", - "dev": true, + "rxjs": { + "version": "7.5.6", + "resolved": "https://registry.npmjs.org/rxjs/-/rxjs-7.5.6.tgz", + "integrity": "sha512-dnyv2/YsXhnm461G+R/Pe5bWP41Nm6LBXEYWI6eiFP4fiwx6WRI/CD0zbdVAudd9xwLEF2IDcKXLHit0FYjUzw==", "requires": { - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^4.0.0" - }, - "dependencies": { - "ansi-regex": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-3.0.0.tgz", - "integrity": "sha1-7QMXwyIGT3lGbAKWa922Bas32Zg=", - "dev": true - }, - "strip-ansi": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz", - "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=", - "dev": true, - "requires": { - "ansi-regex": "^3.0.0" - } - } + "tslib": "^2.1.0" } }, - "string.prototype.trimend": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", - "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==", + "dev": true + }, + "sass": { + "version": "1.51.0", + "resolved": "https://registry.npmjs.org/sass/-/sass-1.51.0.tgz", + "integrity": "sha512-haGdpTgywJTvHC2b91GSq+clTKGbtkkZmVAb82jZQN/wTy6qs8DdFm2lhEQbEwrY0QDRgSQ3xDurqM977C3noA==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "chokidar": ">=3.0.0 <4.0.0", + "immutable": "^4.0.0", + "source-map-js": ">=0.6.2 <2.0.0" } }, - "string.prototype.trimstart": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", - "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", + "sass-loader": { + "version": "12.6.0", + "resolved": "https://registry.npmjs.org/sass-loader/-/sass-loader-12.6.0.tgz", + "integrity": "sha512-oLTaH0YCtX4cfnJZxKSLAyglED0naiYfNG1iXfU5w1LNZ+ukoA5DtyDIN5zmKVZwYNJP4KRc5Y3hkWga+7tYfA==", "dev": true, "requires": { - "call-bind": "^1.0.0", - "define-properties": "^1.1.3" + "klona": "^2.0.4", + "neo-async": "^2.6.2" } }, - "strip-ansi": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", - "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "saucelabs": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/saucelabs/-/saucelabs-1.5.0.tgz", + "integrity": "sha512-jlX3FGdWvYf4Q3LFfFWS1QvPg3IGCGWxIc8QBFdPTbpTJnt/v17FHXYVAn7C8sHf1yUXo2c7yIM0isDryfYtHQ==", "dev": true, "requires": { - "ansi-regex": "^2.0.0" + "https-proxy-agent": "^2.2.1" } }, - "strip-bom": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-3.0.0.tgz", - "integrity": "sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM=", - "dev": true - }, - "strip-eof": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/strip-eof/-/strip-eof-1.0.0.tgz", - "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", - "dev": true - }, - "strip-json-comments": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/strip-json-comments/-/strip-json-comments-2.0.1.tgz", - "integrity": "sha1-PFMZQukIwml8DsNEhYwobHygpgo=", + "sax": { + "version": "1.2.4", + "resolved": "https://registry.npmjs.org/sax/-/sax-1.2.4.tgz", + "integrity": "sha512-NqVDv9TpANUjFm0N8uM5GxL36UgKi9/atZw+x7YFnQ8ckwFGKrl4xX4yWtrey3UJm5nP1kUbnYgLopqWNSRhWw==", "dev": true }, - "style-loader": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/style-loader/-/style-loader-1.0.0.tgz", - "integrity": "sha512-B0dOCFwv7/eY31a5PCieNwMgMhVGFe9w+rh7s/Bx8kfFkrth9zfTZquoYvdw8URgiqxObQKcpW51Ugz1HjfdZw==", + "schema-utils": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", + "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", "dev": true, "requires": { - "loader-utils": "^1.2.3", - "schema-utils": "^2.0.1" + "@types/json-schema": "^7.0.5", + "ajv": "^6.12.4", + "ajv-keywords": "^3.5.2" }, "dependencies": { "ajv": { @@ -34285,1548 +10028,1146 @@ "json-schema-traverse": "^0.4.1", "uri-js": "^4.2.2" } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", - "dev": true, - "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" - } } } }, - "stylehacks": { - "version": "4.0.3", - "resolved": "https://registry.npmjs.org/stylehacks/-/stylehacks-4.0.3.tgz", - "integrity": "sha512-7GlLk9JwlElY4Y6a/rmbH2MhVlTyVmiJd1PfTCqFaIBEGMYNsrO/v3SeGTdhBThLg4Z+NbOk/qFMwCa+J+3p/g==", + "select-hose": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/select-hose/-/select-hose-2.0.0.tgz", + "integrity": "sha512-mEugaLK+YfkijB4fx0e6kImuJdCIt2LxCRcbEYPqRGCs4F2ogyfZU5IAZRdjCP8JPq2AtdNoC/Dux63d9Kiryg==", + "dev": true + }, + "selenium-webdriver": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/selenium-webdriver/-/selenium-webdriver-3.6.0.tgz", + "integrity": "sha512-WH7Aldse+2P5bbFBO4Gle/nuQOdVwpHMTL6raL3uuBj/vPG07k6uzt3aiahu352ONBr5xXh0hDlM3LhtXPOC4Q==", "dev": true, "requires": { - "browserslist": "^4.0.0", - "postcss": "^7.0.0", - "postcss-selector-parser": "^3.0.0" + "jszip": "^3.1.3", + "rimraf": "^2.5.4", + "tmp": "0.0.30", + "xml2js": "^0.4.17" }, "dependencies": { - "postcss-selector-parser": { - "version": "3.1.2", - "resolved": "https://registry.npmjs.org/postcss-selector-parser/-/postcss-selector-parser-3.1.2.tgz", - "integrity": "sha512-h7fJ/5uWuRVyOtkO45pnt1Ih40CEleeyCHzipqAZO2e5H20g25Y48uYnFUiShvY4rZWNJ/Bib/KVPmanaCtOhA==", + "rimraf": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", + "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", "dev": true, "requires": { - "dot-prop": "^5.2.0", - "indexes-of": "^1.0.1", - "uniq": "^1.0.1" + "glob": "^7.1.3" } - } - } - }, - "stylus": { - "version": "0.54.7", - "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.54.7.tgz", - "integrity": "sha512-Yw3WMTzVwevT6ZTrLCYNHAFmanMxdylelL3hkWNgPMeTCpMwpV3nXjpOHuBXtFv7aiO2xRuQS6OoAdgkNcSNug==", - "dev": true, - "requires": { - "css-parse": "~2.0.0", - "debug": "~3.1.0", - "glob": "^7.1.3", - "mkdirp": "~0.5.x", - "safer-buffer": "^2.1.2", - "sax": "~1.2.4", - "semver": "^6.0.0", - "source-map": "^0.7.3" - }, - "dependencies": { - "debug": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/debug/-/debug-3.1.0.tgz", - "integrity": "sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g==", + }, + "tmp": { + "version": "0.0.30", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.30.tgz", + "integrity": "sha512-HXdTB7lvMwcb55XFfrTM8CPr/IYREk4hVBFaQ4b/6nInrluSL86hfHm7vu0luYKCfyBZp2trCjpc8caC3vVM3w==", "dev": true, "requires": { - "ms": "2.0.0" + "os-tmpdir": "~1.0.1" } - }, - "ms": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", - "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=", - "dev": true } } }, - "stylus-loader": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-3.0.2.tgz", - "integrity": "sha512-+VomPdZ6a0razP+zinir61yZgpw2NfljeSsdUF5kJuEzlo3khXhY19Fn6l8QQz1GRJGtMCo8nG5C04ePyV7SUA==", - "dev": true, - "requires": { - "loader-utils": "^1.0.2", - "lodash.clonedeep": "^4.5.0", - "when": "~3.6.x" - } - }, - "superstatic": { - "version": "7.1.0", - "resolved": "https://registry.npmjs.org/superstatic/-/superstatic-7.1.0.tgz", - "integrity": "sha512-yBU8iw07nM3Bu4jFc8lnKwLey0cj61OaGmFJZcYC2X+kEpXVmXzERJ3OTAHZAESe1OTeNIuWadt81U5IULGGAA==", + "selfsigned": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/selfsigned/-/selfsigned-2.0.1.tgz", + "integrity": "sha512-LmME957M1zOsUhG+67rAjKfiWFox3SBxE/yymatMZsAx+oMrJ0YQ8AToOnyCm7xbeg2ep37IHLxdu0o2MavQOQ==", "dev": true, "requires": { - "basic-auth-connect": "^1.0.0", - "chalk": "^1.1.3", - "compare-semver": "^1.0.0", - "compression": "^1.7.0", - "connect": "^3.6.2", - "destroy": "^1.0.4", - "fast-url-parser": "^1.1.3", - "fs-extra": "^8.1.0", - "glob-slasher": "^1.0.1", - "home-dir": "^1.0.0", - "is-url": "^1.2.2", - "join-path": "^1.1.1", - "lodash": "^4.17.19", - "mime-types": "^2.1.16", - "minimatch": "^3.0.4", - "morgan": "^1.8.2", - "nash": "^3.0.0", - "on-finished": "^2.2.0", - "on-headers": "^1.0.0", - "path-to-regexp": "^1.8.0", - "re2": "^1.15.8", - "router": "^1.3.1", - "rsvp": "^4.8.5", - "string-length": "^1.0.0", - "update-notifier": "^4.1.1" + "node-forge": "^1" }, "dependencies": { - "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" - } - }, - "fs-extra": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", - "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", - "dev": true, - "requires": { - "graceful-fs": "^4.2.0", - "jsonfile": "^4.0.0", - "universalify": "^0.1.0" - } - }, - "isarray": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/isarray/-/isarray-0.0.1.tgz", - "integrity": "sha1-ihis/Kmo9Bd+Cav8YDiTmwXR7t8=", - "dev": true - }, - "path-to-regexp": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/path-to-regexp/-/path-to-regexp-1.8.0.tgz", - "integrity": "sha512-n43JRhlUKUAlibEJhPeir1ncUID16QnEjNpwzNdO3Lm4ywrBpBZ5oLD0I6br9evr1Y9JTqwRtAh7JLoOzAQdVA==", - "dev": true, - "requires": { - "isarray": "0.0.1" - } - }, - "supports-color": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz", - "integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=", + "node-forge": { + "version": "1.3.1", + "resolved": "https://registry.npmjs.org/node-forge/-/node-forge-1.3.1.tgz", + "integrity": "sha512-dPEtOeMvF9VMcYV/1Wb8CPoVAXtp6MKMlcbAt4ddqmGqUJ6fQZFXkNZNkNlfevtNkGtaSoXf/vNNNSvgrdXwtA==", "dev": true } } }, - "supports-color": { - "version": "5.5.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", - "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" }, - "supports-hyperlinks": { + "semver-dsl": { "version": "1.0.1", - "resolved": "https://registry.npmjs.org/supports-hyperlinks/-/supports-hyperlinks-1.0.1.tgz", - "integrity": "sha512-HHi5kVSefKaJkGYXbDuKbUGRVxqnWGn3J2e39CYcNJEfWciGq2zYtOhXLTlvrOZW1QU7VX67w7fMmWafHX9Pfw==", + "resolved": "https://registry.npmjs.org/semver-dsl/-/semver-dsl-1.0.1.tgz", + "integrity": "sha512-e8BOaTo007E3dMuQQTnPdalbKTABKNS7UxoBIDnwOqRa+QwMrCPjynB8zAlPF6xlqUfdLPPLIJ13hJNmhtq8Ng==", "dev": true, "requires": { - "has-flag": "^2.0.0", - "supports-color": "^5.0.0" + "semver": "^5.3.0" }, "dependencies": { - "has-flag": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-2.0.0.tgz", - "integrity": "sha1-6CB68cx7MNRGzHC3NLXovhj4jVE=", + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", "dev": true } } }, - "svg.draggable.js": { - "version": "2.2.2", - "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", - "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", - "requires": { - "svg.js": "^2.0.1" - } - }, - "svg.easing.js": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", - "integrity": "sha1-iqmUawqOJ4V6XEChDrpAkeVpHxI=", - "requires": { - "svg.js": ">=2.3.x" - } - }, - "svg.filter.js": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", - "integrity": "sha1-kQCOFROJ3ZIwd5/L5uLJo2LRwgM=", - "requires": { - "svg.js": "^2.2.5" - } - }, - "svg.js": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", - "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" - }, - "svg.pathmorphing.js": { - "version": "0.1.3", - "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", - "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", - "requires": { - "svg.js": "^2.4.0" - } - }, - "svg.resize.js": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", - "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", - "requires": { - "svg.js": "^2.6.5", - "svg.select.js": "^2.1.2" - }, - "dependencies": { - "svg.select.js": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", - "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", - "requires": { - "svg.js": "^2.2.5" - } - } - } - }, - "svg.select.js": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", - "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", - "requires": { - "svg.js": "^2.6.5" - } - }, - "svgo": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/svgo/-/svgo-1.3.2.tgz", - "integrity": "sha512-yhy/sQYxR5BkC98CY7o31VGsg014AKLEPxdfhora76l36hD9Rdy5NZA/Ocn6yayNPgSamYdtX2rFJdcv07AYVw==", + "serialize-javascript": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-6.0.0.tgz", + "integrity": "sha512-Qr3TosvguFt8ePWqsvRfrKyQXIiW+nGbYpy8XK24NQHE83caxWt+mIymTT19DGFbNWNLfEwsrkSmN64lVWB9ag==", "dev": true, "requires": { - "chalk": "^2.4.1", - "coa": "^2.0.2", - "css-select": "^2.0.0", - "css-select-base-adapter": "^0.1.1", - "css-tree": "1.0.0-alpha.37", - "csso": "^4.0.2", - "js-yaml": "^3.13.1", - "mkdirp": "~0.5.1", - "object.values": "^1.1.0", - "sax": "~1.2.4", - "stable": "^0.1.8", - "unquote": "~1.1.1", - "util.promisify": "~1.0.0" + "randombytes": "^2.1.0" } }, - "sweetalert2": { - "version": "10.13.3", - "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-10.13.3.tgz", - "integrity": "sha512-kSvTkXvc59+vPf9CfZ/wc/uvFkccxoOMLK1aUibN0mXU4hbYg/NylBTlmfvuUjJQ5SWL3X6s8w7AG5croH8U1w==" - }, - "symbol-observable": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", - "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==", - "dev": true - }, - "tapable": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/tapable/-/tapable-1.1.3.tgz", - "integrity": "sha512-4WK/bYZmj8xLr+HUCODHGF1ZFzsYffasLUgEiMBY4fgtltdO6B4WJtlSbPaDTLpYTcGVwM2qLnFTICEcNxs3kA==", - "dev": true - }, - "tar": { - "version": "4.4.13", - "resolved": "https://registry.npmjs.org/tar/-/tar-4.4.13.tgz", - "integrity": "sha512-w2VwSrBoHa5BsSyH+KxEqeQBAllHhccyMFVHtGtdMpF4W7IRWfZjFiQceJPChOeTsSDVUpER2T8FA93pr0L+QA==", + "serve-index": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/serve-index/-/serve-index-1.9.1.tgz", + "integrity": "sha512-pXHfKNP4qujrtteMrSBb0rc8HJ9Ms/GrXwcUtUtD5s4ewDJI8bT3Cz2zTVRMKtri49pLx2e0Ya8ziP5Ya2pZZw==", "dev": true, "requires": { - "chownr": "^1.1.1", - "fs-minipass": "^1.2.5", - "minipass": "^2.8.6", - "minizlib": "^1.2.1", - "mkdirp": "^0.5.0", - "safe-buffer": "^5.1.2", - "yallist": "^3.0.3" + "accepts": "~1.3.4", + "batch": "0.6.1", + "debug": "2.6.9", + "escape-html": "~1.0.3", + "http-errors": "~1.6.2", + "mime-types": "~2.1.17", + "parseurl": "~1.3.2" }, "dependencies": { - "fs-minipass": { - "version": "1.2.7", - "resolved": "https://registry.npmjs.org/fs-minipass/-/fs-minipass-1.2.7.tgz", - "integrity": "sha512-GWSSJGFy4e9GUeCcbIkED+bgAoFyj7XF1mV8rma3QW4NIqX9Kyx79N/PF61H5udOV3aY1IaMLs6pGbH71nlCTA==", + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", "dev": true, "requires": { - "minipass": "^2.6.0" + "ms": "2.0.0" } }, - "minipass": { - "version": "2.9.0", - "resolved": "https://registry.npmjs.org/minipass/-/minipass-2.9.0.tgz", - "integrity": "sha512-wxfUjg9WebH+CUDX/CdbRlh5SmfZiy/hpkxaRI16Y9W56Pa75sWgd/rvFilSgrauD9NyFymP/+JFV3KwzIsJeg==", + "http-errors": { + "version": "1.6.3", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-1.6.3.tgz", + "integrity": "sha512-lks+lVC8dgGyh97jxvxeYTWQFvh4uw4yC12gVl63Cg30sjPX4wuGcdkICVXDAESr6OJGjqGA8Iz5mkeN6zlD7A==", "dev": true, "requires": { - "safe-buffer": "^5.1.2", - "yallist": "^3.0.0" + "depd": "~1.1.2", + "inherits": "2.0.3", + "setprototypeof": "1.1.0", + "statuses": ">= 1.4.0 < 2" } }, - "yallist": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-3.1.1.tgz", - "integrity": "sha512-a4UGQaWPH59mOXUYnAG2ewncQS4i4F43Tv3JoAM+s2VDAmS9NsK8GpDMLrCHPksFT7h3K6TOoUNn2pb7RoXx4g==", + "inherits": { + "version": "2.0.3", + "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", + "integrity": "sha512-x00IRNXNy63jwGkJmzPigoySHbaqpNuzKbBOmzK+g2OdZpQ9w+sxCN+VSB3ja7IAge2OP2qpfxTjeNcyjmW1uw==", + "dev": true + }, + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "setprototypeof": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.0.tgz", + "integrity": "sha512-BvE/TwpZX4FXExxOxZyRGQQv651MSwmWKZGqvmPcRIjDqWub67kTKuIMx43cZZrS/cBBzwBcNDWoFxt2XEFIpQ==", "dev": true } } }, - "tar-stream": { - "version": "2.2.0", - "resolved": "https://registry.npmjs.org/tar-stream/-/tar-stream-2.2.0.tgz", - "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "set-blocking": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=", + "dev": true + }, + "setimmediate": { + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", + "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", + "dev": true + }, + "setprototypeof": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.1.1.tgz", + "integrity": "sha512-JvdAWfbXeIGaZ9cILp38HntZSFSo3mWg6xGcJJsd+d4aRMOqauag1C63dJfDw7OaMYwEbHMOxEZ1lqVRYP2OAw==", + "dev": true + }, + "shallow-clone": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/shallow-clone/-/shallow-clone-3.0.1.tgz", + "integrity": "sha512-/6KqX+GVUdqPuPPd2LxDDxzX6CAbjJehAAOKlNpqqUpAqPM6HeL8f+o3a+JsyGjn2lv0WY8UsTgUJjU9Ok55NA==", + "dev": true, + "requires": { + "kind-of": "^6.0.2" + } + }, + "side-channel": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/side-channel/-/side-channel-1.0.4.tgz", + "integrity": "sha512-q5XPytqFEIKHkGdiMIrY10mvLRvnQh42/+GoBlFW3b2LXLE2xxJpZFdm94we0BaoV3RwJyGqg5wS7epxTv0Zvw==", + "dev": true, + "requires": { + "call-bind": "^1.0.0", + "get-intrinsic": "^1.0.2", + "object-inspect": "^1.9.0" + } + }, + "signal-exit": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/signal-exit/-/signal-exit-3.0.3.tgz", + "integrity": "sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA==", + "dev": true + }, + "slash": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", + "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", + "dev": true + }, + "smart-buffer": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/smart-buffer/-/smart-buffer-4.2.0.tgz", + "integrity": "sha512-94hK0Hh8rPqQl2xXc3HsaBoOXKV20MToPkcXvwbISWLEs+64sBq5kFgn2kJDHb1Pry9yrP0dxrCI9RRci7RXKg==", + "dev": true + }, + "socket.io": { + "version": "4.5.1", + "resolved": "https://registry.npmjs.org/socket.io/-/socket.io-4.5.1.tgz", + "integrity": "sha512-0y9pnIso5a9i+lJmsCdtmTTgJFFSvNQKDnPQRz28mGNnxbmqYg2QPtJTLFxhymFZhAIn50eHAKzJeiNaKr+yUQ==", "dev": true, "requires": { - "bl": "^4.0.3", - "end-of-stream": "^1.4.1", - "fs-constants": "^1.0.0", - "inherits": "^2.0.3", - "readable-stream": "^3.1.1" + "accepts": "~1.3.4", + "base64id": "~2.0.0", + "debug": "~4.3.2", + "engine.io": "~6.2.0", + "socket.io-adapter": "~2.4.0", + "socket.io-parser": "~4.0.4" }, "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" + "ms": "2.1.2" } } } }, - "tcp-port-used": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/tcp-port-used/-/tcp-port-used-1.0.2.tgz", - "integrity": "sha512-l7ar8lLUD3XS1V2lfoJlCBaeoaWo/2xfYt81hM7VlvR4RrMVFqfmzfhLVk40hAb368uitje5gPtBRL1m/DGvLA==", + "socket.io-adapter": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/socket.io-adapter/-/socket.io-adapter-2.4.0.tgz", + "integrity": "sha512-W4N+o69rkMEGVuk2D/cvca3uYsvGlMwsySWV447y99gUPghxq42BxqLNMndb+a1mm/5/7NeXVQS7RLa2XyXvYg==", + "dev": true + }, + "socket.io-parser": { + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/socket.io-parser/-/socket.io-parser-4.0.5.tgz", + "integrity": "sha512-sNjbT9dX63nqUFIOv95tTVm6elyIU4RvB1m8dOeZt+IgWwcWklFDOdmGcfo3zSiRsnR/3pJkjY5lfoGqEe4Eig==", "dev": true, "requires": { - "debug": "4.3.1", - "is2": "^2.0.6" + "@types/component-emitter": "^1.2.10", + "component-emitter": "~1.3.0", + "debug": "~4.3.1" } }, - "term-size": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.1.tgz", - "integrity": "sha512-wK0Ri4fOGjv/XPy8SBHZChl8CM7uMc5VML7SqiQ0zG7+J5Vr+RMQDoHa2CNT6KHUnTGIXH34UDMkPzAUyapBZg==", - "dev": true - }, - "terser": { - "version": "4.5.1", - "resolved": "https://registry.npmjs.org/terser/-/terser-4.5.1.tgz", - "integrity": "sha512-lH9zLIbX8PRBEFCTvfHGCy0s9HEKnNso1Dx9swSopF3VUnFLB8DpQ61tHxoofovNC/sG0spajJM3EIIRSTByiQ==", + "sockjs": { + "version": "0.3.24", + "resolved": "https://registry.npmjs.org/sockjs/-/sockjs-0.3.24.tgz", + "integrity": "sha512-GJgLTZ7vYb/JtPSSZ10hsOYIvEYsjbNU+zPdIHcUaWVNUEPivzxku31865sSSud0Da0W4lEeOPlmw93zLQchuQ==", "dev": true, "requires": { - "commander": "^2.20.0", - "source-map": "~0.6.1", - "source-map-support": "~0.5.12" + "faye-websocket": "^0.11.3", + "uuid": "^8.3.2", + "websocket-driver": "^0.7.4" }, "dependencies": { - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "uuid": { + "version": "8.3.2", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-8.3.2.tgz", + "integrity": "sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg==", "dev": true } } }, - "terser-webpack-plugin": { - "version": "2.3.3", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-2.3.3.tgz", - "integrity": "sha512-gWHkaGzGYjmDoYxksFZynWTzvXOAjQ5dd7xuTMYlv4zpWlLSb6v0QLSZjELzP5dMs1ox30O1BIPs9dgqlMHuLQ==", + "socks": { + "version": "2.6.2", + "resolved": "https://registry.npmjs.org/socks/-/socks-2.6.2.tgz", + "integrity": "sha512-zDZhHhZRY9PxRruRMR7kMhnf3I8hDs4S3f9RecfnGxvcBHQcKcIH/oUcEWffsfl1XxdYlA7nnlGbbTvPz9D8gA==", "dev": true, "requires": { - "cacache": "^13.0.1", - "find-cache-dir": "^3.2.0", - "jest-worker": "^25.1.0", - "p-limit": "^2.2.2", - "schema-utils": "^2.6.4", - "serialize-javascript": "^2.1.2", - "source-map": "^0.6.1", - "terser": "^4.4.3", - "webpack-sources": "^1.4.3" + "ip": "^1.1.5", + "smart-buffer": "^4.2.0" + } + }, + "socks-proxy-agent": { + "version": "6.2.1", + "resolved": "https://registry.npmjs.org/socks-proxy-agent/-/socks-proxy-agent-6.2.1.tgz", + "integrity": "sha512-a6KW9G+6B3nWZ1yB8G7pJwL3ggLy1uTzKAgCb7ttblwqdz9fMGJUuTy3uFzEP48FAs9FLILlmzDlE2JJhVQaXQ==", + "dev": true, + "requires": { + "agent-base": "^6.0.2", + "debug": "^4.3.3", + "socks": "^2.6.2" }, "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" - } - }, - "fast-deep-equal": { - "version": "3.1.3", - "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", - "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==", - "dev": true - }, - "find-cache-dir": { - "version": "3.3.1", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-3.3.1.tgz", - "integrity": "sha512-t2GDMt3oGC/v+BMwzmllWDuJF/xcDtE5j/fCGbqDD7OLuJkj0cfh1YSA5VKPvwMeLFLNDBkwOKZ2X85jGLVftQ==", - "dev": true, - "requires": { - "commondir": "^1.0.1", - "make-dir": "^3.0.2", - "pkg-dir": "^4.1.0" - } - }, - "find-up": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", - "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", - "dev": true, - "requires": { - "locate-path": "^5.0.0", - "path-exists": "^4.0.0" - } - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "jest-worker": { - "version": "25.5.0", - "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-25.5.0.tgz", - "integrity": "sha512-/dsSmUkIy5EBGfv/IjjqmFxrNAUpBERfGs1oHROyD7yxjG/w+t0GOJDX8O1k32ySmd7+a5IhnJU2qQFcJ4n1vw==", - "dev": true, - "requires": { - "merge-stream": "^2.0.0", - "supports-color": "^7.0.0" - } - }, - "locate-path": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", - "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", - "dev": true, - "requires": { - "p-locate": "^4.1.0" - } - }, - "make-dir": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.1.0.tgz", - "integrity": "sha512-g3FeP20LNwhALb/6Cz6Dd4F2ngze0jz7tbzrD2wAV+o9FeNHe4rL+yK2md0J/fiSf1sa1ADhXqi5+oVwOM/eGw==", - "dev": true, - "requires": { - "semver": "^6.0.0" - } - }, - "p-locate": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", - "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", - "dev": true, - "requires": { - "p-limit": "^2.2.0" - } - }, - "path-exists": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", - "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", - "dev": true - }, - "pkg-dir": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-4.2.0.tgz", - "integrity": "sha512-HRDzbaKjC+AOWVXxAU/x54COGeIv9eb+6CkDSQoNTt4XyWoIJvuPsXizxu/Fr23EiekbtZwmh1IcIG/l/a10GQ==", - "dev": true, - "requires": { - "find-up": "^4.0.0" - } - }, - "schema-utils": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-2.7.1.tgz", - "integrity": "sha512-SHiNtMOUGWBQJwzISiVYKu82GiV4QYGePp3odlY1tuKO7gPtphAT5R/py0fA6xtbgLL/RvtJZnU9b8s0F1q0Xg==", + "agent-base": { + "version": "6.0.2", + "resolved": "https://registry.npmjs.org/agent-base/-/agent-base-6.0.2.tgz", + "integrity": "sha512-RZNwNclF7+MS/8bDg70amg32dyeZGZxiDuQmZxKLAlQjr3jGyLx+4Kkk58UO7D2QdgFIQCovuSuZESne6RG6XQ==", "dev": true, "requires": { - "@types/json-schema": "^7.0.5", - "ajv": "^6.12.4", - "ajv-keywords": "^3.5.2" + "debug": "4" } }, - "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 - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "ms": "2.1.2" } } } }, - "text-hex": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", - "integrity": "sha512-uuVGNWzgJ4yhRaNSiubPY7OjISw4sw4E5Uv0wbjp+OzcbmVU/rsT8ujgcXJhn9ypzsgr5vlzpPqP+MBBKcGvbg==", + "source-map": { + "version": "0.7.3", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.7.3.tgz", + "integrity": "sha512-CkCj6giN3S+n9qrYiBTX5gystlENnRW5jZeNLHpe6aue+SrHcG5VYwujhW9s4dY31mEGsxBDrHR6oI69fTXsaQ==", "dev": true }, - "through": { - "version": "2.3.8", - "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", - "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "source-map-js": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/source-map-js/-/source-map-js-1.0.2.tgz", + "integrity": "sha512-R0XvVJ9WusLiqTCEiGCmICCMplcCkIwwR11mOSD9CR5u+IXYdiseeEuXCVAjS54zqwkLcPNnmU4OeJ6tUrWhDw==", "dev": true }, - "through2": { - "version": "2.0.5", - "resolved": "https://registry.npmjs.org/through2/-/through2-2.0.5.tgz", - "integrity": "sha512-/mrRod8xqpA+IHSLyGCQ2s8SPHiCDEeQJSep1jqLYeEUClOFG2Qsh+4FU6G9VeqpZnGW/Su8LQGc4YKni5rYSQ==", + "source-map-loader": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/source-map-loader/-/source-map-loader-3.0.1.tgz", + "integrity": "sha512-Vp1UsfyPvgujKQzi4pyDiTOnE3E4H+yHvkVRN3c/9PJmQS4CQJExvcDvaX/D+RV+xQben9HJ56jMJS3CgUeWyA==", "dev": true, "requires": { - "readable-stream": "~2.3.6", - "xtend": "~4.0.1" + "abab": "^2.0.5", + "iconv-lite": "^0.6.3", + "source-map-js": "^1.0.1" + }, + "dependencies": { + "iconv-lite": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.3.tgz", + "integrity": "sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw==", + "dev": true, + "requires": { + "safer-buffer": ">= 2.1.2 < 3.0.0" + } + } } }, - "thunky": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", - "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", - "dev": true - }, - "timers-browserify": { - "version": "2.0.12", - "resolved": "https://registry.npmjs.org/timers-browserify/-/timers-browserify-2.0.12.tgz", - "integrity": "sha512-9phl76Cqm6FhSX9Xe1ZUAMLtm1BLkKj2Qd5ApyWkXzsMRaA7dgr81kf4wJmQf/hAvg8EEyJxDo3du/0KlhPiKQ==", + "source-map-resolve": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/source-map-resolve/-/source-map-resolve-0.6.0.tgz", + "integrity": "sha512-KXBr9d/fO/bWo97NXsPIAW1bFSBOuCnjbNTBMO7N59hsv5i9yzRDfcYwwt0l04+VqnKC+EwzvJZIP/qkuMgR/w==", "dev": true, "requires": { - "setimmediate": "^1.0.4" + "atob": "^2.1.2", + "decode-uri-component": "^0.2.0" } }, - "timers-ext": { - "version": "0.1.7", - "resolved": "https://registry.npmjs.org/timers-ext/-/timers-ext-0.1.7.tgz", - "integrity": "sha512-b85NUNzTSdodShTIbky6ZF02e8STtVVfD+fu4aXXShEELpozH+bCpJLYMPZbsABN2wDH7fJpqIoXxJpzbf0NqQ==", + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", "dev": true, "requires": { - "es5-ext": "~0.10.46", - "next-tick": "1" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + }, + "dependencies": { + "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 + } } }, - "timsort": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/timsort/-/timsort-0.3.0.tgz", - "integrity": "sha1-QFQRqOfmM5/mTbmiNN4R3DHgK9Q=", + "sourcemap-codec": { + "version": "1.4.8", + "resolved": "https://registry.npmjs.org/sourcemap-codec/-/sourcemap-codec-1.4.8.tgz", + "integrity": "sha512-9NykojV5Uih4lgo5So5dtw+f0JgJX30KCNI8gwhz2J9A15wD0Ml6tjHKwf6fTSa6fAdVBdZeNOs9eJ71qCk8vA==", "dev": true }, - "tmp": { - "version": "0.0.33", - "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", - "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", "dev": true, "requires": { - "os-tmpdir": "~1.0.2" + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" } }, - "to-array": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/to-array/-/to-array-0.1.4.tgz", - "integrity": "sha1-F+bBH3PdTz10zaek/zI46a2b+JA=", - "dev": true - }, - "to-arraybuffer": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/to-arraybuffer/-/to-arraybuffer-1.0.1.tgz", - "integrity": "sha1-fSKbH8xjfkZsoIEYCDanqr/4P0M=", - "dev": true - }, - "to-fast-properties": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", - "integrity": "sha1-3F5pjL0HkmW8c+A3doGk5Og/YW4=", + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://registry.npmjs.org/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==", "dev": true }, - "to-object-path": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/to-object-path/-/to-object-path-0.3.0.tgz", - "integrity": "sha1-KXWIt7Dn4KwI4E5nL4XB9JmeF68=", + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", "dev": true, "requires": { - "kind-of": "^3.0.2" - }, - "dependencies": { - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "requires": { - "is-buffer": "^1.1.5" - } - } + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" } }, - "to-readable-stream": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/to-readable-stream/-/to-readable-stream-1.0.0.tgz", - "integrity": "sha512-Iq25XBt6zD5npPhlLVXGFN3/gyR2/qODcKNNyTMd4vbm39HUaOiAM4PMq0eMVC/Tkxz+Zjdsc55g9yyz+Yq00Q==", + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://registry.npmjs.org/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==", "dev": true }, - "to-regex": { - "version": "3.0.2", - "resolved": "https://registry.npmjs.org/to-regex/-/to-regex-3.0.2.tgz", - "integrity": "sha512-FWtleNAtZ/Ki2qtqej2CXTOayOH9bHDQF+Q48VpWyDXjbYxA4Yz8iDB31zXOBUlOHHKidDbqGVrTUvQMPmBGBw==", + "spdy": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/spdy/-/spdy-4.0.2.tgz", + "integrity": "sha512-r46gZQZQV+Kl9oItvl1JZZqJKGr+oEkB08A6BzkiR7593/7IbtuncXHd2YoYeTsG4157ZssMu9KYvUHLcjcDoA==", "dev": true, "requires": { - "define-property": "^2.0.2", - "extend-shallow": "^3.0.2", - "regex-not": "^1.0.2", - "safe-regex": "^1.1.0" + "debug": "^4.1.0", + "handle-thing": "^2.0.0", + "http-deceiver": "^1.2.7", + "select-hose": "^2.0.0", + "spdy-transport": "^3.0.0" } }, - "to-regex-range": { - "version": "5.0.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", - "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "spdy-transport": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/spdy-transport/-/spdy-transport-3.0.0.tgz", + "integrity": "sha512-hsLVFE5SjA6TCisWeJXFKniGGOpBgMLmerfO2aCyCU5s7nJ/rpAepqmFifv/GCbSbueEeAJJnmSQ2rKC/g8Fcw==", "dev": true, "requires": { - "is-number": "^7.0.0" + "debug": "^4.1.0", + "detect-node": "^2.0.4", + "hpack.js": "^2.1.6", + "obuf": "^1.1.2", + "readable-stream": "^3.0.6", + "wbuf": "^1.7.3" + }, + "dependencies": { + "readable-stream": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "dev": true, + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + } } }, - "toidentifier": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", - "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", + "sprintf-js": { + "version": "1.0.3", + "resolved": "https://registry.npmjs.org/sprintf-js/-/sprintf-js-1.0.3.tgz", + "integrity": "sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw=", "dev": true }, - "tough-cookie": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", - "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", + "sshpk": { + "version": "1.16.1", + "resolved": "https://registry.npmjs.org/sshpk/-/sshpk-1.16.1.tgz", + "integrity": "sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg==", "dev": true, "requires": { - "psl": "^1.1.28", - "punycode": "^2.1.1" + "asn1": "~0.2.3", + "assert-plus": "^1.0.0", + "bcrypt-pbkdf": "^1.0.0", + "dashdash": "^1.12.0", + "ecc-jsbn": "~0.1.1", + "getpass": "^0.1.1", + "jsbn": "~0.1.0", + "safer-buffer": "^2.0.2", + "tweetnacl": "~0.14.0" } }, - "toxic": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/toxic/-/toxic-1.0.1.tgz", - "integrity": "sha512-WI3rIGdcaKULYg7KVoB0zcjikqvcYYvcuT6D89bFPz2rVR0Rl0PK6x8/X62rtdLtBKIE985NzVf/auTtGegIIg==", + "ssri": { + "version": "9.0.1", + "resolved": "https://registry.npmjs.org/ssri/-/ssri-9.0.1.tgz", + "integrity": "sha512-o57Wcn66jMQvfHG1FlYbWeZWW/dHZhJXjpIcTfXldXEk5nz5lStPo3mK0OJQfGR3RbZUlbISexbljkJzuEj/8Q==", "dev": true, "requires": { - "lodash": "^4.17.10" + "minipass": "^3.1.1" } }, - "traverse": { - "version": "0.3.9", - "resolved": "https://registry.npmjs.org/traverse/-/traverse-0.3.9.tgz", - "integrity": "sha1-cXuPIgzAu3tE5AUUwisui7xw2Lk=", - "dev": true - }, - "tree-kill": { - "version": "1.2.2", - "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", - "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", - "dev": true - }, - "triple-beam": { - "version": "1.3.0", - "resolved": "https://registry.npmjs.org/triple-beam/-/triple-beam-1.3.0.tgz", - "integrity": "sha512-XrHUvV5HpdLmIj4uVMxHggLbFSZYIn7HEWsqePZcI50pco+MPqJ50wMGY794X7AOOhxOBAjbkqfAbEe/QMp2Lw==", + "statuses": { + "version": "1.5.0", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-1.5.0.tgz", + "integrity": "sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow=", "dev": true }, - "ts-node": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-8.3.0.tgz", - "integrity": "sha512-dyNS/RqyVTDcmNM4NIBAeDMpsAdaQ+ojdf0GOLqE6nwJOgzEkdRNzJywhDfwnuvB10oa6NLVG1rUJQCpRN7qoQ==", - "dev": true, - "requires": { - "arg": "^4.1.0", - "diff": "^4.0.1", - "make-error": "^1.1.1", - "source-map-support": "^0.5.6", - "yn": "^3.0.0" - } - }, - "tslib": { - "version": "1.14.1", - "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", - "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==" - }, - "tslint": { - "version": "5.18.0", - "resolved": "https://registry.npmjs.org/tslint/-/tslint-5.18.0.tgz", - "integrity": "sha512-Q3kXkuDEijQ37nXZZLKErssQVnwCV/+23gFEMROi8IlbaBG6tXqLPQJ5Wjcyt/yHPKBC+hD5SzuGaMora+ZS6w==", + "streamroller": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/streamroller/-/streamroller-3.1.1.tgz", + "integrity": "sha512-iPhtd9unZ6zKdWgMeYGfSBuqCngyJy1B/GPi/lTpwGpa3bajuX30GjUVd0/Tn/Xhg0mr4DOSENozz9Y06qyonQ==", "dev": true, "requires": { - "@babel/code-frame": "^7.0.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.13.1", - "minimatch": "^3.0.4", - "mkdirp": "^0.5.1", - "resolve": "^1.3.2", - "semver": "^5.3.0", - "tslib": "^1.8.0", - "tsutils": "^2.29.0" + "date-format": "^4.0.10", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" }, "dependencies": { - "diff": { - "version": "3.5.0", - "resolved": "https://registry.npmjs.org/diff/-/diff-3.5.0.tgz", - "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", - "dev": true + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } }, - "semver": { - "version": "5.7.1", - "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", - "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "fs-extra": { + "version": "10.1.0", + "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-10.1.0.tgz", + "integrity": "sha512-oRXApq54ETRj4eMiFzGnHWGy+zo5raudjuxN0b8H7s/RU2oW0Wvsx9O0ACRN/kRq9E8Vu/ReskGB5o3ji+FzHQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.2.0", + "jsonfile": "^6.0.1", + "universalify": "^2.0.0" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "dev": true, + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==", "dev": true } } }, - "tsutils": { - "version": "2.29.0", - "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", - "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", + "string_decoder": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", "dev": true, "requires": { - "tslib": "^1.8.1" + "safe-buffer": "~5.1.0" } }, - "tty-browserify": { - "version": "0.0.0", - "resolved": "https://registry.npmjs.org/tty-browserify/-/tty-browserify-0.0.0.tgz", - "integrity": "sha1-oVe6QC2iTpv5V/mqadUk7tQpAaY=", - "dev": true - }, - "tunnel-agent": { - "version": "0.6.0", - "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", - "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", + "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": { - "safe-buffer": "^5.0.1" + "ansi-regex": "^2.0.0" } }, - "tweetnacl": { - "version": "0.14.5", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", - "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==", "dev": true }, - "tweetsodium": { - "version": "0.0.5", - "resolved": "https://registry.npmjs.org/tweetsodium/-/tweetsodium-0.0.5.tgz", - "integrity": "sha512-T3aXZtx7KqQbutTtBfn+P5By3HdBuB1eCoGviIrRJV2sXeToxv2X2cv5RvYqgG26PSnN5m3fYixds22Gkfd11w==", + "stylus": { + "version": "0.57.0", + "resolved": "https://registry.npmjs.org/stylus/-/stylus-0.57.0.tgz", + "integrity": "sha512-yOI6G8WYfr0q8v8rRvE91wbxFU+rJPo760Va4MF6K0I6BZjO4r+xSynkvyPBP9tV1CIEUeRsiidjIs2rzb1CnQ==", "dev": true, "requires": { - "blakejs": "^1.1.0", - "tweetnacl": "^1.0.1" + "css": "^3.0.0", + "debug": "^4.3.2", + "glob": "^7.1.6", + "safer-buffer": "^2.1.2", + "sax": "~1.2.4", + "source-map": "^0.7.3" }, "dependencies": { - "tweetnacl": { - "version": "1.0.3", - "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-1.0.3.tgz", - "integrity": "sha512-6rt+RN7aOi1nGMyC4Xa5DdYiukl2UWCbcJft7YhxReBGQD7OAM8Pbxw6YMo4r2diNEA8FEmu32YOn9rhaiE5yw==", - "dev": true + "debug": { + "version": "4.3.4", + "resolved": "https://registry.npmjs.org/debug/-/debug-4.3.4.tgz", + "integrity": "sha512-PRWFHuSU3eDtQJPvnNY7Jcket1j0t5OuOsFzPPzsekD52Zl8qUfFIPEiswXqIvHWGVHOgX+7G/vCNNhehwxfkQ==", + "dev": true, + "requires": { + "ms": "2.1.2" + } + }, + "glob": { + "version": "7.2.3", + "resolved": "https://registry.npmjs.org/glob/-/glob-7.2.3.tgz", + "integrity": "sha512-nFR0zLpU2YCaRxwoCJvL6UvCH2JFyFVIvwTLsIf21AuHlMskA1hhTdk+LlYJtOlYt9v6dvszD2BGRqBL+iQK9Q==", + "dev": true, + "requires": { + "fs.realpath": "^1.0.0", + "inflight": "^1.0.4", + "inherits": "2", + "minimatch": "^3.1.1", + "once": "^1.3.0", + "path-is-absolute": "^1.0.0" + } + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "dev": true, + "requires": { + "brace-expansion": "^1.1.7" + } } } }, - "type": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/type/-/type-1.2.0.tgz", - "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==", - "dev": true - }, - "type-fest": { - "version": "0.8.1", - "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", - "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", - "dev": true - }, - "type-is": { - "version": "1.6.18", - "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", - "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", + "stylus-loader": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/stylus-loader/-/stylus-loader-6.2.0.tgz", + "integrity": "sha512-5dsDc7qVQGRoc6pvCL20eYgRUxepZ9FpeK28XhdXaIPP6kXr6nI1zAAKFQgP5OBkOfKaURp4WUpJzspg1f01Gg==", "dev": true, "requires": { - "media-typer": "0.3.0", - "mime-types": "~2.1.24" + "fast-glob": "^3.2.7", + "klona": "^2.0.4", + "normalize-path": "^3.0.0" } }, - "typedarray": { - "version": "0.0.6", - "resolved": "https://registry.npmjs.org/typedarray/-/typedarray-0.0.6.tgz", - "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", - "dev": true - }, - "typedarray-to-buffer": { - "version": "3.1.5", - "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", - "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", - "dev": true, + "supports-color": { + "version": "5.5.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-5.5.0.tgz", + "integrity": "sha512-QjVjwdXIt408MIiAqCX4oUKsgU2EqAGzs2Ppkm4aQYbjm+ZEWEcW4SfFNTr4uMNZma0ey4f5lgLrkB0aX0QMow==", "requires": { - "is-typedarray": "^1.0.0" + "has-flag": "^3.0.0" } }, - "typescript": { - "version": "3.7.5", - "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.5.tgz", - "integrity": "sha512-/P5lkRXkWHNAbcJIiHPfRoKqyd7bsyCma1hZNUGfn20qm64T6ZBlrzprymeu918H+mB/0rIg2gGK/BXkhhYgBw==", - "dev": true - }, - "ultron": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/ultron/-/ultron-1.1.1.tgz", - "integrity": "sha512-UIEXBNeYmKptWH6z8ZnqTeS8fV74zG0/eRU9VGkpzz+LIJNs8W/zM/L+7ctCkRrgbNnnR0xxw4bKOr0cW0N0Og==", - "dev": true - }, - "unicode-canonical-property-names-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-1.0.4.tgz", - "integrity": "sha512-jDrNnXWHd4oHiTZnx/ZG7gtUTVp+gCcTTKr8L0HjlwphROEW3+Him+IpvC+xcJEFegapiMZyZe02CyuOnRmbnQ==", + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==", "dev": true }, - "unicode-match-property-ecmascript": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-1.0.4.tgz", - "integrity": "sha512-L4Qoh15vTfntsn4P1zqnHulG0LdXgjSO035fEpdtp6YxXhMT51Q6vgM5lYdG/5X3MjS+k/Y9Xw4SFCY9IkR0rg==", - "dev": true, + "svg.draggable.js": { + "version": "2.2.2", + "resolved": "https://registry.npmjs.org/svg.draggable.js/-/svg.draggable.js-2.2.2.tgz", + "integrity": "sha512-JzNHBc2fLQMzYCZ90KZHN2ohXL0BQJGQimK1kGk6AvSeibuKcIdDX9Kr0dT9+UJ5O8nYA0RB839Lhvk4CY4MZw==", "requires": { - "unicode-canonical-property-names-ecmascript": "^1.0.4", - "unicode-property-aliases-ecmascript": "^1.0.4" + "svg.js": "^2.0.1" } }, - "unicode-match-property-value-ecmascript": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", - "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", - "dev": true - }, - "unicode-property-aliases-ecmascript": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-1.1.0.tgz", - "integrity": "sha512-PqSoPh/pWetQ2phoj5RLiaqIk4kCNwoV3CI+LfGmWLKI3rE3kl1h59XpX2BjgDrmbxD9ARtQobPGU1SguCYuQg==", - "dev": true - }, - "union-value": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/union-value/-/union-value-1.0.1.tgz", - "integrity": "sha512-tJfXmxMeWYnczCVs7XAEvIV7ieppALdyepWMkHkwciRpZraG/xwT+s2JN8+pr1+8jCRf80FFzvr+MpQeeoF4Xg==", - "dev": true, + "svg.easing.js": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/svg.easing.js/-/svg.easing.js-2.0.0.tgz", + "integrity": "sha512-//ctPdJMGy22YoYGV+3HEfHbm6/69LJUTAqI2/5qBvaNHZ9uUFVC82B0Pl299HzgH13rKrBgi4+XyXXyVWWthA==", "requires": { - "arr-union": "^3.1.0", - "get-value": "^2.0.6", - "is-extendable": "^0.1.1", - "set-value": "^2.0.1" + "svg.js": ">=2.3.x" } }, - "uniq": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/uniq/-/uniq-1.0.1.tgz", - "integrity": "sha1-sxxa6CVIRKOoKBVBzisEuGWnNP8=", - "dev": true - }, - "uniqs": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/uniqs/-/uniqs-2.0.0.tgz", - "integrity": "sha1-/+3ks2slKQaW5uFl1KWe25mOawI=", - "dev": true - }, - "unique-filename": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", - "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", - "dev": true, + "svg.filter.js": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/svg.filter.js/-/svg.filter.js-2.0.2.tgz", + "integrity": "sha512-xkGBwU+dKBzqg5PtilaTb0EYPqPfJ9Q6saVldX+5vCRy31P6TlRCP3U9NxH3HEufkKkpNgdTLBJnmhDHeTqAkw==", "requires": { - "unique-slug": "^2.0.0" + "svg.js": "^2.2.5" } }, - "unique-slug": { - "version": "2.0.2", - "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", - "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", - "dev": true, + "svg.js": { + "version": "2.7.1", + "resolved": "https://registry.npmjs.org/svg.js/-/svg.js-2.7.1.tgz", + "integrity": "sha512-ycbxpizEQktk3FYvn/8BH+6/EuWXg7ZpQREJvgacqn46gIddG24tNNe4Son6omdXCnSOaApnpZw6MPCBA1dODA==" + }, + "svg.pathmorphing.js": { + "version": "0.1.3", + "resolved": "https://registry.npmjs.org/svg.pathmorphing.js/-/svg.pathmorphing.js-0.1.3.tgz", + "integrity": "sha512-49HWI9X4XQR/JG1qXkSDV8xViuTLIWm/B/7YuQELV5KMOPtXjiwH4XPJvr/ghEDibmLQ9Oc22dpWpG0vUDDNww==", "requires": { - "imurmurhash": "^0.1.4" + "svg.js": "^2.4.0" } }, - "unique-string": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", - "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", - "dev": true, + "svg.resize.js": { + "version": "1.4.3", + "resolved": "https://registry.npmjs.org/svg.resize.js/-/svg.resize.js-1.4.3.tgz", + "integrity": "sha512-9k5sXJuPKp+mVzXNvxz7U0uC9oVMQrrf7cFsETznzUDDm0x8+77dtZkWdMfRlmbkEEYvUn9btKuZ3n41oNA+uw==", "requires": { - "crypto-random-string": "^2.0.0" + "svg.js": "^2.6.5", + "svg.select.js": "^2.1.2" + }, + "dependencies": { + "svg.select.js": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-2.1.2.tgz", + "integrity": "sha512-tH6ABEyJsAOVAhwcCjF8mw4crjXSI1aa7j2VQR8ZuJ37H2MBUbyeqYr5nEO7sSN3cy9AR9DUwNg0t/962HlDbQ==", + "requires": { + "svg.js": "^2.2.5" + } + } } }, - "universal-analytics": { - "version": "0.4.23", - "resolved": "https://registry.npmjs.org/universal-analytics/-/universal-analytics-0.4.23.tgz", - "integrity": "sha512-lgMIH7XBI6OgYn1woDEmxhGdj8yDefMKg7GkWdeATAlQZFrMrNyxSkpDzY57iY0/6fdlzTbBV03OawvvzG+q7A==", - "dev": true, + "svg.select.js": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/svg.select.js/-/svg.select.js-3.0.1.tgz", + "integrity": "sha512-h5IS/hKkuVCbKSieR9uQCj9w+zLHoPh+ce19bBYyqF53g6mnPB8sAtIbe1s9dh2S2fCmYX2xel1Ln3PJBbK4kw==", "requires": { - "debug": "^4.1.1", - "request": "^2.88.2", - "uuid": "^3.0.0" + "svg.js": "^2.6.5" } }, - "universalify": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/universalify/-/universalify-0.1.2.tgz", - "integrity": "sha512-rBJeI5CXAlmy1pV+617WB9J63U6XcazHHF2f2dbJix4XzpUF0RS3Zbj0FGIOCAva5P/d/GBOYaACQ1w+0azUkg==", - "dev": true + "sweetalert2": { + "version": "11.4.20", + "resolved": "https://registry.npmjs.org/sweetalert2/-/sweetalert2-11.4.20.tgz", + "integrity": "sha512-3LiBFa5yRmTcqM0vGcFmo0EnhmaMSJfzhFpvZoXK6BOY94HIcIUbwhhW+NY5oXOpz5CT21qFAu0fKCUkOc/Pew==" }, - "unpipe": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", - "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", + "symbol-observable": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-4.0.0.tgz", + "integrity": "sha512-b19dMThMV4HVFynSAM1++gBHAbk2Tc/osgLIBZMKsyqh34jb2e8Os7T6ZW/Bt3pJFdBTd2JwAnAAEQV7rSNvcQ==", "dev": true }, - "unquote": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/unquote/-/unquote-1.1.1.tgz", - "integrity": "sha1-j97XMk7G6IoP+LkF58CYzcCG1UQ=", + "tapable": { + "version": "2.2.1", + "resolved": "https://registry.npmjs.org/tapable/-/tapable-2.2.1.tgz", + "integrity": "sha512-GNzQvQTOIP6RyTfE2Qxb8ZVlNmw0n88vp1szwWRimP02mnTsx3Wtn5qRdqY9w2XduFNUgvOwhNnQsjwCp+kqaQ==", "dev": true }, - "unset-value": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unset-value/-/unset-value-1.0.0.tgz", - "integrity": "sha1-g3aHP30jNRef+x5vw6jtDfyKtVk=", + "terser": { + "version": "5.13.1", + "resolved": "https://registry.npmjs.org/terser/-/terser-5.13.1.tgz", + "integrity": "sha512-hn4WKOfwnwbYfe48NgrQjqNOH9jzLqRcIfbYytOXCOv46LBfWr9bDS17MQqOi+BWGD0sJK3Sj5NC/gJjiojaoA==", "dev": true, "requires": { - "has-value": "^0.3.1", - "isobject": "^3.0.0" + "acorn": "^8.5.0", + "commander": "^2.20.0", + "source-map": "~0.8.0-beta.0", + "source-map-support": "~0.5.20" }, "dependencies": { - "has-value": { - "version": "0.3.1", - "resolved": "https://registry.npmjs.org/has-value/-/has-value-0.3.1.tgz", - "integrity": "sha1-ex9YutpiyoJ+wKIHgCVlSEWZXh8=", + "source-map": { + "version": "0.8.0-beta.0", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.8.0-beta.0.tgz", + "integrity": "sha512-2ymg6oRBpebeZi9UUNsgQ89bhx01TcTkmNTGnNO88imTmbSgy4nfujrgVEFKWpMTEGA11EDkTt7mqObTPdigIA==", + "dev": true, + "requires": { + "whatwg-url": "^7.0.0" + } + }, + "source-map-support": { + "version": "0.5.21", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.21.tgz", + "integrity": "sha512-uBHU3L3czsIyYXKX88fdrGovxdSCoTGDRZ6SYXtSRxLZUzHg5P/66Ht6uoUlHu9EZod+inXhKo3qQgwXUT/y1w==", "dev": true, "requires": { - "get-value": "^2.0.3", - "has-values": "^0.1.4", - "isobject": "^2.0.0" + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" }, "dependencies": { - "isobject": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/isobject/-/isobject-2.1.0.tgz", - "integrity": "sha1-8GVWEJaj8dou9GJy+BXIQNh+DIk=", - "dev": true, - "requires": { - "isarray": "1.0.0" - } + "source-map": { + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", + "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "dev": true } } - }, - "has-values": { - "version": "0.1.4", - "resolved": "https://registry.npmjs.org/has-values/-/has-values-0.1.4.tgz", - "integrity": "sha1-bWHeldkd/Km5oCCJrThL/49it3E=", - "dev": true } } }, - "unzipper": { - "version": "0.10.11", - "resolved": "https://registry.npmjs.org/unzipper/-/unzipper-0.10.11.tgz", - "integrity": "sha512-+BrAq2oFqWod5IESRjL3S8baohbevGcVA+teAIOYWM3pDVdseogqbzhhvvmiyQrUNKFUnDMtELW3X8ykbyDCJw==", + "terser-webpack-plugin": { + "version": "5.3.3", + "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-5.3.3.tgz", + "integrity": "sha512-Fx60G5HNYknNTNQnzQ1VePRuu89ZVYWfjRAeT5rITuCY/1b08s49e5kSQwHDirKZWuoKOBRFS98EUUoZ9kLEwQ==", "dev": true, "requires": { - "big-integer": "^1.6.17", - "binary": "~0.3.0", - "bluebird": "~3.4.1", - "buffer-indexof-polyfill": "~1.0.0", - "duplexer2": "~0.1.4", - "fstream": "^1.0.12", - "graceful-fs": "^4.2.2", - "listenercount": "~1.0.1", - "readable-stream": "~2.3.6", - "setimmediate": "~1.0.4" - }, - "dependencies": { - "bluebird": { - "version": "3.4.7", - "resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.4.7.tgz", - "integrity": "sha1-9y12C+Cbf3bQjtj66Ysomo0F+rM=", - "dev": true - } - } - }, - "upath": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/upath/-/upath-1.2.0.tgz", - "integrity": "sha512-aZwGpamFO61g3OlfT7OQCHqhGnW43ieH9WZeP7QxN/G/jS4jfqUkZxoryvJgVPEcrl5NL/ggHsSmLMHuH64Lhg==", - "dev": true - }, - "update-notifier": { - "version": "4.1.3", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.3.tgz", - "integrity": "sha512-Yld6Z0RyCYGB6ckIjffGOSOmHXj1gMeE7aROz4MG+XMkmixBX4jUngrGXNYz7wPKBmtoD4MnBa2Anu7RSKht/A==", - "dev": true, - "requires": { - "boxen": "^4.2.0", - "chalk": "^3.0.0", - "configstore": "^5.0.1", - "has-yarn": "^2.1.0", - "import-lazy": "^2.1.0", - "is-ci": "^2.0.0", - "is-installed-globally": "^0.3.1", - "is-npm": "^4.0.0", - "is-yarn-global": "^0.3.0", - "latest-version": "^5.0.0", - "pupa": "^2.0.1", - "semver-diff": "^3.1.1", - "xdg-basedir": "^4.0.0" + "@jridgewell/trace-mapping": "^0.3.7", + "jest-worker": "^27.4.5", + "schema-utils": "^3.1.1", + "serialize-javascript": "^6.0.0", + "terser": "^5.7.2" }, "dependencies": { - "ansi-styles": { - "version": "4.3.0", - "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", - "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", - "dev": true, - "requires": { - "color-convert": "^2.0.1" - } - }, - "chalk": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", - "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", - "dev": true, - "requires": { - "ansi-styles": "^4.1.0", - "supports-color": "^7.1.0" - } - }, - "color-convert": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", - "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "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": { - "color-name": "~1.1.4" + "fast-deep-equal": "^3.1.1", + "fast-json-stable-stringify": "^2.0.0", + "json-schema-traverse": "^0.4.1", + "uri-js": "^4.2.2" } }, - "color-name": { - "version": "1.1.4", - "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", - "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", - "dev": true - }, - "has-flag": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", - "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", - "dev": true - }, - "supports-color": { - "version": "7.2.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", - "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "has-flag": "^4.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } } } }, - "uri-js": { - "version": "4.4.1", - "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", - "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "test-exclude": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-6.0.0.tgz", + "integrity": "sha512-cAGWPIyOHU6zlmg88jwm7VRyXnMN7iV68OGAbYDk/Mh/xC/pzVPlQtY6ngoIH/5/tciuhGfvESU8GrHrcxD56w==", "dev": true, "requires": { - "punycode": "^2.1.0" + "@istanbuljs/schema": "^0.1.2", + "glob": "^7.1.4", + "minimatch": "^3.0.4" } }, - "urix": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/urix/-/urix-0.1.0.tgz", - "integrity": "sha1-2pN/emLiH+wf0Y1Js1wpNQZ6bHI=", + "text-table": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/text-table/-/text-table-0.2.0.tgz", + "integrity": "sha512-N+8UisAXDGk8PFXP4HAzVR9nbfmVJ3zYLAWiTIoqC5v5isinhr+r5uaO8+7r3BMfuNIufIsA7RdpVgacC2cSpw==", "dev": true }, - "url": { - "version": "0.11.0", - "resolved": "https://registry.npmjs.org/url/-/url-0.11.0.tgz", - "integrity": "sha1-ODjpfPxgUh63PFJajlW/3Z4uKPE=", + "through": { + "version": "2.3.8", + "resolved": "https://registry.npmjs.org/through/-/through-2.3.8.tgz", + "integrity": "sha1-DdTJ/6q8NXlgsbckEV1+Doai4fU=", + "dev": true + }, + "thunky": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/thunky/-/thunky-1.1.0.tgz", + "integrity": "sha512-eHY7nBftgThBqOyHGVN+l8gF0BucP09fMo0oO/Lb0w1OF80dJv+lDVpXG60WMQvkcxAkNybKsrEIE3ZtKGmPrA==", + "dev": true + }, + "tmp": { + "version": "0.0.33", + "resolved": "https://registry.npmjs.org/tmp/-/tmp-0.0.33.tgz", + "integrity": "sha512-jRCJlojKnZ3addtTOjdIqoRuPEKBvNXcGYqzO6zWZX8KfKEpnGY5jfggJQ3EjKuu8D4bJRr0y+cYJFmYbImXGw==", "dev": true, "requires": { - "punycode": "1.3.2", - "querystring": "0.2.0" - }, - "dependencies": { - "punycode": { - "version": "1.3.2", - "resolved": "https://registry.npmjs.org/punycode/-/punycode-1.3.2.tgz", - "integrity": "sha1-llOgNvt8HuQjQvIyXM7v6jkmxI0=", - "dev": true - } + "os-tmpdir": "~1.0.2" } }, - "url-join": { - "version": "0.0.1", - "resolved": "https://registry.npmjs.org/url-join/-/url-join-0.0.1.tgz", - "integrity": "sha1-HbSK1CLTQCRpqH99l73r/k+x48g=", + "to-fast-properties": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/to-fast-properties/-/to-fast-properties-2.0.0.tgz", + "integrity": "sha512-/OaKK0xYrs3DmxRYqL/yDc+FxFUVYhDlXMhRmv3z915w2HF1tnN1omB354j8VUGO/hbRzyD6Y3sA7v7GS/ceog==" + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "dev": true, + "requires": { + "is-number": "^7.0.0" + } + }, + "toidentifier": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.0.tgz", + "integrity": "sha512-yaOH/Pk/VEhBWWTlhI+qXxDFXlejDGcQipMlyxda9nthulaxLZUNcUqFxokp0vcYnvteJln5FNQDRrxj3YcbVw==", "dev": true }, - "url-parse": { - "version": "1.4.7", - "resolved": "https://registry.npmjs.org/url-parse/-/url-parse-1.4.7.tgz", - "integrity": "sha512-d3uaVyzDB9tQoSXFvuSUNFibTd9zxd2bkVrDRvF5TmvWWQwqE4lgYJ5m+x1DbecWkw+LK4RNl2CU1hHuOKPVlg==", + "tough-cookie": { + "version": "2.5.0", + "resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.5.0.tgz", + "integrity": "sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g==", "dev": true, "requires": { - "querystringify": "^2.1.1", - "requires-port": "^1.0.0" + "psl": "^1.1.28", + "punycode": "^2.1.1" } }, - "url-parse-lax": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/url-parse-lax/-/url-parse-lax-3.0.0.tgz", - "integrity": "sha1-FrXK/Afb42dsGxmZF3gj1lA6yww=", + "tr46": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/tr46/-/tr46-1.0.1.tgz", + "integrity": "sha512-dTpowEjclQ7Kgx5SdBkqRzVhERQXov8/l9Ft9dVM9fmg0W0KQSVaXX9T4i6twCPNtYiZM53lpSSUAwJbFPOHxA==", "dev": true, "requires": { - "prepend-http": "^2.0.0" - }, - "dependencies": { - "prepend-http": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-2.0.0.tgz", - "integrity": "sha1-6SQ0v6XqjBn0HN/UAddBo8gZ2Jc=", - "dev": true - } + "punycode": "^2.1.0" } }, - "use": { - "version": "3.1.1", - "resolved": "https://registry.npmjs.org/use/-/use-3.1.1.tgz", - "integrity": "sha512-cwESVXlO3url9YWlFW/TA9cshCEhtu7IKJ/p5soJ/gGpj7vbvFrAY/eIioQ6Dw23KjZhYgiIo8HOs1nQ2vr/oQ==", + "tree-kill": { + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/tree-kill/-/tree-kill-1.2.2.tgz", + "integrity": "sha512-L0Orpi8qGpRG//Nd+H90vFB+3iHnue1zSSGmNOOCh1GLJ7rUKVwV2HvijphGQS2UmhUZewS9VgvxYIdgr+fG1A==", "dev": true }, - "useragent": { - "version": "2.3.0", - "resolved": "https://registry.npmjs.org/useragent/-/useragent-2.3.0.tgz", - "integrity": "sha512-4AoH4pxuSvHCjqLO04sU6U/uE65BYza8l/KKBS0b0hnUPWi+cQ2BpeTEwejCSx9SPV5/U03nniDTrWx5NrmKdw==", + "ts-node": { + "version": "10.8.2", + "resolved": "https://registry.npmjs.org/ts-node/-/ts-node-10.8.2.tgz", + "integrity": "sha512-LYdGnoGddf1D6v8REPtIH+5iq/gTDuZqv2/UJUU7tKjuEU8xVZorBM+buCGNjj+pGEud+sOoM4CX3/YzINpENA==", + "dev": true, + "requires": { + "@cspotcode/source-map-support": "^0.8.0", + "@tsconfig/node10": "^1.0.7", + "@tsconfig/node12": "^1.0.7", + "@tsconfig/node14": "^1.0.0", + "@tsconfig/node16": "^1.0.2", + "acorn": "^8.4.1", + "acorn-walk": "^8.1.1", + "arg": "^4.1.0", + "create-require": "^1.1.0", + "diff": "^4.0.1", + "make-error": "^1.1.1", + "v8-compile-cache-lib": "^3.0.1", + "yn": "3.1.1" + } + }, + "tslib": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.4.0.tgz", + "integrity": "sha512-d6xOpEDfsi2CZVlPQzGeux8XMwLT9hssAsaPYExaQMuYskwb+x1x7J371tWlbBdWHroy99KnVB6qIkUbs5X3UQ==" + }, + "tslint": { + "version": "6.1.3", + "resolved": "https://registry.npmjs.org/tslint/-/tslint-6.1.3.tgz", + "integrity": "sha512-IbR4nkT96EQOvKE2PW/djGz8iGNeJ4rF2mBfiYaR/nvUWYKJhLwimoJKgjIFEIDibBtOevj7BqCRL4oHeWWUCg==", "dev": true, "requires": { - "lru-cache": "4.1.x", - "tmp": "0.0.x" + "@babel/code-frame": "^7.0.0", + "builtin-modules": "^1.1.1", + "chalk": "^2.3.0", + "commander": "^2.12.1", + "diff": "^4.0.1", + "glob": "^7.1.1", + "js-yaml": "^3.13.1", + "minimatch": "^3.0.4", + "mkdirp": "^0.5.3", + "resolve": "^1.3.2", + "semver": "^5.3.0", + "tslib": "^1.13.0", + "tsutils": "^2.29.0" }, "dependencies": { - "lru-cache": { - "version": "4.1.5", - "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-4.1.5.tgz", - "integrity": "sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==", - "dev": true, - "requires": { - "pseudomap": "^1.0.2", - "yallist": "^2.1.2" - } + "semver": { + "version": "5.7.1", + "resolved": "https://registry.npmjs.org/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==", + "dev": true }, - "yallist": { - "version": "2.1.2", - "resolved": "https://registry.npmjs.org/yallist/-/yallist-2.1.2.tgz", - "integrity": "sha1-HBH5IY8HYImkfdUS+TxmmaaoHVI=", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, - "util": { - "version": "0.11.1", - "resolved": "https://registry.npmjs.org/util/-/util-0.11.1.tgz", - "integrity": "sha512-HShAsny+zS2TZfaXxD9tYj4HQGlBezXZMZuM/S5PKLLoZkShZiGk9o5CzukI1LVHZvjdvZ2Sj1aW/Ndn2NB/HQ==", + "tsutils": { + "version": "2.29.0", + "resolved": "https://registry.npmjs.org/tsutils/-/tsutils-2.29.0.tgz", + "integrity": "sha512-g5JVHCIJwzfISaXpXE1qvNalca5Jwob6FjI4AoPlqMusJ6ftFE7IkkFoMhVLRgK+4Kx3gkzb8UZK5t5yTTvEmA==", "dev": true, "requires": { - "inherits": "2.0.3" + "tslib": "^1.8.1" }, "dependencies": { - "inherits": { - "version": "2.0.3", - "resolved": "https://registry.npmjs.org/inherits/-/inherits-2.0.3.tgz", - "integrity": "sha1-Yzwsg+PaQqUC9SRmAiSA9CCCYd4=", + "tslib": { + "version": "1.14.1", + "resolved": "https://registry.npmjs.org/tslib/-/tslib-1.14.1.tgz", + "integrity": "sha512-Xni35NKzjgMrwevysHTCArtLDpPvye8zV/0E4EyYn43P7/7qvQwPh9BGkHewbMulVntbigmcT7rdX3BNo9wRJg==", "dev": true } } }, - "util-deprecate": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", - "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", - "dev": true - }, - "util-promisify": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/util-promisify/-/util-promisify-2.1.0.tgz", - "integrity": "sha1-PCI2R2xNMsX/PEcAKt18E7moKlM=", + "tunnel-agent": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/tunnel-agent/-/tunnel-agent-0.6.0.tgz", + "integrity": "sha1-J6XeoGs2sEoKmWZ3SykIaPD8QP0=", "dev": true, "requires": { - "object.getownpropertydescriptors": "^2.0.3" + "safe-buffer": "^5.0.1" } }, - "util.promisify": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/util.promisify/-/util.promisify-1.0.1.tgz", - "integrity": "sha512-g9JpC/3He3bm38zsLupWryXHoEcS22YHthuPQSJdMy6KNrzIRzWqcsHzD/WUnqe45whVou4VIsPew37DoXWNrA==", + "tweetnacl": { + "version": "0.14.5", + "resolved": "https://registry.npmjs.org/tweetnacl/-/tweetnacl-0.14.5.tgz", + "integrity": "sha1-WuaBd/GS1EViadEIr6k/+HQ/T2Q=", + "dev": true + }, + "type-is": { + "version": "1.6.18", + "resolved": "https://registry.npmjs.org/type-is/-/type-is-1.6.18.tgz", + "integrity": "sha512-TkRKr9sUTxEH8MdfuCSP7VizJyzRNMjj2J2do2Jr3Kym598JVdEksuzPQCnlFPW4ky9Q+iA+ma9BGm06XQBy8g==", "dev": true, "requires": { - "define-properties": "^1.1.3", - "es-abstract": "^1.17.2", - "has-symbols": "^1.0.1", - "object.getownpropertydescriptors": "^2.1.0" - }, - "dependencies": { - "es-abstract": { - "version": "1.17.7", - "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", - "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", - "dev": true, - "requires": { - "es-to-primitive": "^1.2.1", - "function-bind": "^1.1.1", - "has": "^1.0.3", - "has-symbols": "^1.0.1", - "is-callable": "^1.2.2", - "is-regex": "^1.1.1", - "object-inspect": "^1.8.0", - "object-keys": "^1.1.1", - "object.assign": "^4.1.1", - "string.prototype.trimend": "^1.0.1", - "string.prototype.trimstart": "^1.0.1" - } - } + "media-typer": "0.3.0", + "mime-types": "~2.1.24" } }, - "utils-merge": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", - "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "typed-assert": { + "version": "1.0.9", + "resolved": "https://registry.npmjs.org/typed-assert/-/typed-assert-1.0.9.tgz", + "integrity": "sha512-KNNZtayBCtmnNmbo5mG47p1XsCyrx6iVqomjcZnec/1Y5GGARaxPs6r49RnSPeUP3YjNYiU9sQHAtY4BBvnZwg==", "dev": true }, - "uuid": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", - "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "typescript": { + "version": "4.7.4", + "resolved": "https://registry.npmjs.org/typescript/-/typescript-4.7.4.tgz", + "integrity": "sha512-C0WQT0gezHuw6AdY1M2jxUO83Rjf0HP7Sk1DtXj6j1EwkQNZrHAg2XPWlq62oqEhYvONq5pkC2Y9oPljWToLmQ==", "dev": true }, - "valid-url": { - "version": "1.0.9", - "resolved": "https://registry.npmjs.org/valid-url/-/valid-url-1.0.9.tgz", - "integrity": "sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA=", + "ua-parser-js": { + "version": "0.7.31", + "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.31.tgz", + "integrity": "sha512-qLK/Xe9E2uzmYI3qLeOmI0tEOt+TBBQyUIAh4aAgU05FVYzeZrKUdkAZfBNVGRaHVgV0TDkdEngJSw/SyQchkQ==", "dev": true }, - "validate-npm-package-license": { - "version": "3.0.4", - "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", - "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", - "dev": true, - "requires": { - "spdx-correct": "^3.0.0", - "spdx-expression-parse": "^3.0.0" - } + "unfetch": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/unfetch/-/unfetch-4.2.0.tgz", + "integrity": "sha512-F9p7yYCn6cIW9El1zi0HI6vqpeIvBsr3dSuRO6Xuppb1u5rXpCPmMvLSyECLhybr9isec8Ohl0hPekMVrEinDA==" }, - "validate-npm-package-name": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-3.0.0.tgz", - "integrity": "sha1-X6kS2B630MdK/BQN5zF/DKffQ34=", + "unicode-canonical-property-names-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-canonical-property-names-ecmascript/-/unicode-canonical-property-names-ecmascript-2.0.0.tgz", + "integrity": "sha512-yY5PpDlfVIU5+y/BSCxAJRBIS1Zc2dDG3Ujq+sR0U+JjUevW2JhocOF+soROYDSaAezOzOKuyyixhD6mBknSmQ==", + "dev": true + }, + "unicode-match-property-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-ecmascript/-/unicode-match-property-ecmascript-2.0.0.tgz", + "integrity": "sha512-5kaZCrbp5mmbz5ulBkDkbY0SsPOjKqVS35VpL9ulMPfSl0J0Xsm+9Evphv9CoIZFwre7aJoa94AY6seMKGVN5Q==", "dev": true, "requires": { - "builtins": "^1.0.3" + "unicode-canonical-property-names-ecmascript": "^2.0.0", + "unicode-property-aliases-ecmascript": "^2.0.0" } }, - "vary": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", - "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "unicode-match-property-value-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-2.0.0.tgz", + "integrity": "sha512-7Yhkc0Ye+t4PNYzOGKedDhXbYIBe1XEQYQxOPyhcXNMJ0WCABqqj6ckydd6pWRZTHV4GuCPKdBAUiMc60tsKVw==", "dev": true }, - "vendors": { - "version": "1.0.4", - "resolved": "https://registry.npmjs.org/vendors/-/vendors-1.0.4.tgz", - "integrity": "sha512-/juG65kTL4Cy2su4P8HjtkTxk6VmJDiOPBufWniqQ6wknac6jNiXS9vU+hO3wgusiyqWlzTbVHi0dyJqRONg3w==", + "unicode-property-aliases-ecmascript": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unicode-property-aliases-ecmascript/-/unicode-property-aliases-ecmascript-2.0.0.tgz", + "integrity": "sha512-5Zfuy9q/DFr4tfO7ZPeVXb1aPoeQSdeFMLpYuFebehDAhbuevLs5yxSZmIFN1tP5F9Wl4IpJrYojg85/zgyZHQ==", "dev": true }, - "verror": { - "version": "1.10.0", - "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", - "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "unique-filename": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/unique-filename/-/unique-filename-1.1.1.tgz", + "integrity": "sha512-Vmp0jIp2ln35UTXuryvjzkjGdRyf9b2lTXuSYUiPmzRcl3FDtYqAwOnTJkAngD9SWhnoJzDbTKwaOrZ+STtxNQ==", "dev": true, "requires": { - "assert-plus": "^1.0.0", - "core-util-is": "1.0.2", - "extsprintf": "^1.2.0" + "unique-slug": "^2.0.0" } }, - "vm-browserify": { - "version": "1.1.2", - "resolved": "https://registry.npmjs.org/vm-browserify/-/vm-browserify-1.1.2.tgz", - "integrity": "sha512-2ham8XPWTONajOR0ohOKOHXkm3+gaBmGut3SRuu75xLd/RRaY6vqgh8NBYYk7+RW3u5AtzPQZG8F10LHkl0lAQ==", - "dev": true - }, - "void-elements": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", - "integrity": "sha1-wGavtYK7HLQSjWDqkjkulNXp2+w=", - "dev": true + "unique-slug": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/unique-slug/-/unique-slug-2.0.2.tgz", + "integrity": "sha512-zoWr9ObaxALD3DOPfjPSqxt4fnZiWblxHIgeWqW8x7UqDzEtHEQLzji2cuJYQFCU6KmoJikOYAZlrTHHebjx2w==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4" + } }, - "walkdir": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/walkdir/-/walkdir-0.4.1.tgz", - "integrity": "sha512-3eBwRyEln6E1MSzcxcVpQIhRG8Q1jLvEqRmCZqS3dsfXEDR/AhOF4d+jHg1qvDCpYaVRZjENPQyrVxAkQqxPgQ==", + "unpipe": { + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/unpipe/-/unpipe-1.0.0.tgz", + "integrity": "sha1-sr9O6FFKrmFltIF4KdIbLvSZBOw=", "dev": true }, - "watchpack": { - "version": "1.7.5", - "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-1.7.5.tgz", - "integrity": "sha512-9P3MWk6SrKjHsGkLT2KHXdQ/9SNkyoJbabxnKOoJepsvJjJG8uYTR3yTPxPQvNDI3w4Nz1xnE0TLHK4RIVe/MQ==", - "dev": true, + "update-browserslist-db": { + "version": "1.0.4", + "resolved": "https://registry.npmjs.org/update-browserslist-db/-/update-browserslist-db-1.0.4.tgz", + "integrity": "sha512-jnmO2BEGUjsMOe/Fg9u0oczOe/ppIDZPebzccl1yDWGLFP16Pa1/RM5wEoKYPG2zstNcDuAStejyxsOuKINdGA==", "requires": { - "chokidar": "^3.4.1", - "graceful-fs": "^4.1.2", - "neo-async": "^2.5.0", - "watchpack-chokidar2": "^2.0.1" + "escalade": "^3.1.1", + "picocolors": "^1.0.0" } }, - "watchpack-chokidar2": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/watchpack-chokidar2/-/watchpack-chokidar2-2.0.1.tgz", - "integrity": "sha512-nCFfBIPKr5Sh61s4LPpy1Wtfi0HE8isJ3d2Yb5/Ppw2P2B/3eVSEBjKfN0fmHJSK14+31KwMKmcrzs2GM4P0Ww==", + "uri-js": { + "version": "4.4.1", + "resolved": "https://registry.npmjs.org/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", "dev": true, - "optional": true, "requires": { - "chokidar": "^2.1.8" - }, - "dependencies": { - "anymatch": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", - "dev": true, - "optional": true, - "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "optional": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } - } - }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", - "dev": true, - "optional": true - }, - "braces": { - "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", - "dev": true, - "optional": true, - "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" - } - }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", - "dev": true, - "optional": true, - "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" - } - }, - "extend-shallow": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", - "dev": true, - "optional": true, - "requires": { - "is-extendable": "^0.1.0" - } - }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", - "dev": true, - "optional": true, - "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" - } - }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", - "dev": true, - "optional": true, - "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" - } - }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", - "dev": true, - "optional": true, - "requires": { - "binary-extensions": "^1.0.0" - } - }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", - "dev": true, - "optional": true, - "requires": { - "kind-of": "^3.0.2" - } - }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", - "dev": true, - "optional": true, - "requires": { - "is-buffer": "^1.1.5" - } - }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", - "dev": true, - "optional": true, - "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" - } - }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "optional": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } - } + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://registry.npmjs.org/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=", + "dev": true + }, + "utils-merge": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/utils-merge/-/utils-merge-1.0.1.tgz", + "integrity": "sha1-n5VxD1CiZ5R7LMwSR0HBAoQn5xM=", + "dev": true + }, + "uuid": { + "version": "3.4.0", + "resolved": "https://registry.npmjs.org/uuid/-/uuid-3.4.0.tgz", + "integrity": "sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A==", + "dev": true + }, + "v8-compile-cache-lib": { + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/v8-compile-cache-lib/-/v8-compile-cache-lib-3.0.1.tgz", + "integrity": "sha512-wa7YjyUGfNZngI/vtK0UHAN+lgDCxBPCylVXGp0zu59Fz5aiGtNXaq3DhIov063MorB+VfufLh3JlF2KdTK3xg==", + "dev": true + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "dev": true, + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "validate-npm-package-name": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/validate-npm-package-name/-/validate-npm-package-name-4.0.0.tgz", + "integrity": "sha512-mzR0L8ZDktZjpX4OB46KT+56MAhl4EIazWP/+G/HPGuvfdaqg4YsCdtOm6U9+LOFyYDoh4dpnpxZRB9MQQns5Q==", + "dev": true, + "requires": { + "builtins": "^5.0.0" + } + }, + "vary": { + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/vary/-/vary-1.1.2.tgz", + "integrity": "sha1-IpnwLG3tMNSllhsLn3RSShj2NPw=", + "dev": true + }, + "verror": { + "version": "1.10.0", + "resolved": "https://registry.npmjs.org/verror/-/verror-1.10.0.tgz", + "integrity": "sha1-OhBcoXBTr1XW4nDB+CiGguGNpAA=", + "dev": true, + "requires": { + "assert-plus": "^1.0.0", + "core-util-is": "1.0.2", + "extsprintf": "^1.2.0" + } + }, + "void-elements": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/void-elements/-/void-elements-2.0.1.tgz", + "integrity": "sha512-qZKX4RnBzH2ugr8Lxa7x+0V6XD9Sb/ouARtiasEQCHB1EVU4NXtmHsDDrx1dO4ne5fc3J6EW05BP1Dl0z0iung==", + "dev": true + }, + "watchpack": { + "version": "2.4.0", + "resolved": "https://registry.npmjs.org/watchpack/-/watchpack-2.4.0.tgz", + "integrity": "sha512-Lcvm7MGST/4fup+ifyKi2hjyIAwcdI4HRgtvTpIUxBRhB+RFtUh8XtDOxUfctVCnhVi+QQj49i91OyvzkJl6cg==", + "dev": true, + "requires": { + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.1.2" } }, "wavesurfer": { @@ -35852,6 +11193,11 @@ "defaults": "^1.0.3" } }, + "web-streams-polyfill": { + "version": "3.2.1", + "resolved": "https://registry.npmjs.org/web-streams-polyfill/-/web-streams-polyfill-3.2.1.tgz", + "integrity": "sha512-e0MO3wdXWKrLbL0DgGnUV7WHVuw9OUvL4hjgnPkIeEvESk74gAITi5G606JtZPp39cd8HA9VQzCIvA49LpPN5Q==" + }, "webdriver-js-extender": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/webdriver-js-extender/-/webdriver-js-extender-2.1.0.tgz", @@ -35862,429 +11208,589 @@ "selenium-webdriver": "^3.0.1" } }, + "webidl-conversions": { + "version": "4.0.2", + "resolved": "https://registry.npmjs.org/webidl-conversions/-/webidl-conversions-4.0.2.tgz", + "integrity": "sha512-YQ+BmxuTgd6UXZW3+ICGfyqRyHXVlD5GtQr5+qjiNW7bF0cqrzX500HVXPBOvgXb5YnzDd+h0zqyv61KUD7+Sg==", + "dev": true + }, "webpack": { - "version": "4.41.2", - "resolved": "https://registry.npmjs.org/webpack/-/webpack-4.41.2.tgz", - "integrity": "sha512-Zhw69edTGfbz9/8JJoyRQ/pq8FYUoY0diOXqW0T6yhgdhCv6wr0hra5DwwWexNRns2Z2+gsnrNcbe9hbGBgk/A==", - "dev": true, - "requires": { - "@webassemblyjs/ast": "1.8.5", - "@webassemblyjs/helper-module-context": "1.8.5", - "@webassemblyjs/wasm-edit": "1.8.5", - "@webassemblyjs/wasm-parser": "1.8.5", - "acorn": "^6.2.1", - "ajv": "^6.10.2", - "ajv-keywords": "^3.4.1", + "version": "5.72.1", + "resolved": "https://registry.npmjs.org/webpack/-/webpack-5.72.1.tgz", + "integrity": "sha512-dXG5zXCLspQR4krZVR6QgajnZOjW2K/djHvdcRaDQvsjV9z9vaW6+ja5dZOYbqBBjF6kGXka/2ZyxNdc+8Jung==", + "dev": true, + "requires": { + "@types/eslint-scope": "^3.7.3", + "@types/estree": "^0.0.51", + "@webassemblyjs/ast": "1.11.1", + "@webassemblyjs/wasm-edit": "1.11.1", + "@webassemblyjs/wasm-parser": "1.11.1", + "acorn": "^8.4.1", + "acorn-import-assertions": "^1.7.6", + "browserslist": "^4.14.5", "chrome-trace-event": "^1.0.2", - "enhanced-resolve": "^4.1.0", - "eslint-scope": "^4.0.3", - "json-parse-better-errors": "^1.0.2", - "loader-runner": "^2.4.0", - "loader-utils": "^1.2.3", - "memory-fs": "^0.4.1", - "micromatch": "^3.1.10", - "mkdirp": "^0.5.1", - "neo-async": "^2.6.1", - "node-libs-browser": "^2.2.1", - "schema-utils": "^1.0.0", - "tapable": "^1.1.3", - "terser-webpack-plugin": "^1.4.1", - "watchpack": "^1.6.0", - "webpack-sources": "^1.4.1" + "enhanced-resolve": "^5.9.3", + "es-module-lexer": "^0.9.0", + "eslint-scope": "5.1.1", + "events": "^3.2.0", + "glob-to-regexp": "^0.4.1", + "graceful-fs": "^4.2.9", + "json-parse-even-better-errors": "^2.3.1", + "loader-runner": "^4.2.0", + "mime-types": "^2.1.27", + "neo-async": "^2.6.2", + "schema-utils": "^3.1.0", + "tapable": "^2.1.1", + "terser-webpack-plugin": "^5.1.3", + "watchpack": "^2.3.1", + "webpack-sources": "^3.2.3" }, "dependencies": { - "acorn": { - "version": "6.4.2", - "resolved": "https://registry.npmjs.org/acorn/-/acorn-6.4.2.tgz", - "integrity": "sha512-XtGIhXwF8YM8bJhGxG5kXgjkEuNGLTkoYqVE+KMR+aspr4KGYmKYg7yUe3KghyQ9yheNwLnjmzh/7+gfDBmHCQ==", + "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" + } + }, + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", "dev": true }, - "cacache": { - "version": "12.0.4", - "resolved": "https://registry.npmjs.org/cacache/-/cacache-12.0.4.tgz", - "integrity": "sha512-a0tMB40oefvuInr4Cwb3GerbL9xTj1D5yg0T5xrjGCGyfvbxseIXX7BAO/u/hIXdafzOI5JC3wDwHyf24buOAQ==", + "schema-utils": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-3.1.1.tgz", + "integrity": "sha512-Y5PQxS4ITlC+EahLuXaY86TXfR7Dc5lw294alXOq86JAHCihAIZfqv8nNCWvaEJvaC51uN9hbLGeV0cFBdH+Fw==", "dev": true, "requires": { - "bluebird": "^3.5.5", - "chownr": "^1.1.1", - "figgy-pudding": "^3.5.1", - "glob": "^7.1.4", - "graceful-fs": "^4.1.15", - "infer-owner": "^1.0.3", - "lru-cache": "^5.1.1", - "mississippi": "^3.0.0", - "mkdirp": "^0.5.1", - "move-concurrently": "^1.0.1", - "promise-inflight": "^1.0.1", - "rimraf": "^2.6.3", - "ssri": "^6.0.1", - "unique-filename": "^1.1.1", - "y18n": "^4.0.0" + "@types/json-schema": "^7.0.8", + "ajv": "^6.12.5", + "ajv-keywords": "^3.5.2" } - }, - "find-cache-dir": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/find-cache-dir/-/find-cache-dir-2.1.0.tgz", - "integrity": "sha512-Tq6PixE0w/VMFfCgbONnkiQIVol/JJL7nRMi20fqzA4NRs9AfeqMGeRdPi3wIhYkxjeBaWh2rxwapn5Tu3IqOQ==", + } + } + }, + "webpack-dev-middleware": { + "version": "5.3.1", + "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-5.3.1.tgz", + "integrity": "sha512-81EujCKkyles2wphtdrnPg/QqegC/AtqNH//mQkBYSMqwFVCQrxM6ktB2O/SPlZy7LqeEfTbV3cZARGQz6umhg==", + "dev": true, + "requires": { + "colorette": "^2.0.10", + "memfs": "^3.4.1", + "mime-types": "^2.1.31", + "range-parser": "^1.2.1", + "schema-utils": "^4.0.0" + }, + "dependencies": { + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { - "commondir": "^1.0.1", - "make-dir": "^2.0.0", - "pkg-dir": "^3.0.0" + "fast-deep-equal": "^3.1.3" } }, - "is-wsl": { - "version": "1.1.0", - "resolved": "https://registry.npmjs.org/is-wsl/-/is-wsl-1.1.0.tgz", - "integrity": "sha1-HxbkqiKwTRM2tmGIpmrzxgDDpm0=", + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", "dev": true }, - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "mime-db": "1.52.0" } }, - "rimraf": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", - "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", "dev": true, "requires": { - "glob": "^7.1.3" + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + } + } + }, + "webpack-dev-server": { + "version": "4.9.0", + "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-4.9.0.tgz", + "integrity": "sha512-+Nlb39iQSOSsFv0lWUuUTim3jDQO8nhK3E68f//J2r5rIcp4lULHXz2oZ0UVdEeWXEh5lSzYUlzarZhDAeAVQw==", + "dev": true, + "requires": { + "@types/bonjour": "^3.5.9", + "@types/connect-history-api-fallback": "^1.3.5", + "@types/express": "^4.17.13", + "@types/serve-index": "^1.9.1", + "@types/sockjs": "^0.3.33", + "@types/ws": "^8.5.1", + "ansi-html-community": "^0.0.8", + "bonjour-service": "^1.0.11", + "chokidar": "^3.5.3", + "colorette": "^2.0.10", + "compression": "^1.7.4", + "connect-history-api-fallback": "^1.6.0", + "default-gateway": "^6.0.3", + "express": "^4.17.3", + "graceful-fs": "^4.2.6", + "html-entities": "^2.3.2", + "http-proxy-middleware": "^2.0.3", + "ipaddr.js": "^2.0.1", + "open": "^8.0.9", + "p-retry": "^4.5.0", + "rimraf": "^3.0.2", + "schema-utils": "^4.0.0", + "selfsigned": "^2.0.1", + "serve-index": "^1.9.1", + "sockjs": "^0.3.21", + "spdy": "^4.0.2", + "webpack-dev-middleware": "^5.3.1", + "ws": "^8.4.2" + }, + "dependencies": { + "accepts": { + "version": "1.3.8", + "resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.8.tgz", + "integrity": "sha512-PYAthTa2m2VKxuvSD3DPC/Gy+U+sOA1LAuT8mkmRuvw+NACSaeXEQ+NHcVF7rONl6qcaxV3Uuemwawk+7+SJLw==", + "dev": true, + "requires": { + "mime-types": "~2.1.34", + "negotiator": "0.6.3" } }, - "serialize-javascript": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/serialize-javascript/-/serialize-javascript-4.0.0.tgz", - "integrity": "sha512-GaNA54380uFefWghODBWEGisLZFj00nS5ACs6yHa9nLqlLpVLO8ChDGeKRjZnV4Nh4n0Qi7nhYZD/9fCPzEqkw==", + "ajv-keywords": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-5.1.0.tgz", + "integrity": "sha512-YCS/JNFAUyr5vAuhk1DWm1CBxRHW9LbJ2ozWeemrIqpbsqKjHVxYPyi5GC0rjZIT5JxJ3virVTS8wk4i/Z+krw==", "dev": true, "requires": { - "randombytes": "^2.1.0" + "fast-deep-equal": "^3.1.3" } }, - "source-map": { - "version": "0.6.1", - "resolved": "https://registry.npmjs.org/source-map/-/source-map-0.6.1.tgz", - "integrity": "sha512-UjgapumWlbMhkBgzT7Ykc5YXUT46F0iKu8SGXq0bcwP5dz/h0Plj6enJqjz1Zbq2l5WaqYnrVbwWOWMyF3F47g==", + "anymatch": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.2.tgz", + "integrity": "sha512-P43ePfOAIupkguHUycrc4qJ9kz8ZiuOUijaETwX7THt0Y/GNK7v0aa8rY816xWjZ7rJdA5XdMcpVFTKMq+RvWg==", + "dev": true, + "requires": { + "normalize-path": "^3.0.0", + "picomatch": "^2.0.4" + } + }, + "array-flatten": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/array-flatten/-/array-flatten-1.1.1.tgz", + "integrity": "sha512-PCVAQswWemu6UdxsDFFX/+gVeYqKAod3D3UVm91jHwynguOwAvYPhx8nNlM++NqRcK6CxxpUafjmhIdKiHibqg==", "dev": true }, - "ssri": { - "version": "6.0.1", - "resolved": "https://registry.npmjs.org/ssri/-/ssri-6.0.1.tgz", - "integrity": "sha512-3Wge10hNcT1Kur4PDFwEieXSCMCJs/7WvSACcrMYrNp+b8kDL1/0wJch5Ni2WrtwEa2IO8OsVfeKIciKCDx/QA==", + "body-parser": { + "version": "1.20.0", + "resolved": "https://registry.npmjs.org/body-parser/-/body-parser-1.20.0.tgz", + "integrity": "sha512-DfJ+q6EPcGKZD1QWUjSpqp+Q7bDQTsQIF4zfUAtZ6qk+H/3/QRhg9CEp39ss+/T2vw0+HaidC0ecJj/DRLIaKg==", "dev": true, "requires": { - "figgy-pudding": "^3.5.1" + "bytes": "3.1.2", + "content-type": "~1.0.4", + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "on-finished": "2.4.1", + "qs": "6.10.3", + "raw-body": "2.5.1", + "type-is": "~1.6.18", + "unpipe": "1.0.0" } }, - "terser-webpack-plugin": { - "version": "1.4.5", - "resolved": "https://registry.npmjs.org/terser-webpack-plugin/-/terser-webpack-plugin-1.4.5.tgz", - "integrity": "sha512-04Rfe496lN8EYruwi6oPQkG0vo8C+HT49X687FZnpPF0qMAIHONI6HEXYPKDOE8e5HjXTyKfqRd/agHtH0kOtw==", + "bytes": { + "version": "3.1.2", + "resolved": "https://registry.npmjs.org/bytes/-/bytes-3.1.2.tgz", + "integrity": "sha512-/Nf7TyzTx6S3yRJObOAV7956r8cr2+Oj8AC5dt8wSP3BQAoeX58NoHyCU8P8zGkNXStjTSi6fzO6F0pBdcYbEg==", + "dev": true + }, + "chokidar": { + "version": "3.5.3", + "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.5.3.tgz", + "integrity": "sha512-Dr3sfKRP6oTcjf2JmUmFJfeVMvXBdegxB0iVQ5eb2V10uFJUCAS8OByZdVAyVb8xXNz3GjjTgj9kLWsZTqE6kw==", "dev": true, "requires": { - "cacache": "^12.0.2", - "find-cache-dir": "^2.1.0", - "is-wsl": "^1.1.0", - "schema-utils": "^1.0.0", - "serialize-javascript": "^4.0.0", - "source-map": "^0.6.1", - "terser": "^4.1.2", - "webpack-sources": "^1.4.0", - "worker-farm": "^1.7.0" + "anymatch": "~3.1.2", + "braces": "~3.0.2", + "fsevents": "~2.3.2", + "glob-parent": "~5.1.2", + "is-binary-path": "~2.1.0", + "is-glob": "~4.0.1", + "normalize-path": "~3.0.0", + "readdirp": "~3.6.0" } - } - } - }, - "webpack-dev-middleware": { - "version": "3.7.2", - "resolved": "https://registry.npmjs.org/webpack-dev-middleware/-/webpack-dev-middleware-3.7.2.tgz", - "integrity": "sha512-1xC42LxbYoqLNAhV6YzTYacicgMZQTqRd27Sim9wn5hJrX3I5nxYy1SxSd4+gjUFsz1dQFj+yEe6zEVmSkeJjw==", - "dev": true, - "requires": { - "memory-fs": "^0.4.1", - "mime": "^2.4.4", - "mkdirp": "^0.5.1", - "range-parser": "^1.2.1", - "webpack-log": "^2.0.0" - }, - "dependencies": { - "memory-fs": { - "version": "0.4.1", - "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.4.1.tgz", - "integrity": "sha1-OpoguEYlI+RHz7x+i7gO1me/xVI=", + }, + "content-disposition": { + "version": "0.5.4", + "resolved": "https://registry.npmjs.org/content-disposition/-/content-disposition-0.5.4.tgz", + "integrity": "sha512-FveZTNuGw04cxlAiWbzi6zTAL/lhehaWbTtgluJh4/E95DqMwTmha3KZN1aAWA8cFIhHzMZUvLevkw5Rqk+tSQ==", "dev": true, "requires": { - "errno": "^0.1.3", - "readable-stream": "^2.0.1" + "safe-buffer": "5.2.1" } }, - "mime": { - "version": "2.5.0", - "resolved": "https://registry.npmjs.org/mime/-/mime-2.5.0.tgz", - "integrity": "sha512-ft3WayFSFUVBuJj7BMLKAQcSlItKtfjsKDDsii3rqFDAZ7t11zRe8ASw/GlmivGwVUYtwkQrxiGGpL6gFvB0ag==", + "cookie": { + "version": "0.5.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.5.0.tgz", + "integrity": "sha512-YZ3GUyn/o8gfKJlnlX7g7xq4gyO6OSuhGPKaaGssGB2qgDUS0gPgtTvoyZLTt9Ab6dC4hfc9dV5arkvc/OCmrw==", "dev": true - } - } - }, - "webpack-dev-server": { - "version": "3.9.0", - "resolved": "https://registry.npmjs.org/webpack-dev-server/-/webpack-dev-server-3.9.0.tgz", - "integrity": "sha512-E6uQ4kRrTX9URN9s/lIbqTAztwEPdvzVrcmHE8EQ9YnuT9J8Es5Wrd8n9BKg1a0oZ5EgEke/EQFgUsp18dSTBw==", - "dev": true, - "requires": { - "ansi-html": "0.0.7", - "bonjour": "^3.5.0", - "chokidar": "^2.1.8", - "compression": "^1.7.4", - "connect-history-api-fallback": "^1.6.0", - "debug": "^4.1.1", - "del": "^4.1.1", - "express": "^4.17.1", - "html-entities": "^1.2.1", - "http-proxy-middleware": "0.19.1", - "import-local": "^2.0.0", - "internal-ip": "^4.3.0", - "ip": "^1.1.5", - "is-absolute-url": "^3.0.3", - "killable": "^1.0.1", - "loglevel": "^1.6.4", - "opn": "^5.5.0", - "p-retry": "^3.0.1", - "portfinder": "^1.0.25", - "schema-utils": "^1.0.0", - "selfsigned": "^1.10.7", - "semver": "^6.3.0", - "serve-index": "^1.9.1", - "sockjs": "0.3.19", - "sockjs-client": "1.4.0", - "spdy": "^4.0.1", - "strip-ansi": "^3.0.1", - "supports-color": "^6.1.0", - "url": "^0.11.0", - "webpack-dev-middleware": "^3.7.2", - "webpack-log": "^2.0.0", - "ws": "^6.2.1", - "yargs": "12.0.5" - }, - "dependencies": { - "anymatch": { + }, + "debug": { + "version": "2.6.9", + "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", + "integrity": "sha512-bC7ElrdJaJnPbAP+1EotYvqZsb3ecl5wi6Bfi6BJTUcNowp6cvspg0jXznRTKDjm/E7AdgFBVeAPVMNcKGsHMA==", + "dev": true, + "requires": { + "ms": "2.0.0" + } + }, + "depd": { "version": "2.0.0", - "resolved": "https://registry.npmjs.org/anymatch/-/anymatch-2.0.0.tgz", - "integrity": "sha512-5teOsQWABXHHBFP9y3skS5P3d/WfWXpv3FUpy+LorMrNYaT9pI4oLMQX7jzQ2KklNpGpWHzdCXTDT2Y3XGlZBw==", + "resolved": "https://registry.npmjs.org/depd/-/depd-2.0.0.tgz", + "integrity": "sha512-g7nH6P6dyDioJogAAGprGpCtVImJhpPk/roCzdb3fIh61/s/nPsfR6onyMwkCAR/OlC3yBC0lESvUoQEAssIrw==", + "dev": true + }, + "destroy": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/destroy/-/destroy-1.2.0.tgz", + "integrity": "sha512-2sJGJTaXIIaR1w4iJSNoN0hnMY7Gpc/n8D4qSCJw8QqFWXf7cuAgnEHxBpweaVcPevC2l3KpjYCx3NypQQgaJg==", + "dev": true + }, + "express": { + "version": "4.18.1", + "resolved": "https://registry.npmjs.org/express/-/express-4.18.1.tgz", + "integrity": "sha512-zZBcOX9TfehHQhtupq57OF8lFZ3UZi08Y97dwFCkD8p9d/d2Y3M+ykKcwaMDEL+4qyUolgBDX6AblpR3fL212Q==", + "dev": true, + "requires": { + "accepts": "~1.3.8", + "array-flatten": "1.1.1", + "body-parser": "1.20.0", + "content-disposition": "0.5.4", + "content-type": "~1.0.4", + "cookie": "0.5.0", + "cookie-signature": "1.0.6", + "debug": "2.6.9", + "depd": "2.0.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "finalhandler": "1.2.0", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "merge-descriptors": "1.0.1", + "methods": "~1.1.2", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "path-to-regexp": "0.1.7", + "proxy-addr": "~2.0.7", + "qs": "6.10.3", + "range-parser": "~1.2.1", + "safe-buffer": "5.2.1", + "send": "0.18.0", + "serve-static": "1.15.0", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "type-is": "~1.6.18", + "utils-merge": "1.0.1", + "vary": "~1.1.2" + } + }, + "finalhandler": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/finalhandler/-/finalhandler-1.2.0.tgz", + "integrity": "sha512-5uXcUVftlQMFnWC9qu/svkWv3GTd2PfUhK/3PLkYNAe7FbqJMt3515HaxE6eRL74GdsriiwujiawdaB1BpEISg==", "dev": true, "requires": { - "micromatch": "^3.1.4", - "normalize-path": "^2.1.1" - }, - "dependencies": { - "normalize-path": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-2.1.1.tgz", - "integrity": "sha1-GrKLVW4Zg2Oowab35vogE3/mrtk=", - "dev": true, - "requires": { - "remove-trailing-separator": "^1.0.1" - } - } + "debug": "2.6.9", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "on-finished": "2.4.1", + "parseurl": "~1.3.3", + "statuses": "2.0.1", + "unpipe": "~1.0.0" } }, - "binary-extensions": { - "version": "1.13.1", - "resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-1.13.1.tgz", - "integrity": "sha512-Un7MIEDdUC5gNpcGDV97op1Ywk748MpHcFTHoYs6qnj1Z3j7I53VG3nwZhKzoBZmbdRNnb6WRdFlwl7tSDuZGw==", + "forwarded": { + "version": "0.2.0", + "resolved": "https://registry.npmjs.org/forwarded/-/forwarded-0.2.0.tgz", + "integrity": "sha512-buRG0fpBtRHSTCOASe6hD258tEubFoRLb4ZNA6NxMVHNw2gOcwHo9wyablzMzOA5z9xA9L1KNjk/Nt6MT9aYow==", "dev": true }, - "braces": { + "fsevents": { "version": "2.3.2", - "resolved": "https://registry.npmjs.org/braces/-/braces-2.3.2.tgz", - "integrity": "sha512-aNdbnj9P8PjdXU4ybaWLK2IF3jc/EoDYbC7AazW6to3TRsfXxscC9UXOB5iDiEQrkyIbWp2SLQda4+QAa7nc3w==", + "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.3.2.tgz", + "integrity": "sha512-xiqMQR4xAeHTuB9uWm+fFRcIOgKBMiOBP+eXiyT7jsgVCq1bkVygt00oASowB7EdtpOHaaPgKt812P9ab+DDKA==", + "dev": true, + "optional": true + }, + "glob-parent": { + "version": "5.1.2", + "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.2.tgz", + "integrity": "sha512-AOIgSQCepiJYwP3ARnGx+5VnTu2HBYdzbGP45eLw1vr3zB3vZLeyed1sC9hnbcOc9/SrMyM5RPQrkGz4aS9Zow==", "dev": true, "requires": { - "arr-flatten": "^1.1.0", - "array-unique": "^0.3.2", - "extend-shallow": "^2.0.1", - "fill-range": "^4.0.0", - "isobject": "^3.0.1", - "repeat-element": "^1.1.2", - "snapdragon": "^0.8.1", - "snapdragon-node": "^2.0.1", - "split-string": "^3.0.2", - "to-regex": "^3.0.1" + "is-glob": "^4.0.1" } }, - "chokidar": { - "version": "2.1.8", - "resolved": "https://registry.npmjs.org/chokidar/-/chokidar-2.1.8.tgz", - "integrity": "sha512-ZmZUazfOzf0Nve7duiCKD23PFSCs4JPoYyccjUFF3aQkQadqBhfzhjkwBH2mNOG9cTBwhamM37EIsIkZw3nRgg==", + "graceful-fs": { + "version": "4.2.10", + "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.10.tgz", + "integrity": "sha512-9ByhssR2fPVsNZj478qUUbKfmL0+t5BDVyjShtyZZLiK7ZDAArFFfopyOTj0M05wE2tJPisA4iTnnXl2YoPvOA==", + "dev": true + }, + "http-errors": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/http-errors/-/http-errors-2.0.0.tgz", + "integrity": "sha512-FtwrG/euBzaEjYeRqOgly7G0qviiXoJWnvEH2Z1plBdXgbyjv34pHTSb9zoeHMyDy33+DWy5Wt9Wo+TURtOYSQ==", "dev": true, "requires": { - "anymatch": "^2.0.0", - "async-each": "^1.0.1", - "braces": "^2.3.2", - "fsevents": "^1.2.7", - "glob-parent": "^3.1.0", - "inherits": "^2.0.3", - "is-binary-path": "^1.0.0", - "is-glob": "^4.0.0", - "normalize-path": "^3.0.0", - "path-is-absolute": "^1.0.0", - "readdirp": "^2.2.1", - "upath": "^1.1.1" + "depd": "2.0.0", + "inherits": "2.0.4", + "setprototypeof": "1.2.0", + "statuses": "2.0.1", + "toidentifier": "1.0.1" } }, - "extend-shallow": { + "ipaddr.js": { "version": "2.0.1", - "resolved": "https://registry.npmjs.org/extend-shallow/-/extend-shallow-2.0.1.tgz", - "integrity": "sha1-Ua99YUrZqfYQ6huvu5idaxxWiQ8=", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-2.0.1.tgz", + "integrity": "sha512-1qTgH9NG+IIJ4yfKs2e6Pp1bZg8wbDbKHT21HrLIeYBTRLgMYKnMTPAuI3Lcs61nfx5h1xlXnbJtH1kX5/d/ng==", + "dev": true + }, + "mime-db": { + "version": "1.52.0", + "resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.52.0.tgz", + "integrity": "sha512-sPU4uV7dYlvtWJxwwxHD0PuihVNiE7TyAbQ5SWxDCB9mUYvOgroQOwYQQOKPJ8CIbE+1ETVlOoK1UC2nU3gYvg==", + "dev": true + }, + "mime-types": { + "version": "2.1.35", + "resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.35.tgz", + "integrity": "sha512-ZDY+bPm5zTTF+YpCrAU9nK0UgICYPT0QtT1NZWFv4s++TNkcgVaT0g6+4R2uI4MjQjzysHB1zxuWL50hzaeXiw==", "dev": true, "requires": { - "is-extendable": "^0.1.0" + "mime-db": "1.52.0" } }, - "fill-range": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", - "integrity": "sha1-1USBHUKPmOsGpj3EAtJAPDKMOPc=", + "ms": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", + "integrity": "sha512-Tpp60P6IUJDTuOq/5Z8cdskzJujfwqfOTkrwIwj7IRISpnkJnT6SyJ4PCPnGMoFjC9ddhal5KVIYtAt97ix05A==", + "dev": true + }, + "negotiator": { + "version": "0.6.3", + "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.3.tgz", + "integrity": "sha512-+EUsqGPLsM+j/zdChZjsnX51g4XrHFOIXwfnCVPGlQk/k5giakcKsuxCObBRu6DSm9opw/O6slWbJdghQM4bBg==", + "dev": true + }, + "on-finished": { + "version": "2.4.1", + "resolved": "https://registry.npmjs.org/on-finished/-/on-finished-2.4.1.tgz", + "integrity": "sha512-oVlzkg3ENAhCk2zdv7IJwd/QUD4z2RxRwpkcGY8psCVcCYZNq4wYnVWALHM+brtuJjePWiYF/ClmuDr8Ch5+kg==", "dev": true, "requires": { - "extend-shallow": "^2.0.1", - "is-number": "^3.0.0", - "repeat-string": "^1.6.1", - "to-regex-range": "^2.1.0" + "ee-first": "1.1.1" } }, - "fsevents": { - "version": "1.2.13", - "resolved": "https://registry.npmjs.org/fsevents/-/fsevents-1.2.13.tgz", - "integrity": "sha512-oWb1Z6mkHIskLzEJ/XWX0srkpkTQ7vaopMQkyaEIoq0fmtFVxOthb8cCxeT+p3ynTdkk/RZwbgG4brR5BeWECw==", + "open": { + "version": "8.4.0", + "resolved": "https://registry.npmjs.org/open/-/open-8.4.0.tgz", + "integrity": "sha512-XgFPPM+B28FtCCgSb9I+s9szOC1vZRSwgWsRUA5ylIxRTgKozqjOCrVOqGsYABPYK5qnfqClxZTFBa8PKt2v6Q==", "dev": true, - "optional": true, "requires": { - "bindings": "^1.5.0", - "nan": "^2.12.1" + "define-lazy-prop": "^2.0.0", + "is-docker": "^2.1.1", + "is-wsl": "^2.2.0" } }, - "is-absolute-url": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/is-absolute-url/-/is-absolute-url-3.0.3.tgz", - "integrity": "sha512-opmNIX7uFnS96NtPmhWQgQx6/NYFgsUXYMllcfzwWKUMwfo8kku1TvE6hkNcH+Q1ts5cMVrsY7j0bxXQDciu9Q==", - "dev": true + "proxy-addr": { + "version": "2.0.7", + "resolved": "https://registry.npmjs.org/proxy-addr/-/proxy-addr-2.0.7.tgz", + "integrity": "sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==", + "dev": true, + "requires": { + "forwarded": "0.2.0", + "ipaddr.js": "1.9.1" + }, + "dependencies": { + "ipaddr.js": { + "version": "1.9.1", + "resolved": "https://registry.npmjs.org/ipaddr.js/-/ipaddr.js-1.9.1.tgz", + "integrity": "sha512-0KI/607xoxSToH7GjN1FfSbLoU0+btTicjsQSWQlh/hZykN8KpmMf7uYwPW3R+akZ6R/w18ZlXSHBYXiYUPO3g==", + "dev": true + } + } }, - "is-binary-path": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-1.0.1.tgz", - "integrity": "sha1-dfFmQrSA8YenEcgUFh/TpKdlWJg=", + "qs": { + "version": "6.10.3", + "resolved": "https://registry.npmjs.org/qs/-/qs-6.10.3.tgz", + "integrity": "sha512-wr7M2E0OFRfIfJZjKGieI8lBKb7fRCH4Fv5KNPEs7gJ8jadvotdsS08PzOKR7opXhZ/Xkjtt3WF9g38drmyRqQ==", "dev": true, "requires": { - "binary-extensions": "^1.0.0" + "side-channel": "^1.0.4" } }, - "is-number": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-number/-/is-number-3.0.0.tgz", - "integrity": "sha1-JP1iAaR4LPUFYcgQJ2r8fRLXEZU=", + "raw-body": { + "version": "2.5.1", + "resolved": "https://registry.npmjs.org/raw-body/-/raw-body-2.5.1.tgz", + "integrity": "sha512-qqJBtEyVgS0ZmPGdCFPWJ3FreoqvG4MVQln/kCgF7Olq95IbOp0/BWyMwbdtn4VTvkM8Y7khCQ2Xgk/tcrCXig==", + "dev": true, + "requires": { + "bytes": "3.1.2", + "http-errors": "2.0.0", + "iconv-lite": "0.4.24", + "unpipe": "1.0.0" + } + }, + "readdirp": { + "version": "3.6.0", + "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.6.0.tgz", + "integrity": "sha512-hOS089on8RduqdbhvQ5Z37A0ESjsqz6qnRcffsMU3495FuTdqSm+7bhJ29JvIOsBDEEnan5DPu9t3To9VRlMzA==", "dev": true, "requires": { - "kind-of": "^3.0.2" + "picomatch": "^2.2.1" } }, - "kind-of": { - "version": "3.2.2", - "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-3.2.2.tgz", - "integrity": "sha1-MeohpzS6ubuw8yRm2JOupR5KPGQ=", + "rimraf": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-3.0.2.tgz", + "integrity": "sha512-JZkJMZkAGFFPP2YqXZXPbMlMBgsxzE8ILs4lMIX/2o0L9UBw9O/Y3o6wFw/i9YLapcUJWwqbi3kdxIPdC62TIA==", "dev": true, "requires": { - "is-buffer": "^1.1.5" + "glob": "^7.1.3" + } + }, + "safe-buffer": { + "version": "5.2.1", + "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.2.1.tgz", + "integrity": "sha512-rp3So07KcdmmKbGvgaNxQSJr7bGVSVk5S9Eq1F+ppbRo70+YeaDxkw5Dd8NPN+GD6bjnYm2VuPuCXmpuYvmCXQ==", + "dev": true + }, + "schema-utils": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/schema-utils/-/schema-utils-4.0.0.tgz", + "integrity": "sha512-1edyXKgh6XnJsJSQ8mKWXnN/BVaIbFMLpouRUrXgVq7WYne5kw3MW7UPhO44uRXQSIpTSXoJbmrR2X0w9kUTyg==", + "dev": true, + "requires": { + "@types/json-schema": "^7.0.9", + "ajv": "^8.8.0", + "ajv-formats": "^2.1.1", + "ajv-keywords": "^5.0.0" + } + }, + "send": { + "version": "0.18.0", + "resolved": "https://registry.npmjs.org/send/-/send-0.18.0.tgz", + "integrity": "sha512-qqWzuOjSFOuqPjFe4NOsMLafToQQwBSOEpS+FwEt3A2V3vKubTquT3vmLTQpFgMXp8AlFWFuP1qKaJZOtPpVXg==", + "dev": true, + "requires": { + "debug": "2.6.9", + "depd": "2.0.0", + "destroy": "1.2.0", + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "etag": "~1.8.1", + "fresh": "0.5.2", + "http-errors": "2.0.0", + "mime": "1.6.0", + "ms": "2.1.3", + "on-finished": "2.4.1", + "range-parser": "~1.2.1", + "statuses": "2.0.1" + }, + "dependencies": { + "ms": { + "version": "2.1.3", + "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.3.tgz", + "integrity": "sha512-6FlzubTLZG3J2a/NVCAleEhjzq5oxgHyaCU9yYXvcLsvoVaHJq/s5xXI6/XXP6tz7R9xAOtHnSO/tXtF3WRTlA==", + "dev": true + } } }, - "readdirp": { - "version": "2.2.1", - "resolved": "https://registry.npmjs.org/readdirp/-/readdirp-2.2.1.tgz", - "integrity": "sha512-1JU/8q+VgFZyxwrJ+SVIOsh+KywWGpds3NTqikiKpDMZWScmAYyKIgqkO+ARvNWJfXeXR1zxz7aHF4u4CyH6vQ==", + "serve-static": { + "version": "1.15.0", + "resolved": "https://registry.npmjs.org/serve-static/-/serve-static-1.15.0.tgz", + "integrity": "sha512-XGuRDNjXUijsUL0vl6nSD7cwURuzEgglbOaFuZM9g3kwDXOWVTck0jLzjPzGD+TazWbboZYu52/9/XPdUgne9g==", "dev": true, "requires": { - "graceful-fs": "^4.1.11", - "micromatch": "^3.1.10", - "readable-stream": "^2.0.2" + "encodeurl": "~1.0.2", + "escape-html": "~1.0.3", + "parseurl": "~1.3.3", + "send": "0.18.0" } }, - "supports-color": { - "version": "6.1.0", - "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", - "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", - "dev": true, - "requires": { - "has-flag": "^3.0.0" - } + "setprototypeof": { + "version": "1.2.0", + "resolved": "https://registry.npmjs.org/setprototypeof/-/setprototypeof-1.2.0.tgz", + "integrity": "sha512-E5LDX7Wrp85Kil5bhZv46j8jOeboKq5JMmYM3gVGdGH8xFpPWXUMsNrlODCrkoxMEeNi/XZIwuRvY4XNwYMJpw==", + "dev": true }, - "to-regex-range": { - "version": "2.1.1", - "resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-2.1.1.tgz", - "integrity": "sha1-fIDBe53+vlmeJzZ+DU3VWQFB2zg=", - "dev": true, - "requires": { - "is-number": "^3.0.0", - "repeat-string": "^1.6.1" - } + "statuses": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/statuses/-/statuses-2.0.1.tgz", + "integrity": "sha512-RwNA9Z/7PrK06rYLIzFMlaF+l73iwpzsqRIFgbMLbTcLD6cOao82TaWefPXQvB2fOC4AjuYSEndS7N/mTCbkdQ==", + "dev": true + }, + "toidentifier": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/toidentifier/-/toidentifier-1.0.1.tgz", + "integrity": "sha512-o5sSPKEkg/DIQNmH43V0/uerLrpzVedkUh8tGNvaeXpfpuwjKenlSox/2O/BTlZUtEe+JG7s5YhEz608PlAHRA==", + "dev": true } } }, - "webpack-log": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/webpack-log/-/webpack-log-2.0.0.tgz", - "integrity": "sha512-cX8G2vR/85UYG59FgkoMamwHUIkSSlV3bBMRsbxVXVUk2j6NleCKjQ/WE9eYg9WY4w25O9w8wKP4rzNZFmUcUg==", - "dev": true, - "requires": { - "ansi-colors": "^3.0.0", - "uuid": "^3.3.2" - } - }, "webpack-merge": { - "version": "4.2.2", - "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-4.2.2.tgz", - "integrity": "sha512-TUE1UGoTX2Cd42j3krGYqObZbOD+xF7u28WB7tfUordytSjbWTIjK/8V0amkBfTYN4/pB/GIDlJZZ657BGG19g==", + "version": "5.8.0", + "resolved": "https://registry.npmjs.org/webpack-merge/-/webpack-merge-5.8.0.tgz", + "integrity": "sha512-/SaI7xY0831XwP6kzuwhKWVKDP9t1QY1h65lAFLbZqMPIuYcD9QAW4u9STIbU9kaJbPBB/geU/gLr1wDjOhQ+Q==", "dev": true, "requires": { - "lodash": "^4.17.15" + "clone-deep": "^4.0.1", + "wildcard": "^2.0.0" } }, "webpack-sources": { - "version": "1.4.3", - "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-1.4.3.tgz", - "integrity": "sha512-lgTS3Xhv1lCOKo7SA5TjKXMjpSM4sBjNV5+q2bqesbSPs5FjGmU6jjtBSkX9b4qW87vDIsCIlUPOEhbZrMdjeQ==", - "dev": true, - "requires": { - "source-list-map": "^2.0.0", - "source-map": "~0.6.1" - }, - "dependencies": { - "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 - } - } + "version": "3.2.3", + "resolved": "https://registry.npmjs.org/webpack-sources/-/webpack-sources-3.2.3.tgz", + "integrity": "sha512-/DyMEOrDgLKKIG0fmvtz+4dUX/3Ghozwgm6iPp8KRhvn+eQf9+Q7GWxVNMk3+uCPWfdXYC4ExGBckIXdFEfH1w==", + "dev": true }, "webpack-subresource-integrity": { - "version": "1.3.4", - "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-1.3.4.tgz", - "integrity": "sha512-6XbGYzjh30cGQT/NsC+9IAkJP8IL7/t47sbwR5DLSsamiD56Rwv4/+hsgEHsviPvrEFZ0JRAQtCRN3UsR2Pw9g==", + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/webpack-subresource-integrity/-/webpack-subresource-integrity-5.1.0.tgz", + "integrity": "sha512-sacXoX+xd8r4WKsy9MvH/q/vBtEHr86cpImXwyg74pFIpERKt6FmB8cXpeuh0ZLgclOlHI4Wcll7+R5L02xk9Q==", "dev": true, "requires": { - "webpack-sources": "^1.3.0" + "typed-assert": "^1.0.8" } }, "websocket-driver": { "version": "0.7.4", "resolved": "https://registry.npmjs.org/websocket-driver/-/websocket-driver-0.7.4.tgz", "integrity": "sha512-b17KeDIQVjvb0ssuSDF2cYXSg2iztliJ4B9WdsuB6J952qCPKmnVq4DyW5motImXHDC1cBT/1UezrJVsKw5zjg==", + "dev": true, "requires": { "http-parser-js": ">=0.5.1", "safe-buffer": ">=5.1.0", @@ -36294,19 +11800,20 @@ "websocket-extensions": { "version": "0.1.4", "resolved": "https://registry.npmjs.org/websocket-extensions/-/websocket-extensions-0.1.4.tgz", - "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==" - }, - "whatwg-fetch": { - "version": "2.0.4", - "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-2.0.4.tgz", - "integrity": "sha512-dcQ1GWpOD/eEQ97k66aiEVpNnapVj90/+R+SXTPYGHpYBBypfKJEQjLrvMZ7YXbKm21gXd4NcuxUTjiv1YtLng==" - }, - "when": { - "version": "3.6.4", - "resolved": "https://registry.npmjs.org/when/-/when-3.6.4.tgz", - "integrity": "sha1-RztRfsFZ4rhQBUl6E5g/CVQS404=", + "integrity": "sha512-OqedPIGOfsDlo31UNwYbCFMSaO9m9G/0faIHj5/dZFDMFqPTcx6UwqyOy3COEaEOg/9VsGIpdqn62W5KhoKSpg==", "dev": true }, + "whatwg-url": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.1.0.tgz", + "integrity": "sha512-WUu7Rg1DroM7oQvGWfOiAK21n74Gg+T4elXEQYkOhtyLeWiJFoOGLXPKI/9gzIie9CtwVLm8wtw6YJdKyxSjeg==", + "dev": true, + "requires": { + "lodash.sortby": "^4.7.0", + "tr46": "^1.0.1", + "webidl-conversions": "^4.0.2" + } + }, "which": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/which/-/which-1.3.1.tgz", @@ -36322,163 +11829,77 @@ "integrity": "sha1-2e8H3Od7mQK4o6j6SzHD4/fm6Ho=", "dev": true }, - "wide-align": { - "version": "1.1.3", - "resolved": "https://registry.npmjs.org/wide-align/-/wide-align-1.1.3.tgz", - "integrity": "sha512-QGkOQc8XL6Bt5PwnsExKBPuMKBxnGxWWW3fU55Xt4feHozMUhdUMaBCk290qpm/wG5u/RSKzwdAC4i51YigihA==", - "dev": true, - "optional": true, - "requires": { - "string-width": "^1.0.2 || 2" - } + "wildcard": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/wildcard/-/wildcard-2.0.0.tgz", + "integrity": "sha512-JcKqAHLPxcdb9KM49dufGXn2x3ssnfjbcaQdLlfZsL9rH9wgDQjUtDxbo8NE0F6SFvydeu1VhZe7hZuHsB2/pw==", + "dev": true }, - "widest-line": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", - "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", + "wrap-ansi": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "string-width": "^4.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" }, "dependencies": { "ansi-regex": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", - "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", - "dev": true - }, - "is-fullwidth-code-point": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", - "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", "dev": true }, - "string-width": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", - "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "ansi-styles": { + "version": "4.3.0", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", + "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", "dev": true, "requires": { - "emoji-regex": "^8.0.0", - "is-fullwidth-code-point": "^3.0.0", - "strip-ansi": "^6.0.0" + "color-convert": "^2.0.1" } }, - "strip-ansi": { - "version": "6.0.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", - "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", "dev": true, "requires": { - "ansi-regex": "^5.0.0" + "color-name": "~1.1.4" } - } - } - }, - "winston": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/winston/-/winston-3.3.3.tgz", - "integrity": "sha512-oEXTISQnC8VlSAKf1KYSSd7J6IWuRPQqDdo8eoRNaYKLvwSb5+79Z3Yi1lrl6KDpU6/VWaxpakDAtb1oQ4n9aw==", - "dev": true, - "requires": { - "@dabh/diagnostics": "^2.0.2", - "async": "^3.1.0", - "is-stream": "^2.0.0", - "logform": "^2.2.0", - "one-time": "^1.0.0", - "readable-stream": "^3.4.0", - "stack-trace": "0.0.x", - "triple-beam": "^1.3.0", - "winston-transport": "^4.4.0" - }, - "dependencies": { - "async": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", - "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", - "dev": true }, - "is-stream": { - "version": "2.0.0", - "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", - "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==", + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", "dev": true }, - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } - } - }, - "winston-transport": { - "version": "4.4.0", - "resolved": "https://registry.npmjs.org/winston-transport/-/winston-transport-4.4.0.tgz", - "integrity": "sha512-Lc7/p3GtqtqPBYYtS6KCN3c77/2QCev51DvcJKbkFPQNoj1sinkGwLGFDxkXY9J6p9+EPnYs+D90uwbnaiURTw==", - "dev": true, - "requires": { - "readable-stream": "^2.3.7", - "triple-beam": "^1.2.0" - } - }, - "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", - "integrity": "sha512-rvw3QTZc8lAxyVrqcSGVm5yP/IJ2UcB3U0graE3LCFoZ0Yn2x4EoVSqJKdB/T5M+FLcRPjz4TDacRf3OCfNUzw==", - "dev": true, - "requires": { - "errno": "~0.1.7" - } - }, - "worker-plugin": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/worker-plugin/-/worker-plugin-3.2.0.tgz", - "integrity": "sha512-W5nRkw7+HlbsEt3qRP6MczwDDISjiRj2GYt9+bpe8A2La00TmJdwzG5bpdMXhRt1qcWmwAvl1TiKaHRa+XDS9Q==", - "dev": true, - "requires": { - "loader-utils": "^1.1.0" - } - }, - "wrap-ansi": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-2.1.0.tgz", - "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", - "dev": true, - "requires": { - "string-width": "^1.0.1", - "strip-ansi": "^3.0.1" - }, - "dependencies": { "is-fullwidth-code-point": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", - "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", "dev": true, "requires": { - "number-is-nan": "^1.0.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" } }, - "string-width": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", - "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", "dev": true, "requires": { - "code-point-at": "^1.0.0", - "is-fullwidth-code-point": "^1.0.0", - "strip-ansi": "^3.0.0" + "ansi-regex": "^5.0.1" } } } @@ -36486,34 +11907,12 @@ "wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", - "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=", - "dev": true - }, - "write-file-atomic": { - "version": "3.0.3", - "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", - "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", - "dev": true, - "requires": { - "imurmurhash": "^0.1.4", - "is-typedarray": "^1.0.0", - "signal-exit": "^3.0.2", - "typedarray-to-buffer": "^3.1.5" - } + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" }, "ws": { - "version": "6.2.1", - "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", - "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", - "dev": true, - "requires": { - "async-limiter": "~1.0.0" - } - }, - "xdg-basedir": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", - "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", + "version": "8.8.0", + "resolved": "https://registry.npmjs.org/ws/-/ws-8.8.0.tgz", + "integrity": "sha512-JDAgSYQ1ksuwqfChJusw1LSJ8BizJ2e/vVu5Lxjq3YvNJNlROv1ui4i+c/kUUrPheBvQl4c5UbERhTwKa6QBJQ==", "dev": true }, "xml2js": { @@ -36532,29 +11931,6 @@ "integrity": "sha512-fDlsI/kFEx7gLvbecc0/ohLG50fugQp8ryHzMTuW9vSa1GJ0XYWKnhsUx7oie3G98+r56aTQIUB4kht42R3JvA==", "dev": true }, - "xmldom": { - "version": "0.1.31", - "resolved": "https://registry.npmjs.org/xmldom/-/xmldom-0.1.31.tgz", - "integrity": "sha512-yS2uJflVQs6n+CyjHoaBmVSqIDevTAWrzMmjG1Gc7h1qQ7uVozNhEPJAwZXWyGQ/Gafo3fCwrcaokezLPupVyQ==", - "dev": true - }, - "xmlhttprequest": { - "version": "1.8.0", - "resolved": "https://registry.npmjs.org/xmlhttprequest/-/xmlhttprequest-1.8.0.tgz", - "integrity": "sha1-Z/4HXFwk/vOfnWX197f+dRcZaPw=" - }, - "xmlhttprequest-ssl": { - "version": "1.5.5", - "resolved": "https://registry.npmjs.org/xmlhttprequest-ssl/-/xmlhttprequest-ssl-1.5.5.tgz", - "integrity": "sha1-wodrBhaKrcQOV9l+gRkayPQ5iz4=", - "dev": true - }, - "xtend": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/xtend/-/xtend-4.0.2.tgz", - "integrity": "sha512-LKYU1iAXJXUgAXn9URjiu+MWhyUXHsvfp7mcuYm9dSUKK0/CjtrUwFAxD82/mCWbtLsGjFIad0wIsod4zrTAEQ==", - "dev": true - }, "y18n": { "version": "4.0.1", "resolved": "https://registry.npmjs.org/y18n/-/y18n-4.0.1.tgz", @@ -36564,78 +11940,125 @@ "yallist": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", - "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==" + "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", + "dev": true + }, + "yaml": { + "version": "1.10.2", + "resolved": "https://registry.npmjs.org/yaml/-/yaml-1.10.2.tgz", + "integrity": "sha512-r3vXyErRCYJ7wg28yvBY5VSoAF8ZvlcW9/BwUzEtUsjvX/DKs24dIkuwjtuprwJJHsbyUbLApepYTR1BN4uHrg==", + "dev": true }, "yargs": { - "version": "12.0.5", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-12.0.5.tgz", - "integrity": "sha512-Lhz8TLaYnxq/2ObqHDql8dX8CJi97oHxrjUcYtzKbbykPtVW9WB+poxI+NM2UIzsMgNCZTIf0AQwsjK5yMAqZw==", + "version": "15.4.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.4.1.tgz", + "integrity": "sha512-aePbxDmcYW++PaqBsJ+HYUFwCdv4LVvdnhBy78E57PIor8/OVvhMrADFFEDh8DHDFRv/O9i3lPhsENjO7QX0+A==", "dev": true, "requires": { - "cliui": "^4.0.0", + "cliui": "^6.0.0", "decamelize": "^1.2.0", - "find-up": "^3.0.0", - "get-caller-file": "^1.0.1", - "os-locale": "^3.0.0", + "find-up": "^4.1.0", + "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", - "require-main-filename": "^1.0.1", + "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^2.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", - "y18n": "^3.2.1 || ^4.0.0", - "yargs-parser": "^11.1.1" + "y18n": "^4.0.0", + "yargs-parser": "^18.1.2" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.1.tgz", + "integrity": "sha512-quJQXlTSUGL2LH9SUXo8VwsY4soanhgo6LNSm84E1LBcE8s3O0wpdiRzyR9z/ZZJMlMWv37qOOb9pdJlMUEKFQ==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" + } + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, + "string-width": { + "version": "4.2.3", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.3.tgz", + "integrity": "sha512-wKyQRQpjJ0sIp62ErSZdGsjMJWsap5oRNihHhu6G7JVO/9jIB6UyevL+tXuOqrng8j/cxKTWyWUwvSTriiZz/g==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.1" + } + }, + "strip-ansi": { + "version": "6.0.1", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.1.tgz", + "integrity": "sha512-Y38VPSHcqkFrCpFnQ9vuSXmquuv5oXOKpGeT6aGrr3o3Gc9AlVa6JBfUSOCnbxGGZF+/0ooI7KrPuUSztUdU5A==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.1" + } + } } }, "yargs-parser": { - "version": "11.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-11.1.1.tgz", - "integrity": "sha512-C6kB/WJDiaxONLJQnF8ccx9SEeoTTLek8RVbaOIsrAUS8VrBEXfmeSnCZxygc+XC2sNMBIwOOnfcxiynjHsVSQ==", + "version": "18.1.3", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", + "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", "dev": true, "requires": { "camelcase": "^5.0.0", "decamelize": "^1.2.0" } }, - "yeast": { - "version": "0.1.2", - "resolved": "https://registry.npmjs.org/yeast/-/yeast-0.1.2.tgz", - "integrity": "sha1-AI4G2AlDIMNy28L47XagymyKxBk=", - "dev": true - }, "yn": { "version": "3.1.1", "resolved": "https://registry.npmjs.org/yn/-/yn-3.1.1.tgz", "integrity": "sha512-Ux4ygGWsu2c7isFWe8Yu1YluJmqVhxqK2cLXNQA5AcC3QfbGNpM7fu0Y8b/z16pXLnFxZYvWhd3fhBY9DLmC6Q==", "dev": true }, - "zip-stream": { - "version": "2.1.3", - "resolved": "https://registry.npmjs.org/zip-stream/-/zip-stream-2.1.3.tgz", - "integrity": "sha512-EkXc2JGcKhO5N5aZ7TmuNo45budRaFGHOmz24wtJR7znbNqDPmdZtUauKX6et8KAVseAMBOyWJqEpXcHTBsh7Q==", - "dev": true, + "zone.js": { + "version": "0.11.6", + "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.11.6.tgz", + "integrity": "sha512-umJqFtKyZlPli669gB1gOrRE9hxUUGkZr7mo878z+NEBJZZixJkKeVYfnoLa7g25SseUDc92OZrMKKHySyJrFg==", "requires": { - "archiver-utils": "^2.1.0", - "compress-commons": "^2.1.1", - "readable-stream": "^3.4.0" - }, - "dependencies": { - "readable-stream": { - "version": "3.6.0", - "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-3.6.0.tgz", - "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", - "dev": true, - "requires": { - "inherits": "^2.0.3", - "string_decoder": "^1.1.1", - "util-deprecate": "^1.0.1" - } - } + "tslib": "^2.3.0" } - }, - "zone.js": { - "version": "0.10.3", - "resolved": "https://registry.npmjs.org/zone.js/-/zone.js-0.10.3.tgz", - "integrity": "sha512-LXVLVEq0NNOqK/fLJo3d0kfzd4sxwn2/h67/02pjCjfKDxgx1i9QqpvtHD8CrBnSSwMw5+dy11O7FRX5mkO7Cg==" } } } diff --git a/package.json b/package.json index 031cd2311924169b9789e6020185b0a67af33945..52b22803ebdc2bc8ddbaf91d44c11ac2179a44db 100644 --- a/package.json +++ b/package.json @@ -4,67 +4,67 @@ "scripts": { "ng": "ng", "start": "ng serve", - "build": "ng build --prod", + "start-prod": "ng serve --configuration=production", + "build": "ng build", + "build-prod": "ng build --configuration=production", "test": "ng test", "lint": "ng lint", "e2e": "ng e2e" }, "private": true, "dependencies": { - "@angular/animations": "~9.0.7", - "@angular/cdk": "^11.1.0", - "@angular/common": "~9.0.7", - "@angular/compiler": "~9.0.7", - "@angular/core": "~9.0.7", - "@angular/fire": "^6.1.4", - "@angular/forms": "~9.0.7", - "@angular/material": "^11.1.0", - "@angular/platform-browser": "~9.0.7", - "@angular/platform-browser-dynamic": "~9.0.7", - "@angular/router": "~9.0.7", - "angular-walkthrough": "^0.8.2", - "apexcharts": "^3.24.0", - "bootstrap": "^4.6.0", - "firebase": "^7.0 || ^8.0", - "lottie-web": "^5.7.6", - "ng-apexcharts": "^1.5.7", + "@angular/animations": "^14.0.5", + "@angular/cdk": "^14.0.4", + "@angular/common": "^14.0.5", + "@angular/compiler": "^14.0.5", + "@angular/core": "^14.0.5", + "@angular/forms": "^14.0.5", + "@angular/localize": "^14.0.5", + "@angular/material": "^14.0.4", + "@angular/platform-browser": "^14.0.5", + "@angular/platform-browser-dynamic": "^14.0.5", + "@angular/router": "^14.0.5", + "@auth0/auth0-angular": "^1.10.0", + "angular-walkthrough": "^0.9.8", + "apexcharts": "^3.35.3", + "bootstrap": "^5.1.3", + "inquirer-autocomplete-prompt": "^2.0.0", + "karma-jasmine-html-reporter": "^2.0.0", + "lottie-web": "^5.9.6", + "ng-apexcharts": "^1.7.1", "ng-waveform": "^0.2.1", - "ng2-pdf-viewer": "^6.4.1", - "ngx-countdown": "^11.0.1", - "ngx-lottie": "^6.4.0", + "ng2-pdf-viewer": "^9.0.0", + "ngx-countdown": "^14.0.0", + "ngx-lottie": "^8.2.0", "ngx-walkthrough": "^0.3.2", - "recordrtc": "^5.6.1", - "rxjs": "~6.5.4", - "sweetalert2": "^10.13.3", - "tslib": "^1.14.1", + "open": "^8.4.0", + "recordrtc": "^5.6.2", + "rxjs": "^7.5.6", + "sweetalert2": "^11.4.20", + "tslib": "^2.0.0", "wavesurfer": "^1.3.4", - "zone.js": "~0.10.2" + "zone.js": "~0.11.6" }, "devDependencies": { - "@angular-devkit/architect": ">= 0.900 < 0.1200", - "@angular-devkit/build-angular": "~0.900.7", - "@angular/cli": "~9.0.7", - "@angular/compiler-cli": "~9.0.7", - "@angular/language-service": "~9.0.7", - "@types/jasmine": "~3.5.0", - "@types/jasminewd2": "~2.0.3", - "@types/node": "^12.11.1", - "codelyzer": "^5.1.2", - "firebase-tools": "^8.0.0", + "@angular-devkit/architect": "0.1400.5", + "@angular-devkit/build-angular": "^14.0.5", + "@angular/cli": "^14.0.5", + "@angular/compiler-cli": "^14.0.5", + "@angular/language-service": "^14.0.5", + "@types/jasmine": "^4.0.3", + "@types/jasminewd2": "^2.0.10", + "@types/node": "^18.0.3", + "codelyzer": "^6.0.0", "fuzzy": "^0.1.3", - "inquirer": "^6.2.2", - "inquirer-autocomplete-prompt": "^1.0.1", - "jasmine-core": "~3.5.0", - "jasmine-spec-reporter": "~4.2.1", - "karma": "~4.3.0", - "karma-chrome-launcher": "~3.1.0", - "karma-coverage-istanbul-reporter": "~2.1.0", - "karma-jasmine": "~2.0.1", - "karma-jasmine-html-reporter": "^1.4.2", - "open": "^7.0.3", - "protractor": "~5.4.3", - "ts-node": "~8.3.0", - "tslint": "~5.18.0", - "typescript": "~3.7.5" + "jasmine-core": "^4.2.0", + "jasmine-spec-reporter": "^7.0.0", + "karma": "~6.4.0", + "karma-chrome-launcher": "^3.1.1", + "karma-coverage-istanbul-reporter": "~3.0.2", + "karma-jasmine": "^5.1.0", + "protractor": "~7.0.0", + "ts-node": "^10.8.2", + "tslint": "~6.1.0", + "typescript": "^4.7.4" } } diff --git a/src/app/about-comp/about-comp.component.css b/src/app/about-comp/about-comp.component.css deleted file mode 100644 index afeb9b0a23a547cdace9b07285249ed9f08fda6f..0000000000000000000000000000000000000000 --- a/src/app/about-comp/about-comp.component.css +++ /dev/null @@ -1,46 +0,0 @@ -@media screen and (min-width: 992px) { - .homeWrap{ - padding-top: 100px; - } -} - -.row{ - margin: 0 !important; -} - -.homeWrap{ - margin: 0 20px; -} - -@media screen and (min-width: 800px){ - .content{ - padding: 0 50px; - } -} - -@media screen and (max-width: 799px){ - .content{ - padding: 0 20px; - } -} - -.image{ - padding: 0 50px; -} - -img { - width: 100%; -} - -.tag { - font-family: 'Lato', sans-serif; - color: #3C096C; - font-size: 20px; - font-style: italic; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin-bottom: 0 !important; -} - -ul.a { - list-style-type: circle; -} \ No newline at end of file diff --git a/src/app/about-comp/about-comp.component.html b/src/app/about-comp/about-comp.component.html deleted file mode 100644 index 5d2cca3b4f93ceaf580433e2eecaecf50618793a..0000000000000000000000000000000000000000 --- a/src/app/about-comp/about-comp.component.html +++ /dev/null @@ -1,79 +0,0 @@ -<div class="homeWrap"> - <mat-card class="example-card "> - <div class="row col-lg-12"> - <div class="col-lg-3 image"> - <img src="../../assets/dwayne.jpeg" /> - <!-- <div> - <h4>Relevant Publications:</h4> - <ul class="a"> - <li style=" justify-content: center;"> Cormier, D. R. (2021). Assessing Preservice Teachers’ Cultural Competence With the Cultural Proficiency Continuum Q-Sort. Educational Researcher, 50(1), 17–29. - <a href="https://doi.org/10.3102/0013189X20936670" target="_blank">Click Here </a> - </li> - <li style=" justify-content: center;"> Cormier, D. R. (2019). The Cultural Proficiency Continuum Dialogic Protocol: An Emerging Tool for Examining Preservice Teachers' Sociocultural Consciousness Concerning Majority-minority Schools and Student Populations (Doctoral - dissertation, Pennsylvania State University).</li> - - </ul> - </div> --> - </div> - <div class="col-lg-9 content"> - <div> - <h1>Dwayne Ray Cormier, Ph.D.</h1> - <br> - <ul > - <li> - <p class="tag">Assistant Professor, Foundations Of Education</p> - </li> - <li> - <p class="tag">Member of iCubed: Urban Education and Family Transdisciplinary Core - </p> - </li> - </ul> - <!-- <p class="tag">Assistant Professor, Foundations Of Education</p> - <p class="tag">Member of iCubed: Urban Education and Family Transdisciplinary Core - </p> --> - - </div> - - <div> - <p><span style="font-weight: bold;">Bio: </span> <span><a href="https://soe.vcu.edu/directory/full-directory/first--last-name-363653-en.html" target = "_blank">Dr. Dwayne Ray Cormier’s</a></span> research focuses on bridging the sociocultural gap between PreK-12 educators and students from diverse racial and ethnic backgrounds and urban and rural schooling contexts. His research has led to the development - of the Cultural Proficiency Continuum Dialogic Protocol (CPCDP), a pedagogical tool designed to assess and codify individuals’ cultural competency. Currently, Dr. Cormier is working with the Hands-On Lab at Old Dominion University - to adapt the CPCDP to a web-based platform to increase accessibility and broader impact. - </p> - </div> - <div> - <p style="font-weight: bold;">Relevant Publications:</p> - <ul > - <li> Cormier, D. R. (2021). Assessing Preservice Teachers’ Cultural Competence With the Cultural Proficiency Continuum Q-Sort. Educational Researcher, 50(1), 17–29. - <a href="https://doi.org/10.3102/0013189X20936670" target="_blank">https://doi.org/10.3102/0013189X20936670 </a> - </li> - <br> - <li> Cormier, D. R. (2019). The Cultural Proficiency Continuum Dialogic Protocol: An Emerging Tool for Examining Preservice Teachers' Sociocultural Consciousness Concerning Majority-minority Schools and Student Populations - <a href="https://etda.libraries.psu.edu/catalog/16331drc5411" target="_blank">(Doctoral - dissertation, Pennsylvania State University).</a> - - </li> - - </ul> - </div> - <div> - <p><span style="font-weight: bold;">Phone: </span>(804) 827-8239 - </p> - </div> - <div> - <p><span style="font-weight: bold;">Email: </span>cormierd2@vcu.edu - </p> - </div> - <!-- <div> - <a href="https://soe.vcu.edu/directory/full-directory/first--last-name-363653-en.html">Curriculum Vitae</a> - - </div> --> - - </div> - </div> - <div> - - </div> - - </mat-card> -</div> -<app-footer></app-footer> diff --git a/src/app/about-comp/about-comp.component.ts b/src/app/about-comp/about-comp.component.ts deleted file mode 100644 index 9bf91ecf2a15cc02b161a496c7ddc7d7c64791ac..0000000000000000000000000000000000000000 --- a/src/app/about-comp/about-comp.component.ts +++ /dev/null @@ -1,15 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-about-comp', - templateUrl: './about-comp.component.html', - styleUrls: ['./about-comp.component.css'] -}) -export class AboutCompComponent implements OnInit { - - constructor() { } - - ngOnInit(): void { - } - -} diff --git a/src/app/app-routing.module.ts b/src/app/app-routing.module.ts index 331f3accca3bb689e0ecab9f789294864863bf8e..3e8b9a8f5b9bbfacf55c28f463a35907011d02a5 100644 --- a/src/app/app-routing.module.ts +++ b/src/app/app-routing.module.ts @@ -1,51 +1,39 @@ -import { NgModule } from '@angular/core'; -import { Routes, RouterModule } from '@angular/router'; -import { MainGameComponent } from './main-game/main-game.component'; -import { LoginComponent } from './login/login.component'; -import { ConsentFormComponent } from './consent-form/consent-form.component'; -import { FirstFormComponent } from './first-form/first-form.component'; -import { TestComponent } from './test/test.component'; -import { TrialComponentComponent } from './trial-component/trial-component.component'; -import { HomePageComponent } from './home-page/home-page.component'; -import { PreSurveyComponent } from './pre-survey/pre-survey.component'; -import { CpcqFormComponent } from './cpcq-form/cpcq-form.component'; -import { PostSurveyComponent } from './post-survey/post-survey.component'; -import { DashboardComponent } from './dashboard/dashboard.component'; -import { ResultDashboardComponent } from './result-dashboard/result-dashboard.component'; -import { AboutCompComponent } from './about-comp/about-comp.component'; -import { RegisterComponentComponent } from './register-component/register-component.component'; -import { ScorePageComponent } from './score-page/score-page.component'; -import { GraphPageComponent } from './graph-page/graph-page.component'; -import { FinalDashboardComponent } from './final-dashboard/final-dashboard.component'; -import { UnpackingPageComponent } from './unpacking-page/unpacking-page.component'; -import { FinalFeedbackComponent } from './final-feedback/final-feedback.component'; -import { ForgotPasswordComponent } from './forgot-password/forgot-password.component'; -import { ChangePasswordComponent } from './change-password/change-password.component'; -import { EmailPasswordComponent } from './email-password/email-password.component'; +import { NgModule } from "@angular/core"; +import { RouterModule, Routes } from "@angular/router"; +import { AboutCompComponent } from "./components/about-comp/about-comp.component"; +import { CpcqFormComponent } from "./components/cpcq-form/cpcq-form.component"; +import { DashboardComponent } from "./components/dashboard/dashboard.component"; +import { FinalDashboardComponent } from "./components/final-dashboard/final-dashboard.component"; +import { FinalFeedbackComponent } from "./components/final-feedback/final-feedback.component"; +import { GraphPageComponent } from "./components/graph-page/graph-page.component"; +import { HomePageComponent } from "./components/home-page/home-page.component"; +import { PostSurveyComponent } from "./components/post-survey/post-survey.component"; +import { PreSurveyComponent } from "./components/pre-survey/pre-survey.component"; +import { RegisterComponentComponent } from "./components/register-component/register-component.component"; +import { ResultDashboardComponent } from "./components/result-dashboard/result-dashboard.component"; +import { ScorePageComponent } from "./components/score-page/score-page.component"; +import { UnpackingPageComponent } from "./components/unpacking-page/unpacking-page.component"; +import { LandingPageGuard } from "./guards/landing-page.guard"; +import { RoleGuard } from "./guards/role.guard"; const routes: Routes = [ - { path: "", component: HomePageComponent}, - { path: "login", component: LoginComponent}, - { path: "preSurvey", component: PreSurveyComponent}, - { path: "pcqform", component: CpcqFormComponent}, - { path: "postSurvey", component: PostSurveyComponent}, - { path: "dashboard", component: DashboardComponent}, - { path: "result", component: ResultDashboardComponent}, - { path: "about", component: AboutCompComponent}, - { path: "register", component: RegisterComponentComponent}, - { path: "score", component: ScorePageComponent}, - { path: "graph", component: GraphPageComponent}, - { path: "final", component: FinalDashboardComponent}, - { path: "unpacking", component: UnpackingPageComponent}, - { path: "finalFeedback", component: FinalFeedbackComponent}, - { path: "forgotPassword", component: ForgotPasswordComponent}, - { path: "changePassword", component: ChangePasswordComponent}, - { path: "emailPass", component: EmailPasswordComponent}, - + { path: "", canActivate: [LandingPageGuard], component: HomePageComponent }, + { path: "about", component: AboutCompComponent }, + { path: "preSurvey", canActivate: [RoleGuard], component: PreSurveyComponent }, + { path: "pcqform", canActivate: [RoleGuard], component: CpcqFormComponent }, + { path: "postSurvey", canActivate: [RoleGuard], component: PostSurveyComponent }, + { path: "dashboard", canActivate: [RoleGuard], component: DashboardComponent }, + { path: "result", canActivate: [RoleGuard], component: ResultDashboardComponent }, + { path: "register", canActivate: [RoleGuard], component: RegisterComponentComponent }, + { path: "score", canActivate: [RoleGuard], component: ScorePageComponent }, + { path: "graph", canActivate: [RoleGuard], component: GraphPageComponent }, + { path: "final", canActivate: [RoleGuard], component: FinalDashboardComponent }, + { path: "unpacking", canActivate: [RoleGuard], component: UnpackingPageComponent }, + { path: "finalFeedback", canActivate: [RoleGuard], component: FinalFeedbackComponent }, ]; @NgModule({ - imports: [RouterModule.forRoot(routes)], - exports: [RouterModule] + imports: [RouterModule.forRoot(routes, { relativeLinkResolution: "legacy" })], + exports: [RouterModule], }) -export class AppRoutingModule { } +export class AppRoutingModule {} diff --git a/src/app/app.component.html b/src/app/app.component.html index 7beb1a00536a70316c7f6eecf9aface7102495c6..9e0f3340108a08b8cd26d9d580b79e204ac71f84 100644 --- a/src/app/app.component.html +++ b/src/app/app.component.html @@ -1,2 +1 @@ -<app-header></app-header> -<router-outlet></router-outlet> \ No newline at end of file +<app-header></app-header> <router-outlet></router-outlet> diff --git a/src/app/app.component.spec.ts b/src/app/app.component.spec.ts index e9ffed37f9f934cba3b0762d18025b4d9e265c69..0743afa50bec5cbf116acc2ab5dfa5ae3363acdf 100644 --- a/src/app/app.component.spec.ts +++ b/src/app/app.component.spec.ts @@ -1,20 +1,16 @@ -import { TestBed, async } from '@angular/core/testing'; -import { RouterTestingModule } from '@angular/router/testing'; -import { AppComponent } from './app.component'; +import { TestBed, waitForAsync } from "@angular/core/testing"; +import { RouterTestingModule } from "@angular/router/testing"; +import { AppComponent } from "./app.component"; -describe('AppComponent', () => { - beforeEach(async(() => { +describe("AppComponent", () => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - imports: [ - RouterTestingModule - ], - declarations: [ - AppComponent - ], + imports: [RouterTestingModule], + declarations: [AppComponent], }).compileComponents(); })); - it('should create the app', () => { + it("should create the app", () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; expect(app).toBeTruthy(); @@ -23,13 +19,13 @@ describe('AppComponent', () => { it(`should have as title 'iMatt-FE'`, () => { const fixture = TestBed.createComponent(AppComponent); const app = fixture.componentInstance; - expect(app.title).toEqual('iMatt-FE'); + expect(app.title).toEqual("iMatt-FE"); }); - it('should render title', () => { + it("should render title", () => { const fixture = TestBed.createComponent(AppComponent); fixture.detectChanges(); const compiled = fixture.nativeElement; - expect(compiled.querySelector('.content span').textContent).toContain('iMatt-FE app is running!'); + expect(compiled.querySelector(".content span").textContent).toContain("iMatt-FE app is running!"); }); }); diff --git a/src/app/app.component.ts b/src/app/app.component.ts index 76dcbbaa19e03f90a813d82ab1fd1621181b5f01..be5f5da4d3c4b33229504406948d1359ab9040f8 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,10 @@ -import { Component } from '@angular/core'; +import { Component } from "@angular/core"; @Component({ - selector: 'app-root', - templateUrl: './app.component.html', - styleUrls: ['./app.component.css'] + selector: "app-root", + templateUrl: "./app.component.html", + styleUrls: ["./app.component.css"], }) export class AppComponent { - title = 'iMatt-FE'; + title = "iMatt-FE"; } diff --git a/src/app/app.module.ts b/src/app/app.module.ts index 27a2215f34a9bc627d28d31b2b8c004c393a553f..ed6ec524e07daa8c33a65788f946340264138210 100644 --- a/src/app/app.module.ts +++ b/src/app/app.module.ts @@ -1,77 +1,75 @@ -import { BrowserModule } from '@angular/platform-browser'; -import { NgModule } from '@angular/core'; +import { NgModule } from "@angular/core"; +import { BrowserModule } from "@angular/platform-browser"; -import { AppRoutingModule } from './app-routing.module'; -import { AppComponent } from './app.component'; +import { AppRoutingModule } from "./app-routing.module"; +import { AppComponent } from "./app.component"; -import {MatButtonModule} from '@angular/material/button'; -import {MatIconModule} from '@angular/material/icon'; -import {MatToolbarModule} from '@angular/material/toolbar'; -import { MatSidenavModule } from '@angular/material/sidenav'; -import { MatListModule } from '@angular/material/list'; -import {MatDialogModule} from '@angular/material/dialog'; -import {MatRadioModule} from '@angular/material/radio'; -import { MatTableModule } from '@angular/material/table'; -import { MatFormFieldModule } from '@angular/material/form-field'; -import { MatInputModule } from '@angular/material/input'; -import { MatPaginatorModule } from '@angular/material/paginator'; -import { MatSortModule } from '@angular/material/sort'; -import {MatCardModule} from '@angular/material/card'; -import {MatSelectModule} from '@angular/material/select'; -import {MatTabsModule} from '@angular/material/tabs'; -import {MatMenuModule} from '@angular/material/menu'; -import {MatTooltipModule} from '@angular/material/tooltip'; -import {MatChipsModule} from '@angular/material/chips'; -import {MatAutocompleteModule} from '@angular/material/autocomplete'; -import {MatProgressSpinnerModule} from '@angular/material/progress-spinner'; -import {MatDatepickerModule} from '@angular/material/datepicker'; -import {MatCheckboxModule} from '@angular/material/checkbox'; -import {MatSliderModule} from '@angular/material/slider'; -import {MatProgressBarModule} from '@angular/material/progress-bar'; +import { OverlayModule } from "@angular/cdk/overlay"; +import { PortalModule } from "@angular/cdk/portal"; +import { HttpClientModule, HTTP_INTERCEPTORS } from "@angular/common/http"; import { FormsModule, ReactiveFormsModule } from "@angular/forms"; -import { BrowserAnimationsModule } from '@angular/platform-browser/animations'; -import { HttpClientModule } from '@angular/common/http'; -import { CountdownModule } from 'ngx-countdown'; -import { NgApexchartsModule } from "ng-apexcharts"; -import { NgWaveformModule } from 'ng-waveform'; -import { PdfViewerModule } from 'ng2-pdf-viewer'; -import {OverlayModule} from '@angular/cdk/overlay'; -import {PortalModule} from '@angular/cdk/portal'; +import { MatAutocompleteModule } from "@angular/material/autocomplete"; +import { MatButtonModule } from "@angular/material/button"; +import { MatCardModule } from "@angular/material/card"; +import { MatCheckboxModule } from "@angular/material/checkbox"; +import { MatChipsModule } from "@angular/material/chips"; +import { MatDatepickerModule } from "@angular/material/datepicker"; +import { MatDialogModule } from "@angular/material/dialog"; +import { MatFormFieldModule } from "@angular/material/form-field"; +import { MatIconModule } from "@angular/material/icon"; +import { MatInputModule } from "@angular/material/input"; +import { MatListModule } from "@angular/material/list"; +import { MatMenuModule } from "@angular/material/menu"; +import { MatPaginatorModule } from "@angular/material/paginator"; +import { MatProgressBarModule } from "@angular/material/progress-bar"; +import { MatProgressSpinnerModule } from "@angular/material/progress-spinner"; +import { MatRadioModule } from "@angular/material/radio"; +import { MatSelectModule } from "@angular/material/select"; +import { MatSidenavModule } from "@angular/material/sidenav"; +import { MatSliderModule } from "@angular/material/slider"; +import { MatSortModule } from "@angular/material/sort"; +import { MatTableModule } from "@angular/material/table"; +import { MatTabsModule } from "@angular/material/tabs"; +import { MatToolbarModule } from "@angular/material/toolbar"; +import { MatTooltipModule } from "@angular/material/tooltip"; +import { BrowserAnimationsModule } from "@angular/platform-browser/animations"; +import { NgApexchartsModule as NgPenchantsModule } from "ng-apexcharts"; +import { NgWaveformModule } from "ng-waveform"; +import { PdfViewerModule } from "ng2-pdf-viewer"; +import { CountdownModule } from "ngx-countdown"; +import { AuthModule } from "@auth0/auth0-angular"; +import player from "lottie-web"; +import { LottieModule } from "ngx-lottie"; +import { WalkthroughModule } from "ngx-walkthrough"; +import { environment } from "src/environments/environment"; +import { AboutCompComponent } from "./components/about-comp/about-comp.component"; +import { ConsentFormComponent } from "./components/consent-form/consent-form.component"; +import { CpcqFormComponent } from "./components/cpcq-form/cpcq-form.component"; +import { DialogFormComponent } from "./components/cpcq-form/dialog-form/dialog-form.component"; +import { DashboardDialogComponent } from "./components/dashboard/dashboard-dialog/dashboard-dialog.component"; +import { DashboardComponent } from "./components/dashboard/dashboard.component"; +import { FinalDashboardComponent } from "./components/final-dashboard/final-dashboard.component"; +import { FinalFeedbackComponent } from "./components/final-feedback/final-feedback.component"; +import { FirstFormComponent } from "./components/first-form/first-form.component"; +import { FooterComponent } from "./components/footer/footer.component"; +import { GraphPageComponent } from "./components/graph-page/graph-page.component"; +import { HeaderComponent } from "./components/header/header.component"; +import { HomePageComponent } from "./components/home-page/home-page.component"; +import { DialogComponent } from "./components/main-game/dialog/dialog.component"; +import { MainGameComponent } from "./components/main-game/main-game.component"; +import { PostSurveyComponent } from "./components/post-survey/post-survey.component"; +import { DialogPDfComponent } from "./components/pre-survey/dialog-pdf/dialog-pdf.component"; +import { PreSurveyComponent } from "./components/pre-survey/pre-survey.component"; +import { RegisterComponentComponent } from "./components/register-component/register-component.component"; +import { ResultDashboardComponent } from "./components/result-dashboard/result-dashboard.component"; +import { ScorePageComponent } from "./components/score-page/score-page.component"; +import { MyOverlayComponent } from "./components/test/my-overlay/my-overlay.component"; +import { TestComponent } from "./components/test/test.component"; +import { TrialComponentComponent } from "./components/trial-component/trial-component.component"; +import { UnpackingPageComponent } from "./components/unpacking-page/unpacking-page.component"; +import { TokenInterceptor } from "./interceptors/token.interceptor"; -import { MainGameComponent } from './main-game/main-game.component'; -import { HeaderComponent } from './header/header.component'; -import { LoginComponent } from './login/login.component'; -import { ConsentFormComponent } from './consent-form/consent-form.component'; -import { FirstFormComponent } from './first-form/first-form.component'; -import { DialogComponent } from './main-game/dialog/dialog.component'; -import { TestComponent } from './test/test.component'; -import { WalkthroughModule } from 'ngx-walkthrough'; -import { MyOverlayComponent } from './test/my-overlay/my-overlay.component'; -import { TrialComponentComponent } from './trial-component/trial-component.component'; -import { HomePageComponent } from './home-page/home-page.component'; -import { PreSurveyComponent } from './pre-survey/pre-survey.component'; -import { CpcqFormComponent } from './cpcq-form/cpcq-form.component'; -import { PostSurveyComponent } from './post-survey/post-survey.component'; -import { DialogFormComponent } from './cpcq-form/dialog-form/dialog-form.component'; -import { DashboardComponent } from './dashboard/dashboard.component'; -import { DashboardDialoComponent } from './dashboard/dashboard-dialo/dashboard-dialo.component'; -import { FooterComponent } from './footer/footer.component'; -import { ResultDashboardComponent } from './result-dashboard/result-dashboard.component'; -import { LottieModule } from 'ngx-lottie'; -import player from 'lottie-web'; -import { AboutCompComponent } from './about-comp/about-comp.component'; -import { RegisterComponentComponent } from './register-component/register-component.component'; -import { DialogPDfComponent } from './pre-survey/dialog-pdf/dialog-pdf.component'; -import { ScorePageComponent } from './score-page/score-page.component'; -import { GraphPageComponent } from './graph-page/graph-page.component'; -import { FinalDashboardComponent } from './final-dashboard/final-dashboard.component'; -import { UnpackingPageComponent } from './unpacking-page/unpacking-page.component'; -import { FinalFeedbackComponent } from './final-feedback/final-feedback.component'; -import { ForgotPasswordComponent } from './forgot-password/forgot-password.component'; -import { ChangePasswordComponent } from './change-password/change-password.component'; -import { EmailPasswordComponent } from './email-password/email-password.component'; - // Note we need a separate function as it's required // by the AOT compiler. export function playerFactory() { @@ -83,7 +81,6 @@ export function playerFactory() { AppComponent, MainGameComponent, HeaderComponent, - LoginComponent, ConsentFormComponent, FirstFormComponent, DialogComponent, @@ -96,7 +93,7 @@ export function playerFactory() { PostSurveyComponent, DialogFormComponent, DashboardComponent, - DashboardDialoComponent, + DashboardDialogComponent, FooterComponent, ResultDashboardComponent, AboutCompComponent, @@ -107,9 +104,6 @@ export function playerFactory() { FinalDashboardComponent, UnpackingPageComponent, FinalFeedbackComponent, - ForgotPasswordComponent, - ChangePasswordComponent, - EmailPasswordComponent ], imports: [ BrowserModule, @@ -146,12 +140,22 @@ export function playerFactory() { WalkthroughModule, OverlayModule, PortalModule, - NgApexchartsModule, + NgPenchantsModule, NgWaveformModule, PdfViewerModule, - LottieModule.forRoot({ player: playerFactory }) + LottieModule.forRoot({ player: playerFactory }), + AuthModule.forRoot({ + domain: environment.auth0Settings.domain, + clientId: environment.auth0Settings.clientId, + }), ], - providers: [], - bootstrap: [AppComponent] + providers: [ + { + provide: HTTP_INTERCEPTORS, + useClass: TokenInterceptor, + multi: true, + }, + ], + bootstrap: [AppComponent], }) -export class AppModule { } \ No newline at end of file +export class AppModule {} diff --git a/src/app/change-password/change-password.component.css b/src/app/change-password/change-password.component.css deleted file mode 100644 index cb2e8a4516eb951edff739f67c9a8fb8b2ba4ded..0000000000000000000000000000000000000000 --- a/src/app/change-password/change-password.component.css +++ /dev/null @@ -1,72 +0,0 @@ -.container{ - text-align: center; - padding-bottom: 300px; -} - -.example-card { - display: inline-block; - margin-top: 100px; -} - -.intro { - top: 20%; - font-size: 35px; - text-align: center; - font-family: 'Loto', sans-serif, cursive; - color: black; - font-weight: bold; -} - -body { - font-family: 'Loto', sans-serif; - background-color: #f8fafb; -} - -@media screen and (min-width: 992px){ - p { - padding-top: 150px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -@media screen and (max-width: 991px){ - p { - padding-top: 20px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Loto', sans-serif; -} - -a { - -webkit-transition: .3s all ease; - -o-transition: .3s all ease; - transition: .3s all ease; -} - -a:hover { - text-decoration: none !important; -} - -h2 { - font-size: 20px; -} \ No newline at end of file diff --git a/src/app/change-password/change-password.component.html b/src/app/change-password/change-password.component.html deleted file mode 100644 index 3b77686d3b4d347d438dc80ef6d49a9086677e5f..0000000000000000000000000000000000000000 --- a/src/app/change-password/change-password.component.html +++ /dev/null @@ -1,31 +0,0 @@ -<div class="header-wrap"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <div class="container"> - <mat-card class="example-card "> - <div class="mb-4"> - <h3 style="text-align: center;">Change Password</h3> - </div> - <form [formGroup]="loginForm"> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter New Password</mat-label> - <input matInput formControlName="new_password" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="loginForm.controls.new_password.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Confirm New password</mat-label> - <input matInput formControlName="confirmPassword" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="loginForm.controls.confirmPassword.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> - - <input type="submit" value="Change Password" class="btn text-white btn-block btn-primary" style="background-color: #29ABE2; font-size: 20px;" (click)="login()"> - </form> - </mat-card> - </div> -</div> -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/change-password/change-password.component.spec.ts b/src/app/change-password/change-password.component.spec.ts deleted file mode 100644 index 79333f9e229a4e49176c022e96a60d27da32e15e..0000000000000000000000000000000000000000 --- a/src/app/change-password/change-password.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ChangePasswordComponent } from './change-password.component'; - -describe('ChangePasswordComponent', () => { - let component: ChangePasswordComponent; - let fixture: ComponentFixture<ChangePasswordComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ChangePasswordComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ChangePasswordComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/change-password/change-password.component.ts b/src/app/change-password/change-password.component.ts deleted file mode 100644 index db399eb3bd24ed69ead249236a90ede5d4fd0df6..0000000000000000000000000000000000000000 --- a/src/app/change-password/change-password.component.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { EmailValidator, FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; -import Swal from 'sweetalert2'; -import { Login } from '../../services/login.sevice'; -@Component({ - selector: 'app-change-password', - templateUrl: './change-password.component.html', - styleUrls: ['./change-password.component.css'] -}) -export class ChangePasswordComponent implements OnInit { - loginForm: FormGroup; - hide = true; - constructor(private fb: FormBuilder, private router: Router, private loginService : Login) { } - - ngOnInit(): void { - this.loginForm = this.fb.group({ - new_password:["",[Validators.required]], - confirmPassword:["",[Validators.required]], - }) - - } - - getEmailError(){ - if(this.loginForm.controls.username.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - getPasswordError(){ - if(this.loginForm.controls.new_password.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - - login(){ - if(!this.loginForm.valid){ - - Swal.fire({ - text: "Please enter all the fields in the right format.", - icon: "error" - }).then((res) => { - }) - } - else{ - if(this.loginForm.get("new_password").value != this.loginForm.get("confirmPassword").value){ - Swal.fire({ - text: "Passwords don't match!", - icon: "error" - }).then((res) => { - }) - } - else{ - this.loginForm.removeControl('confirmPassword'); - this.loginService.changePassword(this.loginForm.value).subscribe((res) => { - Swal.fire({ - text: "Password Changed Successfully!", - icon: "success" - }).then((res) => { - this.loginService.checkStatus().subscribe((res) => { - - if(res[0] == undefined){ - this.router.navigateByUrl("/preSurvey") - } - else{ - if(res[0]["postsurveystatus"] == true){ - this.router.navigateByUrl("/final") - } - else if(res[0]["scoresstatus"] == true){ - this.router.navigateByUrl("/score") - } - else if(res[0]["finalfeedbackstatus"] == true){ - this.router.navigateByUrl("/result") - } - else if(res[0]["cpcqstatus"] == true){ - this.router.navigateByUrl("/finalFeedback") - } - else if(res[0]["responsesstatus"] == true){ - this.router.navigateByUrl("/unpacking") - } - else if(res[0]["presurveystatus"] == true){ - this.router.navigateByUrl("/dashboard") - } - } - }) - }) - - },(err) => { - - Swal.fire({ - text: "Username/Email already exists", - icon: "error" - }).then((res) => { - }) - }) - } - - } - } - -} diff --git a/src/app/components/about-comp/about-comp.component.css b/src/app/components/about-comp/about-comp.component.css new file mode 100644 index 0000000000000000000000000000000000000000..e83dc14c0b351b052822c06890379bf59867d3fa --- /dev/null +++ b/src/app/components/about-comp/about-comp.component.css @@ -0,0 +1,46 @@ +@media screen and (min-width: 992px) { + .homeWrap { + padding-top: 100px; + } +} + +.row { + margin: 0 !important; +} + +.homeWrap { + margin: 0 20px; +} + +@media screen and (min-width: 800px) { + .content { + padding: 0 50px; + } +} + +@media screen and (max-width: 799px) { + .content { + padding: 0 20px; + } +} + +.image { + padding: 0 50px; +} + +img { + width: 100%; +} + +.tag { + font-family: "Lato", sans-serif; + color: #3c096c; + font-size: 20px; + font-style: italic; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin-bottom: 0 !important; +} + +ul.a { + list-style-type: circle; +} diff --git a/src/app/components/about-comp/about-comp.component.html b/src/app/components/about-comp/about-comp.component.html new file mode 100644 index 0000000000000000000000000000000000000000..94e79fedf11d1f902c14aab745f4ddf1bf6e5eb6 --- /dev/null +++ b/src/app/components/about-comp/about-comp.component.html @@ -0,0 +1,69 @@ +<div class="homeWrap"> + <mat-card class="example-card"> + <div class="row col-lg-12"> + <div class="col-lg-3 image"> + <img src="../../assets/dwayne.jpeg" /> + </div> + <div class="col-lg-9 content"> + <div> + <h1>Dwayne Ray Cormier, Ph.D.</h1> + <br /> + <ul> + <li> + <p class="tag">Assistant Professor, Foundations Of Education</p> + </li> + <li> + <p class="tag">Member of iCubed: Urban Education and Family Transdisciplinary Core</p> + </li> + </ul> + </div> + + <div> + <p> + <span style="font-weight: bold">Bio: </span> + <span + ><a href="https://soe.vcu.edu/directory/full-directory/first--last-name-363653-en.html" target="_blank" + >Dr. Dwayne Ray Cormier’s</a + ></span + > + research focuses on bridging the sociocultural gap between PreK-12 educators and students from diverse + racial and ethnic backgrounds and urban and rural schooling contexts. His research has led to the + development of the Cultural Proficiency Continuum Dialogic Protocol (CPCDP), a pedagogical tool designed to + assess and codify individuals’ cultural competency. Currently, Dr. Cormier is working with the Hands-On Lab + at Old Dominion University to adapt the CPCDP to a web-based platform to increase accessibility and broader + impact. + </p> + </div> + <div> + <p style="font-weight: bold">Relevant Publications:</p> + <ul> + <li> + Cormier, D. R. (2021). Assessing Preservice Teachers’ Cultural Competence With the Cultural Proficiency + Continuum Q-Sort. Educational Researcher, 50(1), 17–29. + <a href="https://doi.org/10.3102/0013189X20936670" target="_blank" + >https://doi.org/10.3102/0013189X20936670 + </a> + </li> + <br /> + <li> + Cormier, D. R. (2019). The Cultural Proficiency Continuum Dialogic Protocol: An Emerging Tool for + Examining Preservice Teachers' Sociocultural Consciousness Concerning Majority-minority Schools and + Student Populations + <a href="https://etda.libraries.psu.edu/catalog/16331drc5411" target="_blank" + >(Doctoral dissertation, Pennsylvania State University).</a + > + </li> + </ul> + </div> + <div> + <p><span style="font-weight: bold">Phone: </span>(804) 827-8239</p> + </div> + <div> + <p><span style="font-weight: bold">Email: </span>cormierd2@vcu.edu</p> + </div> + </div> + </div> + <div></div> + </mat-card> +</div> +<app-footer></app-footer> diff --git a/src/app/about-comp/about-comp.component.spec.ts b/src/app/components/about-comp/about-comp.component.spec.ts similarity index 52% rename from src/app/about-comp/about-comp.component.spec.ts rename to src/app/components/about-comp/about-comp.component.spec.ts index 772f08a53d6a1fad2ef4ebdf948a0ff8d76c9617..0f95c52bd2a7ef8fce7e85bb7fee37d80b7d68c1 100644 --- a/src/app/about-comp/about-comp.component.spec.ts +++ b/src/app/components/about-comp/about-comp.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { AboutCompComponent } from './about-comp.component'; +import { AboutCompComponent } from "./about-comp.component"; -describe('AboutCompComponent', () => { +describe("AboutCompComponent", () => { let component: AboutCompComponent; let fixture: ComponentFixture<AboutCompComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ AboutCompComponent ] - }) - .compileComponents(); + declarations: [AboutCompComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('AboutCompComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/about-comp/about-comp.component.ts b/src/app/components/about-comp/about-comp.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..3c45aedbbd0c2416e8a7340e08d9f04428426529 --- /dev/null +++ b/src/app/components/about-comp/about-comp.component.ts @@ -0,0 +1,12 @@ +import { Component, OnInit } from "@angular/core"; + +@Component({ + selector: "app-about-comp", + templateUrl: "./about-comp.component.html", + styleUrls: ["./about-comp.component.css"], +}) +export class AboutCompComponent implements OnInit { + constructor() {} + + ngOnInit(): void {} +} diff --git a/src/app/components/consent-form/consent-form.component.css b/src/app/components/consent-form/consent-form.component.css new file mode 100644 index 0000000000000000000000000000000000000000..a5120ec0e1409d91f04b8fd380465ec83f3b3363 --- /dev/null +++ b/src/app/components/consent-form/consent-form.component.css @@ -0,0 +1,18 @@ +.example-card { + max-width: 1000px; + position: absolute; + top: 55%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + +.mat-card { + background-color: #e5e5e5; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} diff --git a/src/app/components/consent-form/consent-form.component.html b/src/app/components/consent-form/consent-form.component.html new file mode 100644 index 0000000000000000000000000000000000000000..f6b89a2fa8fd9876e1f15716894372726daf9045 --- /dev/null +++ b/src/app/components/consent-form/consent-form.component.html @@ -0,0 +1,44 @@ +<app-header></app-header> +<div> + <mat-card class="example-card"> + <mat-card-content> + <h1>CONSENT FORM</h1> + <p> + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's + standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make + a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing + Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions + of Lorem Ipsum. + </p> + <p> + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's + standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make + a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing + Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions + of Lorem Ipsum. + </p> + <p> + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's + standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make + a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing + Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions + of Lorem Ipsum. + </p> + <p> + Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's + standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make + a type specimen book. It has survived not only five centuries, but also the leap into electronic typesetting, + remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing + Lorem Ipsum passages, and more recently with desktop publishing software like Aldus PageMaker including versions + of Lorem Ipsum. + </p> + </mat-card-content> + <mat-card-actions> + <button mat-raised-button style="color: green" class="inputButton" (click)="agree()">I AGREE</button> + <button mat-raised-button style="color: red" class="inputButton" (click)="disagree()">I DISAGREE</button> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/consent-form/consent-form.component.spec.ts b/src/app/components/consent-form/consent-form.component.spec.ts similarity index 52% rename from src/app/consent-form/consent-form.component.spec.ts rename to src/app/components/consent-form/consent-form.component.spec.ts index 8d6db996b5d10123dbdf50f535a1852b94eacd95..84ec228b3a7c4c16d6b4b865c220acd11724952a 100644 --- a/src/app/consent-form/consent-form.component.spec.ts +++ b/src/app/components/consent-form/consent-form.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { ConsentFormComponent } from './consent-form.component'; +import { ConsentFormComponent } from "./consent-form.component"; -describe('ConsentFormComponent', () => { +describe("ConsentFormComponent", () => { let component: ConsentFormComponent; let fixture: ComponentFixture<ConsentFormComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ ConsentFormComponent ] - }) - .compileComponents(); + declarations: [ConsentFormComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('ConsentFormComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/consent-form/consent-form.component.ts b/src/app/components/consent-form/consent-form.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..57d4f099f1395132861681e59d9247a7706c5829 --- /dev/null +++ b/src/app/components/consent-form/consent-form.component.ts @@ -0,0 +1,21 @@ +import { Component, OnInit } from "@angular/core"; +import { Router } from "@angular/router"; + +@Component({ + selector: "app-consent-form", + templateUrl: "./consent-form.component.html", + styleUrls: ["./consent-form.component.css"], +}) +export class ConsentFormComponent implements OnInit { + constructor(private router: Router) {} + + ngOnInit(): void {} + + agree() { + this.router.navigateByUrl("/firstForm"); + } + + disagree() { + this.router.navigateByUrl("/"); + } +} diff --git a/src/app/components/cpcq-form/cpcq-form.component.css b/src/app/components/cpcq-form/cpcq-form.component.css new file mode 100644 index 0000000000000000000000000000000000000000..5ba7b67bf59769baa72d236a837f1feba77535da --- /dev/null +++ b/src/app/components/cpcq-form/cpcq-form.component.css @@ -0,0 +1,164 @@ +.divClass { + padding-top: 10px; +} + +.example-card { + /* max-height: 700px; */ + /* width: 1000px; */ + /* height: 570px; */ + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; +} + +::ng-deep .mat-tab-body-content { + max-height: 500px !important; +} + +.table-responsive { + height: 310px; +} + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +mat-slider { + width: 350px; +} + +.mat-slider-thumb-label { + transform: rotate(45deg) !important; + border-radius: 50% 50% 0 !important; +} + +.mat-slider-thumb { + transform: scale(0) !important; +} + +.mat-slider-thumb-label-text { + opacity: 1 !important; +} + +.advice { + border: none; + background: none; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +mat-form-field { + width: 100%; + height: 5%; +} + +::ng-deep .mat-form-field-flex > .mat-form-field-infix { + padding: 0.4em 0px !important; +} + +::ng-deep .mat-form-field-label-wrapper { + top: -1.5em; +} + +::ng-deep + .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float + .mat-form-field-label { + transform: translateY(-1.1em) scale(0.75); + width: 133.33333%; + color: black !important; + border: black; +} + +.example-h2 { + margin: 10px; +} + +.example-section { + display: flex; + align-content: center; + align-items: center; + height: 60px; +} + +.example-margin { + margin: 0 10px; +} + +.imgClass { + width: 30px; + height: 30px; +} + +.zoom { + transition: transform 0.2s; + border: none; + background: none; + /* Animation */ + margin: 0 auto; +} + +.zoom:hover { + transform: scale(1.5); + /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +/* +p { + font-family: 'roboto'; +} */ diff --git a/src/app/components/cpcq-form/cpcq-form.component.html b/src/app/components/cpcq-form/cpcq-form.component.html new file mode 100644 index 0000000000000000000000000000000000000000..24716c5b92b152a1f37932c5602d199017c03970 --- /dev/null +++ b/src/app/components/cpcq-form/cpcq-form.component.html @@ -0,0 +1,1095 @@ +<div class="divClass"> + <mat-card class="example-card"> + <mat-card-content> + <div style="margin-bottom: 10px; margin-left: -10px"> + <mat-progress-bar + *ngIf="selectedIndex > 0 && selectedIndex < 6" + class="example-margin" + style="width: 100%" + [mode]="mode" + [value]="selectedIndex * 20" + [bufferValue]="bufferValue" + > + </mat-progress-bar> + </div> + + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab label="Second"> + <h2> + Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority + U.S. PreK-12 Schools + </h2> + <p style="font-size: 24px"> + <span style="font-weight: bold">Directions: </span> In the upcoming activity, you will engage with 30 + vignettes situated in five categories that illustrate culturally proficient interactions that have taken + place in U.S. public schools. Your task is to assign a level of reaction using numbers 1 - 6 to each + vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the + highest level of reaction from you, 5 to the vignette that evokes the next highest level of reaction from + you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction + from you. + </p> + <p style="font-size: 20px"> + <span style="font-weight: bold"> Note: </span> There are no correct or wrong ways to react to vignettes; + your level of reaction (negative or positive) is unique to you. If you need to see the directions after + beginning the Q-Sort, click the + <span style="color: #4050b5" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand + corner. + </p> + </mat-tab> + <mat-tab label="Third"> + <button class="advice" (click)="openWordDialog('Attitude')"> + <span + ><h2><u>Attitude</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Attitude')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Attitude" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv>{{ attitude["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv1>{{ attitude["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv2>{{ attitude["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv3>{{ attitude["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv4>{{ attitude["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv5>{{ attitude["question6"] }}</p> + </div> + </div> + </form> + + <p style="margin-top: 20px; font-size: 15px"> + The singular pronouns: “their†or “they†are used as gender-neutral pronouns. + </p> + </mat-tab> + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Empathy')"> + <span + ><h2><u>Empathy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Empathy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Empathy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv6>{{ empathy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv7>{{ empathy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv8>{{ empathy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv9>{{ empathy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv10>{{ empathy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv11>{{ empathy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Policy')"> + <span + ><h2><u>Policy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Policy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Policy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv12>{{ policy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv13>{{ policy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv14>{{ policy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv15>{{ policy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv16>{{ policy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv17>{{ policy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fifth"> + <button class="advice" (click)="openWordDialog('Professionalism')"> + <span + ><h2><u>Professionalism</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Professionalism')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Professionalism" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv18>{{ professionalism["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv19>{{ professionalism["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv20>{{ professionalism["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv21>{{ professionalism["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv22>{{ professionalism["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv23>{{ professionalism["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Sixth"> + <button class="advice" (click)="openWordDialog('Teaching Practice')"> + <span + ><h2><u>Teaching Practice</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Teaching Practice')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Teaching Practice" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv24>{{ teachingPractice["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv25>{{ teachingPractice["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv26>{{ teachingPractice["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv27>{{ teachingPractice["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv28>{{ teachingPractice["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv29>{{ teachingPractice["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + <mat-tab label="Seventh"> + <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions</h2> + <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in + the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis + is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. + Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, + but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> + <p> + <span + ><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the + vignette and the corresponding culturally proficient interaction. Above each column is a link to the + definition for each culturally proficient interaction; review the definitions before unpacking your + reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can + also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. + </span> + </p> + <div class="table-responsive"> + <table class="table"> + <thead class="thead-dark" style="font-size: 15px"> + <tr> + <th></th> + <th + matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). " + > + Cultural Destructiveness + </th> + <th + matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] " + > + Cultural Incapacity + </th> + <th + matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] " + > + Cultural Blindness + </th> + <th + matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context " + > + Cultural Pre-Competence + </th> + <th + matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context " + > + Cultural Competence + </th> + <th + matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality " + > + Cultural Proficiency + </th> + </tr> + </thead> + <tbody *ngFor="let row of responsesArray; let i = index"> + <tr> + <td>{{ row[7] }}</td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[0][1] == 'colorbold'" + (click)="openDialog(i, 0, row[6])" + > + {{ row[0][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i, 0, row[6])"> + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] == 'nobold'"> + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[0][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[1][1] == 'colorbold'" + (click)="openDialog(i, 1, row[6])" + > + {{ row[1][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i, 1, row[6])"> + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] == 'nobold'"> + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[1][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[2][1] == 'colorbold'" + (click)="openDialog(i, 2, row[6])" + > + {{ row[2][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i, 2, row[6])"> + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] == 'nobold'"> + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[2][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[3][1] == 'colorbold'" + (click)="openDialog(i, 3, row[6])" + > + {{ row[3][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i, 3, row[6])"> + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] == 'nobold'"> + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[3][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[4][1] == 'colorbold'" + (click)="openDialog(i, 4, row[6])" + > + {{ row[4][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i, 4, row[6])"> + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] == 'nobold'"> + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[4][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[5][1] == 'colorbold'" + (click)="openDialog(i, 5, row[6])" + > + {{ row[5][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i, 5, row[6])"> + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] == 'nobold'"> + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[5][0] }} + </td> + </tr> + </tbody> + <!-- <tbody *ngFor="let row of formValues; let i = index"> + <tr> + <td> {{row[0]}} </td> + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'True'" (click)="openDialog(i,0) "> {{row[1]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'False'" (click)="openDialog(i,0) "> {{row[1]}} </td> + <td *ngIf="boldList[i][0] <=2"> {{row[1]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'True'" (click)="openDialog(i,1) "> {{row[2]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'False'" (click)="openDialog(i,1) "> {{row[2]}} </td> + <td *ngIf="boldList[i][1] <=3"> {{row[2]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'True'" (click)="openDialog(i,2) "> {{row[3]}} </td> + <td style="font-weight: bold;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'False'" (click)="openDialog(i,2) "> {{row[3]}} </td> + <td *ngIf="boldList[i][2] <=4 && boldList[i][2] != 1"> {{row[3]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'True'" (click)="openDialog(i,3) "> {{row[4]}} </td> + <td style="font-weight: bold;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'False'" (click)="openDialog(i,3) "> {{row[4]}} </td> + <td *ngIf="boldList[i][3] <=5 && boldList[i][3]>=4"> {{row[4]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'True'" (click)="openDialog(i,4) "> {{row[5]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'False'" (click)="openDialog(i,4) "> {{row[5]}} </td> + <td *ngIf="boldList[i][4]>=4"> {{row[5]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'True'" (click)="openDialog(i,5) "> {{row[6]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'False'" (click)="openDialog(i,5) "> {{row[6]}} </td> + <td *ngIf="boldList[i][5]>=5"> {{row[6]}} </td> + </tr> + </tbody> --> + </table> + </div> + <!-- <div style="text-align:center;"> + <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> + <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> + <p></p> + <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav"> + </audio> + </div> --> + </mat-tab> + <mat-tab> + <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections</h2> + <p>Directions: Read and respond to each question below.</p> + <div [formGroup]="finalFeedbackForm" class="questions"> + <p>1. What are your overall impressions of this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q1" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">2. Were there any challenges that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q2" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">3. Were there any feelings that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q3" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different + types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and + cultural backgrounds? + </p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q4" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place + yourself on the Cultural Proficiency Continuum? + </p> + <mat-radio-group formControlName="q5" class="example-radio-group"> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="male">Cultural Destructiveness </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="female">Cultural Incapacity </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other">Cultural Blindness </mat-radio-button> + </div> + </div> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="other1">Cultural Pre-Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other2">Cultural Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other3">Cultural Proficiency </mat-radio-button> + </div> + </div> + </mat-radio-group> + + <p style="margin-top: 15px">6. How would you rate the design of our website?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('angry')"> + <img id="angry" class="imgClass" src="../../assets/angry.png" /> + </button> + <p>Very poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('sad')"> + <img id="sad" class="imgClass" src="../../assets/sad.png" /> + </button> + <p>Poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('neutral')"> + <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> + </button> + <p style="text-align: justify">Fair</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('smile')"> + <img id="smile" class="imgClass" src="../../assets/smile.png" /> + </button> + <p>Good</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('heart')"> + <img id="heart" class="imgClass" src="../../assets/heart.webp" /> + </button> + <p>Excellent</p> + </div> + </div> + + <br /> + <p style="margin-top: 15px">7. Was our website easy to use and understand?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsup')"> + <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png" /> + </button> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsdown')"> + <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png" /> + </button> + </div> + </div> + </div> + </mat-tab> + <!-- <mat-tab label="Eight"> + <h2>Sample of Audio Answer</h2> + <p>Please press the button below to start recording your answer.</p> + <div style="text-align:center;margin-top: 200px;"> + <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> + <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> + <p></p> + <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav"> + </audio> + </div> + </mat-tab> --> + </mat-tab-group> + </mat-card-content> + + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button + *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex != 7" + mat-raised-button + color="primary" + style="padding-right: -10px" + (click)="nextButton()" + > + NEXT + <mat-icon>arrow_right_al</mat-icon> + </button> + + <button + *ngIf="selectedIndex == 5" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 6" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm1()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 7" + mat-raised-button + style="padding-right: -10px; background-color: #29abe2; color: white; margin-top: -100px" + (click)="finalSubmit()" + > + Go to Dashboard + </button> + </div> + <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> + <p style="font-size: 10px; margin: -10px; margin-left: 20px"> + Use this bar to increase or decrease the font size + </p> + <mat-slider + color="primary" + min="0" + max="4" + value="1" + tickInterval="1" + (input)="sliderFunction($event)" + ></mat-slider> + </div> + </div> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/cpcq-form/cpcq-form.component.spec.ts b/src/app/components/cpcq-form/cpcq-form.component.spec.ts similarity index 52% rename from src/app/cpcq-form/cpcq-form.component.spec.ts rename to src/app/components/cpcq-form/cpcq-form.component.spec.ts index a5dbb9b87eb1c59601d5f99105c5e82b6dad257c..3f5ac3d019da0439feb9a27d234f24748aa4c24c 100644 --- a/src/app/cpcq-form/cpcq-form.component.spec.ts +++ b/src/app/components/cpcq-form/cpcq-form.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { CpcqFormComponent } from './cpcq-form.component'; +import { CpcqFormComponent } from "./cpcq-form.component"; -describe('CpcqFormComponent', () => { +describe("CpcqFormComponent", () => { let component: CpcqFormComponent; let fixture: ComponentFixture<CpcqFormComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ CpcqFormComponent ] - }) - .compileComponents(); + declarations: [CpcqFormComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('CpcqFormComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/cpcq-form/cpcq-form.component.ts b/src/app/components/cpcq-form/cpcq-form.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..b37dd11624fe71bccf9a58b3137af117cf6255e1 --- /dev/null +++ b/src/app/components/cpcq-form/cpcq-form.component.ts @@ -0,0 +1,1152 @@ +import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { ThemePalette } from "@angular/material/core"; +import { MatDialog } from "@angular/material/dialog"; +import { ProgressBarMode } from "@angular/material/progress-bar"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import Swal from "sweetalert2"; +import { DialogFormComponent } from "./dialog-form/dialog-form.component"; +declare var $: any; + +import { CPCQService } from "src/app/services/cpcq.service"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; + status; + result; +} +@Component({ + selector: "app-cpcq-form", + templateUrl: "./cpcq-form.component.html", + styleUrls: ["./cpcq-form.component.css"], +}) +export class CpcqFormComponent implements OnInit, AfterViewInit { + firstForm: UntypedFormGroup; + responseList: any; + loaded = false; + + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; + statusCheck = false; + buttonClick = false; + + sliderValue = 0; + + selectedIndex = 0; + + color: ThemePalette = "primary"; + mode: ProgressBarMode = "buffer"; + value1 = 50; + bufferValue = 100; + + formValues = []; + attributes = ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"]; + columnHeadings = [ + "culturalDestructivenessresponse", + "culturalIncapacityresponse", + "culturalBlindnessresponse", + "culturalPreCompetenceresponse", + "culturalCompetenceresponse", + "culturalProficiencyresponse", + ]; + rowLetters = [ + ["D", "C", "B", "A", "F", "E"], + ["E", "A", "F", "D", "B", "C"], + ["F", "E", "B", "C", "D", "A"], + ["E", "A", "B", "D", "C", "F"], + ["D", "C", "B", "E", "A", "F"], + ]; + boldList = [[]]; + randomList = [[]]; + finalList = [[]]; + finalList1 = []; + attitudeForm: UntypedFormGroup; + empathyForm: UntypedFormGroup; + policyForm: UntypedFormGroup; + + finalFeedbackForm: UntypedFormGroup; + + //arrays of data getting from the backend + + attitude: any; + empathy: any; + policy: any; + professionalism: any; + teachingPractice: any; + wordDescription: any; + unpackedCount = 0; + + startTime: any; + endTime: any; + durationTime: any; + + @ViewChild("changeDiv") changeDiv: ElementRef; + @ViewChild("changeDiv1") changeDiv1: ElementRef; + @ViewChild("changeDiv2") changeDiv2: ElementRef; + @ViewChild("changeDiv3") changeDiv3: ElementRef; + @ViewChild("changeDiv4") changeDiv4: ElementRef; + @ViewChild("changeDiv5") changeDiv5: ElementRef; + @ViewChild("changeDiv6") changeDiv6: ElementRef; + @ViewChild("changeDiv7") changeDiv7: ElementRef; + @ViewChild("changeDiv8") changeDiv8: ElementRef; + @ViewChild("changeDiv9") changeDiv9: ElementRef; + @ViewChild("changeDiv10") changeDiv10: ElementRef; + @ViewChild("changeDiv11") changeDiv11: ElementRef; + @ViewChild("changeDiv12") changeDiv12: ElementRef; + @ViewChild("changeDiv13") changeDiv13: ElementRef; + @ViewChild("changeDiv14") changeDiv14: ElementRef; + @ViewChild("changeDiv15") changeDiv15: ElementRef; + @ViewChild("changeDiv16") changeDiv16: ElementRef; + @ViewChild("changeDiv17") changeDiv17: ElementRef; + @ViewChild("changeDiv18") changeDiv18: ElementRef; + @ViewChild("changeDiv19") changeDiv19: ElementRef; + @ViewChild("changeDiv20") changeDiv20: ElementRef; + @ViewChild("changeDiv21") changeDiv21: ElementRef; + @ViewChild("changeDiv22") changeDiv22: ElementRef; + @ViewChild("changeDiv23") changeDiv23: ElementRef; + @ViewChild("changeDiv24") changeDiv24: ElementRef; + @ViewChild("changeDiv25") changeDiv25: ElementRef; + @ViewChild("changeDiv26") changeDiv26: ElementRef; + @ViewChild("changeDiv27") changeDiv27: ElementRef; + @ViewChild("changeDiv28") changeDiv28: ElementRef; + @ViewChild("changeDiv29") changeDiv29: ElementRef; + + ngAfterViewInit() {} + + sliderFunction1() { + if (this.sliderValue == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (this.sliderValue == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (this.sliderValue == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (this.sliderValue == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (this.sliderValue == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + sliderFunction(e) { + // + this.sliderValue = e.value; + if (e.value == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (e.value == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (e.value == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (e.value == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (e.value == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + constructor( + private fb: UntypedFormBuilder, + private apiService: CPCQService, + private router: Router, + private formService: FirstForm, + private domSanitizer: DomSanitizer, + public dialog: MatDialog + ) {} + openDialog(i, j, id) { + // + + var arr = []; + arr.push(this.attributes[i]); + arr.push(j); + arr.push(this.columnHeadings[j]); + arr.push(id); + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: arr, + status: "form", + }, + disableClose: true, + }); + dialogRef.afterClosed().subscribe((result) => { + if (this.responsesArray[i][j][1] == "colorbold") { + this.unpackedCount = this.unpackedCount + 1; + } + }); + } + + openWordDialog(i) { + // + this.buttonClick = true; + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "word", + }, + disableClose: true, + }); + + dialogRef.afterClosed().subscribe((result) => { + this.wordDescription = result; + }); + } + + helpDialog(i) { + // + this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "help", + }, + }); + } + + keyPressFunc(e) { + // + var numbersList = ["1"]; + for (let key in this.attitudeForm.value) { + if (numbersList.indexOf(this.attitudeForm.value[key]) == -1) { + // + return "Number"; + } + } + } + + getEmailError() { + return "Error"; + } + responsesArray = []; + temp = []; + getResponses() { + this.apiService.getResponsesData().subscribe((res) => { + for (let key in res) { + this.temp = []; + for (let key1 in res[key]) { + this.temp.push(res[key][key1]); + } + this.responsesArray.push(this.temp); + } + }); + } + + getForm() { + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + var attitudeResult = []; + var empathyResult = []; + var policyResult = []; + var profResult = []; + var teachingResult = []; + this.finalList = [[]]; + this.boldList = [[]]; + this.apiService.getFormData().subscribe((res) => { + for (let key in res) { + arr = []; + if (res[key]["topic"] == "Attitude") { + attitudeResult.push("Attitude"); + arr.push("Attitude"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Empathy") { + empathyResult.push("Empathy"); + arr.push("Empathy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Policy") { + policyResult.push("Policy"); + arr.push("Policy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Professionalism") { + profResult.push("Professionalism"); + arr.push("Professionalism"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Teaching Practice") { + arr.push("Teaching Pracice"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + teachingResult.push("Teaching Practice"); + teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } + + this.boldList.push(arr); + } + this.finalList.push(attitudeResult); + this.finalList.push(empathyResult); + this.finalList.push(policyResult); + this.finalList.push(profResult); + this.finalList.push(teachingResult); + }); + this.finalList.splice(0, 1); + this.boldList.splice(0, 1); + // this.getAllIndexes(this.finalList,1) + } + + emoji: any; + changeEmojiSize(data) { + document.getElementById("angry").style.height = "30px"; + document.getElementById("angry").style.width = "30px"; + document.getElementById("sad").style.height = "30px"; + document.getElementById("sad").style.width = "30px"; + document.getElementById("neutral").style.height = "30px"; + document.getElementById("neutral").style.width = "30px"; + document.getElementById("smile").style.height = "30px"; + document.getElementById("smile").style.width = "30px"; + document.getElementById("heart").style.height = "30px"; + document.getElementById("heart").style.width = "30px"; + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + + this.emoji = data; + } + + thumbs: any; + changeThumbsSize(data) { + document.getElementById("thumbsup").style.height = "30px"; + document.getElementById("thumbsup").style.width = "30px"; + document.getElementById("thumbsdown").style.height = "30px"; + document.getElementById("thumbsdown").style.width = "30px"; + + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + this.thumbs = data; + } + finalSubmit() { + this.finalFeedbackForm.value["q6"] = this.thumbs; + this.finalFeedbackForm.value["q7"] = this.emoji; + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => {}); + + this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe( + (res) => { + this.apiService.changeCPCQStatus().subscribe((res1) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + this.router.navigateByUrl("/result"); + } + }); + }); + }, + (err) => {} + ); + } + ngOnInit(): void { + this.startTime = new Date(); + this.finalFeedbackForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + }); + + this.apiService.attitudeData().subscribe( + (res) => { + // + this.attitude = res[0]; + // + }, + (err) => {} + ); + + this.apiService.empathyData().subscribe( + (res) => { + // + this.empathy = res[0]; + // + }, + (err) => {} + ); + + this.apiService.policyData().subscribe( + (res) => { + this.policy = res[0]; + }, + (err) => {} + ); + + this.apiService.professionalismData().subscribe( + (res) => { + this.professionalism = res[0]; + }, + (err) => {} + ); + + this.apiService.teachingData().subscribe( + (res) => { + this.teachingPractice = res[0]; + }, + (err) => {} + ); + + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + description: ["", [Validators.required]], + }); + + this.empathyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + this.policyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + for (var j = 0; j < 5; j++) { + arr = []; + arr1 = []; + arr2 = []; + i = 0; + while (i < 6) { + var item1 = Math.floor(Math.random() * (7 - 1) + 1); + if (arr1.indexOf(item1) == -1) { + if (i == 0) { + arr.push(this.attributes[j]); + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (arr1[arr1.length - 1] > 2) { + // + arr2.push("True"); + } else { + arr2.push("False"); + } + } else { + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (i == 1) { + if (arr1[arr1.length - 1] > 3) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 2) { + if (arr1[arr1.length - 1] > 4 || arr1[arr1.length - 1] == 1) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 3) { + if (arr1[arr1.length - 1] > 5 || arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 4) { + if (arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 5) { + if (arr1[arr1.length - 1] < 5) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } + } + i = i + 1; + } else { + continue; + } + } + this.formValues.push(arr); + this.boldList.push(arr1); + this.randomList.push(arr2); + } + this.boldList.splice(0, 1); + this.randomList.splice(0, 1); + + this.getAllIndexes(this.randomList, "True"); + this.loaded = true; + } + + getAllIndexes(arr, val) { + var indexes = []; + var i = -1; + for (var i = 0; i < arr.length; i++) { + for (var j = 0; j < arr[i].length; j++) { + if (arr[i][j] == "True") { + var arr1 = []; + arr1.push(i); + arr1.push(j); + indexes.push(arr1); + } + } + } + + var arr1 = []; + for (var i = 0; i < indexes.length; i++) { + arr1.push(i); + } + var ranNums = []; + var i = arr1.length; + var j = 0; + var count = 0; + while (i--) { + if (count < 5) { + j = Math.floor(Math.random() * (i + 1)); + ranNums.push(arr1[j]); + arr1.splice(j, 1); + count = count + 1; + } else { + break; + } + } + + // + for (var i = 0; i < this.boldList.length; i++) { + var temp = []; + for (var j = 0; j < 6; j++) { + temp.push("False"); + } + this.finalList1.push(temp); + } + + for (var i = 0; i < ranNums.length; i++) { + var item = indexes[ranNums[i]]; + + this.finalList1[item[0]][item[1]] = "True"; + } + // this.finalList1.splice(0,1) + } + preSurvey() { + this.router.navigateByUrl("/preSurvey"); + } + + nextButton() { + if (this.selectedIndex == 0) { + this.selectedIndex = this.selectedIndex + 1; + return; + } + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/dashboard"); + return; + } + + var numberList = []; + var flag = true; + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = false; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = false; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = false; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (flag) { + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/postSurvey"); + } + this.sliderFunction1(); + var formData = {}; + formData["topic"] = this.attributes[this.selectedIndex - 1]; + if (this.attributes[this.selectedIndex - 1] == "Attitude") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalCompetence"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalProficiency"] = "E. " + this.attitudeForm.value["E"]; + } else if (this.attributes[this.selectedIndex - 1] == "Empathy") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalProficiency"] = "C. " + this.attitudeForm.value["C"]; + } else if (this.attributes[this.selectedIndex - 1] == "Policy") { + formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalIncapacity"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalProficiency"] = "A. " + this.attitudeForm.value["A"]; + } else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["description"] = this.wordDescription; + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + }, + (err) => {} + ); + // this.getForm(); + this.selectedIndex = this.selectedIndex + 1; + this.buttonClick = false; + this.startTime = new Date(); + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + } + } + + postSurvey() { + this.router.navigateByUrl("/postSurvey"); + } + + submitForm1() { + if (this.unpackedCount >= 5) { + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + this.apiService.patchStatus("cpcqstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.selectedIndex = this.selectedIndex + 1; + } + }); + }); + } else { + Swal.fire({ + text: "Please click on all the yellow boxes and answer the questions in the prompt.", + icon: "warning", + }).then((res) => {}); + } + } + + submitForm() { + if (this.selectedIndex == 5) { + var numberList = []; + var flag = false; + + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = true; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = true; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = true; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (!flag) { + // + var formData = {}; + + formData["topic"] = this.attributes[this.selectedIndex - 1]; + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + + formData["description"] = this.wordDescription; + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + this.apiService.patchStatus("responsesstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + // this.getResponses() + this.router.navigateByUrl("/unpacking"); + + // this.selectedIndex = this.selectedIndex + 1; + this.startTime = new Date(); + } + }); + }); + }, + (err) => {} + ); + } + } + } + + submit() { + // + var tempDict; + this.responseList = []; + for (let key in this.firstForm.value) { + tempDict = {}; + tempDict["question"] = key; + tempDict["response"] = this.firstForm.value[key]; + this.responseList.push(tempDict); + } + // + + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); + } + + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + // + // + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } +} diff --git a/src/app/components/cpcq-form/dialog-form/dialog-form.component.css b/src/app/components/cpcq-form/dialog-form/dialog-form.component.css new file mode 100644 index 0000000000000000000000000000000000000000..fae764a8648c702fec5a5a2bb3c2507d82784b56 --- /dev/null +++ b/src/app/components/cpcq-form/dialog-form/dialog-form.component.css @@ -0,0 +1,32 @@ +.home-wrap { + max-width: 500px; +} + +.help-wrap { + max-width: 700px; +} + +.word-wrap { + width: 500px; +} + +h6 { + /* color: #4050b5; */ +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2, +h4 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; + /* color: #4050b5; */ +} + +.advice { + border: none; + background: none; +} diff --git a/src/app/components/cpcq-form/dialog-form/dialog-form.component.html b/src/app/components/cpcq-form/dialog-form/dialog-form.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2576676e42e85496b6340e750caaf6efedefa11a --- /dev/null +++ b/src/app/components/cpcq-form/dialog-form/dialog-form.component.html @@ -0,0 +1,225 @@ +<script src="https://unpkg.com/wavesurfer.js"></script> +<div *ngIf="data.status == 'word'" class="word-wrap"> + <div mat-dialog-content> + <form [formGroup]="wordDescriptionForm"> + <h6> + Define <span>{{ data.animal }}</span> using your own words. + </h6> + <mat-form-field appearance="outline" class="col-12" style="margin-top: 10px; margin-left: -10px"> + <mat-label>Describe </mat-label> + <textarea formControlName="answer" type="text" rows="6" matInput placeholder="" required></textarea> + </mat-form-field> + </form> + + <div> + <!-- <h6>Record your views in audio : <span> <button *ngIf="!recording" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="initiateRecording()"> + Start Recording + <mat-icon>arrow_right_al</mat-icon> + + </button> + <button *ngIf="recording" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="stopRecording()"> + Stop Recording + <mat-icon>arrow_right_al</mat-icon> + + </button></span> </h6> --> + <!-- <button (click)="initiateRecording()" class="btn btn-primary" *ngIf="!recording" style="cursor: pointer;background-color: green;color: white;font-size: 40px;"> Start Recording </button> + <button (click)="stopRecording()" class="btn btn-danger" *ngIf="recording" style="cursor: pointer;background-color: red;color: white;font-size: 40px;"> Stop Recording </button> + --> + <!-- <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav"> + </audio> --> + <!-- <ng-waveform *ngIf="url" #waveform class="waveform" [src]="url" [height]="150" [useRegion]="true" backgroundColor="#d3d3d3" regionBackgroundColor="rgba(255, 255, 255, 0.7)" regionStartStickColor="#21f032" regionEndStickColor="red" regionTextColor="#09417e" + [withRegionLabels]="true" waveColor="#ff11ff" (trackLoaded)="onTrackLoaded($event)" (rendered)="onTrackRendered($event)" (durationChange)="onDurationChange($event)" (timeUpdate)="onTimeUpdate($event)" (paused)="onPauseButtonClick()" (regionChange)="onRegionChange($event)"> + </ng-waveform> --> + <!-- <button style="width: 100%; text-align: center;" *ngIf="url" (click)="onPlayButtonClick()" class="icon-button"> + <svg style="width:24px;height:24px" viewBox="0 0 24 24"> + <path fill="#000000" d="M8,5.14V19.14L19,12.14L8,5.14Z" /> + </svg> + </button> --> + + <button mat-raised-button color="primary" (click)="closeDialog()">Submit</button> + </div> + </div> +</div> + +<div *ngIf="data.status == 'form'"> + <div mat-dialog-content class="help-wrap"> + <mat-tab-group [selectedIndex]="selectedIndex"> + <mat-tab label="Cultural Blindness"> + <form [formGroup]="unpackingForm"> + <h4> + <span style="font-weight: bold">{{ word }} : </span>{{ description }} + </h4> + <p> + 1. Explain why this vignette above is understood to be + <span> + <button class="advice" style="color: blue" (click)="describeFunc(tempStatus)">{{ tempStatus }}.</button> + </span> + </p> + <p *ngIf="displayTextControl">{{ displayText }}</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> + </mat-form-field> + <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> + </form> + </mat-tab> + <mat-tab> + <form [formGroup]="unpackingForm"> + <h4>{{ description }}</h4> + <p>2. What is the social problem in the vignette?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> + </mat-form-field> + <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> + </form> + </mat-tab> + <mat-tab> + <form [formGroup]="unpackingForm"> + <h4>{{ description }}</h4> + <p>3. What is the cause of the social problem in the vignette?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> + </mat-form-field> + <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> + </form> + </mat-tab> + <mat-tab> + <form [formGroup]="unpackingForm"> + <h4>{{ description }}</h4> + <p>4. What solutions would you offer to address the social problem in the vignette?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> + </mat-form-field> + <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> + </form> + </mat-tab> + </mat-tab-group> + <button + *ngIf="selectedIndex != 3" + mat-raised-button + color="primary" + style="padding-right: -10px" + (click)="nextButton()" + > + NEXT + <mat-icon>arrow_right_al</mat-icon> + </button> + <button + *ngIf="selectedIndex == 3" + mat-raised-button + color="primary" + style="padding-right: -10px" + (click)="nextButton()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + </div> + <!-- + <div *ngIf="data.animal[0] =='Empathy'" mat-dialog-content class="help-wrap"> + <mat-tab-group [selectedIndex]="selectedIndex"> + <mat-tab label="Cultural Blindness"> + <h4>{{description}}</h4> + <h6>Explain why this vignette above is understood to be Cultural Destructiveness.</h6> + <p>1. Explain (e.g., identify and name) the social problem within the vignette</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input type="text" matInput placeholder="" required> + </mat-form-field> + + <p>2. Explain the cause(s) of the social problem within the vignette.</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input type="text" matInput placeholder="" required> + </mat-form-field> + + <p>3. What solutions would you employ to address the social problem within the vignette?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input type="text" matInput placeholder="" required> + </mat-form-field> + </mat-tab> + </mat-tab-group> + <button *ngIf="selectedIndex ==3" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> + NEXT + <mat-icon>arrow_right_al</mat-icon> + + </button> + <button mat-dialog-close mat-raised-button color="primary" style=" padding-right: -10px; "> + SUBMIT + <mat-icon>done_outline</mat-icon> + + </button> + </div> --> + + <!-- <div *ngIf="data.animal[0] !='Empathy' && data.animal[0] != 'Attitude'" mat-dialog-content class="help-wrap"> + <mat-tab-group> + <mat-tab label="Cultural Blindness"> + <h4>Similar form for <span>{{data.animal}}</span></h4> + </mat-tab> + </mat-tab-group> + <button mat-dialog-close mat-raised-button color="primary" style=" padding-right: -10px; "> + SUBMIT + <mat-icon>done_outline</mat-icon> + + </button> + </div> --> +</div> + +<div *ngIf="data.status == 'form1'"> + <div mat-dialog-content class="help-wrap"> + <mat-tab-group [selectedIndex]="selectedIndex"> + <mat-tab label="Cultural Blindness"> + <h4> + <span style="font-weight: bold">{{ word }} : </span>{{ description }} + </h4> + <div *ngFor="let row of questions1; let i = index"> + <p>{{ questions2[i] }}</p> + <p>Answer : {{ row }}</p> + <p>Score : {{ scores1[i] }}</p> + <p>Comment : {{ comments[i] }}</p> + </div> + <button mat-stroked-button color="primary"> + Your Cultural Proficiency is {{ meanNumber }} or {{ meanValue }} + </button> + </mat-tab> + </mat-tab-group> + </div> +</div> + +<div *ngIf="data.status == 'score'" class="help-wrap"> + <div mat-dialog-content> + <h4> + <span style="font-weight: bold">{{ word }} : </span>{{ description }} + </h4> + <div *ngFor="let row of questions1; let i = index"> + <p>{{ questions2[i] }}</p> + <p>Answer : {{ row }}</p> + <p>Score : {{ scores1[i] }}</p> + </div> + <button mat-stroked-button color="primary">Your Cultural Proficiency is {{ meanNumber }} or {{ meanValue }}</button> + </div> +</div> + +<div *ngIf="data.status == 'help'" class="help-wrap"> + <div mat-dialog-content> + <h2> + Cultural Proficiency Continuum Q-Sort: Reacting to Sociocultural Reproductions that take place within + Majority-Minority US Public Schools and Student Populations + </h2> + <p> + Next are 30 sociocultural interactions situated within vignettes describing culturally proficient behaviors, which + occur daily in majority-minority US public schools. There are six vignettes in each of the five categories: + Attitude, Empathy, Policy, Professionalism, and Teaching Practice. Your task is to prioritize these vignettes by + numbering them 1 to 6 within each of the five categories according to your level of reaction. Assign the number 6 + to the vignette that evoked the highest level of reaction, 5 to the vignette that evoked the next highest level of + reaction, 4 to the vignette that evoked the next highest level of reaction, and so on until you have assigned a + number to all six vignettes within each category. When you have completed this task, follow the directions in the + rating guide to summarize your responses. + </p> + </div> +</div> diff --git a/src/app/cpcq-form/dialog-form/dialog-form.component.spec.ts b/src/app/components/cpcq-form/dialog-form/dialog-form.component.spec.ts similarity index 52% rename from src/app/cpcq-form/dialog-form/dialog-form.component.spec.ts rename to src/app/components/cpcq-form/dialog-form/dialog-form.component.spec.ts index 89fecbe926c49887ada2bf5d847bbdb545a0e215..c26ec916a0b297055ad36f5746206e9a58c33687 100644 --- a/src/app/cpcq-form/dialog-form/dialog-form.component.spec.ts +++ b/src/app/components/cpcq-form/dialog-form/dialog-form.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { DialogFormComponent } from './dialog-form.component'; +import { DialogFormComponent } from "./dialog-form.component"; -describe('DialogFormComponent', () => { +describe("DialogFormComponent", () => { let component: DialogFormComponent; let fixture: ComponentFixture<DialogFormComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ DialogFormComponent ] - }) - .compileComponents(); + declarations: [DialogFormComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('DialogFormComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/cpcq-form/dialog-form/dialog-form.component.ts b/src/app/components/cpcq-form/dialog-form/dialog-form.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..dd364350982320ec4eb534ef978fa7a8b9e16c72 --- /dev/null +++ b/src/app/components/cpcq-form/dialog-form/dialog-form.component.ts @@ -0,0 +1,486 @@ +import { Component, Inject, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; +import { DomSanitizer } from "@angular/platform-browser"; +import { NgWaveformComponent } from "ng-waveform"; +import * as RecordRTC from "recordrtc"; +import { CPCQService } from "src/app/services/cpcq.service"; +export interface DialogData { + animal; + status; + result; +} + +declare var $: any; +@Component({ + selector: "app-dialog-form", + templateUrl: "./dialog-form.component.html", + styleUrls: ["./dialog-form.component.css"], +}) +export class DialogFormComponent implements OnInit { + description; + word; + selectedIndex = 0; + displayTextControl = false; + displayText = ""; + wordDescriptionForm: UntypedFormGroup; + unpackingForm: UntypedFormGroup; + + unpackingArray = {}; + + submit = false; + errorField = false; + + startTime: any; + endTime: any; + durationTime: any; + + attitude = [ + "D. It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion.", + "C. Students who wear dreadlocks as a hairstyle are a distraction in the classroom.", + "B. Black students have the same opportunities and access to attend college as their white peers.", + "A. Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status.", + "F. All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.", + "E. All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants.", + ]; + + attitudeOrder = ["D", "C", "B", "A", "F", "E"]; + empathy = [ + "E. A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits.", + "A. A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death.", + "F. Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car.", + "D. An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying, “Come on, you are Asian! You should’ve scored better than this.â€", + "B. A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.", + "C. In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.", + ]; + empathyOrder = ["E", "A", "F", "D", "B", "C"]; + policy = [ + "F. A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish.", + "E. Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism.", + "B. A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.", + "C. A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision.", + "D. A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse.", + "A. A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans.", + ]; + policyOrder = ["F", "E", "B", "C", "D", "A"]; + + professionalism = [ + "E. A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States.", + "A. A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story.", + "B. During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, “Why do we have to attend this training; the United States is post-racial because we have a Black president.â€", + "D. The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†", + "C. The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs.", + "F. An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper.", + ]; + professionalismOrder = ["E", "A", "B", "D", "C", "F"]; + teaching = [ + "D. A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic.", + "C. A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating.", + "B. An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars.", + "E. A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy.", + "A. A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context.", + "F. There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school.", + ]; + teachingOrder = ["D", "C", "B", "E", "A", "F"]; + + culturalStatus = [ + "Cultural Destructiveness", + "Cultural Incapacity", + "Cultural Blindness", + "Cultural Pre-Competence", + "Cultural Competence", + "Cultural Proficiency", + ]; + tempStatus = ""; + @ViewChild("waveform", { static: false }) waveform: NgWaveformComponent; + constructor( + @Inject(MAT_DIALOG_DATA) public data: DialogData, + public dialogRef: MatDialogRef<DialogFormComponent>, + public dialog: MatDialog, + private fb: UntypedFormBuilder, + private domSanitizer: DomSanitizer, + public cpcqService: CPCQService + ) {} + + closeDialog() { + if (!this.wordDescriptionForm.valid) { + } else { + this.data.result = this.wordDescriptionForm.value["answer"]; + this.dialogRef.close(this.wordDescriptionForm.value["answer"]); + } + } + + describeFunc(temp) { + this.displayTextControl = this.displayTextControl == true ? false : true; + if (temp == "Cultural Destructiveness") { + this.displayText = + "When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009)."; + } else if (temp == "Cultural Incapacity") { + this.displayText = + "Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] "; + } else if (temp == "Cultural Blindness") { + this.displayText = `Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] `; + } else if (temp == "Cultural Pre-Competence") { + this.displayText = `The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context `; + } else if (temp == "Cultural Competence") { + this.displayText = `The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context`; + } else { + this.displayText = `Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality`; + } + } + + nextButton() { + this.submit = true; + if (!this.unpackingForm.valid) { + this.errorField = true; + } else { + this.submit = false; + this.errorField = false; + if (this.selectedIndex == 0) { + this.unpackingArray["1. Explain why this vignette above is understood to be " + this.tempStatus + "."] = + this.unpackingForm.value["response"]; + } else if (this.selectedIndex == 1) { + this.unpackingArray["2. What is the social problem in the vignette?"] = this.unpackingForm.value["response"]; + } else if (this.selectedIndex == 2) { + this.unpackingArray["3. What is the cause of the social problem in the vignette?"] = + this.unpackingForm.value["response"]; + } else if (this.selectedIndex == 3) { + this.unpackingArray["4. What solutions would you offer to address the social problem in the vignette?"] = + this.unpackingForm.value["response"]; + } + if (this.selectedIndex == 3) { + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + var arr = {}; + arr["topic"] = this.word; + arr["duration"] = this.durationTime; + arr["response_id"] = this.data.animal[3]; + arr[this.data.animal[2]] = this.unpackingArray; + // if(this.data.animal[2] == ) + this.cpcqService.postUnpacking(arr).subscribe((res) => { + this.dialogRef.close(res); + }); + } else { + this.selectedIndex = this.selectedIndex + 1; + if (this.selectedIndex > 3) { + this.selectedIndex = 3; + } + } + + this.unpackingForm = this.fb.group({ + response: ["", Validators.required], + }); + } + } + + onPlayButtonClick() { + this.waveform.play(); + } + onPauseButtonClick() { + this.waveform.pause(); + } + + onTrackLoaded(e) {} + + onTrackRendered(e) {} + + onDurationChange(e) {} + + onTimeUpdate(e) {} + + onRegionChange(e) {} + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } + + questions: any; + questions1: any; + questions2: any; + scores1: any; + comments: any; + meanValue: any; + meanNumber: any; + + columnHeadings = [ + "Cultural Destructiveness", + "Cultural Incapacity", + "Cultural Blindness", + "Cultural PreCompetence", + "Cultural Competence", + "Cultural Proficiency", + ]; + + scores: any; + ngOnInit(): void { + this.startTime = new Date(); + this.wordDescriptionForm = this.fb.group({ + answer: ["", [Validators.required]], + }); + this.unpackingForm = this.fb.group({ + response: ["", Validators.required], + }); + if (this.data.status == "form") { + if (this.data.animal[0] == "Attitude") { + this.word = "Attitude"; + this.description = this.attitude[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + } else if (this.data.animal[0] == "Empathy") { + this.word = "Empathy"; + this.description = this.empathy[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + } else if (this.data.animal[0] == "Policy") { + this.word = "Policy"; + this.description = this.policy[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + } else if (this.data.animal[0] == "Professionalism") { + this.word = "Professionalism"; + this.description = this.professionalism[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + } else if (this.data.animal[0] == "Teaching Practice") { + this.word = "Teaching Practice"; + this.description = this.teaching[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + } + } else if (this.data.status == "score") { + if (this.data.animal[0] == "Attitude") { + this.word = "Attitude"; + var i = this.attitudeOrder.indexOf(this.data.animal[1]); + this.description = this.attitude[i]; + this.meanValue = this.data.animal[2]; + this.scores = this.data.animal[3]; + this.questions = this.data.animal[4]; + } else if (this.data.animal[0] == "Empathy") { + this.word = "Empathy"; + var i = this.empathyOrder.indexOf(this.data.animal[1]); + this.description = this.empathy[i]; + this.meanValue = this.data.animal[2]; + this.scores = this.data.animal[3]; + this.questions = this.data.animal[4]; + } else if (this.data.animal[0] == "Policy") { + this.word = "Policy"; + var i = this.policyOrder.indexOf(this.data.animal[1]); + this.description = this.policy[i]; + this.meanValue = this.data.animal[2]; + this.scores = this.data.animal[3]; + this.questions = this.data.animal[4]; + } else if (this.data.animal[0] == "Professionalism") { + this.word = "Professionalism"; + var i = this.professionalismOrder.indexOf(this.data.animal[1]); + this.description = this.professionalism[i]; + this.meanValue = this.data.animal[2]; + this.scores = this.data.animal[3]; + this.questions = this.data.animal[4]; + } else if (this.data.animal[0] == "Teaching Practice") { + this.word = "Teaching Practice"; + var i = this.teachingOrder.indexOf(this.data.animal[1]); + this.description = this.teaching[i]; + this.meanValue = this.data.animal[2]; + this.scores = this.data.animal[3]; + this.questions = this.data.animal[4]; + } + this.meanNumber = this.meanValue; + + this.questions1 = []; + this.questions2 = []; + this.scores1 = []; + for (let key in this.scores) { + if (this.scores[key] == 1) { + this.scores1[key] = this.columnHeadings[0]; + } + if (this.scores[key] == 2) { + this.scores1[key] = this.columnHeadings[1]; + } + if (this.scores[key] == 3) { + this.scores1[key] = this.columnHeadings[2]; + } + if (this.scores[key] == 4) { + this.scores1[key] = this.columnHeadings[3]; + } + if (this.scores[key] == 5) { + this.scores1[key] = this.columnHeadings[4]; + } + } + + if (this.meanValue >= 0 && this.meanValue <= 1) { + if (this.meanValue == 1) this.meanValue = this.columnHeadings[0]; + else this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity"; + } + if (this.meanValue > 1 && this.meanValue <= 2) { + if (this.meanValue == 2) this.meanValue = this.columnHeadings[1]; + else this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness"; + } + if (this.meanValue > 2 && this.meanValue <= 3) { + if (this.meanValue == 3) this.meanValue = this.columnHeadings[2]; + else this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence"; + } + if (this.meanValue > 3 && this.meanValue <= 4) { + if (this.meanValue == 4) this.meanValue = this.columnHeadings[3]; + else this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence"; + } + if (this.meanValue > 4 && this.meanValue <= 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + if (this.meanValue > 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + for (let key in this.questions) { + this.questions2.push(key); + this.questions1.push(this.questions[key]); + } + } else if (this.data.status == "form1") { + if (this.data.animal[0] == "Attitude") { + this.word = "Attitude"; + this.description = this.attitude[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + this.questions = this.data.animal[4]; + this.scores = this.data.animal[5]; + } else if (this.data.animal[0] == "Empathy") { + this.word = "Empathy"; + this.description = this.empathy[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + this.questions = this.data.animal[4]; + this.scores = this.data.animal[5]; + } else if (this.data.animal[0] == "Policy") { + this.word = "Policy"; + this.description = this.policy[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + this.questions = this.data.animal[4]; + this.scores = this.data.animal[5]; + } else if (this.data.animal[0] == "Professionalism") { + this.word = "Professionalism"; + this.description = this.professionalism[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + this.questions = this.data.animal[4]; + this.scores = this.data.animal[5]; + } else if (this.data.animal[0] == "Teaching Practice") { + this.word = "Teaching Practice"; + this.description = this.teaching[this.data.animal[1]]; + this.tempStatus = this.culturalStatus[this.data.animal[1]]; + this.questions = this.data.animal[4]; + this.scores = this.data.animal[5]; + } + this.questions1 = []; + this.questions2 = []; + this.scores1 = []; + this.comments = this.data.animal[6]; + var temp = 0; + for (let key in this.scores) { + temp = temp + this.scores[key]; + if (this.scores[key] == 1) { + this.scores1[key] = this.columnHeadings[0]; + } + if (this.scores[key] == 2) { + this.scores1[key] = this.columnHeadings[1]; + } + if (this.scores[key] == 3) { + this.scores1[key] = this.columnHeadings[2]; + } + if (this.scores[key] == 4) { + this.scores1[key] = this.columnHeadings[3]; + } + if (this.scores[key] == 5) { + this.scores1[key] = this.columnHeadings[4]; + } + } + this.meanValue = temp / 4.0; + this.meanNumber = temp / 4.0; + if (this.meanValue >= 0 && this.meanValue <= 1) { + if (this.meanValue == 1) this.meanValue = this.columnHeadings[0]; + else this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity"; + } + if (this.meanValue > 1 && this.meanValue <= 2) { + if (this.meanValue == 2) this.meanValue = this.columnHeadings[1]; + else this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness"; + } + if (this.meanValue > 2 && this.meanValue <= 3) { + if (this.meanValue == 3) this.meanValue = this.columnHeadings[2]; + else this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence"; + } + if (this.meanValue > 3 && this.meanValue <= 4) { + if (this.meanValue == 4) this.meanValue = this.columnHeadings[3]; + else this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence"; + } + if (this.meanValue > 4 && this.meanValue <= 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + if (this.meanValue > 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + + for (let key in this.questions) { + this.questions2.push(key); + this.questions1.push(this.questions[key]); + } + } else if (this.data.status == "word") { + if (this.data.animal == "Attitude") { + this.description = + "Attitude B. (Cultural Blindness) - Black students have the same opportunities and access to attend college as their white peers."; + } else if (this.data.animal == "Empathy") { + this.description = + "Empathy E. (Cultural Destructiveness) - A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits."; + } + } + } +} diff --git a/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.css b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.css new file mode 100644 index 0000000000000000000000000000000000000000..9999d076f82a690ec88d7afc15f752ad92a7762a --- /dev/null +++ b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.css @@ -0,0 +1,119 @@ +.w1-wrap { + background: linear-gradient(to bottom left, rgb(173, 178, 255), #d6f9ff); + width: 100%; + height: 96%; + top: 30px; + left: 0; + z-index: 1000; + overflow: auto; + text-align: center; + padding: 20px; + position: absolute; +} + +h3 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +.card-img-top { + width: 120px; + height: 120px; +} + +.row { + margin: 0 !important; + text-align: center; +} + +.w1-wrap .col { + padding: 0 !important; +} + +.header { + background-color: #d6f9ff; + font-size: 2vw; + color: rgb(173, 178, 255); + text-align: center; + padding: 1vw 0 !important; + line-height: 150%; +} + +h2 { + font-size: 2vw; + line-height: 150%; + color: black; + line-height: 150%; + text-align: center; +} + +.mat-card { + margin: 2vw 8vw; + padding: 0 !important; +} + +.content { + padding: 2vw; +} + +.col-2 { + text-align: center; +} + +@media screen and (min-width: 500px) { + .outer { + width: 6vw; + margin-top: 1vw; + display: inline-block; + } + .btn { + width: 6vw; + display: inline-block; + } + .btn:hover, + .btn:focus { + outline: none; + box-shadow: none; + } + .overlay { + position: absolute; + top: 1vw; + bottom: 0; + left: 9vw; + right: 0; + width: 6vw; + opacity: 0.6; + transition: 0.3s ease; + display: none; + background-color: rgb(208, 253, 208); + } +} + +@media screen and (max-width: 499px) { + .outer { + width: 13vw; + margin-top: 6vw; + display: inline-block; + } + .btn { + width: 13vw; + display: inline-block; + } + .btn:hover, + .btn:focus { + outline: none; + box-shadow: none; + } + .overlay { + position: absolute; + top: 6vw; + bottom: 0; + left: 4vw; + right: 0; + width: 13vw; + opacity: 0.6; + transition: 0.3s ease; + display: none; + background-color: rgb(208, 253, 208); + } +} diff --git a/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.html b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.html new file mode 100644 index 0000000000000000000000000000000000000000..d754a61628e9630205d1ef2c2e48389367695907 --- /dev/null +++ b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.html @@ -0,0 +1,17 @@ +<h1 mat-dialog-title> + <h3>Choose your Avatar</h3> +</h1> +<div mat-dialog-content> + <div class="row col-12"> + <div class="row"> + <div class="col-3" *ngFor="let ball of arr1"> + <div class="outer"> + <button class="btn" id="1{{ ball }}"> + <img class="card-img-top" id="1{{ ball }}" [src]="ball" (click)="avatarClick(ball)" /> + </button> + <div class="overlay" id="*{{ ball }}"></div> + </div> + </div> + </div> + </div> +</div> diff --git a/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.spec.ts b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..5e6ae83e18fdaadb04f328aefcb364919db39197 --- /dev/null +++ b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.spec.ts @@ -0,0 +1,24 @@ +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; + +import { DashboardDialogComponent } from "./dashboard-dialog.component"; + +describe("DashboardDialogComponent", () => { + let component: DashboardDialogComponent; + let fixture: ComponentFixture<DashboardDialogComponent>; + + beforeEach(waitForAsync(() => { + TestBed.configureTestingModule({ + declarations: [DashboardDialogComponent], + }).compileComponents(); + })); + + beforeEach(() => { + fixture = TestBed.createComponent(DashboardDialogComponent); + component = fixture.componentInstance; + fixture.detectChanges(); + }); + + it("should create", () => { + expect(component).toBeTruthy(); + }); +}); diff --git a/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.ts b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..e6a46dec8e4cf36497c7de7c95874eb0c229c7e0 --- /dev/null +++ b/src/app/components/dashboard/dashboard-dialog/dashboard-dialog.component.ts @@ -0,0 +1,44 @@ +import { Component, OnInit, Inject } from "@angular/core"; +import { MatDialogRef, MAT_DIALOG_DATA } from "@angular/material/dialog"; +import Swal from "sweetalert2"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; + +export interface DialogData { + animal; +} +@Component({ + selector: "app-dashboard-dialog", + templateUrl: "./dashboard-dialog.component.html", + styleUrls: ["./dashboard-dialog.component.css"], +}) +export class DashboardDialogComponent implements OnInit { + arr1 = [ + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar1.png?alt=media&token=43a091f7-a828-4f7b-9478-991de35a5f5c", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar2.png?alt=media&token=f2020833-12c5-4597-9b1c-b723c988d4d5", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar3.png?alt=media&token=66de0c48-1d0c-4511-ba34-94e6d6fdcf9a", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar4.jpeg?alt=media&token=2c1f1544-d5ee-4f2b-9bd8-c08b5cb7a1b6", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar5.png?alt=media&token=4ccb76eb-871b-4c6c-9390-f89023c88bde", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar6.png?alt=media&token=809414a2-fba6-4815-aae6-775bcb5c7a83", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar7.png?alt=media&token=405e6677-93d5-4f3b-9c84-fe65a4ddb0a7", + "https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/dog.png?alt=media&token=4bf29ae2-7ddd-4eab-bb0e-749f885bda0b", + ]; + constructor( + public dialogRef: MatDialogRef<DashboardDialogComponent>, + public profileService: PreSurveyService, + @Inject(MAT_DIALOG_DATA) public data: DialogData + ) {} + + avatarClick(avatar) { + // + this.data.animal = avatar; + this.profileService.postProfile({ photo_profile: avatar, id: this.data["userID"] }).subscribe((res) => { + Swal.fire({ + text: "Profile Picture Changed", + icon: "success", + }).then((res) => {}); + }); + + this.dialogRef.close(avatar); + } + ngOnInit(): void {} +} diff --git a/src/app/components/dashboard/dashboard.component.css b/src/app/components/dashboard/dashboard.component.css new file mode 100644 index 0000000000000000000000000000000000000000..ab51307cb235c24a0e1d06e1b4e47ba4a9cb4e29 --- /dev/null +++ b/src/app/components/dashboard/dashboard.component.css @@ -0,0 +1,431 @@ +@media screen and (min-width: 992px) { + .home-wrap { + padding-top: 100px; + } +} + +.icon-select { + width: 0px; +} + +.icon-select .selected-box { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + height: 60px; + border: 1px solid #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-box:hover { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + height: 60px; + border: 1px solid #000000; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-icon { + position: absolute; + margin: 0px; + padding: 0px; + top: 5px; + left: 5px; + width: 48px; + /* sil */ + height: 48px; + /* sil */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .component-icon { + position: absolute; + bottom: 5px; + right: 4px; +} + +.icon-select .box { + position: absolute; + top: 0px; + left: 71px; + margin: 0px; + padding: 0px; + width: 170px; + height: 170px; + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: auto; +} + +.icon-select .icon { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + height: 48px; + border: 1px solid #cccccc; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.icon-select .icon:hover { + border: 1px solid #000000; +} + +.icon-select .icon.selected { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + height: 48px; + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.circle { + border-radius: 50%; + width: 150px; + height: 150px; + display: flex; + justify-content: center; + align-items: center; + margin-top: auto; + margin-bottom: auto; +} + +img { + border-radius: 50%; + width: 60px; + height: 60px; +} + +.initials { + color: #ffffff; + font-size: 20px; + line-height: 19px; + letter-spacing: 0.2625; +} + +.leftCards { + margin-bottom: 10px; +} + +.profileImg { + border-radius: 50%; + display: block; + margin-left: auto; + margin-right: auto; + width: 150px; + height: 150px; +} + +.div-wrap { + width: 500px; +} + +p { + font-family: "Loto", sans-serif; +} + +li { + font-family: "Loto", sans-serif; + font-size: 15px; + margin: 15px; +} + +h3 { + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +p { + text-align: justify; + text-justify: inter-word; + font-size: 15px; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +.title { + background-color: #f8c045; + text-align: center; + padding: 8px 0; + margin-bottom: 20px; +} + +h1 { + margin-bottom: 5px !important; + margin-top: 5px; + font-size: 20px; +} + +::ng-deep .custom-dialog .mat-dialog-container { + padding: 0 !important; +} + +.dialog-wrap { + padding: 10px; +} + +.mat-error { + text-align: center; + margin-bottom: 25px; +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.row { + margin: 0 !important; +} + +.col-lg-12 { + padding: 0 !important; +} + +.btn { + background-color: #f8c045; + color: black; + padding: 5px; + margin-top: 5px; + float: right; + border-radius: 5px; + margin-bottom: 20px; + margin-right: 15px; +} + +.btn:hover, +.btn:focus, +.btn:active { + outline: none; + box-shadow: none; +} + +.close { + font-size: 25px; + color: red; + float: right; + margin-right: 20px; + margin-top: 10px; + cursor: pointer; +} + +.outer { + padding: 10px 30px; +} + +.circles { + height: 45px; + width: 45px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; + cursor: pointer; +} + +.active { + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + width: 200px; + height: 5px; + margin-bottom: 13px; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.current { + background-color: rgb(5, 204, 5); + cursor: no-drop; +} + +.bar { + width: 200px; + height: 5px; + margin-bottom: 13px; + border: 2px solid #e4e3e3; + background-color: #e4e3e3; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.icon { + margin: 8px; +} + +.chartsRadial { + margin-bottom: -200px; +} + +.alert { + text-align: center; +} + +.alert .mat-card { + display: inline-block; +} + +h3 { + font-size: 20px; + text-align: center; +} + +.status-btn { + border: none; + background-color: #f8c045; + color: black; + padding: 10px 40px; + display: inline-block; + border-radius: 5px; + margin: 20px; +} + +.status-btn:hover, +.status-btn:focus, +.status-btn:active { + border: none; + outline: none; + box-shadow: none; +} + +.legend { + margin-bottom: 40px; +} + +.color1 { + height: 15px; + width: 15px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; +} + +.color2 { + height: 15px; + width: 15px; + border: 2px solid #ffa500; + background-color: #ffa500; + border-radius: 50%; + display: inline-block; +} + +.color3 { + height: 15px; + width: 15px; + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + border-radius: 50%; + display: inline-block; +} + +small { + margin-left: 10px; +} + +.mat-hint { + color: rgb(0, 132, 255); + cursor: pointer; +} + +::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { + padding: 0 !important; +} + +::ng-deep .mat-datepicker-content-touch .mat-calendar { + width: 0 !important; + height: 0 !important; +} + +.status { + margin-top: 40px; +} + +@media screen and (max-width: 991px) { + .activity { + margin-top: 20px; + } +} + +.profile .mat-card { + display: flex; + flex-direction: column; + height: 100%; +} + +.outer { + display: flex; + margin: 0 50px; +} + +.content { + margin: 20px 50px; +} + +.content .mat-card { + padding: 20px 50px; +} diff --git a/src/app/components/dashboard/dashboard.component.html b/src/app/components/dashboard/dashboard.component.html new file mode 100644 index 0000000000000000000000000000000000000000..4501628b65cdb910b27f35f4ce8d1c2b421d509b --- /dev/null +++ b/src/app/components/dashboard/dashboard.component.html @@ -0,0 +1,181 @@ +<div class="home-wrap"> + <div class="col-lg-12" *ngIf="currentUser"> + <div class="row col-lg-12"> + <div class="col-lg-6"> + <mat-card> + <img class="profileImg" src="{{ currentUser?.picture }}" /> + <mat-card-content> + <h2 style="width: 100%; text-align: center">PROFILE</h2> + <p>Name: {{ currentUser?.name }}</p> + <p style="margin-top: -10px">Email : {{ currentUser?.email }}</p> + <p *ngIf="currentUser?.phone" style="margin-top: -10px">Phone : {{ currentUser?.phone }}</p> + </mat-card-content> + </mat-card> + </div> + <div class="col-lg-6"> + <mat-card> + <h2>ACTIVITY</h2> + <ul> + <li>Completed Pre-Survey on <span style="color: red"> March 25, 2021</span></li> + <li>Completed CPCQ Form on <span style="color: red"> March 26, 2021</span></li> + <li>Started Unpacking of CPCQ Form answers on <span style="color: red"> March 26, 2021</span></li> + <li> + You will receive an email notifying you to login into your profile and review your facilitator's comments + by <span style="color: red"> April 10, 2021</span> + </li> + </ul> + </mat-card> + </div> + </div> + <div class="col-lg-12"> + <mat-card> + <mat-card-content> + <div class="col-lg-12"> + <span *ngFor="let item of statusIcons; let i = index"> + <span matTooltip="{{ statusNames[i] }}" class="circles" [class.current]="i <= currentStatus" + ><mat-icon class="icon">{{ item }}</mat-icon></span + > + <span + [class.bar]="i >= currentStatus" + [class.active]="i < currentStatus" + *ngIf="i != statusIcons.length - 1" + style="width: 65px" + ></span> + </span> + </div> + </mat-card-content> + </mat-card> + </div> + </div> + + <div class="row outer" *ngIf="!currentUser"> + <div class="col-lg-5 profile"> + <mat-card> + <div class="row col-lg-12"> + <div class="col-lg-4"> + <script + type="text/javascript" + ng:autobind + src="http://code.angularjs.org/0.10.4/angular-0.10.4.js" + ></script> + <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> + <div ng:controller="Ctrl"> + <div id="my-icon-select"></div> + </div> + <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()" /> + <div *ngIf="showInitials" class="circle" style="background-color: #118ab2" (click)="openDialog()"> + <div class="initials"> + {{ initials }} + </div> + </div> + <br /> + <p (click)="openDialog()" style="text-align: center; width: 100%">Choose Your Avatar</p> + <br /> + </div> + <div class="col-lg-8"> + <mat-card-content> + <h2 style="width: 100%; text-align: center">USER PROFILE</h2> + <br /> + <div class="row"> + <div class="col-12"> + <p>Username: {{ userName }}</p> + </div> + <div class="col-12"> + <p>Email: {{ email }}</p> + </div> + </div> + <div class="row"> + <div class="col-12"> + <p>Gender: {{ gender }}</p> + </div> + <div class="col-12"> + <p>Location: {{ location }}</p> + </div> + </div> + </mat-card-content> + </div> + </div> + </mat-card> + </div> + <div class="col-lg-7 activity"> + <mat-card> + <h2>CPCDP ACTIVITIES</h2> + <ul> + <li> + Completed Pre-Survey on <span style="color: red"> {{ createdAt }}.</span> + </li> + <li *ngIf="currentStatus >= 1"> + Cultural Proficiency Continuum Q-Sort form completed on + <span style="color: red"> March 26, 2021.</span> + </li> + <li *ngIf="!(currentStatus >= 1)">Cultural Proficiency Continuum Q-Sort form is pending your completion.</li> + + <li *ngIf="currentStatus >= 2"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on + <span style="color: red"> March 26, 2021.</span> + </li> + <li *ngIf="!(currentStatus >= 2)"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion. + </li> + + <li *ngIf="currentStatus >= 3"> + Your facilitator's comments on your reactions were completed on + <span style="color: red">{{ createdAt }}.</span> + </li> + <li *ngIf="!(currentStatus >= 3)"> + Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive an + email notifying you to login into your profile and review your facilitator's reactions. + </li> + + <li *ngIf="currentStatus >= 4"> + Post-Survey completed on <span style="color: red">{{ createdAt }}.</span> + </li> + <li *ngIf="!(currentStatus >= 4)">Post-Survey is pending your completion.</li> + </ul> + + <div class="col-lg-12 status"> + <span *ngFor="let item of statusIcons; let i = index"> + <span matTooltip="{{ statusNames[i] }}" class="circles" [class.current]="i <= currentStatus" + ><mat-icon class="icon">{{ item }}</mat-icon></span + > + <span + [class.bar]="i >= currentStatus" + [class.active]="i < currentStatus" + *ngIf="i != statusIcons.length - 1" + style="width: 65px" + ></span> + </span> + </div> + </mat-card> + </div> + </div> + + <div class="content"> + <mat-card> + <mat-card-content> + <h2>Cultural Proficiency Continuum Q-Sort: A Majority-Minority PreK-12 Schooling Context</h2> + <p style="font-size: 20px"> + Before engaging with the Cultural Proficiency Continuum Q-Sort (CPCQ), situate yourself as a new teacher in a + U.S. public school that educates a + <span + matTooltip='Specific to the United States, a majority-minority student population is when the "number of one or more racial or ethnic minorities is greater than the White population" (Cormier, 2021, p. 17).' + style="font-style: italic; font-weight: bold" + >majority-minority student population</span + >. You are at this school for an interview as a potential new teacher. The principal is taking you on a tour + of the school during which you will observe a variety of culturally proficient interactions. While you are + completing CPCQ, consider how you may react to these interactions during your tour. + </p> + + <ng-lottie + speed="0.1" + height="170px" + [options]="options" + (animationCreated)="animationCreated($event)" + ></ng-lottie> + </mat-card-content> + <mat-card-actions> + <button mat-raised-button style="background-color: #29abe2" routerLink="/pcqform">CPCQ Directions</button> + </mat-card-actions> + </mat-card> + </div> +</div> diff --git a/src/app/dashboard/dashboard.component.spec.ts b/src/app/components/dashboard/dashboard.component.spec.ts similarity index 52% rename from src/app/dashboard/dashboard.component.spec.ts rename to src/app/components/dashboard/dashboard.component.spec.ts index 9c996c371f1abfaf6c906b6ee96c9ed9b8612c4f..75d6231b6b2f1c8ed32402b48caef6b72e7410ad 100644 --- a/src/app/dashboard/dashboard.component.spec.ts +++ b/src/app/components/dashboard/dashboard.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { DashboardComponent } from './dashboard.component'; +import { DashboardComponent } from "./dashboard.component"; -describe('DashboardComponent', () => { +describe("DashboardComponent", () => { let component: DashboardComponent; let fixture: ComponentFixture<DashboardComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ DashboardComponent ] - }) - .compileComponents(); + declarations: [DashboardComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('DashboardComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/dashboard/dashboard.component.ts b/src/app/components/dashboard/dashboard.component.ts similarity index 62% rename from src/app/dashboard/dashboard.component.ts rename to src/app/components/dashboard/dashboard.component.ts index 3b77542eac2debd13cbf1fe9d25a83d4b0956371..ad05b6ef775ca48d6815c6ad0942e7ebe2f20078 100644 --- a/src/app/dashboard/dashboard.component.ts +++ b/src/app/components/dashboard/dashboard.component.ts @@ -1,20 +1,21 @@ -import { Component, OnInit, ViewChild,Inject } from '@angular/core'; -import { Router } from '@angular/router'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {DashboardDialoComponent} from './dashboard-dialo/dashboard-dialo.component'; -import { AnimationItem } from 'lottie-web'; -import { AnimationOptions } from 'ngx-lottie'; -import {PreSurveyService} from '../../services/preSurvey.service'; -import Swal from 'sweetalert2'; +import { Component, OnInit, ViewChild } from "@angular/core"; +import { MatDialog } from "@angular/material/dialog"; +import { User } from "@auth0/auth0-angular"; +import { AnimationItem } from "lottie-web"; import { - ApexNonAxisChartSeries, - ApexPlotOptions, ApexChart, ApexFill, - ChartComponent, ApexLegend, + ApexNonAxisChartSeries, + ApexPlotOptions, ApexResponsive, + ChartComponent, } from "ng-apexcharts"; +import { AnimationOptions } from "ngx-lottie"; +import { LoginService } from "src/app/services/login.service"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; +import Swal from "sweetalert2"; +import { DashboardDialogComponent } from "./dashboard-dialog/dashboard-dialog.component"; export interface DialogData { animal; @@ -45,38 +46,34 @@ export type ChartOptions = { fill: ApexFill; }; @Component({ - selector: 'app-dashboard', - templateUrl: './dashboard.component.html', - styleUrls: ['./dashboard.component.css'] + selector: "app-dashboard", + templateUrl: "./dashboard.component.html", + styleUrls: ["./dashboard.component.css"], }) export class DashboardComponent implements OnInit { - - statusNames = ['Pre-Survey','CPCQ Form','Unpacking', 'Feedback', 'View Results', 'Post Survey']; - statusIcons = ['edit','developer_board','add_comment','edit','bar_chart','chrome_reader_mode']; + statusNames = ["Pre-Survey", "CPCQ Form", "Unpacking", "Feedback", "View Results", "Post Survey"]; + statusIcons = ["edit", "developer_board", "add_comment", "edit", "bar_chart", "chrome_reader_mode"]; currentStatus = 0; selectedSatus = 0; - profile = false; avatarLink: string; - profileDetails : any; + profileDetails: any; userName: any; - email:any; - location:any; - gender:any; - createdat:any; - public photoUrl: string; - - public name: string = "Nihaarika Jagadish"; + email: any; + location: any; + gender: any; + createdAt: any; + photoUrl: string; + showInitials = false; + initials: string; + circleColor: string; + currentUser: User; - public showInitials = false; - public initials: string; - public circleColor: string; - - private colors = [ - '#EB7181', // red - '#468547', // green - '#FFD558', // yellow - '#3670B2', // blue - ]; + private colors = [ + "#EB7181", // red + "#468547", // green + "#FFD558", // yellow + "#3670B2", // blue + ]; @ViewChild("chart") chart: ChartComponent; public chartOptions: Partial<ChartOptions>; @@ -84,75 +81,147 @@ export class DashboardComponent implements OnInit { public chartOptions2: Partial<ChartOptions2>; options: AnimationOptions = { - path: 'https://assets4.lottiefiles.com/packages/lf20_6pzxbf3o/free_site_survey.json', + path: "https://assets4.lottiefiles.com/packages/lf20_6pzxbf3o/free_site_survey.json", }; - - animationCreated(animationItem: AnimationItem): void { - + + constructor(public dialog: MatDialog, private preSurvey: PreSurveyService, private loginService: LoginService) { + this.loginService.getCurrentUser().subscribe((user) => { + console.log("currentUser", user); + this.currentUser = user; + }); + + this.openDialog1(1); + + this.chartOptions = { + series: [76], + chart: { + height: 300, + type: "radialBar", + offsetY: -20, + }, + plotOptions: { + radialBar: { + startAngle: -90, + endAngle: 90, + track: { + background: "#e7e7e7", + strokeWidth: "97%", + margin: 5, // margin is in pixels + dropShadow: { + enabled: true, + top: 2, + left: 0, + opacity: 0.31, + blur: 2, + }, + }, + dataLabels: { + value: { + fontSize: "22px", + }, + name: { + show: true, + fontSize: "13px", + color: "green", + }, + }, + }, + }, + fill: { + type: "gradient", + gradient: { + shade: "light", + shadeIntensity: 0.4, + inverseColors: false, + opacityFrom: 1, + opacityTo: 1, + stops: [0, 50, 53, 91], + }, + }, + labels: ["Culturally Competent"], + }; + + this.chartOptions1 = { + series: [44, 55, 67, 83, 56], + chart: { + height: 200, + width: 300, + type: "radialBar", + events: { + click: function (event, chartContext, config) {}, + }, + }, + plotOptions: { + radialBar: { + dataLabels: { + name: { + fontSize: "22px", + }, + value: { + fontSize: "16px", + }, + total: { + show: true, + label: "Total", + formatter: function (w) { + return "249"; + }, + }, + }, + }, + }, + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], + }; } + animationCreated(animationItem: AnimationItem): void {} + openDialog1(i) { - this.chartOptions2 = { - series: [76, 67, 61, 90,56], + series: [76, 67, 61, 90, 56], chart: { height: 300, type: "radialBar", events: { - legendClick: function(chartContext, seriesIndex, config) { - - - - if(seriesIndex == 0){ - Swal.fire({ - title:"Attitude", - html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content." - // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", + legendClick: function (chartContext, seriesIndex, config) { + if (seriesIndex == 0) { + Swal.fire({ + title: "Attitude", + html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 1){ - Swal.fire({ - title:"Empathy", - html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car." - // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", + }); + } else if (seriesIndex == 1) { + Swal.fire({ + title: "Empathy", + html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car.", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 2){ - Swal.fire({ - title:"Policy", - html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. " - // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", + }); + } else if (seriesIndex == 2) { + Swal.fire({ + title: "Policy", + html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 3){ - Swal.fire({ - title:"Professionalism", - html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. " - // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", + }); + } else if (seriesIndex == 3) { + Swal.fire({ + title: "Professionalism", + html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 4){ - Swal.fire({ - title:"Teaching Practice", - html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school." - // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", + }); + } else if (seriesIndex == 4) { + Swal.fire({ + title: "Teaching Practice", + html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school.", }).then((res) => { window.location.reload(); - }) + }); } - - } - } + }, + }, }, plotOptions: { radialBar: { @@ -163,168 +232,70 @@ export class DashboardComponent implements OnInit { margin: 5, size: "30%", background: "transparent", - image: undefined + image: undefined, }, dataLabels: { name: { - show: false + show: false, }, value: { - show: false - } - } - } + show: false, + }, + }, + }, }, colors: ["#1ab7ea", "#0084ff", "#39539E", "#0077B5"], - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"], + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], legend: { show: true, floating: true, fontSize: "13px", position: "left", labels: { - useSeriesColors: true + useSeriesColors: true, }, - formatter: function(seriesName, opts) { + formatter: function (seriesName, opts) { return seriesName + ": " + opts.w.globals.series[opts.seriesIndex]; }, itemMargin: { - horizontal: 3 - } + horizontal: 3, + }, }, responsive: [ { breakpoint: 480, options: { legend: { - show: false - } - } - } - ] + show: false, + }, + }, + }, + ], }; } - openDialog(){ - const dialogRef = this.dialog.open(DashboardDialoComponent, { - data: {userID: this.profileDetails[0]["id"]}, - disableClose:true + openDialog() { + const dialogRef = this.dialog.open(DashboardDialogComponent, { + data: { userID: this.profileDetails[0]["id"] }, + disableClose: true, }); - dialogRef.afterClosed().subscribe(result => { - - + dialogRef.afterClosed().subscribe((result) => { this.showInitials = false; this.avatarLink = result; }); - } - constructor(private router:Router,public dialog: MatDialog,private presurvey : PreSurveyService) { - - this.openDialog1(1); - - this.chartOptions = { - series: [76], - chart: { - height: 300, - type: "radialBar", - offsetY: -20 - }, - plotOptions: { - radialBar: { - startAngle: -90, - endAngle: 90, - track: { - background: "#e7e7e7", - strokeWidth: "97%", - margin: 5, // margin is in pixels - dropShadow: { - enabled: true, - top: 2, - left: 0, - opacity: 0.31, - blur: 2 - } - }, - dataLabels: { - value: { - // offsetY: -2, - fontSize: "22px" - }, - name: { - show: true, - fontSize: "13px", - color: "green" - } - - } - } - }, - fill: { - type: "gradient", - gradient: { - shade: "light", - shadeIntensity: 0.4, - inverseColors: false, - opacityFrom: 1, - opacityTo: 1, - stops: [0, 50, 53, 91] - } - }, - labels: ["Culturally Competent"] - }; - - - this.chartOptions1 = { - series: [44, 55, 67, 83,56], - chart: { - height: 200, - width: 300, - type: "radialBar", - events:{ - click: function(event, chartContext, config) { - - - - - // The last parameter config contains additional information like `seriesIndex` and `dataPointIndex` for cartesian charts. - } - } - }, - plotOptions: { - radialBar: { - dataLabels: { - name: { - fontSize: "22px" - }, - value: { - fontSize: "16px" - }, - total: { - show: true, - label: "Total", - formatter: function(w) { - return "249"; - } - } - } - } - }, - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"] - }; - } - public generateData(count, yrange) { + public generateData(count, yrange) { var i = 0; var series = []; while (i < count) { var x = "w" + (i + 1).toString(); - var y = - Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; + var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; series.push({ x: x, - y: y + y: y, }); i++; } @@ -334,47 +305,49 @@ export class DashboardComponent implements OnInit { ngOnInit(): void { if (!this.photoUrl) { this.showInitials = true; - this.createInititals(); + this.createInitials(); const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length)); this.circleColor = this.colors[randomIndex]; - } - - this.presurvey.profileData().subscribe((res)=> { - this.profileDetails = res - this.email = res[0]["email"] - this.location = res[0]["location"] - this.gender = res[0]["gender"] - this.userName = res[0]["first_name"] - this.createdat = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.currentStatus = res[0]["status"].lastIndexOf(true) - // - if(res[0]["photo_profile"].length != 0){ - - this.showInitials = false - var lenSTr = res[0]["photo_profile"].length - this.avatarLink = res[0]["photo_profile"] } - }) + + this.preSurvey.profileData().subscribe((res) => { + this.profileDetails = res; + this.email = res[0]["email"]; + this.location = res[0]["location"]; + this.gender = res[0]["gender"]; + this.userName = res[0]["first_name"]; + this.createdAt = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.currentStatus = res[0]["status"].lastIndexOf(true); + // + if (res[0]["photo_profile"].length != 0) { + this.showInitials = false; + var lenSTr = res[0]["photo_profile"].length; + this.avatarLink = res[0]["photo_profile"]; + } + }); } - private createInititals(): void { + private createInitials(): void { let initials = ""; + for (let i = 0; i < this.currentUser?.name.length; i++) { + if (this.currentUser?.name.charAt(i) === " ") { + continue; + } - for (let i = 0; i < this.name.length; i++) { - if (this.name.charAt(i) === ' ') { - continue; - } - - if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) { - initials += this.name.charAt(i); - - if (initials.length == 2) { - break; - } + if (this.currentUser?.name.charAt(i) === this.currentUser?.name.charAt(i).toUpperCase()) { + initials += this.currentUser?.name.charAt(i); + if (initials.length == 2) { + break; } + } } this.initials = initials; -} + } } diff --git a/src/app/components/final-dashboard/final-dashboard.component.css b/src/app/components/final-dashboard/final-dashboard.component.css new file mode 100644 index 0000000000000000000000000000000000000000..4cdb7fe0f16a11e71559285e4e1aab9bdb581879 --- /dev/null +++ b/src/app/components/final-dashboard/final-dashboard.component.css @@ -0,0 +1,452 @@ +@media screen and (min-width: 992px) { + .home-wrap { + padding-top: 100px; + } +} + +.icon-select { + width: 0px; +} + +.icon-select .selected-box { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + /* sil */ + height: 60px; + /* sil */ + border: 1px solid #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-box:hover { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + /* sil */ + height: 60px; + /* sil */ + border: 1px solid #000000; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-icon { + position: absolute; + margin: 0px; + padding: 0px; + top: 5px; + left: 5px; + width: 48px; + /* sil */ + height: 48px; + /* sil */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .component-icon { + position: absolute; + bottom: 5px; + right: 4px; +} + +.icon-select .box { + position: absolute; + top: 0px; + left: 71px; + margin: 0px; + padding: 0px; + width: 170px; + /* sil */ + height: 170px; + /* sil */ + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: auto; + /* + -webkit-overflow-scrolling: touch; + */ +} + +.icon-select .icon { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + /* sil */ + height: 48px; + /* sil */ + border: 1px solid #cccccc; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.icon-select .icon:hover { + border: 1px solid #000000; +} + +.icon-select .icon.selected { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + /* sil */ + height: 48px; + /* sil */ + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.example-card { + /* max-width: 1000px; + */ + width: 1000px; + height: 570px; + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + +.circle { + border-radius: 50%; + width: 150px; + height: 150px; + display: flex; + justify-content: center; + align-items: center; + /* margin-right: auto; */ + /* margin-left: auto; */ + margin-top: auto; + margin-bottom: auto; +} + +img { + border-radius: 50%; + width: 60px; + height: 60px; +} + +.initials { + color: #ffffff; + font-size: 20px; + line-height: 19px; + letter-spacing: 0.2625; +} + +.leftCards { + margin-bottom: 10px; +} + +.profileImg { + border-radius: 50%; + display: block; + margin-left: auto; + margin-right: auto; + width: 150px; + height: 150px; +} + +.div-wrap { + width: 500px; +} + +p { + font-family: "Loto", sans-serif; +} + +li { + font-family: "Loto", sans-serif; + font-size: 15px; + margin: 15px; +} + +h3 { + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +.title { + background-color: #f8c045; + text-align: center; + padding: 8px 0; + margin-bottom: 20px; +} + +h1 { + margin-bottom: 5px !important; + margin-top: 5px; +} + +::ng-deep .custom-dialog .mat-dialog-container { + padding: 0 !important; +} + +.dialog-wrap { + padding: 10px; +} + +.mat-error { + text-align: center; + margin-bottom: 25px; +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.row { + margin: 0 !important; +} + +.col-lg-12 { + padding: 0 !important; +} + +.btn { + background-color: #f8c045; + color: black; + padding: 5px; + margin-top: 5px; + float: right; + border-radius: 5px; + margin-bottom: 20px; + margin-right: 15px; +} + +.btn:hover, +.btn:focus, +.btn:active { + outline: none; + box-shadow: none; +} + +.close { + font-size: 25px; + color: red; + float: right; + margin-right: 20px; + margin-top: 10px; + cursor: pointer; +} + +.outer { + padding: 10px 30px; +} + +.circles { + height: 45px; + width: 45px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; + cursor: pointer; +} + +.active { + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + width: 200px; + height: 5px; + margin-bottom: 13px; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.current { + background-color: rgb(5, 204, 5); + cursor: no-drop; +} + +.bar { + width: 200px; + height: 5px; + margin-bottom: 13px; + border: 2px solid #e4e3e3; + background-color: #e4e3e3; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.icon { + margin: 8px; +} + +.chartsRadial { + margin-bottom: -200px; +} + +.alert { + text-align: center; +} + +.alert .mat-card { + display: inline-block; +} + +h3 { + font-size: 20px; + text-align: center; +} + +.status-btn { + border: none; + background-color: #f8c045; + color: black; + padding: 10px 40px; + display: inline-block; + border-radius: 5px; + margin: 20px; +} + +.status-btn:hover, +.status-btn:focus, +.status-btn:active { + border: none; + outline: none; + box-shadow: none; +} + +.legend { + margin-bottom: 40px; +} + +.color1 { + height: 15px; + width: 15px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; +} + +.color2 { + height: 15px; + width: 15px; + border: 2px solid #ffa500; + background-color: #ffa500; + border-radius: 50%; + display: inline-block; +} + +.color3 { + height: 15px; + width: 15px; + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + border-radius: 50%; + display: inline-block; +} + +small { + margin-left: 10px; +} + +.mat-hint { + color: rgb(0, 132, 255); + cursor: pointer; +} + +::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { + padding: 0 !important; +} + +::ng-deep .mat-datepicker-content-touch .mat-calendar { + width: 0 !important; + height: 0 !important; +} + +.status { + margin-top: 40px; +} + +@media screen and (max-width: 991px) { + .activity { + margin-top: 20px; + } +} + +.profile .mat-card { + display: flex; + flex-direction: column; + height: 100%; +} + +.outer { + display: flex; + margin: 0 50px; +} + +.content { + margin: 20px 50px; +} + +.content .mat-card { + padding: 20px 50px; +} diff --git a/src/app/components/final-dashboard/final-dashboard.component.html b/src/app/components/final-dashboard/final-dashboard.component.html new file mode 100644 index 0000000000000000000000000000000000000000..6e088cf52d06443488d5f98c3d8e15b3e2f73564 --- /dev/null +++ b/src/app/components/final-dashboard/final-dashboard.component.html @@ -0,0 +1,129 @@ +<div class="home-wrap"> + <div *ngIf="!profile"> + <div class="row outer"> + <div class="col-lg-5 profile"> + <mat-card class="leftCards"> + <div class="row col-lg-12"> + <div class="col-lg-4"> + <script + type="text/javascript" + ng:autobind + src="http://code.angularjs.org/0.10.4/angular-0.10.4.js" + ></script> + <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> + <div ng:controller="Ctrl"> + <div id="my-icon-select"></div> + </div> + <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()" /> + <div *ngIf="showInitials" class="circle" style="background-color: #118ab2" (click)="openDialog()"> + <div class="initials"> + {{ initials }} + </div> + </div> + <br /> + <p (click)="openDialog()" style="width: 100%; text-align: center">Choose Your Avatar</p> + </div> + <div class="col-lg-8"> + <mat-card-content> + <h2 style="width: 100%; text-align: center">USER PROFILE</h2> + <br /> + <div class="row"> + <div class="col-12"> + <p>Username: {{ userName }}</p> + </div> + <div class="col-12"> + <p>Email: {{ email }}</p> + </div> + </div> + <div class="row"> + <div class="col-12"> + <p>Gender: {{ gender }}</p> + </div> + <div class="col-12"> + <p>Location: {{ location }}</p> + </div> + </div> + </mat-card-content> + </div> + </div> + </mat-card> + </div> + <div class="col-lg-7 activity"> + <mat-card class="leftCards"> + <h2>CPCDP ACTIVITIES</h2> + <ul> + <li> + Completed Pre-Survey on <span style="color: red"> {{ preSurveyDate }}.</span> + </li> + <li *ngIf="currentStatus >= 1"> + Cultural Proficiency Continuum Q-Sort form completed on + <span style="color: red">{{ responsesDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 1)"> + Cultural Proficiency Continuum Q-Sort form is pending your completion. + </li> + + <li *ngIf="currentStatus >= 2"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on + <span style="color: red">{{ cpcqDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 2)"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion. + </li> + + <li *ngIf="currentStatus >= 3"> + Your facilitator's comments on your reactions were completed on + <span style="color: red">{{ scoreDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 3)"> + Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive + an email notifying you to login into your profile and review your facilitator's reactions. + </li> + + <li *ngIf="currentStatus >= 4"> + Post-Survey completed on <span style="color: red">{{ postSurveyDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 4)">Post-Survey is pending your completion.</li> + </ul> + <div class="col-lg-12 status"> + <span *ngFor="let item of statusIcons; let i = index"> + <span matTooltip="{{ statusNames[i] }}" class="circles" [class.current]="i <= currentStatus" + ><mat-icon class="icon">{{ item }}</mat-icon></span + > + <span + [class.bar]="i >= currentStatus" + [class.active]="i < currentStatus" + *ngIf="i != statusIcons.length - 1" + style="width: 65px" + ></span> + </span> + </div> + </mat-card> + </div> + </div> + </div> + <div class="content"> + <mat-card> + <mat-card-content> + <h2>Cultural Proficiency Continuum Q-Sort: A Majority-Minority PreK-12 Schooling Context</h2> + <p style="font-size: 20px"> + Thank you for engaging with the Cultural Proficiency Continuum Web-Based Dialogic Protocol. At this stage, you + have completed the Pre-Survey, reacted to and unpacked a host of Culturally Proficient interactions, reviewed + your facilitator's feedback and scores, and completed the Post-Survey. Thank you again, and we look forward to + providing you with opportunities in the future to assess and codify your cultural competence. + </p> + <ng-lottie + speed="0.1" + height="280px" + [options]="options" + (animationCreated)="animationCreated($event)" + ></ng-lottie> + </mat-card-content> + <mat-card-actions> + <button mat-raised-button style="background-color: #29abe2" routerLink="/score"> + View Facilitator's Comments + </button> + </mat-card-actions> + </mat-card> + </div> +</div> diff --git a/src/app/final-dashboard/final-dashboard.component.spec.ts b/src/app/components/final-dashboard/final-dashboard.component.spec.ts similarity index 51% rename from src/app/final-dashboard/final-dashboard.component.spec.ts rename to src/app/components/final-dashboard/final-dashboard.component.spec.ts index 4566376317f504bc87e26de37a883ecd946f5934..8bfde676399516c1b2d8c92f0cc6ae091ad804f8 100644 --- a/src/app/final-dashboard/final-dashboard.component.spec.ts +++ b/src/app/components/final-dashboard/final-dashboard.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { FinalDashboardComponent } from './final-dashboard.component'; +import { FinalDashboardComponent } from "./final-dashboard.component"; -describe('FinalDashboardComponent', () => { +describe("FinalDashboardComponent", () => { let component: FinalDashboardComponent; let fixture: ComponentFixture<FinalDashboardComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ FinalDashboardComponent ] - }) - .compileComponents(); + declarations: [FinalDashboardComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('FinalDashboardComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/final-dashboard/final-dashboard.component.ts b/src/app/components/final-dashboard/final-dashboard.component.ts similarity index 66% rename from src/app/final-dashboard/final-dashboard.component.ts rename to src/app/components/final-dashboard/final-dashboard.component.ts index f457995f57363ab21b1742e1376968fbcb719057..6ab667d2523f1ab0859ffa70f8fba5ee0986d5f9 100644 --- a/src/app/final-dashboard/final-dashboard.component.ts +++ b/src/app/components/final-dashboard/final-dashboard.component.ts @@ -1,21 +1,21 @@ -import { Component, OnInit, ViewChild,Inject } from '@angular/core'; -import { Router } from '@angular/router'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import Swal from 'sweetalert2'; -import {DashboardDialoComponent} from '../dashboard/dashboard-dialo/dashboard-dialo.component'; -import { AnimationItem } from 'lottie-web'; -import {PreSurveyService} from '../../services/preSurvey.service'; -import {CPCQService} from '../../services/cpcq.service'; -import { AnimationOptions } from 'ngx-lottie'; +import { Component, OnInit, ViewChild } from "@angular/core"; +import { MatDialog } from "@angular/material/dialog"; +import { Router } from "@angular/router"; +import { AnimationItem } from "lottie-web"; import { - ApexNonAxisChartSeries, - ApexPlotOptions, ApexChart, ApexFill, - ChartComponent, ApexLegend, + ApexNonAxisChartSeries, + ApexPlotOptions, ApexResponsive, + ChartComponent, } from "ng-apexcharts"; +import { AnimationOptions } from "ngx-lottie"; +import { CPCQService } from "src/app/services/cpcq.service"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; +import Swal from "sweetalert2"; +import { DashboardDialogComponent } from "../dashboard/dashboard-dialog/dashboard-dialog.component"; export interface DialogData { animal; @@ -46,43 +46,43 @@ export type ChartOptions = { fill: ApexFill; }; @Component({ - selector: 'app-final-dashboard', - templateUrl: './final-dashboard.component.html', - styleUrls: ['./final-dashboard.component.css'] + selector: "app-final-dashboard", + templateUrl: "./final-dashboard.component.html", + styleUrls: ["./final-dashboard.component.css"], }) export class FinalDashboardComponent implements OnInit { - statusNames = ['Pre-Survey','CPCQ Form','Unpacking', 'Feedback', 'View Results', 'Post Survey']; - statusIcons = ['edit','developer_board','add_comment','edit','bar_chart','chrome_reader_mode']; + statusNames = ["Pre-Survey", "CPCQ Form", "Unpacking", "Feedback", "View Results", "Post Survey"]; + statusIcons = ["edit", "developer_board", "add_comment", "edit", "bar_chart", "chrome_reader_mode"]; currentStatus = 5; selectedSatus = 0; profile = false; avatarLink: string; - public photoUrl: string; + public photoUrl: string; - public name: string = "Nihaarika Jagadish"; + public name: string = "Nihaarika Jagadish"; public showInitials = false; - public initials: string; - public circleColor: string; - public profileDetails:any; - public email:any - public location:any - public gender :any - public userName :any - public preSurveyDate :any - public responsesDate :any - public cpcqDate :any - public postSurveyDate : any; - public scoreDate : any; - public finalDate : any - - private colors = [ - '#EB7181', // red - '#468547', // green - '#FFD558', // yellow - '#3670B2', // blue - ]; + public initials: string; + public circleColor: string; + public profileDetails: any; + public email: any; + public location: any; + public gender: any; + public userName: any; + public preSurveyDate: any; + public responsesDate: any; + public cpcqDate: any; + public postSurveyDate: any; + public scoreDate: any; + public finalDate: any; + + private colors = [ + "#EB7181", // red + "#468547", // green + "#FFD558", // yellow + "#3670B2", // blue + ]; @ViewChild("chart") chart: ChartComponent; public chartOptions: Partial<ChartOptions>; @@ -90,75 +90,62 @@ export class FinalDashboardComponent implements OnInit { public chartOptions2: Partial<ChartOptions2>; options: AnimationOptions = { - path: 'https://assets4.lottiefiles.com/packages/lf20_t7jtcf8d.json', + path: "https://assets4.lottiefiles.com/packages/lf20_t7jtcf8d.json", }; - - animationCreated(animationItem: AnimationItem): void { - - } + + animationCreated(animationItem: AnimationItem): void {} openDialog1(i) { - this.chartOptions2 = { - series: [76, 67, 61, 90,56], + series: [76, 67, 61, 90, 56], chart: { height: 300, type: "radialBar", events: { - legendClick: function(chartContext, seriesIndex, config) { - - - - if(seriesIndex == 0){ - Swal.fire({ - title:"Attitude", - html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content." + legendClick: function (chartContext, seriesIndex, config) { + if (seriesIndex == 0) { + Swal.fire({ + title: "Attitude", + html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 1){ - Swal.fire({ - title:"Empathy", - html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car." + }); + } else if (seriesIndex == 1) { + Swal.fire({ + title: "Empathy", + html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 2){ - Swal.fire({ - title:"Policy", - html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. " + }); + } else if (seriesIndex == 2) { + Swal.fire({ + title: "Policy", + html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. ", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 3){ - Swal.fire({ - title:"Professionalism", - html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. " + }); + } else if (seriesIndex == 3) { + Swal.fire({ + title: "Professionalism", + html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. ", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 4){ - Swal.fire({ - title:"Teaching Practice", - html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school." + }); + } else if (seriesIndex == 4) { + Swal.fire({ + title: "Teaching Practice", + html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) + }); } - - } - } + }, + }, }, plotOptions: { radialBar: { @@ -169,70 +156,72 @@ export class FinalDashboardComponent implements OnInit { margin: 5, size: "30%", background: "transparent", - image: undefined + image: undefined, }, dataLabels: { name: { - show: false + show: false, }, value: { - show: false - } - } - } + show: false, + }, + }, + }, }, colors: ["#1ab7ea", "#0084ff", "#39539E", "#0077B5"], - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"], + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], legend: { show: true, floating: true, fontSize: "13px", position: "left", labels: { - useSeriesColors: true + useSeriesColors: true, }, - formatter: function(seriesName, opts) { + formatter: function (seriesName, opts) { return seriesName + ": " + opts.w.globals.series[opts.seriesIndex]; }, itemMargin: { - horizontal: 3 - } + horizontal: 3, + }, }, responsive: [ { breakpoint: 480, options: { legend: { - show: false - } - } - } - ] + show: false, + }, + }, + }, + ], }; } - openDialog(){ - const dialogRef = this.dialog.open(DashboardDialoComponent, { - data: {userID: this.profileDetails[0]["id"]} + openDialog() { + const dialogRef = this.dialog.open(DashboardDialogComponent, { + data: { userID: this.profileDetails[0]["id"] }, }); - dialogRef.afterClosed().subscribe(result => { - - + dialogRef.afterClosed().subscribe((result) => { this.showInitials = false; this.avatarLink = result; }); } - constructor(private router:Router,public dialog: MatDialog, public PreSurService : PreSurveyService, public cpcqService : CPCQService) { - + constructor( + private router: Router, + public dialog: MatDialog, + public PreSurService: PreSurveyService, + public cpcqService: CPCQService + ) { this.openDialog1(1); - + this.chartOptions = { series: [76], chart: { height: 300, type: "radialBar", - offsetY: -20 + offsetY: -20, }, plotOptions: { radialBar: { @@ -247,22 +236,21 @@ export class FinalDashboardComponent implements OnInit { top: 2, left: 0, opacity: 0.31, - blur: 2 - } + blur: 2, + }, }, dataLabels: { value: { // offsetY: -2, - fontSize: "22px" + fontSize: "22px", }, name: { show: true, fontSize: "13px", - color: "green" - } - - } - } + color: "green", + }, + }, + }, }, fill: { type: "gradient", @@ -272,64 +260,57 @@ export class FinalDashboardComponent implements OnInit { inverseColors: false, opacityFrom: 1, opacityTo: 1, - stops: [0, 50, 53, 91] - } + stops: [0, 50, 53, 91], + }, }, - labels: ["Culturally Competent"] + labels: ["Culturally Competent"], }; - - this.chartOptions1 = { - series: [44, 55, 67, 83,56], - chart: { - height: 200, - width: 300, - type: "radialBar", - events:{ - click: function(event, chartContext, config) { - - - - - // The last parameter config contains additional information like `seriesIndex` and `dataPointIndex` for cartesian charts. - } - } + this.chartOptions1 = { + series: [44, 55, 67, 83, 56], + chart: { + height: 200, + width: 300, + type: "radialBar", + events: { + click: function (event, chartContext, config) { + // The last parameter config contains additional information like `seriesIndex` and `dataPointIndex` for cartesian charts. + }, }, - plotOptions: { - radialBar: { - dataLabels: { - name: { - fontSize: "22px" - }, - value: { - fontSize: "16px" + }, + plotOptions: { + radialBar: { + dataLabels: { + name: { + fontSize: "22px", + }, + value: { + fontSize: "16px", + }, + total: { + show: true, + label: "Total", + formatter: function (w) { + return "249"; }, - total: { - show: true, - label: "Total", - formatter: function(w) { - return "249"; - } - } - } - } + }, + }, }, - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"] - }; - + }, + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], + }; } - public generateData(count, yrange) { + public generateData(count, yrange) { var i = 0; var series = []; while (i < count) { var x = "w" + (i + 1).toString(); - var y = - Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; + var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; series.push({ x: x, - y: y + y: y, }); i++; } @@ -343,58 +324,78 @@ export class FinalDashboardComponent implements OnInit { const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length)); this.circleColor = this.colors[randomIndex]; - } - this.PreSurService.profileData().subscribe((res)=> { - this.profileDetails = res - this.email = res[0]["email"] - this.location = res[0]["location"] - this.gender = res[0]["gender"] - this.userName = res[0]["first_name"] - this.preSurveyDate = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.responsesDate = new Date(res[0]["responsesdate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.cpcqDate = new Date(res[0]["cpcqdate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.scoreDate = new Date(res[0]["scoredate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.postSurveyDate = new Date(res[0]["postSurveydate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - - - // this.currentStatus = res[0]["status"].lastIndexOf(true) - // - if(res[0]["photo_profile"].length != 0){ - this.showInitials = false - var lenSTr = res[0]["photo_profile"].length - this.avatarLink = res[0]["photo_profile"] } - }) - - this.cpcqService.getCPCQStatus().subscribe((res) => { - this.finalDate = new Date(res[0]["created"]).toDateString() - }) + this.PreSurService.profileData().subscribe((res) => { + this.profileDetails = res; + this.email = res[0]["email"]; + this.location = res[0]["location"]; + this.gender = res[0]["gender"]; + this.userName = res[0]["first_name"]; + this.preSurveyDate = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.responsesDate = new Date(res[0]["responsesdate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.cpcqDate = new Date(res[0]["cpcqdate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.scoreDate = new Date(res[0]["scoredate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.postSurveyDate = new Date(res[0]["postSurveydate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + // this.currentStatus = res[0]["status"].lastIndexOf(true) + // + if (res[0]["photo_profile"].length != 0) { + this.showInitials = false; + var lenSTr = res[0]["photo_profile"].length; + this.avatarLink = res[0]["photo_profile"]; + } + }); + this.cpcqService.getCPCQStatus().subscribe((res) => { + this.finalDate = new Date(res[0]["created"]).toDateString(); + }); } private createInititals(): void { let initials = ""; for (let i = 0; i < this.name.length; i++) { - if (this.name.charAt(i) === ' ') { - continue; - } + if (this.name.charAt(i) === " ") { + continue; + } - if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) { - initials += this.name.charAt(i); + if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) { + initials += this.name.charAt(i); - if (initials.length == 2) { - break; - } + if (initials.length == 2) { + break; } + } } this.initials = initials; -} - preSurvey(){ + } + preSurvey() { this.router.navigateByUrl("/preSurvey"); } } - - diff --git a/src/app/components/final-feedback/final-feedback.component.css b/src/app/components/final-feedback/final-feedback.component.css new file mode 100644 index 0000000000000000000000000000000000000000..5ba7b67bf59769baa72d236a837f1feba77535da --- /dev/null +++ b/src/app/components/final-feedback/final-feedback.component.css @@ -0,0 +1,164 @@ +.divClass { + padding-top: 10px; +} + +.example-card { + /* max-height: 700px; */ + /* width: 1000px; */ + /* height: 570px; */ + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; +} + +::ng-deep .mat-tab-body-content { + max-height: 500px !important; +} + +.table-responsive { + height: 310px; +} + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +mat-slider { + width: 350px; +} + +.mat-slider-thumb-label { + transform: rotate(45deg) !important; + border-radius: 50% 50% 0 !important; +} + +.mat-slider-thumb { + transform: scale(0) !important; +} + +.mat-slider-thumb-label-text { + opacity: 1 !important; +} + +.advice { + border: none; + background: none; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +mat-form-field { + width: 100%; + height: 5%; +} + +::ng-deep .mat-form-field-flex > .mat-form-field-infix { + padding: 0.4em 0px !important; +} + +::ng-deep .mat-form-field-label-wrapper { + top: -1.5em; +} + +::ng-deep + .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float + .mat-form-field-label { + transform: translateY(-1.1em) scale(0.75); + width: 133.33333%; + color: black !important; + border: black; +} + +.example-h2 { + margin: 10px; +} + +.example-section { + display: flex; + align-content: center; + align-items: center; + height: 60px; +} + +.example-margin { + margin: 0 10px; +} + +.imgClass { + width: 30px; + height: 30px; +} + +.zoom { + transition: transform 0.2s; + border: none; + background: none; + /* Animation */ + margin: 0 auto; +} + +.zoom:hover { + transform: scale(1.5); + /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +/* +p { + font-family: 'roboto'; +} */ diff --git a/src/app/components/final-feedback/final-feedback.component.html b/src/app/components/final-feedback/final-feedback.component.html new file mode 100644 index 0000000000000000000000000000000000000000..cbee85aaea20311c53828a5deb251d12ce6640b4 --- /dev/null +++ b/src/app/components/final-feedback/final-feedback.component.html @@ -0,0 +1,1077 @@ +<div class="divClass"> + <mat-card class="example-card"> + <mat-card-content> + <div style="margin-bottom: 10px; margin-left: -10px"> + <mat-progress-bar + *ngIf="selectedIndex > 0 && selectedIndex < 6" + class="example-margin" + style="width: 100%" + [mode]="mode" + [value]="selectedIndex * 20" + [bufferValue]="bufferValue" + > + </mat-progress-bar> + </div> + + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab label="Second"> + <h2> + Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority + U.S. PreK-12 Schools + </h2> + <p style="font-size: 24px"> + <span style="font-weight: bold">Directions: </span> In the upcoming activity, you will engage with 30 + vignettes situated in five categories that illustrate culturally proficient interactions that have taken + place in U.S. public schools. Your task is to assign a level of reaction using numbers 1 - 6 to each + vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the + highest level of reaction from you, 5 to the vignette that evokes the next highest level of reaction from + you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction + from you. + </p> + <p style="font-size: 20px"> + <span style="font-weight: bold"> Note: </span> There are no correct or wrong ways to react to vignettes; + your level of reaction (negative or positive) is unique to you. If you need to see the directions after + beginning the Q-Sort, click the + <span style="color: #4050b5" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand + corner. + </p> + </mat-tab> + <mat-tab label="Third"> + <button class="advice" (click)="openWordDialog('Attitude')"> + <span + ><h2><u>Attitude</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Attitude')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Attitude" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv>{{ attitude["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv1>{{ attitude["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv2>{{ attitude["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv3>{{ attitude["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv4>{{ attitude["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv5>{{ attitude["question6"] }}</p> + </div> + </div> + </form> + + <p style="margin-top: 20px; font-size: 15px"> + The singular pronouns: “their†or “they†are used as gender-neutral pronouns. + </p> + </mat-tab> + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Empathy')"> + <span + ><h2><u>Empathy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Empathy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Empathy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv6>{{ empathy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv7>{{ empathy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv8>{{ empathy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv9>{{ empathy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv10>{{ empathy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv11>{{ empathy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Policy')"> + <span + ><h2><u>Policy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Policy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Policy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv12>{{ policy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv13>{{ policy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv14>{{ policy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv15>{{ policy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv16>{{ policy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv17>{{ policy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fifth"> + <button class="advice" (click)="openWordDialog('Professionalism')"> + <span + ><h2><u>Professionalism</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Professionalism')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Professionalism" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv18>{{ professionalism["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv19>{{ professionalism["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv20>{{ professionalism["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv21>{{ professionalism["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv22>{{ professionalism["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv23>{{ professionalism["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Sixth"> + <button class="advice" (click)="openWordDialog('Teaching Practice')"> + <span + ><h2><u>Teaching Practice</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Teaching Practice')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Teaching Practice" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv24>{{ teachingPractice["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv25>{{ teachingPractice["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv26>{{ teachingPractice["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv27>{{ teachingPractice["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv28>{{ teachingPractice["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv29>{{ teachingPractice["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + <mat-tab label="Seventh"> + <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions</h2> + <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in + the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis + is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. + Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, + but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> + <p> + <span + ><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the + vignette and the corresponding culturally proficient interaction. Above each column is a link to the + definition for each culturally proficient interaction; review the definitions before unpacking your + reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can + also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. + </span> + </p> + <div class="table-responsive"> + <table class="table"> + <thead class="thead-dark" style="font-size: 15px"> + <tr> + <th></th> + <th + matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). " + > + Cultural Destructiveness + </th> + <th + matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] " + > + Cultural Incapacity + </th> + <th + matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] " + > + Cultural Blindness + </th> + <th + matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context " + > + Cultural Pre-Competence + </th> + <th + matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context " + > + Cultural Competence + </th> + <th + matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality " + > + Cultural Proficiency + </th> + </tr> + </thead> + <tbody *ngFor="let row of responsesArray; let i = index"> + <tr> + <td>{{ row[7] }}</td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[0][1] == 'colorbold'" + (click)="openDialog(i, 0, row[6])" + > + {{ row[0][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i, 0, row[6])"> + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] == 'nobold'"> + {{ row[0][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[1][1] == 'colorbold'" + (click)="openDialog(i, 1, row[6])" + > + {{ row[1][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i, 1, row[6])"> + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] == 'nobold'"> + {{ row[1][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[2][1] == 'colorbold'" + (click)="openDialog(i, 2, row[6])" + > + {{ row[2][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i, 2, row[6])"> + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] == 'nobold'"> + {{ row[2][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[3][1] == 'colorbold'" + (click)="openDialog(i, 3, row[6])" + > + {{ row[3][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i, 3, row[6])"> + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] == 'nobold'"> + {{ row[3][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[4][1] == 'colorbold'" + (click)="openDialog(i, 4, row[6])" + > + {{ row[4][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i, 4, row[6])"> + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] == 'nobold'"> + {{ row[4][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[5][1] == 'colorbold'" + (click)="openDialog(i, 5, row[6])" + > + {{ row[5][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i, 5, row[6])"> + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] == 'nobold'"> + {{ row[5][0] }} + </td> + </tr> + </tbody> + <!-- <tbody *ngFor="let row of formValues; let i = index"> + <tr> + <td> {{row[0]}} </td> + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'True'" (click)="openDialog(i,0) "> {{row[1]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'False'" (click)="openDialog(i,0) "> {{row[1]}} </td> + <td *ngIf="boldList[i][0] <=2"> {{row[1]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'True'" (click)="openDialog(i,1) "> {{row[2]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'False'" (click)="openDialog(i,1) "> {{row[2]}} </td> + <td *ngIf="boldList[i][1] <=3"> {{row[2]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'True'" (click)="openDialog(i,2) "> {{row[3]}} </td> + <td style="font-weight: bold;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'False'" (click)="openDialog(i,2) "> {{row[3]}} </td> + <td *ngIf="boldList[i][2] <=4 && boldList[i][2] != 1"> {{row[3]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'True'" (click)="openDialog(i,3) "> {{row[4]}} </td> + <td style="font-weight: bold;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'False'" (click)="openDialog(i,3) "> {{row[4]}} </td> + <td *ngIf="boldList[i][3] <=5 && boldList[i][3]>=4"> {{row[4]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'True'" (click)="openDialog(i,4) "> {{row[5]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'False'" (click)="openDialog(i,4) "> {{row[5]}} </td> + <td *ngIf="boldList[i][4]>=4"> {{row[5]}} </td> + + <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'True'" (click)="openDialog(i,5) "> {{row[6]}} </td> + <td style="font-weight: bold;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'False'" (click)="openDialog(i,5) "> {{row[6]}} </td> + <td *ngIf="boldList[i][5]>=5"> {{row[6]}} </td> + </tr> + </tbody> --> + </table> + </div> + <!-- <div style="text-align:center;"> + <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> + <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> + <p></p> + <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav"> + </audio> + </div> --> + </mat-tab> + <mat-tab> + <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections</h2> + <p>Directions: Read and respond to each question below.</p> + <div [formGroup]="finalFeedbackForm" class="questions"> + <p>1. What are your overall impressions of this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q1" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">2. Were there any challenges that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q2" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">3. Were there any feelings that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q3" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different + types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and + cultural backgrounds? + </p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q4" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place + yourself on the Cultural Proficiency Continuum? + </p> + <mat-radio-group formControlName="q5" class="example-radio-group"> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="Cultural Destructiveness">Cultural Destructiveness </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="Cultural Incapacity">Cultural Incapacity </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="Cultural Blindness">Cultural Blindness </mat-radio-button> + </div> + </div> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="Cultural Pre-Competence">Cultural Pre-Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="Cultural Competence">Cultural Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="Cultural Proficiency">Cultural Proficiency </mat-radio-button> + </div> + </div> + </mat-radio-group> + + <p style="margin-top: 15px">6. How would you rate the design of our website?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('angry')"> + <img id="angry" class="imgClass" src="../../assets/angry.png" /> + </button> + <p>Very poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('sad')"> + <img id="sad" class="imgClass" src="../../assets/sad.png" /> + </button> + <p>Poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('neutral')"> + <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> + </button> + <p style="text-align: justify">Fair</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('smile')"> + <img id="smile" class="imgClass" src="../../assets/smile.png" /> + </button> + <p>Good</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('heart')"> + <img id="heart" class="imgClass" src="../../assets/heart.webp" /> + </button> + <p>Excellent</p> + </div> + </div> + + <br /> + <p style="margin-top: 15px">7. Was our website easy to use and understand?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsup')"> + <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png" /> + </button> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsdown')"> + <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png" /> + </button> + </div> + </div> + </div> + </mat-tab> + <!-- <mat-tab label="Eight"> + <h2>Sample of Audio Answer</h2> + <p>Please press the button below to start recording your answer.</p> + <div style="text-align:center;margin-top: 200px;"> + <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> + <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> + <p></p> + <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav"> + </audio> + </div> + </mat-tab> --> + </mat-tab-group> + </mat-card-content> + + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button + *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex != 7" + mat-raised-button + color="primary" + style="padding-right: -10px" + (click)="nextButton()" + > + NEXT + <mat-icon>arrow_right_al</mat-icon> + </button> + + <button + *ngIf="selectedIndex == 5" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 6" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm1()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 7" + mat-raised-button + style="padding-right: -10px; background-color: #29abe2; color: white; margin-top: -100px" + (click)="finalSubmit()" + > + Go to Dashboard + </button> + </div> + <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> + <p style="font-size: 10px; margin: -10px; margin-left: 20px"> + Use this bar to increase or decrease the font size + </p> + <mat-slider + color="primary" + min="0" + max="4" + value="1" + tickInterval="1" + (input)="sliderFunction($event)" + ></mat-slider> + </div> + </div> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/final-feedback/final-feedback.component.spec.ts b/src/app/components/final-feedback/final-feedback.component.spec.ts similarity index 51% rename from src/app/final-feedback/final-feedback.component.spec.ts rename to src/app/components/final-feedback/final-feedback.component.spec.ts index 9fc9a6d69f1b40dd3621efc484807e0ef3145fcd..f610f8235c7176b550c9af9c04609c3e6d2518ca 100644 --- a/src/app/final-feedback/final-feedback.component.spec.ts +++ b/src/app/components/final-feedback/final-feedback.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { FinalFeedbackComponent } from './final-feedback.component'; +import { FinalFeedbackComponent } from "./final-feedback.component"; -describe('FinalFeedbackComponent', () => { +describe("FinalFeedbackComponent", () => { let component: FinalFeedbackComponent; let fixture: ComponentFixture<FinalFeedbackComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ FinalFeedbackComponent ] - }) - .compileComponents(); + declarations: [FinalFeedbackComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('FinalFeedbackComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/final-feedback/final-feedback.component.ts b/src/app/components/final-feedback/final-feedback.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..9520eff03e1fb1140111a62f027ae9a51087b2c6 --- /dev/null +++ b/src/app/components/final-feedback/final-feedback.component.ts @@ -0,0 +1,1152 @@ +import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { ThemePalette } from "@angular/material/core"; +import { MatDialog } from "@angular/material/dialog"; +import { ProgressBarMode } from "@angular/material/progress-bar"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import Swal from "sweetalert2"; +import { DialogFormComponent } from "../cpcq-form/dialog-form/dialog-form.component"; +declare var $: any; + +import { CPCQService } from "src/app/services/cpcq.service"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; + status; + result; +} +@Component({ + selector: "app-final-feedback", + templateUrl: "./final-feedback.component.html", + styleUrls: ["./final-feedback.component.css"], +}) +export class FinalFeedbackComponent implements OnInit, AfterViewInit { + firstForm: UntypedFormGroup; + responseList: any; + loaded = false; + + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; + statusCheck = false; + buttonClick = false; + + sliderValue = 0; + + selectedIndex = 7; + + color: ThemePalette = "primary"; + mode: ProgressBarMode = "buffer"; + value1 = 50; + bufferValue = 100; + + formValues = []; + attributes = ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"]; + columnHeadings = [ + "culturalDestructivenessresponse", + "culturalIncapacityresponse", + "culturalBlindnessresponse", + "culturalPreCompetenceresponse", + "culturalCompetenceresponse", + "culturalProficiencyresponse", + ]; + rowLetters = [ + ["D", "C", "B", "A", "F", "E"], + ["E", "A", "F", "D", "B", "C"], + ["F", "E", "B", "C", "D", "A"], + ["E", "A", "B", "D", "C", "F"], + ["D", "C", "B", "E", "A", "F"], + ]; + boldList = [[]]; + randomList = [[]]; + finalList = [[]]; + finalList1 = []; + attitudeForm: UntypedFormGroup; + empathyForm: UntypedFormGroup; + policyForm: UntypedFormGroup; + + finalFeedbackForm: UntypedFormGroup; + + //arrays of data getting from the backend + + attitude: any; + empathy: any; + policy: any; + professionalism: any; + teachingPractice: any; + wordDescription: any; + unpackedCount = 0; + + startTime: any; + endTime: any; + durationTime: any; + + @ViewChild("changeDiv") changeDiv: ElementRef; + @ViewChild("changeDiv1") changeDiv1: ElementRef; + @ViewChild("changeDiv2") changeDiv2: ElementRef; + @ViewChild("changeDiv3") changeDiv3: ElementRef; + @ViewChild("changeDiv4") changeDiv4: ElementRef; + @ViewChild("changeDiv5") changeDiv5: ElementRef; + @ViewChild("changeDiv6") changeDiv6: ElementRef; + @ViewChild("changeDiv7") changeDiv7: ElementRef; + @ViewChild("changeDiv8") changeDiv8: ElementRef; + @ViewChild("changeDiv9") changeDiv9: ElementRef; + @ViewChild("changeDiv10") changeDiv10: ElementRef; + @ViewChild("changeDiv11") changeDiv11: ElementRef; + @ViewChild("changeDiv12") changeDiv12: ElementRef; + @ViewChild("changeDiv13") changeDiv13: ElementRef; + @ViewChild("changeDiv14") changeDiv14: ElementRef; + @ViewChild("changeDiv15") changeDiv15: ElementRef; + @ViewChild("changeDiv16") changeDiv16: ElementRef; + @ViewChild("changeDiv17") changeDiv17: ElementRef; + @ViewChild("changeDiv18") changeDiv18: ElementRef; + @ViewChild("changeDiv19") changeDiv19: ElementRef; + @ViewChild("changeDiv20") changeDiv20: ElementRef; + @ViewChild("changeDiv21") changeDiv21: ElementRef; + @ViewChild("changeDiv22") changeDiv22: ElementRef; + @ViewChild("changeDiv23") changeDiv23: ElementRef; + @ViewChild("changeDiv24") changeDiv24: ElementRef; + @ViewChild("changeDiv25") changeDiv25: ElementRef; + @ViewChild("changeDiv26") changeDiv26: ElementRef; + @ViewChild("changeDiv27") changeDiv27: ElementRef; + @ViewChild("changeDiv28") changeDiv28: ElementRef; + @ViewChild("changeDiv29") changeDiv29: ElementRef; + + ngAfterViewInit() {} + + sliderFunction1() { + if (this.sliderValue == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (this.sliderValue == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (this.sliderValue == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (this.sliderValue == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (this.sliderValue == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + sliderFunction(e) { + // + this.sliderValue = e.value; + if (e.value == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (e.value == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (e.value == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (e.value == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (e.value == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + constructor( + private fb: UntypedFormBuilder, + private apiService: CPCQService, + private router: Router, + private formService: FirstForm, + private domSanitizer: DomSanitizer, + public dialog: MatDialog + ) {} + openDialog(i, j, id) { + // + + var arr = []; + arr.push(this.attributes[i]); + arr.push(j); + arr.push(this.columnHeadings[j]); + arr.push(id); + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: arr, + status: "form", + }, + disableClose: true, + }); + dialogRef.afterClosed().subscribe((result) => { + if (this.responsesArray[i][j][1] == "colorbold") { + this.unpackedCount = this.unpackedCount + 1; + } + }); + } + + openWordDialog(i) { + // + this.buttonClick = true; + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "word", + }, + disableClose: true, + }); + + dialogRef.afterClosed().subscribe((result) => { + this.wordDescription = result; + }); + } + + helpDialog(i) { + // + this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "help", + }, + }); + } + + keyPressFunc(e) { + // + var numbersList = ["1"]; + for (let key in this.attitudeForm.value) { + if (numbersList.indexOf(this.attitudeForm.value[key]) == -1) { + // + return "Number"; + } + } + } + + getEmailError() { + return "Error"; + } + responsesArray = []; + temp = []; + getResponses() { + this.apiService.getResponsesData().subscribe((res) => { + for (let key in res) { + this.temp = []; + for (let key1 in res[key]) { + this.temp.push(res[key][key1]); + } + this.responsesArray.push(this.temp); + } + }); + } + + getForm() { + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + var attitudeResult = []; + var empathyResult = []; + var policyResult = []; + var profResult = []; + var teachingResult = []; + this.finalList = [[]]; + this.boldList = [[]]; + this.apiService.getFormData().subscribe((res) => { + for (let key in res) { + arr = []; + if (res[key]["topic"] == "Attitude") { + attitudeResult.push("Attitude"); + arr.push("Attitude"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Empathy") { + empathyResult.push("Empathy"); + arr.push("Empathy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Policy") { + policyResult.push("Policy"); + arr.push("Policy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Professionalism") { + profResult.push("Professionalism"); + arr.push("Professionalism"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Teaching Practice") { + arr.push("Teaching Pracice"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + teachingResult.push("Teaching Practice"); + teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } + + this.boldList.push(arr); + } + this.finalList.push(attitudeResult); + this.finalList.push(empathyResult); + this.finalList.push(policyResult); + this.finalList.push(profResult); + this.finalList.push(teachingResult); + }); + this.finalList.splice(0, 1); + this.boldList.splice(0, 1); + // this.getAllIndexes(this.finalList,1) + } + + emoji: any; + changeEmojiSize(data) { + document.getElementById("angry").style.height = "30px"; + document.getElementById("angry").style.width = "30px"; + document.getElementById("sad").style.height = "30px"; + document.getElementById("sad").style.width = "30px"; + document.getElementById("neutral").style.height = "30px"; + document.getElementById("neutral").style.width = "30px"; + document.getElementById("smile").style.height = "30px"; + document.getElementById("smile").style.width = "30px"; + document.getElementById("heart").style.height = "30px"; + document.getElementById("heart").style.width = "30px"; + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + + this.emoji = data; + } + + thumbs: any; + changeThumbsSize(data) { + document.getElementById("thumbsup").style.height = "30px"; + document.getElementById("thumbsup").style.width = "30px"; + document.getElementById("thumbsdown").style.height = "30px"; + document.getElementById("thumbsdown").style.width = "30px"; + + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + this.thumbs = data; + } + finalSubmit() { + this.finalFeedbackForm.value["q6"] = this.thumbs; + this.finalFeedbackForm.value["q7"] = this.emoji; + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => {}); + + this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe( + (res) => { + this.apiService.changeCPCQStatus().subscribe((res1) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + this.router.navigateByUrl("/result"); + } + }); + }); + }, + (err) => {} + ); + } + ngOnInit(): void { + this.startTime = new Date(); + this.finalFeedbackForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + }); + + this.apiService.attitudeData().subscribe( + (res) => { + // + this.attitude = res[0]; + // + }, + (err) => {} + ); + + this.apiService.empathyData().subscribe( + (res) => { + // + this.empathy = res[0]; + // + }, + (err) => {} + ); + + this.apiService.policyData().subscribe( + (res) => { + this.policy = res[0]; + }, + (err) => {} + ); + + this.apiService.professionalismData().subscribe( + (res) => { + this.professionalism = res[0]; + }, + (err) => {} + ); + + this.apiService.teachingData().subscribe( + (res) => { + this.teachingPractice = res[0]; + }, + (err) => {} + ); + + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + description: ["", [Validators.required]], + }); + + this.empathyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + this.policyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + for (var j = 0; j < 5; j++) { + arr = []; + arr1 = []; + arr2 = []; + i = 0; + while (i < 6) { + var item1 = Math.floor(Math.random() * (7 - 1) + 1); + if (arr1.indexOf(item1) == -1) { + if (i == 0) { + arr.push(this.attributes[j]); + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (arr1[arr1.length - 1] > 2) { + // + arr2.push("True"); + } else { + arr2.push("False"); + } + } else { + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (i == 1) { + if (arr1[arr1.length - 1] > 3) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 2) { + if (arr1[arr1.length - 1] > 4 || arr1[arr1.length - 1] == 1) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 3) { + if (arr1[arr1.length - 1] > 5 || arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 4) { + if (arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 5) { + if (arr1[arr1.length - 1] < 5) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } + } + i = i + 1; + } else { + continue; + } + } + this.formValues.push(arr); + this.boldList.push(arr1); + this.randomList.push(arr2); + } + this.boldList.splice(0, 1); + this.randomList.splice(0, 1); + + this.getAllIndexes(this.randomList, "True"); + this.loaded = true; + } + + getAllIndexes(arr, val) { + var indexes = []; + var i = -1; + for (var i = 0; i < arr.length; i++) { + for (var j = 0; j < arr[i].length; j++) { + if (arr[i][j] == "True") { + var arr1 = []; + arr1.push(i); + arr1.push(j); + indexes.push(arr1); + } + } + } + + var arr1 = []; + for (var i = 0; i < indexes.length; i++) { + arr1.push(i); + } + var ranNums = []; + var i = arr1.length; + var j = 0; + var count = 0; + while (i--) { + if (count < 5) { + j = Math.floor(Math.random() * (i + 1)); + ranNums.push(arr1[j]); + arr1.splice(j, 1); + count = count + 1; + } else { + break; + } + } + + // + for (var i = 0; i < this.boldList.length; i++) { + var temp = []; + for (var j = 0; j < 6; j++) { + temp.push("False"); + } + this.finalList1.push(temp); + } + + for (var i = 0; i < ranNums.length; i++) { + var item = indexes[ranNums[i]]; + + this.finalList1[item[0]][item[1]] = "True"; + } + // this.finalList1.splice(0,1) + } + preSurvey() { + this.router.navigateByUrl("/preSurvey"); + } + + nextButton() { + if (this.selectedIndex == 0) { + this.selectedIndex = this.selectedIndex + 1; + return; + } + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/dashboard"); + return; + } + + var numberList = []; + var flag = true; + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = false; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = false; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = false; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (flag) { + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/postSurvey"); + } + this.sliderFunction1(); + var formData = {}; + formData["topic"] = this.attributes[this.selectedIndex - 1]; + if (this.attributes[this.selectedIndex - 1] == "Attitude") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalCompetence"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalProficiency"] = "E. " + this.attitudeForm.value["E"]; + } else if (this.attributes[this.selectedIndex - 1] == "Empathy") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalProficiency"] = "C. " + this.attitudeForm.value["C"]; + } else if (this.attributes[this.selectedIndex - 1] == "Policy") { + formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalIncapacity"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalProficiency"] = "A. " + this.attitudeForm.value["A"]; + } else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["description"] = this.wordDescription; + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + }, + (err) => {} + ); + // this.getForm(); + this.selectedIndex = this.selectedIndex + 1; + this.buttonClick = false; + this.startTime = new Date(); + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + } + } + + postSurvey() { + this.router.navigateByUrl("/postSurvey"); + } + + submitForm1() { + if (this.unpackedCount >= 5) { + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + this.apiService.patchStatus("cpcqstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.selectedIndex = this.selectedIndex + 1; + } + }); + }); + } else { + Swal.fire({ + text: "Please click on all the yellow boxes and answer the questions in the prompt.", + icon: "warning", + }).then((res) => {}); + } + } + + submitForm() { + if (this.selectedIndex == 5) { + var numberList = []; + var flag = false; + + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = true; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = true; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = true; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (!flag) { + // + var formData = {}; + + formData["topic"] = this.attributes[this.selectedIndex - 1]; + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + + formData["description"] = this.wordDescription; + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + this.apiService.patchStatus("responsesstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + // this.getResponses() + this.router.navigateByUrl("/unpacking"); + + // this.selectedIndex = this.selectedIndex + 1; + this.startTime = new Date(); + } + }); + }); + }, + (err) => {} + ); + } + } + } + + submit() { + // + var tempDict; + this.responseList = []; + for (let key in this.firstForm.value) { + tempDict = {}; + tempDict["question"] = key; + tempDict["response"] = this.firstForm.value[key]; + this.responseList.push(tempDict); + } + // + + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); + } + + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + // + // + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } +} diff --git a/src/app/components/first-form/first-form.component.css b/src/app/components/first-form/first-form.component.css new file mode 100644 index 0000000000000000000000000000000000000000..c18f89f28610868b051f8dd62c9db06e8ce63d6a --- /dev/null +++ b/src/app/components/first-form/first-form.component.css @@ -0,0 +1,79 @@ +.example-card { + /* max-width: 1000px; + */ + width: 1000px; + height: 570px; + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + +/* .inputButton { + position: absolute; + right: 0; + bottom: 0; +} + +.inputButton1 { + position: absolute; + left: 0; + bottom: 5; +} */ + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} diff --git a/src/app/components/first-form/first-form.component.html b/src/app/components/first-form/first-form.component.html new file mode 100644 index 0000000000000000000000000000000000000000..75fe186840d4ae7b1f0ceadf408b8e5426da3517 --- /dev/null +++ b/src/app/components/first-form/first-form.component.html @@ -0,0 +1,271 @@ +<app-header></app-header> +<div> + <mat-card class="example-card"> + <mat-card-content> + <mat-tab-group [selectedIndex]="selectedIndex"> + <mat-tab label="First"> + <h2> + Cultural Proficiency Continuum Q-Sort: Contextualizing, Setting Norms, and Creating a Professional and Safe + Space + </h2> + <p> + Before you engage with the Cultural Proficiency Continuum Q-Sort (CPCQ), situate yourself as a new teacher + in a US public school that educates a majority-minority student population. You are at this school for an + interview as a potential new teacher. The principal is taking you on a tour of the school during which you + will observe a variety of sociocultural interactions. While you are completing CPCQ, consider how you may + react to the sociocultural interactions you will observe during the tour. Please understand that this is not + a "gotcha moment" and do not try to anticipate what the facilitator may want to hear, but rather give an + honest response. Thank you for your cooperation and trust the process; this will make this experience more + impactful. + </p> + <p> + Setting norms for Dialogic, creating a professional and safe environment, with Glenn E, Singleton’s (2015) + Four Agreements of Courageous Conversations. They are as follows: + </p> + <p>1. Stay engaged.</p> + <p>2. Speak your truth.</p> + <p>3. Experience discomfort..</p> + <p>4. Expect and accept non-closure.</p> + + <p> + Your data and responses are confidential and will not be used for research or published without your signed + consent. Thank you for your engagement and participation. + </p> + <button + mat-raised-button + style="float: right; padding-right: -10px; background-color: #29abe2" + (click)="preSurvey()" + > + Take The Pre-Survey + </button> + </mat-tab> + <mat-tab label="Second"> + <h2> + Cultural Proficiency Continuum Q-Sort: Reacting to Sociocultural Reproductions that take place within + Majority-Minority US Public Schools and Student Populations + </h2> + <p> + Next are 30 sociocultural interactions situated within vignettes describing culturally proficient behaviors, + which occur daily in majority-minority US public schools. There are six vignettes in each of the five + categories: Attitude, Empathy, Policy, Professionalism, and Teaching Practice. Your task is to prioritize + these vignettes by numbering them 1 to 6 within each of the five categories according to your level of + reaction. Assign the number 6 to the vignette that evoked the highest level of reaction, 5 to the vignette + that evoked the next highest level of reaction, 4 to the vignette that evoked the next highest level of + reaction, and so on until you have assigned a number to all six vignettes within each category. When you + have completed this task, follow the directions in the rating guide to summarize your responses. + </p> + </mat-tab> + <mat-tab label="Third"> + <h2>Attitude</h2> + <div> + <mat-checkbox class="example-margin" + >A. Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT + has received a scholarship from an Ivy League School due to their socioeconomic status. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >B. Black students have the same opportunities and access to attend college as their white peers. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >C. Students who wear dreadlocks as a hairstyle are a distraction in the classroom. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >D. It should be required for students to remove hair accessories that are associated with their culture, + tribe, sexuality, or religion. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >E. All students who live in the United States deserve a quality public education, even those students + whose parents are undocumented immigrants.</mat-checkbox + > + </div> + <div> + <mat-checkbox class="example-margin" + >F. All faculty and staff within a school setting have equal ability to transfer knowledge to students in + regards to life, culture, character, and/or academic content.</mat-checkbox + > + </div> + + <p style="margin-top: 20px; font-size: 15px"> + The singular pronouns: “their†or “they†are used as gender-neutral pronouns. + </p> + </mat-tab> + <mat-tab label="Fourth"> + <h2>Empathy</h2> + <div> + <mat-checkbox class="example-margin"> + A. A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers + will not attend the funeral because of the activity that led to the student’s cause of death. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >B. A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an + educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those + beliefs are in conflict with their own. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >C. In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next + week’s professional development is dedicated to learning about the customs and etiquette of Islam to + ensure that the new colleague feels welcomed in their new school. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >D. An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in + the student by saying, “Come on, you are Asian! You should’ve scored better than this.†+ </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >E. A school counselor advised a biracial student that they would appear more professional if they perm + their hair (removing the kinks) for their upcoming college visits. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >F. Your colleague was pulled over by the police on the way to work this morning. You hear other + colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected + reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than + acknowledging that they may have been pulled over for being a person of color driving a luxury car. + </mat-checkbox> + </div> + </mat-tab> + + <mat-tab label="Fifth"> + <h2>Professionalism</h2> + <div> + <mat-checkbox class="example-margin"> + A. A teacher asked the class who has traveled out of the country. A Black male raises his hand and states + “I have.†The teacher asked the student three follow-up questions to corroborate his story. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >B. During lunch duty, teachers had a discussion in the presence of students about tomorrow’s + district-wide racial sensitivity training. A teacher commented, “Why do we have to attend this training; + the United States is post-racial because we have a Black president.†+ </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >C. The social committee at an elementary school is planning an awards ceremony and dinner for the staff + and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the + committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >D. The reading specialist expressed some concerns to the Vice Principal about how her male students + emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's + just how boys behave.†+ </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >E. A history teacher refuses to acknowledge black history month and does not want to teach content about + black history in the United States. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin"> + F. An AP English teacher has assigned a research paper where the students were required to write about + their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher + researched the student’s religion while grading the paper to offer relevant constructive feedback back on + the arguments made within the paper. + </mat-checkbox> + </div> + </mat-tab> + + <mat-tab label="Sixth"> + <h2>Teaching Practice</h2> + <div> + <mat-checkbox class="example-margin"> + A. A novice teacher in a school where the majority of the students are African-American and Latino uses + hip-hop as a way to make science relevant in the student's social and cultural context. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >B. An algebra teacher who teaches in a school where the majority of the students are on free and reduced + lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over + 100 dollars. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >C. A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all + of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all + white, were seated in preferential seating. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >D. A teacher puts together a petition to request a textbook company to remove the narrative about the + enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort + with discussing this sensitive topic. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin" + >E. A teacher in a Title 1 school (high percentage of children from low-income families) checks homework + for completeness rather than correctness as a strategy to improve student efficacy. + </mat-checkbox> + </div> + <div> + <mat-checkbox class="example-margin"> + F. There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and + physically in United States public schools. A group of students and teachers are researching the best + practices to implement and create a supportive environment for these students to voice their concerns in + their school. + </mat-checkbox> + </div> + </mat-tab> + <mat-tab label="Seventh"> + <h2>Sample of Audio Answer</h2> + <p>Please press the button below to start recording your answer.</p> + <div style="text-align: center; margin-top: 200px"> + <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> + Start Recording + </button> + <button + mat-raised-button + color="primary" + (click)="stopRecording()" + class="btn btn-danger" + *ngIf="recording" + > + Stop Recording + </button> + <p></p> + <audio controls="" *ngIf="url"> + <source [src]="sanitize(url)" type="audio/wav" /> + </audio> + </div> + </mat-tab> + </mat-tab-group> + </mat-card-content> + <!-- + <div class="inputButton1"> + <button mat-raised-button color="primary" style="float: left; padding-right: -10px;" (click)="prevButton()"> + <mat-icon>arrow_left_al</mat-icon> + PREVIOUS + </button> + </div> + <div class="inputButton"> + <button mat-raised-button color="primary" style="float: right; padding-right: -10px;" (click)="nextButton()"> + NEXT + <mat-icon>arrow_right_al</mat-icon> + + </button> + </div> --> + </mat-card> +</div> diff --git a/src/app/first-form/first-form.component.spec.ts b/src/app/components/first-form/first-form.component.spec.ts similarity index 52% rename from src/app/first-form/first-form.component.spec.ts rename to src/app/components/first-form/first-form.component.spec.ts index 77b005142936776b8494a0460c3ff4f6243ccba2..2c997adb2a7925d065d243db9a1c8a01022ccf50 100644 --- a/src/app/first-form/first-form.component.spec.ts +++ b/src/app/components/first-form/first-form.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { FirstFormComponent } from './first-form.component'; +import { FirstFormComponent } from "./first-form.component"; -describe('FirstFormComponent', () => { +describe("FirstFormComponent", () => { let component: FirstFormComponent; let fixture: ComponentFixture<FirstFormComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ FirstFormComponent ] - }) - .compileComponents(); + declarations: [FirstFormComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('FirstFormComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/first-form/first-form.component.ts b/src/app/components/first-form/first-form.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..9ce2c1c2237b93f56e0daf571dc1883ffb0f0b89 --- /dev/null +++ b/src/app/components/first-form/first-form.component.ts @@ -0,0 +1,147 @@ +import { Component, OnInit } from "@angular/core"; +import { UntypedFormGroup } from "@angular/forms"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import Swal from "sweetalert2"; +declare var $: any; + +@Component({ + selector: "app-first-form", + templateUrl: "./first-form.component.html", + styleUrls: ["./first-form.component.css"], +}) +export class FirstFormComponent implements OnInit { + firstForm: UntypedFormGroup; + responseList: any; + + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; + statusCheck = false; + + selectedIndex = 0; + + constructor(private router: Router, private formService: FirstForm, private domSanitizer: DomSanitizer) {} + + ngOnInit(): void { + // let group={} + // this.formService.firstForm().subscribe((res) => { + // + // this.questionArray = res[0]["question_instance"]; + // + // this.questionArray.forEach(input_template=>{ + // + // group[input_template["id"]]=new FormControl(''); + // }) + // this.firstForm = new FormGroup(group); + // this.statusCheck = true; + // + // },(err) =>{ + // + // }) + } + + preSurvey() { + this.router.navigateByUrl("/preSurvey"); + } + + nextButton() { + this.selectedIndex = this.selectedIndex + 1; + } + prevButton() { + this.selectedIndex = this.selectedIndex - 1; + if (this.selectedIndex < 0) { + this.selectedIndex = 0; + } + } + + submit() { + var tempDict; + this.responseList = []; + for (let key in this.firstForm.value) { + tempDict = {}; + tempDict["question"] = key; + tempDict["response"] = this.firstForm.value[key]; + this.responseList.push(tempDict); + } + + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); + } + + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } +} diff --git a/src/app/components/footer/footer.component.css b/src/app/components/footer/footer.component.css new file mode 100644 index 0000000000000000000000000000000000000000..62a336139ce84574124c948678ab982244963079 --- /dev/null +++ b/src/app/components/footer/footer.component.css @@ -0,0 +1,106 @@ +@media screen and (min-width: 992px) { + .footer-wrap { + /* background-color: #fcd581; */ + padding-top: 25px; + /* position: fixed; */ + left: 0; + bottom: 0; + width: 100%; + } +} + +@media screen and (max-height: 991px) { + .footer-wrap { + /* background-color: #fcd581; */ + padding-top: 25px; + left: 0; + bottom: 0; + width: 100%; + } +} + +.logo { + margin-top: 15px; + margin-left: 5px; + /* padding-bottom: 30px; */ + /* color: #fcb913; */ + font-size: 30px; + font-weight: bold; + font-family: "Loto", sans-serif; +} + +.outer-div { + text-align: center; +} + +.inner-div { + display: inline-block; +} + +h2 { + color: #3c096c; + font-family: "Loto", sans-serif; + text-align: right; + font-size: 15px; + margin: 0 !important; +} + +hr { + border: 1px solid rgb(224, 224, 224); +} + +p { + color: black; + text-align: center; + text-decoration: none; +} + +.mat-icon { + font-size: 15px; +} + +.outer { + text-align: center; +} + +.icons { + display: inline-block; +} + +.icons a { + font-size: 20px; + margin-left: 10px; + margin-right: 10px; + margin-bottom: 20px; +} + +.link-div { + text-align: center; +} + +.links { + display: inline-block; +} + +.copyrights { + margin-top: 20px; + width: 100%; +} + +h1 { + font-family: "Loto", sans-serif; + text-align: center; + font-size: 12px; +} + +.row { + margin: 0 !important; +} + +mat-form-field.mat-form-field { + width: 80%; +} + +.buttonClass { + height: 100%; +} diff --git a/src/app/components/footer/footer.component.html b/src/app/components/footer/footer.component.html new file mode 100644 index 0000000000000000000000000000000000000000..6803189b523d38c407de55e1cdb9547fcc7da82b --- /dev/null +++ b/src/app/components/footer/footer.component.html @@ -0,0 +1,15 @@ +<div class="footer-wrap"> + <div> + <div class="row col-lg-12"> + <div class="col-lg-12"> + <!-- <h2>The Cultural Proficiency Continuum Web-Based Dialogic Protocol was designed using Dwayne Ray Cormier (2019) <a href="https://etda.libraries.psu.edu/catalog/16331drc5411" target="_blank"> Dissertation Research</a></h2> --> + <h2> + Website Developed by the <a target="_blank" href="https://handson.cs.odu.edu/">Hands-On Lab</a> at + <a target="_blank" href="https://odu.edu/">Old Dominion University.</a> + </h2> + <h2>Copyright © 2021. Dwayne Ray Cormier. All rights reserved.</h2> + <br /> + </div> + </div> + </div> +</div> diff --git a/src/app/footer/footer.component.spec.ts b/src/app/components/footer/footer.component.spec.ts similarity index 52% rename from src/app/footer/footer.component.spec.ts rename to src/app/components/footer/footer.component.spec.ts index 2ca6c45431d529bbf993d17231e1c7604bb6a480..fbe9fe497e1d3991c066d8e5319e27669690c1ce 100644 --- a/src/app/footer/footer.component.spec.ts +++ b/src/app/components/footer/footer.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { FooterComponent } from './footer.component'; +import { FooterComponent } from "./footer.component"; -describe('FooterComponent', () => { +describe("FooterComponent", () => { let component: FooterComponent; let fixture: ComponentFixture<FooterComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ FooterComponent ] - }) - .compileComponents(); + declarations: [FooterComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('FooterComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/footer/footer.component.ts b/src/app/components/footer/footer.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..747b94ece4dfbd2ec0ea2cc21491ee7fc11e7482 --- /dev/null +++ b/src/app/components/footer/footer.component.ts @@ -0,0 +1,30 @@ +import { BreakpointObserver, Breakpoints } from "@angular/cdk/layout"; +import { Component, OnInit } from "@angular/core"; +import { Observable } from "rxjs"; +import { map, shareReplay } from "rxjs/operators"; + +@Component({ + selector: "app-footer", + templateUrl: "./footer.component.html", + styleUrls: ["./footer.component.css"], +}) +export class FooterComponent implements OnInit { + isHandset: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset).pipe( + map((result) => result.matches), + shareReplay() + ); + + isTablet: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Tablet).pipe( + map((result) => result.matches), + shareReplay() + ); + + isMedium: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Medium).pipe( + map((result) => result.matches), + shareReplay() + ); + + constructor(private breakpointObserver: BreakpointObserver) {} + + ngOnInit(): void {} +} diff --git a/src/app/components/graph-page/graph-page.component.css b/src/app/components/graph-page/graph-page.component.css new file mode 100644 index 0000000000000000000000000000000000000000..5ba7b67bf59769baa72d236a837f1feba77535da --- /dev/null +++ b/src/app/components/graph-page/graph-page.component.css @@ -0,0 +1,164 @@ +.divClass { + padding-top: 10px; +} + +.example-card { + /* max-height: 700px; */ + /* width: 1000px; */ + /* height: 570px; */ + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; +} + +::ng-deep .mat-tab-body-content { + max-height: 500px !important; +} + +.table-responsive { + height: 310px; +} + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +mat-slider { + width: 350px; +} + +.mat-slider-thumb-label { + transform: rotate(45deg) !important; + border-radius: 50% 50% 0 !important; +} + +.mat-slider-thumb { + transform: scale(0) !important; +} + +.mat-slider-thumb-label-text { + opacity: 1 !important; +} + +.advice { + border: none; + background: none; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +mat-form-field { + width: 100%; + height: 5%; +} + +::ng-deep .mat-form-field-flex > .mat-form-field-infix { + padding: 0.4em 0px !important; +} + +::ng-deep .mat-form-field-label-wrapper { + top: -1.5em; +} + +::ng-deep + .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float + .mat-form-field-label { + transform: translateY(-1.1em) scale(0.75); + width: 133.33333%; + color: black !important; + border: black; +} + +.example-h2 { + margin: 10px; +} + +.example-section { + display: flex; + align-content: center; + align-items: center; + height: 60px; +} + +.example-margin { + margin: 0 10px; +} + +.imgClass { + width: 30px; + height: 30px; +} + +.zoom { + transition: transform 0.2s; + border: none; + background: none; + /* Animation */ + margin: 0 auto; +} + +.zoom:hover { + transform: scale(1.5); + /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +/* +p { + font-family: 'roboto'; +} */ diff --git a/src/app/components/graph-page/graph-page.component.html b/src/app/components/graph-page/graph-page.component.html new file mode 100644 index 0000000000000000000000000000000000000000..975b306ed45248889fadb8fe12481b9728ac0651 --- /dev/null +++ b/src/app/components/graph-page/graph-page.component.html @@ -0,0 +1,67 @@ +<div class="divClass"> + <mat-card class="example-card"> + <mat-card-content> + <div style="margin-bottom: 10px; margin-left: -10px"> + <mat-progress-bar + *ngIf="selectedIndex > 0 && selectedIndex < 6" + class="example-margin" + style="width: 100%" + [mode]="mode" + [value]="selectedIndex * 20" + [bufferValue]="bufferValue" + > + </mat-progress-bar> + </div> + + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab label="Seventh"> + <h2>Cultural Proficiency Continuum Q-Sort: Score Visualization</h2> + <p> + <span + ><b>Info: </b> Each of the Bars indicate the overall score awarded by your rater for the vignette you + unpacked. Click on the bar if you wish to see the score for each of the four questions that you answered + in each vignette. + </span> + </p> + <button mat-button color="primary"> + Your level of cultural proficiency at this time is {{ meanNumber }} or {{ meanValue }} + </button> + + <br /> + + <div id="chart"> + <apx-chart + [series]="chartOptions.series" + [chart]="chartOptions.chart" + [dataLabels]="chartOptions.dataLabels" + [plotOptions]="chartOptions.plotOptions" + [yaxis]="chartOptions.yaxis" + [xaxis]="chartOptions.xaxis" + [fill]="chartOptions.fill" + [title]="chartOptions.title" + ></apx-chart> + </div> + </mat-tab> + </mat-tab-group> + </mat-card-content> + + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button *ngIf="!postSurveyFlag" mat-raised-button style="background-color: #29abe2" routerLink="/postSurvey"> + POST SURVEY + </button> + </div> + </div> + </mat-card-actions> + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button *ngIf="postSurveyFlag" mat-raised-button style="background-color: #29abe2" routerLink="/final"> + DASHBOARD + </button> + </div> + </div> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/graph-page/graph-page.component.spec.ts b/src/app/components/graph-page/graph-page.component.spec.ts similarity index 52% rename from src/app/graph-page/graph-page.component.spec.ts rename to src/app/components/graph-page/graph-page.component.spec.ts index 15d9ebae4e7955333acfefcd4a04c948c1035eae..099f27d663fa2051db359ad06c21a0072d1598aa 100644 --- a/src/app/graph-page/graph-page.component.spec.ts +++ b/src/app/components/graph-page/graph-page.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { GraphPageComponent } from './graph-page.component'; +import { GraphPageComponent } from "./graph-page.component"; -describe('GraphPageComponent', () => { +describe("GraphPageComponent", () => { let component: GraphPageComponent; let fixture: ComponentFixture<GraphPageComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ GraphPageComponent ] - }) - .compileComponents(); + declarations: [GraphPageComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('GraphPageComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/graph-page/graph-page.component.ts b/src/app/components/graph-page/graph-page.component.ts similarity index 64% rename from src/app/graph-page/graph-page.component.ts rename to src/app/components/graph-page/graph-page.component.ts index a783fef15081b6c1dc71524c204560c9311829c7..677c3bed1f3070c5fd08cd4ed5d7118472bc40e0 100644 --- a/src/app/graph-page/graph-page.component.ts +++ b/src/app/components/graph-page/graph-page.component.ts @@ -1,36 +1,35 @@ -import { Component, OnInit } from '@angular/core'; -import { AfterViewInit, ElementRef, ViewChild } from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -import { ThemePalette } from '@angular/material/core'; -import { ProgressBarMode } from '@angular/material/progress-bar'; +import { Component, ElementRef, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { ThemePalette } from "@angular/material/core"; +import { MatDialog } from "@angular/material/dialog"; +import { ProgressBarMode } from "@angular/material/progress-bar"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import Swal from "sweetalert2"; +import { DialogFormComponent } from "../cpcq-form/dialog-form/dialog-form.component"; declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -import { MatDialog, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { DialogFormComponent } from '../cpcq-form/dialog-form/dialog-form.component' -import { CPCQService } from '../../services/cpcq.service'; +import { CPCQService } from "src/app/services/cpcq.service"; -import { Login } from '../../services/login.sevice'; -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; - status; - result; -} import { ApexAxisChartSeries, ApexChart, - ChartComponent, ApexDataLabels, + ApexFill, ApexPlotOptions, - ApexYAxis, ApexTitleSubtitle, ApexXAxis, - ApexFill + ApexYAxis, + ChartComponent, } from "ng-apexcharts"; +import { LoginService } from "src/app/services/login.service"; +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; + status; + result; +} export type ChartOptions = { series: ApexAxisChartSeries; @@ -43,16 +42,20 @@ export type ChartOptions = { title: ApexTitleSubtitle; }; @Component({ - selector: 'app-graph-page', - templateUrl: './graph-page.component.html', - styleUrls: ['./graph-page.component.css'] + selector: "app-graph-page", + templateUrl: "./graph-page.component.html", + styleUrls: ["./graph-page.component.css"], }) export class GraphPageComponent implements OnInit { - firstForm: FormGroup; + firstForm: UntypedFormGroup; responseList: any; loaded = false; - questionArray = [["Enter First Name", "text"], ["Enter Last Name", "text"], ["Enter Age", "number"]]; + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; statusCheck = false; buttonClick = false; @@ -60,30 +63,46 @@ export class GraphPageComponent implements OnInit { selectedIndex = 0; - color: ThemePalette = 'primary'; - mode: ProgressBarMode = 'buffer'; + color: ThemePalette = "primary"; + mode: ProgressBarMode = "buffer"; value1 = 50; bufferValue = 100; formValues = []; attributes = ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"]; - columnHeadings = ["culturalDestructivenessresponse", "culturalIncapacityresponse", "culturalBlindnessresponse", "culturalPreCompetenceresponse", "culturalCompetenceresponse", "culturalProficiencyresponse"] - columnHeadings1 = ["Cultural Destructiveness","Cultural Incapacity","Cultural Blindness","Cultural PreCompetence","Cultural Competence","Cultural Proficiency"] - - - rowLetters = [["D", 'C', 'B', 'A', 'F', 'E'], ['E', 'A', 'F', 'D', 'B', 'C'], ['F', 'E', 'B', 'C', 'D', 'A'], ['E', 'A', 'B', 'D', 'C', 'F'], ['D', 'C', 'B', 'E', 'A', 'F']]; + columnHeadings = [ + "culturalDestructivenessresponse", + "culturalIncapacityresponse", + "culturalBlindnessresponse", + "culturalPreCompetenceresponse", + "culturalCompetenceresponse", + "culturalProficiencyresponse", + ]; + columnHeadings1 = [ + "Cultural Destructiveness", + "Cultural Incapacity", + "Cultural Blindness", + "Cultural PreCompetence", + "Cultural Competence", + "Cultural Proficiency", + ]; + + rowLetters = [ + ["D", "C", "B", "A", "F", "E"], + ["E", "A", "F", "D", "B", "C"], + ["F", "E", "B", "C", "D", "A"], + ["E", "A", "B", "D", "C", "F"], + ["D", "C", "B", "E", "A", "F"], + ]; boldList = [[]]; randomList = [[]]; finalList = [[]]; finalList1 = []; - attitudeForm: FormGroup; - empathyForm: FormGroup; - policyForm: FormGroup; - - finalFeedbackForm: FormGroup; - - + attitudeForm: UntypedFormGroup; + empathyForm: UntypedFormGroup; + policyForm: UntypedFormGroup; + finalFeedbackForm: UntypedFormGroup; //arrays of data getting from the backend @@ -99,51 +118,41 @@ export class GraphPageComponent implements OnInit { endTime: any; durationTime: any; - @ViewChild('changeDiv') changeDiv: ElementRef; - @ViewChild('changeDiv1') changeDiv1: ElementRef; - @ViewChild('changeDiv2') changeDiv2: ElementRef; - @ViewChild('changeDiv3') changeDiv3: ElementRef; - @ViewChild('changeDiv4') changeDiv4: ElementRef; - @ViewChild('changeDiv5') changeDiv5: ElementRef; - @ViewChild('changeDiv6') changeDiv6: ElementRef; - @ViewChild('changeDiv7') changeDiv7: ElementRef; - @ViewChild('changeDiv8') changeDiv8: ElementRef; - @ViewChild('changeDiv9') changeDiv9: ElementRef; - @ViewChild('changeDiv10') changeDiv10: ElementRef; - @ViewChild('changeDiv11') changeDiv11: ElementRef; - @ViewChild('changeDiv12') changeDiv12: ElementRef; - @ViewChild('changeDiv13') changeDiv13: ElementRef; - @ViewChild('changeDiv14') changeDiv14: ElementRef; - @ViewChild('changeDiv15') changeDiv15: ElementRef; - @ViewChild('changeDiv16') changeDiv16: ElementRef; - @ViewChild('changeDiv17') changeDiv17: ElementRef; - @ViewChild('changeDiv18') changeDiv18: ElementRef; - @ViewChild('changeDiv19') changeDiv19: ElementRef; - @ViewChild('changeDiv20') changeDiv20: ElementRef; - @ViewChild('changeDiv21') changeDiv21: ElementRef; - @ViewChild('changeDiv22') changeDiv22: ElementRef; - @ViewChild('changeDiv23') changeDiv23: ElementRef; - @ViewChild('changeDiv24') changeDiv24: ElementRef; - @ViewChild('changeDiv25') changeDiv25: ElementRef; - @ViewChild('changeDiv26') changeDiv26: ElementRef; - @ViewChild('changeDiv27') changeDiv27: ElementRef; - @ViewChild('changeDiv28') changeDiv28: ElementRef; - @ViewChild('changeDiv29') changeDiv29: ElementRef; - - + @ViewChild("changeDiv") changeDiv: ElementRef; + @ViewChild("changeDiv1") changeDiv1: ElementRef; + @ViewChild("changeDiv2") changeDiv2: ElementRef; + @ViewChild("changeDiv3") changeDiv3: ElementRef; + @ViewChild("changeDiv4") changeDiv4: ElementRef; + @ViewChild("changeDiv5") changeDiv5: ElementRef; + @ViewChild("changeDiv6") changeDiv6: ElementRef; + @ViewChild("changeDiv7") changeDiv7: ElementRef; + @ViewChild("changeDiv8") changeDiv8: ElementRef; + @ViewChild("changeDiv9") changeDiv9: ElementRef; + @ViewChild("changeDiv10") changeDiv10: ElementRef; + @ViewChild("changeDiv11") changeDiv11: ElementRef; + @ViewChild("changeDiv12") changeDiv12: ElementRef; + @ViewChild("changeDiv13") changeDiv13: ElementRef; + @ViewChild("changeDiv14") changeDiv14: ElementRef; + @ViewChild("changeDiv15") changeDiv15: ElementRef; + @ViewChild("changeDiv16") changeDiv16: ElementRef; + @ViewChild("changeDiv17") changeDiv17: ElementRef; + @ViewChild("changeDiv18") changeDiv18: ElementRef; + @ViewChild("changeDiv19") changeDiv19: ElementRef; + @ViewChild("changeDiv20") changeDiv20: ElementRef; + @ViewChild("changeDiv21") changeDiv21: ElementRef; + @ViewChild("changeDiv22") changeDiv22: ElementRef; + @ViewChild("changeDiv23") changeDiv23: ElementRef; + @ViewChild("changeDiv24") changeDiv24: ElementRef; + @ViewChild("changeDiv25") changeDiv25: ElementRef; + @ViewChild("changeDiv26") changeDiv26: ElementRef; + @ViewChild("changeDiv27") changeDiv27: ElementRef; + @ViewChild("changeDiv28") changeDiv28: ElementRef; + @ViewChild("changeDiv29") changeDiv29: ElementRef; @ViewChild("chart") chart: ChartComponent; public chartOptions: Partial<ChartOptions>; - - - - - ngAfterViewInit() { - - - - } + ngAfterViewInit() {} sliderFunction1() { if (this.sliderValue == 1) { @@ -177,9 +186,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "15px"; this.changeDiv28.nativeElement.style.fontSize = "15px"; this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if (this.sliderValue == 2) { + } else if (this.sliderValue == 2) { this.changeDiv.nativeElement.style.fontSize = "20px"; this.changeDiv1.nativeElement.style.fontSize = "20px"; this.changeDiv2.nativeElement.style.fontSize = "20px"; @@ -210,8 +217,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "20px"; this.changeDiv28.nativeElement.style.fontSize = "20px"; this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if (this.sliderValue == 3) { + } else if (this.sliderValue == 3) { this.changeDiv.nativeElement.style.fontSize = "22px"; this.changeDiv1.nativeElement.style.fontSize = "22px"; this.changeDiv2.nativeElement.style.fontSize = "22px"; @@ -242,8 +248,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "22px"; this.changeDiv28.nativeElement.style.fontSize = "22px"; this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if (this.sliderValue == 4) { + } else if (this.sliderValue == 4) { this.changeDiv.nativeElement.style.fontSize = "25px"; this.changeDiv1.nativeElement.style.fontSize = "25px"; this.changeDiv2.nativeElement.style.fontSize = "25px"; @@ -274,19 +279,17 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "25px"; this.changeDiv28.nativeElement.style.fontSize = "25px"; this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if (this.sliderValue == 5) { + } else if (this.sliderValue == 5) { this.changeDiv.nativeElement.style.fontSize = "50px"; this.changeDiv1.nativeElement.style.fontSize = "50px"; this.changeDiv2.nativeElement.style.fontSize = "50px"; this.changeDiv3.nativeElement.style.fontSize = "50px"; this.changeDiv4.nativeElement.style.fontSize = "50px"; this.changeDiv5.nativeElement.style.fontSize = "50px"; - } } sliderFunction(e) { - // + // this.sliderValue = e.value; if (e.value == 1) { this.changeDiv.nativeElement.style.fontSize = "15px"; @@ -319,9 +322,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "15px"; this.changeDiv28.nativeElement.style.fontSize = "15px"; this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if (e.value == 2) { + } else if (e.value == 2) { this.changeDiv.nativeElement.style.fontSize = "20px"; this.changeDiv1.nativeElement.style.fontSize = "20px"; this.changeDiv2.nativeElement.style.fontSize = "20px"; @@ -352,8 +353,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "20px"; this.changeDiv28.nativeElement.style.fontSize = "20px"; this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if (e.value == 3) { + } else if (e.value == 3) { this.changeDiv.nativeElement.style.fontSize = "22px"; this.changeDiv1.nativeElement.style.fontSize = "22px"; this.changeDiv2.nativeElement.style.fontSize = "22px"; @@ -384,8 +384,7 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "22px"; this.changeDiv28.nativeElement.style.fontSize = "22px"; this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if (e.value == 4) { + } else if (e.value == 4) { this.changeDiv.nativeElement.style.fontSize = "25px"; this.changeDiv1.nativeElement.style.fontSize = "25px"; this.changeDiv2.nativeElement.style.fontSize = "25px"; @@ -416,85 +415,79 @@ export class GraphPageComponent implements OnInit { this.changeDiv27.nativeElement.style.fontSize = "25px"; this.changeDiv28.nativeElement.style.fontSize = "25px"; this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if (e.value == 5) { + } else if (e.value == 5) { this.changeDiv.nativeElement.style.fontSize = "50px"; this.changeDiv1.nativeElement.style.fontSize = "50px"; this.changeDiv2.nativeElement.style.fontSize = "50px"; this.changeDiv3.nativeElement.style.fontSize = "50px"; this.changeDiv4.nativeElement.style.fontSize = "50px"; this.changeDiv5.nativeElement.style.fontSize = "50px"; - } - } openScoreDialog(responseID, topic) { - - var questAns = {} - var scores = [] + var questAns = {}; + var scores = []; var arr = ["hello"]; const dialogRef = this.dialog.open(DialogFormComponent, { data: { animal: arr, - status: "score" + status: "score", }, - disableClose: true + disableClose: true, }); - dialogRef.afterClosed().subscribe(result => { - - }) + dialogRef.afterClosed().subscribe((result) => {}); } // this.chartOptionsInitial(this.dialog, categoryConcat, data, this.scoresCategory,this.scoreSeries,this.scorePK, this.scoreValues, this.scoreTopic, this.scoreType) - chartOptionsInitial(d,joinedCategory,data, category, score, scorePK, scoreValues, scoreTopic, scoreType){ + chartOptionsInitial(d, joinedCategory, data, category, score, scorePK, scoreValues, scoreTopic, scoreType) { this.chartOptions = { series: [ { name: "Cultural Proficiency", - data: data - } + data: data, + }, ], chart: { height: 350, type: "bar", events: { - dataPointSelection: function(event, chartContext, config) { - let i = config['selectedDataPoints'][0][0]; + dataPointSelection: function (event, chartContext, config) { + let i = config["selectedDataPoints"][0][0]; var arr = []; - arr.push(scoreTopic[i]) - arr.push(category[i][0]) - arr.push(data[i]) - arr.push(scoreValues[i]) - arr.push(scoreType[i]) - + arr.push(scoreTopic[i]); + arr.push(category[i][0]); + arr.push(data[i]); + arr.push(scoreValues[i]); + arr.push(scoreType[i]); + const dialogRef = d.open(DialogFormComponent, { data: { animal: arr, - status: "score" + status: "score", }, - disableClose: false + disableClose: false, }); - } - } + }, + }, }, plotOptions: { bar: { dataLabels: { - position: "top" // top, center, bottom - } - } + position: "top", // top, center, bottom + }, + }, }, dataLabels: { enabled: true, - formatter: function(val) { - return "Mean: " + val ; + formatter: function (val) { + return "Mean: " + val; }, offsetY: -20, style: { fontSize: "12px", - colors: ["#304758"] - } + colors: ["#304758"], + }, }, xaxis: { @@ -502,13 +495,13 @@ export class GraphPageComponent implements OnInit { // categories: ["jan","feb","jan"], position: "top", labels: { - offsetY: -18 + offsetY: -18, }, axisBorder: { - show: false + show: false, }, axisTicks: { - show: false + show: false, }, crosshairs: { fill: { @@ -518,14 +511,14 @@ export class GraphPageComponent implements OnInit { colorTo: "#BED1E6", stops: [0, 100], opacityFrom: 0.4, - opacityTo: 0.5 - } - } + opacityTo: 0.5, + }, + }, }, tooltip: { enabled: true, - offsetY: -35 - } + offsetY: -35, + }, }, fill: { type: "gradient", @@ -537,130 +530,116 @@ export class GraphPageComponent implements OnInit { inverseColors: true, opacityFrom: 1, opacityTo: 1, - stops: [50, 0, 100, 100] - } + stops: [50, 0, 100, 100], + }, }, yaxis: { axisBorder: { - show: false + show: false, }, axisTicks: { - show: false + show: false, }, labels: { show: false, - formatter: function(val) { - if(val<=1) - return val + ", Culturally Destructive"; - else if(val>1 && val<=2) - return val + ", Culturally Incapacitive"; - else if(val>2 && val<=3) - return val + ", Culturally Blind"; - else if(val>3 && val<=4) - return val + ", Culturally Pre-Competent"; - else if(val>4 && val<=5) - return val + ", Culturally Competent"; - else if(val>5 && val<=6) - return val + ", Culturally Proficient"; - else - return val + " " - } - } + formatter: function (val) { + if (val <= 1) return val + ", Culturally Destructive"; + else if (val > 1 && val <= 2) return val + ", Culturally Incapacitive"; + else if (val > 2 && val <= 3) return val + ", Culturally Blind"; + else if (val > 3 && val <= 4) return val + ", Culturally Pre-Competent"; + else if (val > 4 && val <= 5) return val + ", Culturally Competent"; + else if (val > 5 && val <= 6) return val + ", Culturally Proficient"; + else return val + " "; + }, + }, }, title: { text: "Scores for Each Vignette Answered", offsetY: 320, align: "center", style: { - color: "#444" - } - } + color: "#444", + }, + }, }; } + constructor( + private fb: UntypedFormBuilder, + private apiService: CPCQService, + private router: Router, + private formService: FirstForm, + private domSanitizer: DomSanitizer, + public dialog: MatDialog, + private loginService: LoginService + ) {} - constructor(private fb: FormBuilder, private apiService: CPCQService, private router: Router, private formService: FirstForm, private domSanitizer: DomSanitizer, public dialog: MatDialog, private loginService : Login) - { - } - - openDialog(i, j, id) { - - - - var questAns = {} - var scores = [] + var questAns = {}; + var scores = []; for (let key in this.scoreRes) { if (this.scoreRes[key]["topic"] == this.attributes[i]) { - questAns = this.scoreRes[key][this.columnHeadings[j]] - scores = this.scoreRes[key]['scores'][id] + questAns = this.scoreRes[key][this.columnHeadings[j]]; + scores = this.scoreRes[key]["scores"][id]; } } var arr = []; arr.push(this.attributes[i]); arr.push(j); - arr.push(this.columnHeadings[j]) - arr.push(id) - arr.push(questAns) - arr.push(scores) + arr.push(this.columnHeadings[j]); + arr.push(id); + arr.push(questAns); + arr.push(scores); const dialogRef = this.dialog.open(DialogFormComponent, { data: { animal: arr, - status: "form1" + status: "form1", }, - disableClose: true + disableClose: true, }); - dialogRef.afterClosed().subscribe(result => { - + dialogRef.afterClosed().subscribe((result) => { if (this.responsesArray[i][j][1] == "colorbold") { - this.unpackedCount = this.unpackedCount + 1 + this.unpackedCount = this.unpackedCount + 1; } - - }) + }); } openWordDialog(i) { - // + // this.buttonClick = true; const dialogRef = this.dialog.open(DialogFormComponent, { data: { animal: i, - status: "word" + status: "word", }, - disableClose: true + disableClose: true, }); - dialogRef.afterClosed().subscribe(result => { - + dialogRef.afterClosed().subscribe((result) => { this.wordDescription = result; - }) + }); } helpDialog(i) { - // + // this.dialog.open(DialogFormComponent, { data: { animal: i, - status: "help" - } + status: "help", + }, }); } keyPressFunc(e) { - - // + // var numbersList = ["1"]; for (let key in this.attitudeForm.value) { - - if (numbersList.indexOf(this.attitudeForm.value[key]) == -1) { - // + // return "Number"; } } - - } getEmailError() { @@ -669,17 +648,15 @@ export class GraphPageComponent implements OnInit { getResponses() { this.apiService.getResponsesData().subscribe((res) => { for (let key in res) { - this.temp = [] + this.temp = []; for (let key1 in res[key]) { - this.temp.push(res[key][key1]) + this.temp.push(res[key][key1]); } - this.responsesArray.push(this.temp) + this.responsesArray.push(this.temp); } - - }) + }); } - getForm() { var arr = []; var arr1 = []; @@ -690,258 +667,241 @@ export class GraphPageComponent implements OnInit { var policyResult = []; var profResult = []; var teachingResult = []; - this.finalList = [[]] - this.boldList = [[]] + this.finalList = [[]]; + this.boldList = [[]]; this.apiService.getFormData().subscribe((res) => { for (let key in res) { arr = []; if (res[key]["topic"] == "Attitude") { attitudeResult.push("Attitude"); arr.push("Attitude"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Empathy") { - empathyResult.push("Empathy") + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Empathy") { + empathyResult.push("Empathy"); arr.push("Empathy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Policy") { - policyResult.push("Policy") + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Policy") { + policyResult.push("Policy"); arr.push("Policy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Professionalism") { + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Professionalism") { profResult.push("Professionalism"); arr.push("Professionalism"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Teaching Practice") { + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Teaching Practice") { arr.push("Teaching Pracice"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); teachingResult.push("Teaching Practice"); - teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0) + teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); } this.boldList.push(arr); - } - this.finalList.push(attitudeResult) - this.finalList.push(empathyResult) - this.finalList.push(policyResult) - this.finalList.push(profResult) - this.finalList.push(teachingResult) - }) + this.finalList.push(attitudeResult); + this.finalList.push(empathyResult); + this.finalList.push(policyResult); + this.finalList.push(profResult); + this.finalList.push(teachingResult); + }); this.finalList.splice(0, 1); this.boldList.splice(0, 1); // this.getAllIndexes(this.finalList,1) - - - } emoji: any; changeEmojiSize(data) { - document.getElementById("angry").style.height = "30px" - document.getElementById("angry").style.width = "30px" - document.getElementById("sad").style.height = "30px" - document.getElementById("sad").style.width = "30px" - document.getElementById("neutral").style.height = "30px" - document.getElementById("neutral").style.width = "30px" - document.getElementById("smile").style.height = "30px" - document.getElementById("smile").style.width = "30px" - document.getElementById("heart").style.height = "30px" - document.getElementById("heart").style.width = "30px" - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" + document.getElementById("angry").style.height = "30px"; + document.getElementById("angry").style.width = "30px"; + document.getElementById("sad").style.height = "30px"; + document.getElementById("sad").style.width = "30px"; + document.getElementById("neutral").style.height = "30px"; + document.getElementById("neutral").style.width = "30px"; + document.getElementById("smile").style.height = "30px"; + document.getElementById("smile").style.width = "30px"; + document.getElementById("heart").style.height = "30px"; + document.getElementById("heart").style.width = "30px"; + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; this.emoji = data; } thumbs: any; changeThumbsSize(data) { - document.getElementById("thumbsup").style.height = "30px" - document.getElementById("thumbsup").style.width = "30px" - document.getElementById("thumbsdown").style.height = "30px" - document.getElementById("thumbsdown").style.width = "30px" + document.getElementById("thumbsup").style.height = "30px"; + document.getElementById("thumbsup").style.width = "30px"; + document.getElementById("thumbsdown").style.height = "30px"; + document.getElementById("thumbsdown").style.width = "30px"; - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; this.thumbs = data; } finalSubmit() { - this.finalFeedbackForm.value["q6"] = this.thumbs - this.finalFeedbackForm.value["q7"] = this.emoji - - this.endTime = new Date() + this.finalFeedbackForm.value["q6"] = this.thumbs; + this.finalFeedbackForm.value["q7"] = this.emoji; - this.durationTime = (this.endTime - this.startTime) / 1000 - this.durationTime = this.durationTime / 60 + this.endTime = new Date(); - this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe((res) => { - this.apiService.changeCPCQStatus().subscribe((res1) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if (res["isConfirmed"]) { - this.router.navigateByUrl("/result") - } - }) - - }) - }, (err) => { - - }) + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe( + (res) => { + this.apiService.changeCPCQStatus().subscribe((res1) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + this.router.navigateByUrl("/result"); + } + }); + }); + }, + (err) => {} + ); } - responsesArray = [] - temp = [] + responsesArray = []; + temp = []; scoreRes: any; scoresCategory: any; - scoreSeries:any; - scorePK:any; - scoreValues:any; - scoreType:any; - scoreTopic:any; - meanValue : any = 0; - meanNumber : any = 0; - postSurveyFlag :any ; + scoreSeries: any; + scorePK: any; + scoreValues: any; + scoreType: any; + scoreTopic: any; + meanValue: any = 0; + meanNumber: any = 0; + postSurveyFlag: any; ngOnInit(): void { - this.loginService.checkStatus().subscribe((res) => { - - this.postSurveyFlag = res[0]["postsurveystatus"]; - + // if(res[0]["postsurveystatus"]){ - // + // // this.postSurveyFlag = false; // } // else{ - // + // // this.postSurveyFlag = true // } - }) + }); this.apiService.getScoreVisualization().subscribe((res) => { - - this.scoresCategory = res["category"] - this.scoreSeries = res["series"] - this.scorePK = res["pk"] - this.scoreValues = res['scores'] - this.scoreTopic = res["topic"] - this.scoreType = res["type"] - var categoryConcat = [] - var data = [] + this.scoresCategory = res["category"]; + this.scoreSeries = res["series"]; + this.scorePK = res["pk"]; + this.scoreValues = res["scores"]; + this.scoreTopic = res["topic"]; + this.scoreType = res["type"]; + var categoryConcat = []; + var data = []; var temp = 0; - for(var i = 0; i<this.scoresCategory.length;i++){ - categoryConcat.push(res["topic"][i] + " " +this.scoresCategory[i] ) - data.push(this.scoreSeries[i]['data']) - temp = temp + this.scoreSeries[i]['data'] + for (var i = 0; i < this.scoresCategory.length; i++) { + categoryConcat.push(res["topic"][i] + " " + this.scoresCategory[i]); + data.push(this.scoreSeries[i]["data"]); + temp = temp + this.scoreSeries[i]["data"]; } - this.meanValue = temp /4.0; - this.meanNumber = temp/4.0; - if(this.meanValue >=0 && this.meanValue <= 1){ - if(this.meanValue ==1 ) - this.meanValue = this.columnHeadings1[0] - else - this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity" - + this.meanValue = temp / 4.0; + this.meanNumber = temp / 4.0; + if (this.meanValue >= 0 && this.meanValue <= 1) { + if (this.meanValue == 1) this.meanValue = this.columnHeadings1[0]; + else this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity"; } - if(this.meanValue >1 && this.meanValue <= 2){ - if(this.meanValue ==2 ) - this.meanValue = this.columnHeadings1[1] - else - this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness" - + if (this.meanValue > 1 && this.meanValue <= 2) { + if (this.meanValue == 2) this.meanValue = this.columnHeadings1[1]; + else this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness"; } - if(this.meanValue >2 && this.meanValue <= 3){ - if(this.meanValue ==3 ) - this.meanValue = this.columnHeadings1[2] - else - this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence" + if (this.meanValue > 2 && this.meanValue <= 3) { + if (this.meanValue == 3) this.meanValue = this.columnHeadings1[2]; + else this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence"; } - if(this.meanValue >3 && this.meanValue <= 4){ - if(this.meanValue ==4 ) - this.meanValue = this.columnHeadings1[3] - else - this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence" + if (this.meanValue > 3 && this.meanValue <= 4) { + if (this.meanValue == 4) this.meanValue = this.columnHeadings1[3]; + else this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence"; } - if(this.meanValue >4 && this.meanValue <= 5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings1[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" + if (this.meanValue > 4 && this.meanValue <= 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings1[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; } - if(this.meanValue >5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings1[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" + if (this.meanValue > 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings1[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; } - this.chartOptionsInitial(this.dialog, categoryConcat, data, this.scoresCategory,this.scoreSeries,this.scorePK, this.scoreValues, this.scoreTopic, this.scoreType) - }) + this.chartOptionsInitial( + this.dialog, + categoryConcat, + data, + this.scoresCategory, + this.scoreSeries, + this.scorePK, + this.scoreValues, + this.scoreTopic, + this.scoreType + ); + }); - this.startTime = new Date() + this.startTime = new Date(); this.finalFeedbackForm = this.fb.group({ q1: [""], q2: [""], @@ -950,72 +910,71 @@ export class GraphPageComponent implements OnInit { q5: [""], q6: [""], q7: [""], - }) + }); this.apiService.getResponsesData().subscribe((res) => { for (let key in res) { - this.temp = [] + this.temp = []; for (let key1 in res[key]) { - this.temp.push(res[key][key1]) + this.temp.push(res[key][key1]); } - this.responsesArray.push(this.temp) + this.responsesArray.push(this.temp); } - - }) - + }); this.apiService.getScoreInfo().subscribe((res) => { - this.scoreRes = res - + this.scoreRes = res; + for (let key in res) { for (let category in res[key]["scores"]["category"]) { - var firstIndex = this.attributes.indexOf(res[key]["topic"]) - - var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]) + var firstIndex = this.attributes.indexOf(res[key]["topic"]); + var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]); if (firstIndex != -1 && secondIndex != -1) { - this.responsesArray[firstIndex][secondIndex][1] = "Colored" + this.responsesArray[firstIndex][secondIndex][1] = "Colored"; } - } - } + }); - }) - - this.apiService.attitudeData().subscribe((res) => { - // - this.attitude = res[0]; - // - }, (err) => { - - }) - - this.apiService.empathyData().subscribe((res) => { - // - this.empathy = res[0]; - // - }, (err) => { - - }) - - this.apiService.policyData().subscribe((res) => { - this.policy = res[0]; - }, (err) => { - - }) - - this.apiService.professionalismData().subscribe((res) => { - this.professionalism = res[0]; - }, (err) => { + this.apiService.attitudeData().subscribe( + (res) => { + // + this.attitude = res[0]; + // + }, + (err) => {} + ); + + this.apiService.empathyData().subscribe( + (res) => { + // + this.empathy = res[0]; + // + }, + (err) => {} + ); - }) + this.apiService.policyData().subscribe( + (res) => { + this.policy = res[0]; + }, + (err) => {} + ); - this.apiService.teachingData().subscribe((res) => { - this.teachingPractice = res[0]; - }, (err) => { + this.apiService.professionalismData().subscribe( + (res) => { + this.professionalism = res[0]; + }, + (err) => {} + ); - }) + this.apiService.teachingData().subscribe( + (res) => { + this.teachingPractice = res[0]; + }, + (err) => {} + ); this.attitudeForm = this.fb.group({ A: ["", [Validators.minLength(1), Validators.maxLength(1)]], @@ -1024,9 +983,8 @@ export class GraphPageComponent implements OnInit { D: ["", [Validators.minLength(1), Validators.maxLength(1)]], E: ["", [Validators.minLength(1), Validators.maxLength(1)]], F: ["", [Validators.minLength(1), Validators.maxLength(1)]], - description: ["", [Validators.required]] - - }) + description: ["", [Validators.required]], + }); this.empathyForm = this.fb.group({ A: ["", [Validators.minLength(1), Validators.maxLength(1)]], @@ -1035,8 +993,7 @@ export class GraphPageComponent implements OnInit { D: ["", [Validators.minLength(1), Validators.maxLength(1)]], E: ["", [Validators.minLength(1), Validators.maxLength(1)]], F: ["", [Validators.minLength(1), Validators.maxLength(1)]], - - }) + }); this.policyForm = this.fb.group({ A: ["", [Validators.minLength(1), Validators.maxLength(1)]], @@ -1045,9 +1002,7 @@ export class GraphPageComponent implements OnInit { D: ["", [Validators.minLength(1), Validators.maxLength(1)]], E: ["", [Validators.minLength(1), Validators.maxLength(1)]], F: ["", [Validators.minLength(1), Validators.maxLength(1)]], - - }) - + }); var arr = []; var arr1 = []; @@ -1066,63 +1021,50 @@ export class GraphPageComponent implements OnInit { arr.push(this.rowLetters[j][i] + ". " + item1); arr1.push(item1); if (arr1[arr1.length - 1] > 2) { - // + // arr2.push("True"); - } - else { + } else { arr2.push("False"); } - } - else { + } else { arr.push(this.rowLetters[j][i] + ". " + item1); arr1.push(item1); if (i == 1) { if (arr1[arr1.length - 1] > 3) { arr2.push("True"); - } - else { + } else { arr2.push("False"); } - } - else if (i == 2) { + } else if (i == 2) { if (arr1[arr1.length - 1] > 4 || arr1[arr1.length - 1] == 1) { arr2.push("True"); - } - else { + } else { arr2.push("False"); } - } - else if (i == 3) { + } else if (i == 3) { if (arr1[arr1.length - 1] > 5 || arr1[arr1.length - 1] < 4) { arr2.push("True"); - } - else { + } else { arr2.push("False"); } - } - else if (i == 4) { + } else if (i == 4) { if (arr1[arr1.length - 1] < 4) { arr2.push("True"); - } - else { + } else { arr2.push("False"); } - } - else if (i == 5) { + } else if (i == 5) { if (arr1[arr1.length - 1] < 5) { arr2.push("True"); - } - else { + } else { arr2.push("False"); } } } i = i + 1; - } - else { + } else { continue; } - } this.formValues.push(arr); this.boldList.push(arr1); @@ -1131,8 +1073,6 @@ export class GraphPageComponent implements OnInit { this.boldList.splice(0, 1); this.randomList.splice(0, 1); - - this.getAllIndexes(this.randomList, "True"); this.loaded = true; } @@ -1145,7 +1085,7 @@ export class GraphPageComponent implements OnInit { if (arr[i][j] == "True") { var arr1 = []; arr1.push(i); - arr1.push(j) + arr1.push(j); indexes.push(arr1); } } @@ -1160,20 +1100,17 @@ export class GraphPageComponent implements OnInit { var j = 0; var count = 0; while (i--) { - if (count < 5) { j = Math.floor(Math.random() * (i + 1)); ranNums.push(arr1[j]); arr1.splice(j, 1); count = count + 1; - } - else { + } else { break; } } - - // + // for (var i = 0; i < this.boldList.length; i++) { var temp = []; for (var j = 0; j < 6; j++) { @@ -1182,14 +1119,12 @@ export class GraphPageComponent implements OnInit { this.finalList1.push(temp); } - for (var i = 0; i < ranNums.length; i++) { var item = indexes[ranNums[i]]; this.finalList1[item[0]][item[1]] = "True"; } // this.finalList1.splice(0,1) - } preSurvey() { this.router.navigateByUrl("/preSurvey"); @@ -1201,111 +1136,100 @@ export class GraphPageComponent implements OnInit { return; } if (this.selectedIndex == 7) { - this.router.navigateByUrl('/dashboard'); + this.router.navigateByUrl("/dashboard"); return; } var numberList = []; var flag = true; for (let key in this.attitudeForm.value) { - - if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { flag = false; Swal.fire({ text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); break; } if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { numberList.push(this.attitudeForm.value[key]); - } - else { + } else { flag = false; Swal.fire({ text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); break; } } if (!this.buttonClick) { flag = false; Swal.fire({ - text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); } if (flag) { - if (this.selectedIndex == 7) { this.router.navigateByUrl("/postSurvey"); } this.sliderFunction1(); - var formData = {} - formData['topic'] = this.attributes[this.selectedIndex - 1] + var formData = {}; + formData["topic"] = this.attributes[this.selectedIndex - 1]; if (this.attributes[this.selectedIndex - 1] == "Attitude") { - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalCompetence"] = "F. " + this.attitudeForm.value['F'] - formData["culturalProficiency"] = "E. " + this.attitudeForm.value['E'] - + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalCompetence"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalProficiency"] = "E. " + this.attitudeForm.value["E"]; + } else if (this.attributes[this.selectedIndex - 1] == "Empathy") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalProficiency"] = "C. " + this.attitudeForm.value["C"]; + } else if (this.attributes[this.selectedIndex - 1] == "Policy") { + formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalIncapacity"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalProficiency"] = "A. " + this.attitudeForm.value["A"]; + } else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; } - else if (this.attributes[this.selectedIndex - 1] == "Empathy") { - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "B. " + this.attitudeForm.value['B'] - formData["culturalProficiency"] = "C. " + this.attitudeForm.value['C'] - } - else if (this.attributes[this.selectedIndex - 1] == "Policy") { - formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalIncapacity"] = "E. " + this.attitudeForm.value['E'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalProficiency"] = "A. " + this.attitudeForm.value['A'] - } - else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - - this.endTime = new Date() - this.durationTime = (this.endTime - this.startTime) / 1000 - this.durationTime = this.durationTime / 60 + this.endTime = new Date(); - formData["description"] = this.wordDescription - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - }, (err) => { + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; - }) + formData["description"] = this.wordDescription; + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + }, + (err) => {} + ); // this.getForm(); this.selectedIndex = this.selectedIndex + 1; this.buttonClick = false; - this.startTime = new Date() + this.startTime = new Date(); this.attitudeForm = this.fb.group({ A: ["", [Validators.minLength(1), Validators.maxLength(1)]], B: ["", [Validators.minLength(1), Validators.maxLength(1)]], @@ -1313,9 +1237,8 @@ export class GraphPageComponent implements OnInit { D: ["", [Validators.minLength(1), Validators.maxLength(1)]], E: ["", [Validators.minLength(1), Validators.maxLength(1)]], F: ["", [Validators.minLength(1), Validators.maxLength(1)]], - }) + }); } - } postSurvey() { @@ -1324,29 +1247,26 @@ export class GraphPageComponent implements OnInit { submitForm1() { if (this.unpackedCount == 5) { - this.endTime = new Date() + this.endTime = new Date(); - this.durationTime = (this.endTime - this.startTime) / 1000 - this.durationTime = this.durationTime / 60 + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; Swal.fire({ text: "Submitted", - icon: "success" + icon: "success", }).then((res) => { if (res["isConfirmed"]) { // this.getForm() this.selectedIndex = this.selectedIndex + 1; } - }) - } - else { + }); + } else { Swal.fire({ text: "Please click on all the yellow boxes and answer the questions in the prompt.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); } - } submitForm() { @@ -1355,28 +1275,22 @@ export class GraphPageComponent implements OnInit { var flag = false; for (let key in this.attitudeForm.value) { - - if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")) { - - + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { flag = true; Swal.fire({ text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); break; } if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { numberList.push(this.attitudeForm.value[key]); - } - else { + } else { flag = true; Swal.fire({ text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); break; } } @@ -1384,83 +1298,81 @@ export class GraphPageComponent implements OnInit { flag = true; Swal.fire({ text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) + icon: "warning", + }).then((res) => {}); } if (!flag) { - - - // - var formData = {} - - formData['topic'] = this.attributes[this.selectedIndex - 1] - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - - formData["description"] = this.wordDescription - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime) / 1000 - this.durationTime = this.durationTime / 60 - - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if (res["isConfirmed"]) { - // this.getForm() - this.getResponses() - - this.selectedIndex = this.selectedIndex + 1; - this.startTime = new Date() - } - }) - }, (err) => { - - }) + // + var formData = {}; + + formData["topic"] = this.attributes[this.selectedIndex - 1]; + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + + formData["description"] = this.wordDescription; + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.getResponses(); + + this.selectedIndex = this.selectedIndex + 1; + this.startTime = new Date(); + } + }); + }, + (err) => {} + ); } - } } submit() { - // + // var tempDict; this.responseList = []; for (let key in this.firstForm.value) { - tempDict = {} - tempDict["question"] = key + tempDict = {}; + tempDict["question"] = key; tempDict["response"] = this.firstForm.value[key]; this.responseList.push(tempDict); } - // - - this.formService.submitResponse(this.responseList).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - }, (err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) + // + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); } - title = 'micRecorder'; + title = "micRecorder"; //Lets declare Record OBJ record; //Will use this flag for toggeling recording @@ -1472,19 +1384,21 @@ export class GraphPageComponent implements OnInit { return this.domSanitizer.bypassSecurityTrustUrl(url); } /** - * Start recording. - */ + * Start recording. + */ initiateRecording() { this.recording = true; let mediaConstraints = { video: false, - audio: true + audio: true, }; - navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); } /** - * Will be called automatically. - */ + * Will be called automatically. + */ successCallback(stream) { var options = { mimeType: "audio/wav", @@ -1497,28 +1411,25 @@ export class GraphPageComponent implements OnInit { this.record.record(); } /** - * Stop recording. - */ + * Stop recording. + */ stopRecording() { this.recording = false; this.record.stop(this.processRecording.bind(this)); } /** - * processRecording Do what ever you want with blob - * @param {any} blob Blog - */ + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ processRecording(blob) { this.url = URL.createObjectURL(blob); - // - // + // + // } /** - * Process Error. - */ + * Process Error. + */ errorCallback(error) { - this.error = 'Can not play audio in your browser'; + this.error = "Can not play audio in your browser"; } - - - } diff --git a/src/app/components/header/header.component.css b/src/app/components/header/header.component.css new file mode 100644 index 0000000000000000000000000000000000000000..3ce4f983988f6094f9a79313ebb66d8d7a8208a3 --- /dev/null +++ b/src/app/components/header/header.component.css @@ -0,0 +1,123 @@ +@media screen and (min-width: 1024px) { + .mat-toolbar { + background-color: white; + height: 70px; + z-index: -1; + box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); + } +} + +@media screen and (min-width: 992px) { + .mat-sidenav-container { + position: fixed; + width: 100%; + box-shadow: 6px 0 6px rgb(206, 206, 206); + } +} + +@media screen and (max-width: 1023px) { + .mat-toolbar { + background-color: white; + height: 70px; + z-index: -1; + box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); + } +} + +.sidenav { + width: 200px; + box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); + position: fixed; +} + +.hidden { + display: none; +} + +.textHeader { + margin-top: 15px; + margin-left: 5px; + /* color: #45087e; */ + color: #fcb913; + font-size: 22px; + font-weight: bold; + font-family: "Loto", sans-serif; +} + +img { + margin-top: 10px; + margin-bottom: 8px; + margin-left: 10px; + /* width: 60px; */ + height: 60px; +} + +.mat-toolbar a { + display: inline-block; + color: black; + text-decoration: none; + padding: 0 20px; + font-size: 16px; + font-family: "Lato", sans-serif; + cursor: pointer; + font-weight: bold; +} + +.mat-toolbar a:hover, +.mat-toolbar a:focus, +.mat-toolbar a:active { + display: inline-block; + color: white; + background-color: #29abe2; + padding: 0 20px; + border-radius: 5px; + text-decoration: none; + font-size: 16px; + font-family: "Lato", sans-serif; +} + +.menu { + text-decoration: none; + font-size: 16px; + font-family: "Lato", sans-serif; + color: black; +} + +.menu:hover, +.menu:focus, +.menu:active { + color: black; + text-decoration: none; + font-size: 16px; + font-family: "Lato", sans-serif; + border: none; + outline: none; + box-shadow: none; +} + +.mat-nav-list { + margin-top: 60px; +} + +.mat-nav-list a { + display: inline-block; + margin: 0 10px; + color: black; + text-decoration: none; + font-size: 15px; +} + +.mat-nav-list a:hover, +.mat-nav-list a:focus, +.mat-nav-list a:active { + display: inline-block; + margin: 0 10px; + font-weight: bold; + text-decoration: none; + font-size: 15px; +} +.profile { + width: 40px; + height: 40px; + border-radius: 20px; +} diff --git a/src/app/components/header/header.component.html b/src/app/components/header/header.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2a7cf420de04f559b76171e3ee735cd2f3b19f3a --- /dev/null +++ b/src/app/components/header/header.component.html @@ -0,0 +1,65 @@ +<mat-sidenav-container class="sidenav-container"> + <mat-sidenav + #drawer + class="sidenav" + fixedInViewport="false" + [attr.role]="((isHandset | async) || (isTablet | async)) && !(isMedium | async) ? 'dialog' : 'navigation'" + [mode]="((isHandset | async) || (isTablet | async)) && !(isMedium | async) ? 'over' : 'side'" + [opened]="(!(isHandset | async) && !(isTablet | async)) || (isMedium | async)" + [ngClass]="{ hidden: (isMedium | async) || (!(isHandset | async) && !(isTablet | async)) }" + > + <mat-toolbar class="matToolbar"> + <button type="button" class="menu-btn" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()"> + <mat-icon aria-label="Side nav toggle icon">close</mat-icon> + </button> + </mat-toolbar> + <mat-nav-list> + <a *ngIf="!currentUser" routerLink="/" mat-list-item>HOME</a> + <a *ngIf="currentUser" routerLink="/dashboard" mat-list-item>DASHBOARD</a> + <a routerLink="/about" mat-list-item>ABOUT US</a> + <a (click)="loginWithRedirect()" *ngIf="!currentUser" mat-list-item>LOGIN</a> + <a (click)="logout()" *ngIf="currentUser" mat-list-item>LOGOUT</a> + + <button + *ngIf="currentUser" + mat-icon-button + class="example-icon favorite-icon" + aria-label="Example icon-button with heart icon" + (click)="logout()" + > + <mat-icon style="color: white">logout</mat-icon> + </button> + </mat-nav-list> + </mat-sidenav> + <mat-sidenav-content> + <mat-toolbar class="matToolbar"> + <button + type="button" + class="menu-btn" + aria-label="Toggle sidenav" + mat-icon-button + (click)="drawer.toggle()" + *ngIf="((isHandset | async) || (isTablet | async)) && !(isMedium | async)" + > + <mat-icon aria-label="Side nav toggle icon">menu</mat-icon> + </button> + <span><img src="../../assets/vcu.png" /></span> + <span class="spacer"></span> + <div + *ngIf="(!(isHandset | async) && !(isTablet | async)) || (isMedium | async)" + style="margin-right: 10px; margin-left: auto" + > + <a *ngIf="!currentUser" routerLink="/" id="home" (click)="activate('home')">HOME</a> + <a *ngIf="currentUser" routerLink="/dashboard" id="dashboard" (click)="activate('dashboard')">DASHBOARD</a> + <a routerLink="/about" id="about" (click)="activate('about')">ABOUT US</a> + <a (click)="loginWithRedirect()" id="login" *ngIf="!currentUser" (click)="activate('login')">LOGIN</a> + <a (click)="logout()" id="logout" *ngIf="currentUser" (click)="activate('login')">LOGOUT</a> + + <a *ngIf="currentUser"> + <img class="profile" src="{{ currentUser.picture }}" /> + </a> + </div> + </mat-toolbar> + <ng-content></ng-content> + </mat-sidenav-content> +</mat-sidenav-container> diff --git a/src/app/header/header.component.spec.ts b/src/app/components/header/header.component.spec.ts similarity index 52% rename from src/app/header/header.component.spec.ts rename to src/app/components/header/header.component.spec.ts index 2d0479d7d071a5e6d19a74d195ff34b2edeb5616..42c7a1fa01a3523a0b2a54218b8fc15884873cbb 100644 --- a/src/app/header/header.component.spec.ts +++ b/src/app/components/header/header.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { HeaderComponent } from './header.component'; +import { HeaderComponent } from "./header.component"; -describe('HeaderComponent', () => { +describe("HeaderComponent", () => { let component: HeaderComponent; let fixture: ComponentFixture<HeaderComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ HeaderComponent ] - }) - .compileComponents(); + declarations: [HeaderComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('HeaderComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/header/header.component.ts b/src/app/components/header/header.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..7272b3e2e8ceb3bbcc6a4cf537be35d87efa6ba8 --- /dev/null +++ b/src/app/components/header/header.component.ts @@ -0,0 +1,70 @@ +import { BreakpointObserver, Breakpoints } from "@angular/cdk/layout"; +import { DOCUMENT } from "@angular/common"; +import { Component, Inject, OnInit } from "@angular/core"; +import { User } from "@auth0/auth0-angular"; +import { Observable } from "rxjs"; +import { map, shareReplay } from "rxjs/operators"; +import { LoginService } from "src/app/services/login.service"; + +@Component({ + selector: "app-header", + templateUrl: "./header.component.html", + styleUrls: ["./header.component.css"], +}) +export class HeaderComponent implements OnInit { + currentUser: User; + isHandset: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset).pipe( + map((result) => result.matches), + shareReplay() + ); + + isTablet: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Tablet).pipe( + map((result) => result.matches), + shareReplay() + ); + + isMedium: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Medium).pipe( + map((result) => result.matches), + shareReplay() + ); + + constructor( + @Inject(DOCUMENT) public document: Document, + private breakpointObserver: BreakpointObserver, + private loginService: LoginService + ) {} + + ngOnInit(): void { + this.loginService.getCurrentUser().subscribe((user) => { + this.currentUser = user; + }); + this.loginService.getTestUsers().subscribe( + (res) => { + console.log("we got resonse", res); + }, + (error) => { + console.log("we got error", error); + } + ); + } + + loginWithRedirect() { + this.loginService.loginWithRedirect(); + } + + logout() { + this.loginService.logout(); + } + + activate(e: string) { + if (!e) { + return; + } + (<HTMLInputElement>document.getElementById("home")).style.backgroundColor = "none"; + (<HTMLInputElement>document.getElementById("dashboard")).style.backgroundColor = "none"; + (<HTMLInputElement>document.getElementById("about")).style.backgroundColor = "none"; + (<HTMLInputElement>document.getElementById("login")).style.backgroundColor = "none"; + (<HTMLInputElement>document.getElementById("logout")).style.backgroundColor = "none"; + (<HTMLInputElement>document.getElementById(e)).style.backgroundColor = "#face70"; + } +} diff --git a/src/app/components/home-page/home-page.component.css b/src/app/components/home-page/home-page.component.css new file mode 100644 index 0000000000000000000000000000000000000000..c7147945512a8c9802dce8ad01c859418eb77885 --- /dev/null +++ b/src/app/components/home-page/home-page.component.css @@ -0,0 +1,485 @@ +h1 { + font-size: 40px; + padding-bottom: 40px; +} + +.example-card { + width: 60%; + text-align: center; + margin-left: 20%; +} + +.sectionClass { + background-color: #fff1e6; +} + +.example-card1 { + width: 100%; + text-align: center; + margin-top: 100px; +} + +.text-label { + font-size: 20px; + /* font-family: Arial, Helvetica, sans-serif; */ + font-family: "Loto", sans-serif; + font-weight: 300; + padding-right: 10px; + margin-right: 20%; +} + +.btn-custom { + background-color: #00b4d8; + width: 30%; + font-size: 20px; +} + +.matcard-Div { + padding-top: 10%; +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +ul { + display: block; + list-style-type: disc; + margin-block-start: 1em; + margin-block-end: 1em; + margin-inline-start: 0px; + margin-inline-end: 0px; + padding-inline-start: 40px; +} + +li { + font-size: 30px; +} + +@media screen and (min-width: 992px) { + .home-wrap { + padding-top: 70px; + } +} + +.home-wrap { + padding-bottom: 200px; +} + +.home { + background-color: white; +} + +.buttons { + display: inline-block; +} + +@media screen and (min-width: 1024px) { + .overlay { + padding: 60px !important; + text-align: center; + } + .intro { + margin-top: 130px; + font-family: "Lato", sans-serif; + color: #283618; + font-size: 50px; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin-bottom: 0 !important; + } + .tag { + font-family: "Lato", sans-serif; + color: #3c096c; + font-size: 20px; + font-style: italic; + margin-top: 20px; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin-bottom: 0 !important; + } + .btn { + color: white; + font-family: "Lato", sans-serif; + padding: 10px; + border-radius: 5px; + /* width: 200px; */ + font-size: 20px; + margin-top: 30px; + margin-right: 10px; + margin-left: 10px; + } + .slides { + margin-top: 80px; + width: 100%; + height: 500px; + } +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +.mat-tab-group { + position: sticky; +} + +@media screen and (max-width: 1023px) and (min-width: 480px) { + .overlay { + padding: 20px 20px 60px 20px !important; + text-align: center; + } + .intro { + font-weight: bold; + font-family: "Lato", sans-serif; + font-size: 50px; + padding: 10px; + color: #3c096c; + margin: 0 !important; + } + .tag { + font-family: "Lato", sans-serif; + color: #3c096c; + font-size: 16px; + font-style: italic; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin: 0 !important; + } + .slides { + width: 100%; + height: 400px; + overflow: hidden; + } + .btn { + background-color: black; + color: white; + font-family: "Lato", sans-serif; + padding: 2px; + /* width: 200px; */ + border-radius: 5px; + margin-top: 30px; + margin-right: 10px; + } +} + +@media screen and (max-width: 479px) { + .overlay { + padding: 20px 20px 60px 20px !important; + text-align: center; + } + .intro { + font-weight: bold; + font-family: "Lato", sans-serif; + font-size: 30px; + padding: 10px; + color: #3c096c; + margin: 0 !important; + } + .tag { + font-family: "Lato", sans-serif; + color: #3c096c; + font-size: 18px; + font-style: italic; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin: 0 !important; + } + .slides { + width: 100%; + height: 400px; + overflow: hidden; + } + .btn { + color: white; + font-family: "Lato", sans-serif; + padding: 2px; + /* width: 200px; */ + border-radius: 5px; + margin-top: 10px; + } +} + +.row { + margin: 0 !important; + padding: 0 !important; +} + +.col-lg-6 { + padding: 0 !important; +} + +.test { + background-color: black; +} + +.test h2 { + color: white; + font-family: "Lato", sans-serif; + margin: 0 !important; + padding: 30px 20px; + text-align: center; + font-size: 18px; +} + +.test-btn { + cursor: pointer; +} + +.test-btn:hover, +.test-btn:focus { + outline: none; + box-shadow: none; +} + +.content-div { + padding: 40px; +} + +.vision { + background-color: #3c096c; +} + +.mission { + background-color: #00ab96; +} + +.content { + background-color: #f5f5f6; +} + +h1 { + padding-top: 40px; + text-align: center; + font-size: 40px; + color: white; + font-family: "Lato", sans-serif; + text-align: center; +} + +p { + margin-top: 40px; + margin-bottom: 40px; + text-align: center; + color: white; + font-family: "Lato", sans-serif; + text-align: center; + font-size: 16px; + line-height: 150%; +} + +.content h1, +.about h1 { + color: rgb(65, 64, 64); + font-size: 35px; + line-height: 150%; +} + +.content p { + color: rgb(65, 64, 64); +} + +.btn:hover, +.btn:focus { + background-color: #f5f5f6 !important; + color: black; + outline: none; + box-shadow: none; +} + +.about { + margin: 40px; + text-align: center; +} + +.detail { + margin-top: 40px !important; +} + +.blog, +.feedback, +.video { + margin-top: 80px; + position: sticky; +} + +@media screen and (min-width: 1024px) { + .blog-img { + width: 80%; + height: 450px; + box-shadow: 10px 11px 46px 0px rgba(15, 8, 49, 0.2); + } +} + +@media screen and (max-width: 1023px) { + .blog-img { + width: 100%; + height: 380px; + box-shadow: 10px 11px 46px 0px rgba(15, 8, 49, 0.2); + } +} + +@media screen and (max-width: 967px) { + .blog-content { + margin-top: 50px; + } +} + +.blog-content h2 { + font-size: 30px; + color: black; + font-family: "Lato", sans-serif; + font-weight: bold; + line-height: 150%; +} + +.blog-content h5 { + font-size: 20px; + font-family: "Lato", sans-serif; + color: rgb(190, 190, 190); +} + +.blog-content p { + height: 210px; + font-family: "Lato", sans-serif; + text-align: left; + margin-top: 20px; + line-height: 150%; + font-size: 16px; + overflow: hidden; + color: rgb(59, 59, 59); +} + +.blog-btn { + background-color: #00ab96; + color: white; + font-family: "Lato", sans-serif; + margin-top: 30px; + font-size: 15px; +} + +.blog-btn:hover, +.blog-btn:focus { + outline: none; + box-shadow: 4px 4px 8px rgba(202, 199, 199, 0.2); + transform: scale(1.1); +} + +.feedback { + background-color: #f5f5f6; + position: sticky; +} + +.feedback h1 { + padding-top: 60px; + padding-bottom: 40px; + color: rgb(65, 64, 64); + margin-bottom: 0 !important; + font-family: "Lato", sans-serif; + font-size: 36px; +} + +.feedback p { + font-size: 22px; + text-align: center; + font-style: italic; + color: #3c096c; + padding-bottom: 30px; + font-family: "Lato", sans-serif; +} + +::ng-deep .feedback .carousel-control-next-icon, +::ng-deep .feedback .carousel-control-prev-icon { + display: none !important; +} + +.video { + margin-top: 80px; + margin-bottom: 40px; +} + +.video-content h2 { + margin-top: 30px; + font-size: 30px; + line-height: 150%; + color: black; + font-family: "Lato", sans-serif; +} + +.video-content p { + font-family: "Lato", sans-serif; + text-align: left; + margin-top: 20px; + line-height: 150%; + font-size: 16px; + overflow: hidden; + color: rgb(59, 59, 59); +} + +.collaborations { + margin-top: 60px; + padding-right: 70px; + position: sticky; +} + +.collaborations h1 { + font-family: "Lato", sans-serif; + color: #3c096c; + font-size: 35px; + /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ + margin-bottom: 0 !important; +} + +.collaborations .mat-card { + text-align: center; + margin: 20px; + padding: 30px; +} + +.collaborations img { + display: inline-block; +} + +@media screen and (min-width: 1024px) { + .contact-wrap { + margin-top: 10px; + margin-bottom: 50px; + background-color: #f0efeb; + } +} + +.outer-div { + text-align: center; +} + +.buttons { + margin-top: 10px !important; + text-align: center; + margin-bottom: 10px !important; +} + +.mat-input-element { + margin-top: 15px; +} + +::ng-deep .contact-wrap .mat-form-field { + background-color: #ffffff; + border-radius: 50px; + color: black; + box-shadow: 3px 5px 5px 0px rgba(98, 96, 107, 0.2); + margin-bottom: 30px; +} + +.textAreaClass { + border-radius: 10px; +} + +::ng-deep .contact-wrap .mat-form-field-infix { + padding: 0 !important; + border: none !important; + box-shadow: black; +} diff --git a/src/app/components/home-page/home-page.component.html b/src/app/components/home-page/home-page.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2c9621a36f7b64b7e63fc3b75fd05d0025a23554 --- /dev/null +++ b/src/app/components/home-page/home-page.component.html @@ -0,0 +1,25 @@ +<div class="home-wrap"> + <div class="row home"> + <div class="overlay col-lg-7"> + <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> + <p class="tag"> + An exploration of culturally proficient behaviors and interactions that take place within U.S. PreK-12 schools + and classrooms. + </p> + <div class="row buttons"> + <a routerLink="/login" + ><button mat-raised-button class="btn" style="background-color: #29abe2">Login to Begin Protocol</button></a + > + </div> + </div> + <div class="slideshow col-lg-5"> + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab> <img class="slides" src="../../assets/image1.jpeg" /></mat-tab> + <mat-tab><img class="slides" src="../../assets/image3.jpeg" /></mat-tab> + <mat-tab><img class="slides" src="../../assets/image4.jpeg" /></mat-tab> + <mat-tab><img class="slides" src="../../assets/image5.jpeg" /></mat-tab> + </mat-tab-group> + </div> + </div> +</div> +<app-footer></app-footer> diff --git a/src/app/home-page/home-page.component.spec.ts b/src/app/components/home-page/home-page.component.spec.ts similarity index 52% rename from src/app/home-page/home-page.component.spec.ts rename to src/app/components/home-page/home-page.component.spec.ts index e1803322c202e2507b561689292ee8a3b326ef93..e917de5c821ebc2539f9e7976ea6ac370996df07 100644 --- a/src/app/home-page/home-page.component.spec.ts +++ b/src/app/components/home-page/home-page.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { HomePageComponent } from './home-page.component'; +import { HomePageComponent } from "./home-page.component"; -describe('HomePageComponent', () => { +describe("HomePageComponent", () => { let component: HomePageComponent; let fixture: ComponentFixture<HomePageComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ HomePageComponent ] - }) - .compileComponents(); + declarations: [HomePageComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('HomePageComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/home-page/home-page.component.ts b/src/app/components/home-page/home-page.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..e3450f8146c8ef850783be62458ceaca5be11f16 --- /dev/null +++ b/src/app/components/home-page/home-page.component.ts @@ -0,0 +1,24 @@ +import { Component, OnInit } from "@angular/core"; + +@Component({ + selector: "app-home-page", + templateUrl: "./home-page.component.html", + styleUrls: ["./home-page.component.css"], +}) +export class HomePageComponent implements OnInit { + selectedIndex = 0; + id: any; + constructor() {} + + changeCount() { + this.selectedIndex = this.selectedIndex + 1; + if (this.selectedIndex > 4) { + this.selectedIndex = 0; + } + } + ngOnInit(): void { + this.id = setInterval(() => { + this.changeCount(); + }, 3000); + } +} diff --git a/src/app/main-game/dialog/dialog.component.css b/src/app/components/main-game/dialog/dialog.component.css similarity index 100% rename from src/app/main-game/dialog/dialog.component.css rename to src/app/components/main-game/dialog/dialog.component.css diff --git a/src/app/components/main-game/dialog/dialog.component.html b/src/app/components/main-game/dialog/dialog.component.html new file mode 100644 index 0000000000000000000000000000000000000000..eb42d30790586e509108a0c9a678fe33b4215627 --- /dev/null +++ b/src/app/components/main-game/dialog/dialog.component.html @@ -0,0 +1,9 @@ +<h1 mat-dialog-title>Favorite Animal</h1> +<div mat-dialog-content> + My favorite animal is: + <ul> + <li><span *ngIf="data.animal === 'panda'">✓</span> Panda</li> + <li><span *ngIf="data.animal === 'unicorn'">✓</span> Unicorn</li> + <li><span *ngIf="data.animal === 'lion'">✓</span> Lion</li> + </ul> +</div> diff --git a/src/app/main-game/dialog/dialog.component.spec.ts b/src/app/components/main-game/dialog/dialog.component.spec.ts similarity index 52% rename from src/app/main-game/dialog/dialog.component.spec.ts rename to src/app/components/main-game/dialog/dialog.component.spec.ts index a6bce8db36a97126f1386926d54d238bdfa0b7a3..f2e49924e8b34971fa0aa0015e977926c5082a0f 100644 --- a/src/app/main-game/dialog/dialog.component.spec.ts +++ b/src/app/components/main-game/dialog/dialog.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { DialogComponent } from './dialog.component'; +import { DialogComponent } from "./dialog.component"; -describe('DialogComponent', () => { +describe("DialogComponent", () => { let component: DialogComponent; let fixture: ComponentFixture<DialogComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ DialogComponent ] - }) - .compileComponents(); + declarations: [DialogComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('DialogComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/main-game/dialog/dialog.component.ts b/src/app/components/main-game/dialog/dialog.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..4c960392436893fcdab8e5f5e673a4a010fd1dfa --- /dev/null +++ b/src/app/components/main-game/dialog/dialog.component.ts @@ -0,0 +1,16 @@ +import { Component, OnInit, Inject } from "@angular/core"; +import { MatDialog, MAT_DIALOG_DATA } from "@angular/material/dialog"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; +} +@Component({ + selector: "app-dialog", + templateUrl: "./dialog.component.html", + styleUrls: ["./dialog.component.css"], +}) +export class DialogComponent implements OnInit { + constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) {} + + ngOnInit(): void {} +} diff --git a/src/app/components/main-game/main-game.component.css b/src/app/components/main-game/main-game.component.css new file mode 100644 index 0000000000000000000000000000000000000000..3f2b17dd919ac711c2dffec1c31cd29716cbfc5f --- /dev/null +++ b/src/app/components/main-game/main-game.component.css @@ -0,0 +1,104 @@ +.home-wrap { + /* background: linear-gradient(to bottom left, rgb(173, 178, 255), #d6f9ff); */ + background-color: green; + width: 100%; + height: 100%; + left: 0; + z-index: 1000; + overflow: auto; + text-align: center; + padding: 20px; + position: absolute; +} + +.example-card { + max-width: 300px; + position: absolute; + top: 50%; + left: 50%; + margin-right: -50%; + transform: translate(-50%, -50%); +} + +p { + font-size: 1rem; + text-align: left; +} + +h3 { + text-align: left; +} + +.dealerRow { + top: 50px; + left: 10px; + z-index: 1; +} + +.firstRow { + /* width: 200px; */ + /* height: 200px; */ + /* position: relative; */ + top: 10px; + left: 0px; + z-index: 1; +} + +.secondRow { + /* width: 200px; + height: 200px; */ + position: absolute; + top: 420px; + left: 40px; + z-index: 2; +} + +.thirdRow { + /* width: 200px; + height: 200px; */ + position: absolute; + top: 480px; + left: 60px; + z-index: 2; +} + +.deck { + float: right; + top: 50px; +} + +.mat-card { + background-color: #edf6f9; +} + +section { + display: table; +} + +.example-label { + display: table-cell; + font-size: 14px; + margin-left: 8px; + min-width: 120px; +} + +.example-button-row { + display: table-cell; + width: 490px; +} + +.example-button-row .mat-button-base { + margin: 8px 8px 8px 0; +} + +.example-flex-container { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.example-button-container { + display: flex; + justify-content: center; + width: 120px; +} diff --git a/src/app/components/main-game/main-game.component.html b/src/app/components/main-game/main-game.component.html new file mode 100644 index 0000000000000000000000000000000000000000..ca5f7564df2951b34c1429bf0b8e2784e0f52efc --- /dev/null +++ b/src/app/components/main-game/main-game.component.html @@ -0,0 +1,58 @@ +<!-- <app-header></app-header> --> + +<div class="home-wrap"> + <div class="row"> + <div class="row col-2 dealerRow"> + <div class="col-1" *ngFor="let card of dealer[0]"> + <img [src]="card" /> + </div> + </div> + <div class="col-2"></div> + <div class="col-4" style="margin-top: 50px"> + <mat-card class="example-card"> + <mat-card-content> + <h3>Your Game Scores</h3> + <countdown [config]="{ leftTime: timeForTotalGame }" (event)="totalTimeEvent($event)"></countdown> + <p>Attempt Number : 3</p> + <p>Total wins : 2</p> + <p>Winning percentage : 55%</p> + <p>Performance goal : 21</p> + <p>Score of bust : 21</p> + <!-- <button mat-button (click)="openDialog()"> Click</button> --> + </mat-card-content> + </mat-card> + </div> + <div class="col-2"></div> + + <div class="col-2 deck"> + <div> + <img src="../../assets/cards/BACKY.png" style="margin-right: 20px" /> + </div> + <div class="row" style="margin-top: 10px"> + <div class="col-6"> + <button mat-raised-button style="background-color: #fae1dd">STAND</button> + </div> + <div class="col-6"> + <button mat-raised-button style="background-color: #fae1dd" (click)="addCard()">HIT</button> + </div> + </div> + </div> + </div> + + <div class="row col-10 firstRow"> + <div class="col-1" *ngFor="let card of player[0]"> + <img [src]="card" /> + </div> + </div> + + <div class="row col-10 secondRow" *ngIf="totalCardsofPlayer > 10"> + <div class="col-1" *ngFor="let card of player[1]"> + <img [src]="card" /> + </div> + </div> + <div class="row col-10 thirdRow" *ngIf="totalCardsofPlayer > 20"> + <div class="col-1" *ngFor="let card of player[2]"> + <img [src]="card" /> + </div> + </div> +</div> diff --git a/src/app/main-game/main-game.component.spec.ts b/src/app/components/main-game/main-game.component.spec.ts similarity index 52% rename from src/app/main-game/main-game.component.spec.ts rename to src/app/components/main-game/main-game.component.spec.ts index f9562198d020c87c272773583d2d19d69d5329fa..bd75cb1b425dc844e78861d4d596e15163ad825c 100644 --- a/src/app/main-game/main-game.component.spec.ts +++ b/src/app/components/main-game/main-game.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { MainGameComponent } from './main-game.component'; +import { MainGameComponent } from "./main-game.component"; -describe('MainGameComponent', () => { +describe("MainGameComponent", () => { let component: MainGameComponent; let fixture: ComponentFixture<MainGameComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ MainGameComponent ] - }) - .compileComponents(); + declarations: [MainGameComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('MainGameComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/main-game/main-game.component.ts b/src/app/components/main-game/main-game.component.ts similarity index 53% rename from src/app/main-game/main-game.component.ts rename to src/app/components/main-game/main-game.component.ts index 86b0e96e592013ed0801e08d3170e133b2278094..76fc7181814dca62e9c137a9ef3f702b0db743a0 100644 --- a/src/app/main-game/main-game.component.ts +++ b/src/app/components/main-game/main-game.component.ts @@ -1,18 +1,18 @@ -import { Component, OnInit, ViewEncapsulation } from '@angular/core'; -import Swal from 'sweetalert2'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import { DialogComponent } from './dialog/dialog.component'; -import { MainGame } from "../../services/mainGame.service"; +import { Component, OnInit, ViewEncapsulation } from "@angular/core"; +import { MatDialog } from "@angular/material/dialog"; +import { MainGame } from "src/app/services/mainGame.service"; +import Swal from "sweetalert2"; +import { DialogComponent } from "./dialog/dialog.component"; @Component({ - selector: 'app-main-game', - templateUrl: './main-game.component.html', - styleUrls: ['./main-game.component.css'], - encapsulation: ViewEncapsulation.None + selector: "app-main-game", + templateUrl: "./main-game.component.html", + styleUrls: ["./main-game.component.css"], + encapsulation: ViewEncapsulation.None, }) export class MainGameComponent implements OnInit { - firstLetter = ["2","3","4","5","6","7","8","9","10","A","J","K","Q"]; - lastLetter = ["C","D","H","S"]; - player = [[],[],[]]; + firstLetter = ["2", "3", "4", "5", "6", "7", "8", "9", "10", "A", "J", "K", "Q"]; + lastLetter = ["C", "D", "H", "S"]; + player = [[], [], []]; dealer = [[]]; totalCardsofPlayer; handGoal = 21; @@ -26,74 +26,66 @@ export class MainGameComponent implements OnInit { valueOfAce = 1; scoreObtainedPlayer = 0; scoreObtainedDealer = 0; - constructor(private dialog:MatDialog,private gameService : MainGame) { } + constructor(private dialog: MatDialog, private gameService: MainGame) {} ngOnInit(): void { - - // this.gameService.mainGame({"exID" : "EC-001"}).subscribe((res) => { - // - // },(err) =>{ - // - // }) - - for(var i = 0; i <this.numberOfCardsStartingDealer;i++){ + for (var i = 0; i < this.numberOfCardsStartingDealer; i++) { var item1 = this.firstLetter[Math.floor(Math.random() * this.firstLetter.length)]; var item2 = this.lastLetter[Math.floor(Math.random() * this.lastLetter.length)]; var finalString = "../../assets/cards/" + item1 + item2 + ".png"; this.dealer[0].push(finalString); } this.dealer[0].push("../../assets/cards/BLANK.png"); - for(var i = 0; i <this.numberOfCardsStartingPlayer;i++){ + for (var i = 0; i < this.numberOfCardsStartingPlayer; i++) { var item1 = this.firstLetter[Math.floor(Math.random() * this.firstLetter.length)]; var item2 = this.lastLetter[Math.floor(Math.random() * this.lastLetter.length)]; var finalString = "../../assets/cards/" + item1 + item2 + ".png"; this.player[0].push(finalString); } - this.totalCardsofPlayer = 2 - - + this.totalCardsofPlayer = 2; } - openDialog(){ + openDialog() { this.dialog.open(DialogComponent, { data: { - animal: 'panda' - } + animal: "panda", + }, }); } - addCard(){ + addCard() { var item1 = this.firstLetter[Math.floor(Math.random() * this.firstLetter.length)]; var item2 = this.lastLetter[Math.floor(Math.random() * this.lastLetter.length)]; var finalString = "../../assets/cards/" + item1 + item2 + ".png"; - if(this.totalCardsofPlayer <10 && this.totalCardsofPlayer < this.limitOfCards){ + if (this.totalCardsofPlayer < 10 && this.totalCardsofPlayer < this.limitOfCards) { this.player[0].push(finalString); this.totalCardsofPlayer = this.totalCardsofPlayer + 1; - } - else if(this.totalCardsofPlayer >= 10 && this.totalCardsofPlayer <20 && this.totalCardsofPlayer < this.limitOfCards){ + } else if ( + this.totalCardsofPlayer >= 10 && + this.totalCardsofPlayer < 20 && + this.totalCardsofPlayer < this.limitOfCards + ) { this.player[1].push(finalString); this.totalCardsofPlayer = this.totalCardsofPlayer + 1; - } - else if(this.totalCardsofPlayer >= 20 && this.totalCardsofPlayer <this.limitOfCards && this.totalCardsofPlayer < this.limitOfCards ){ + } else if ( + this.totalCardsofPlayer >= 20 && + this.totalCardsofPlayer < this.limitOfCards && + this.totalCardsofPlayer < this.limitOfCards + ) { this.player[2].push(finalString); this.totalCardsofPlayer = this.totalCardsofPlayer + 1; } } - totalTimeEvent(event){ - - if(event["action"] == "done"){ + totalTimeEvent(event) { + if (event["action"] == "done") { Swal.fire({ text: "You have used up all the time alloted!!", - icon: 'warning', + icon: "warning", showCancelButton: false, - confirmButtonText: 'Okay', - confirmButtonColor: 'red' - }).then(result => { - }) - + confirmButtonText: "Okay", + confirmButtonColor: "red", + }).then((result) => {}); } - } - } diff --git a/src/app/components/post-survey/post-survey.component.css b/src/app/components/post-survey/post-survey.component.css new file mode 100644 index 0000000000000000000000000000000000000000..0395881e2b60326b73d452e9882001288d89f56e --- /dev/null +++ b/src/app/components/post-survey/post-survey.component.css @@ -0,0 +1,62 @@ +@media screen and (min-width: 1024px) { + .form-wrap { + padding-top: 70px; + } +} + +.example-radio-group { + display: flex; + flex-direction: column; + margin: 15px 0; +} + +h4 { + font-size: 20px; + line-height: 150%; + font-weight: bold; +} + +p { + font-size: 18px; + line-height: 150%; +} + +.mat-card { + margin: 20px 60px; + padding: 0; +} + +h1 { + background-color: #efe9ae; + color: black; + line-height: 150%; + text-align: center; + padding: 10px 0; +} + +.questions { + padding: 20px; +} + +.sign1 { + border: 1px solid black; + margin: 20px 5px !important; +} + +.buttons { + margin-bottom: 50px; + text-align: center; +} + +.btn { + width: 200px; + background-color: #00b4d8; + color: white; + display: inline-block; + padding: 10px; + margin-bottom: 20px; +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} diff --git a/src/app/components/post-survey/post-survey.component.html b/src/app/components/post-survey/post-survey.component.html new file mode 100644 index 0000000000000000000000000000000000000000..0817e232b8135be59f9dfd5fefc14f59660f511a --- /dev/null +++ b/src/app/components/post-survey/post-survey.component.html @@ -0,0 +1,308 @@ +<div class="form-wrap"> + <mat-card class=""> + <div> + <h1>Cultural Proficiency Continuum Dialogic Protocol: Post-Survey</h1> + <div [formGroup]="postSurveyForm" class="questions"> + <h4 *ngIf="!consentFlag"> + Your responses are confidential and will not be used for research or published without your informed and + signed consent. + <span + ><p style="font-weight: 400; color: blue" (click)="irbFunction()"> + Click here to review the + <span style="font-style: italic">Research Participant Information and Consent Form.</span> + </p></span + > + </h4> + + <h4 *ngIf="consentFlag"></h4> + <br /> + + <table class="table"> + <thead style="text-align: center"> + <tr> + <th></th> + <div class="row"> + <th class="col-2">Strongly Agree</th> + <th class="col-2">Agree</th> + <th class="col-3"> + Neither Agree<br /> + nor disagree + </th> + <th class="col-3">Disagree</th> + <th class="col-2">Strongly Disagree</th> + </div> + </tr> + </thead> + <tbody> + <tr> + <td> + {{ formQuestion["question1"][0] }} + <span style="font-weight: bold">gender inequality.</span> + </td> + <mat-radio-group formControlName="q1"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td>{{ formQuestion["question2"][0] }} <span style="font-weight: bold">LGBTQA+.</span></td> + <mat-radio-group formControlName="q2"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td>{{ formQuestion["question3"][0] }} <span style="font-weight: bold">ableism.</span></td> + <mat-radio-group formControlName="q3"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question4"][0] }} + <span style="font-weight: bold">Teaching English to Speakers of Other Languages (TESOL).</span> + </td> + <mat-radio-group formControlName="q4"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question5"][0] }} + <span style="font-weight: bold">race or ethnicity.</span> + </td> + <mat-radio-group formControlName="q5"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td>{{ formQuestion["question6"][0] }} <span style="font-weight: bold">culture.</span></td> + <mat-radio-group formControlName="q6"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question7"][0] }} + <span style="font-weight: bold">diversity, equity, and inclusion (DEI).</span> + </td> + <mat-radio-group formControlName="q7"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question8"][0] }} + <span style="font-weight: bold">racial, ethnic, and cultural</span> + {{ formQuestion["question8"][1] }} + </td> + <mat-radio-group formControlName="q8"> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + </tbody> + </table> + + <p>{{ formQuestion["question9"] }}</p> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Abolitionist Teaching')" + >Abolitionist Teaching + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('AsianCrit')">AsianCrit </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Courageous Conversations About Race')" + >Courageous Conversations About Race + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Critical Pedagogy')"> + Critical Pedagogy + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Critical Race Theory')" + >Critical Race Theory + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Cultural Proficiency')" + >Cultural Proficiency + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Relevant Teaching')" + >Culturally Relevant Teaching + </mat-checkbox> + + <mat-checkbox + class="example-margin col-lg-6" + (click)="checkBoxFunction('Culturally Responsive School Leadership')" + >Culturally Responsive School Leadership + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Responsive Teaching')" + >Culturally Responsive Teaching + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Sustaining Pedagogies')" + >Culturally Sustaining Pedagogies + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Reality Pedagogy')" + >Reality Pedagogy + </mat-checkbox> + + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('(Dis)Crit')">(Dis)Crit </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Hip-Hop Education')" + >Hip-Hop Education + </mat-checkbox> + + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('LatCrit')">LatCrit </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Multicultural Education')" + >Multicultural Education + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6">Other (please specify) </mat-checkbox> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other9" type="text" matInput placeholder="" /> + </mat-form-field> + + <p> + {{ formQuestion["question10"][0] + }}<span + style="font-weight: bold; font-style: italic" + matTooltip="Cultural competence is the ability to successfully teach students who come from a culture or cultures other than our own (Moule, 2011)." + > + cultural competence? + </span> + {{ formQuestion["question10"][1] }} + </p> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Describe</mat-label> + <input formControlName="q10" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p>{{ formQuestion["question11"] }}</p> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Describe</mat-label> + <input formControlName="q11" type="text" matInput placeholder="" required /> + </mat-form-field> + </div> + <div class="buttons"> + <button class="btn" style="background-color: #29abe2" (click)="submit()">Submit</button> + </div> + </div> + </mat-card> +</div> diff --git a/src/app/post-survey/post-survey.component.spec.ts b/src/app/components/post-survey/post-survey.component.spec.ts similarity index 52% rename from src/app/post-survey/post-survey.component.spec.ts rename to src/app/components/post-survey/post-survey.component.spec.ts index f2c66646b7c30016929d4c261d1c050c4b01f623..64902659ade1ff0352e6c7ac89b90c6f8230be97 100644 --- a/src/app/post-survey/post-survey.component.spec.ts +++ b/src/app/components/post-survey/post-survey.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { PostSurveyComponent } from './post-survey.component'; +import { PostSurveyComponent } from "./post-survey.component"; -describe('PostSurveyComponent', () => { +describe("PostSurveyComponent", () => { let component: PostSurveyComponent; let fixture: ComponentFixture<PostSurveyComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ PostSurveyComponent ] - }) - .compileComponents(); + declarations: [PostSurveyComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('PostSurveyComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/post-survey/post-survey.component.ts b/src/app/components/post-survey/post-survey.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..eb546773267ad766700d3e4a671b5177d1871941 --- /dev/null +++ b/src/app/components/post-survey/post-survey.component.ts @@ -0,0 +1,131 @@ +import { Component, OnInit } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms"; +import { MatDialog } from "@angular/material/dialog"; +import { Router } from "@angular/router"; +import { CPCQService } from "src/app/services/cpcq.service"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; +import Swal from "sweetalert2"; +import { DialogPDfComponent } from "../pre-survey/dialog-pdf/dialog-pdf.component"; + +@Component({ + selector: "app-post-survey", + templateUrl: "./post-survey.component.html", + styleUrls: ["./post-survey.component.css"], +}) +export class PostSurveyComponent implements OnInit { + postSurveyForm: UntypedFormGroup; + + consentFlag: boolean; + formQuestion: any; + + constructor( + private router: Router, + public dialog: MatDialog, + private fb: UntypedFormBuilder, + private preSurvey: PreSurveyService, + private apiService: CPCQService + ) {} + + ngOnInit(): void { + this.postSurveyForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + q8: [""], + q9: [""], + q10: [""], + q11: [""], + other9: [""], + }); + + this.preSurvey.getPreSurveyAnswer().subscribe((res) => { + this.consentFlag = res[0]["consent"]; + }); + + this.preSurvey.getPostSurveyFormQuestions().subscribe( + (res) => { + this.formQuestion = res[0]; + for (let key in this.formQuestion) { + if (this.formQuestion[key].indexOf("gender inequality") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("gender inequality."); + } else if (this.formQuestion[key].indexOf("LGBTQA+.") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("LGBTQA+."); + } else if (this.formQuestion[key].indexOf("ableism.") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("ableism."); + } else if (this.formQuestion[key].indexOf("Teaching English to Speakers of Other Languages (TESOL).") != -1) { + this.formQuestion[key] = this.formQuestion[key].split( + "Teaching English to Speakers of Other Languages (TESOL)." + ); + } else if (this.formQuestion[key].indexOf("race or ethnicity.") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("race or ethnicity."); + } else if (this.formQuestion[key].indexOf("culture.") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("culture."); + } else if (this.formQuestion[key].indexOf("diversity, equity, and inclusion (DEI).") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("diversity, equity, and inclusion (DEI)."); + } else if (this.formQuestion[key].indexOf("racial, ethnic, and cultural") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("racial, ethnic, and cultural"); + } else if (this.formQuestion[key].indexOf("cultural competence?")) { + this.formQuestion[key] = this.formQuestion[key].split("cultural competence?"); + } + } + }, + (err) => {} + ); + } + + irbFunction() { + this.dialog.open(DialogPDfComponent, { + data: { + animal: "panda", + }, + }); + } + checkBoxAnswers = []; + checkBoxFunction(e) { + if (this.checkBoxAnswers.indexOf(e) == -1) { + this.checkBoxAnswers.push(e); + } else { + var index = this.checkBoxAnswers.indexOf(e); + this.checkBoxAnswers.splice(index, 1); + } + } + submit() { + if (!this.postSurveyForm.valid) { + Swal.fire({ + text: "Please fill all the fields", + icon: "error", + }).then((res) => {}); + } else { + this.postSurveyForm.get("q9").setValue(this.checkBoxAnswers); + + if (this.postSurveyForm.value["other9"].length != 0) { + this.checkBoxAnswers.push(this.postSurveyForm.value["other9"]); + this.postSurveyForm.get("q9").setValue(this.checkBoxAnswers); + } + this.postSurveyForm.removeControl("other9"); + + this.preSurvey.submitPostSurvey(this.postSurveyForm.value).subscribe( + (res) => { + this.apiService.patchStatus("postsurveystatus").subscribe((res) => { + Swal.fire({ + text: "Submitted!", + icon: "success", + }).then((res) => { + this.router.navigateByUrl("/final"); + }); + }); + }, + (err) => { + Swal.fire({ + text: "Failed to submit form.", + icon: "error", + }).then((res) => {}); + } + ); + } + } +} diff --git a/src/app/pre-survey/dialog-data-example-dialog.html b/src/app/components/pre-survey/dialog-data-example-dialog.html similarity index 100% rename from src/app/pre-survey/dialog-data-example-dialog.html rename to src/app/components/pre-survey/dialog-data-example-dialog.html diff --git a/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.css b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.css new file mode 100644 index 0000000000000000000000000000000000000000..c08b69a91d81595097c4179c2843ab9d71d1532b --- /dev/null +++ b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.css @@ -0,0 +1,16 @@ +.buttons { + margin-top: 20px; + display: -webkit-flex; + display: flex; + -webkit-justify-content: space-between; + justify-content: space-between; +} + +.btn { + width: 200px; + background-color: #00b4d8; + color: white; + display: inline-block; + padding: 10px; + margin-bottom: 20px; +} diff --git a/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.html b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2d8c926ced09081638097f5a6ceb223d1fb48eae --- /dev/null +++ b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.html @@ -0,0 +1,8 @@ +<h1 mat-dialog-title>Consent Form</h1> +<div mat-dialog-content> + <pdf-viewer src="../../../assets/consent.pdf"></pdf-viewer> +</div> +<div class="buttons"> + <button class="btn" style="background-color: #43aa8b" mat-dialog-close (click)="agree()">I AGREE</button> + <button class="btn" style="background-color: #f94144" mat-dialog-close (click)="disagree()">I DISAGREE</button> +</div> diff --git a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts similarity index 52% rename from src/app/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts rename to src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts index 5c0b586e2bd36ea045cff5bc276e0f166b1ea311..4d9fdaf320ca455f6a615408e2ccaec9dd3f09c8 100644 --- a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts +++ b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { DialogPDfComponent } from './dialog-pdf.component'; +import { DialogPDfComponent } from "./dialog-pdf.component"; -describe('DialogPDfComponent', () => { +describe("DialogPDfComponent", () => { let component: DialogPDfComponent; let fixture: ComponentFixture<DialogPDfComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ DialogPDfComponent ] - }) - .compileComponents(); + declarations: [DialogPDfComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('DialogPDfComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.ts b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..0de586e494db995d4650d643d5710a8a67e71838 --- /dev/null +++ b/src/app/components/pre-survey/dialog-pdf/dialog-pdf.component.ts @@ -0,0 +1,23 @@ +import { Component, Inject, OnInit } from "@angular/core"; +import { MAT_DIALOG_DATA } from "@angular/material/dialog"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; +} +@Component({ + selector: "app-dialog-pdf", + templateUrl: "./dialog-pdf.component.html", + styleUrls: ["./dialog-pdf.component.css"], +}) +export class DialogPDfComponent implements OnInit { + constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) {} + + ngOnInit(): void {} + + agree() { + localStorage.setItem("consent", "true"); + } + disagree() { + localStorage.setItem("consent", "false"); + } +} diff --git a/src/app/components/pre-survey/pre-survey.component.css b/src/app/components/pre-survey/pre-survey.component.css new file mode 100644 index 0000000000000000000000000000000000000000..4182aef2e2eacfb4b0743e0fa48a6be801d2325b --- /dev/null +++ b/src/app/components/pre-survey/pre-survey.component.css @@ -0,0 +1,58 @@ +@media screen and (min-width: 1024px) { + .form-wrap { + padding-top: 100px; + } +} + +.example-radio-group { + display: flex; + flex-direction: column; + margin: 15px 0; +} + +h4 { + font-size: 20px; + line-height: 150%; + font-weight: bold; +} + +p { + font-size: 18px; + line-height: 150%; +} + +.mat-card { + margin: 20px 60px; + padding: 0; +} + +h1 { + background-color: #efe9ae; + color: black; + line-height: 150%; + text-align: center; + padding: 10px 0; +} + +.questions { + padding: 20px; +} + +.sign1 { + border: 1px solid black; + margin: 20px 5px !important; +} + +.buttons { + margin-bottom: 50px; + text-align: center; +} + +.btn { + width: 200px; + background-color: #00b4d8; + color: white; + display: inline-block; + padding: 10px; + margin-bottom: 20px; +} diff --git a/src/app/components/pre-survey/pre-survey.component.html b/src/app/components/pre-survey/pre-survey.component.html new file mode 100644 index 0000000000000000000000000000000000000000..a3b503271c5c15e4fa900550f3c9d35ee7893058 --- /dev/null +++ b/src/app/components/pre-survey/pre-survey.component.html @@ -0,0 +1,674 @@ +<div class="form-wrap"> + <mat-card class=""> + <div> + <h1>Cultural Proficiency Continuum Dialogic Protocol: Pre-Survey</h1> + <div [formGroup]="preSurveyForm" class="questions"> + <h4> + Your responses are confidential and will not be used for research or published without your informed and + signed consent. + <span + ><p style="font-weight: 400; color: blue" (click)="irbFunction()"> + Click here to review the + <span style="font-style: italic">Research Participant Information and Consent Form.</span> + </p></span + > + </h4> + <br /> + <br /> + + <div class="row"> + <div class="col-6"> + <p>{{ formQuestion["question1"] }}</p> + <mat-form-field appearance="outline" class="col-lg-8"> + <mat-label>Enter Last Name</mat-label> + <input value="nedjnd" formControlName="q1" type="text" matInput placeholder="Last Name" required /> + </mat-form-field> + </div> + <div class="col-6"> + <p>{{ formQuestion["question2"] }}</p> + <mat-form-field appearance="outline" class="col-lg-8"> + <mat-label>Enter First Name</mat-label> + <input formControlName="q2" type="text" matInput placeholder="First Name" /> + </mat-form-field> + </div> + </div> + <div class="row"> + <div class="col-6"> + <p>{{ formQuestion["question3"] }}</p> + <mat-form-field appearance="outline" class="col-lg-6"> + <mat-label>Enter email</mat-label> + <input formControlName="q3" type="email" matInput placeholder="name@example.com" required /> + </mat-form-field> + </div> + <div class="col-6"> + <p>{{ formQuestion["question4"] }}</p> + <mat-form-field appearance="outline" class="col-lg-6"> + <mat-label>State</mat-label> + <select formControlName="q4" matNativeControl required id="state" name="state"> + <option value="---">---</option> + <option value="Alabama">Alabama</option> + <option value="Alaska">Alaska</option> + <option value="Arizona">Arizona</option> + <option value="Arkansas">Arkansas</option> + <option value="California">California</option> + <option value="Colorado">Colorado</option> + <option value="Connecticut">Connecticut</option> + <option value="Delaware">Delaware</option> + <option value="District of Columbia">District of Columbia</option> + <option value="Florida">Florida</option> + <option value="Georgia">Georgia</option> + <option value="Guam">Guam</option> + <option value="Hawaii">Hawaii</option> + <option value="Idaho">Idaho</option> + <option value="Illinois">Illinois</option> + <option value="Indiana">Indiana</option> + <option value="Iowa">Iowa</option> + <option value="Kansas">Kansas</option> + <option value="Kentucky">Kentucky</option> + <option value="Louisiana">Louisiana</option> + <option value="Maine">Maine</option> + <option value="Maryland">Maryland</option> + <option value="Massachusetts">Massachusetts</option> + <option value="Michigan">Michigan</option> + <option value="Minnesota">Minnesota</option> + <option value="Mississippi">Mississippi</option> + <option value="Missouri">Missouri</option> + <option value="Montana">Montana</option> + <option value="Nebraska">Nebraska</option> + <option value="Nevada">Nevada</option> + <option value="New Hampshire">New Hampshire</option> + <option value="New Jersey">New Jersey</option> + <option value="New Mexico">New Mexico</option> + <option value="New York">New York</option> + <option value="North Carolina">North Carolina</option> + <option value="North Dakota">North Dakota</option> + <option value="Northern Marianas Islands">Northern Marianas Islands</option> + <option value="Ohio">Ohio</option> + <option value="Oklahoma">Oklahoma</option> + <option value="Oregon">Oregon</option> + <option value="Pennsylvania">Pennsylvania</option> + <option value="Puerto Rico">Puerto Rico</option> + <option value="Rhode Island">Rhode Island</option> + <option value="South Carolina">South Carolina</option> + <option value="South Dakota">South Dakota</option> + <option value="Tennessee">Tennessee</option> + <option value="Texas">Texas</option> + <option value="Utah">Utah</option> + <option value="Vermont">Vermont</option> + <option value="Virginia">Virginia</option> + <option value="Virgin Islands">Virgin Islands</option> + <option value="Washington">Washington</option> + <option value="West Virginia">West Virginia</option> + <option value="Wisconsin">Wisconsin</option> + <option value="Wyoming">Wyoming</option> + </select> + </mat-form-field> + </div> + </div> + + <p>{{ formQuestion["question5"] }}</p> + <mat-radio-group formControlName="q5" class="example-radio-group"> + <div class="row"> + <mat-radio-button + class="col-lg-3" + value="Pre-Service Teacher (with clinical, field, or practicum experience)" + ><span style="white-space: normal" + >Pre-Service Teacher (with clinical, field, or practicum experience)</span + > + </mat-radio-button> + <mat-radio-button + class="col-lg-3" + value="Pre-Service Teacher (without clinical, field, or practicum experience)" + ><span style="white-space: normal" + >Pre-Service Teacher (without clinical, field, or practicum experience)</span + > + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="In-service Teacher (1-2 years of experience)" + ><span style="white-space: normal">In-service Teacher (1-2 years of experience)</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="In-service Teacher (3-5 years of experience)" + ><span style="white-space: normal">In-service Teacher (3-5 years of experience)</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="In-service Teacher (6-10 years of experience)" + ><span style="white-space: normal">In-service Teacher (6-10 years of experience)</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="In-service Teacher (11-15 years of experience)" + ><span style="white-space: normal">In-service Teacher (11-15 years of experience)</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="In-service Teacher (more than 15 years of experience)" + ><span style="white-space: normal">In-service Teacher (more than 15 years of experience)</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Graduate Student" + ><span style="white-space: normal">Graduate Student</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Teacher Educator" + ><span style="white-space: normal">Teacher Educator</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="School Leader" + ><span style="white-space: normal">School Leader</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Mentor Teacher" + ><span style="white-space: normal">Mentor Teacher</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Other in Question 5 (please specify)" + ><span style="white-space: normal">Other (please specify) </span> + </mat-radio-button> + </div> + </mat-radio-group> + <mat-form-field appearance="outline" class="col-lg-6"> + <mat-label>Please specify</mat-label> + <input formControlName="other5" type="text" matInput placeholder="" /> + </mat-form-field> + + <p></p> + <p>{{ formQuestion["question6"] }}</p> + <mat-radio-group formControlName="q6" class="example-radio-group"> + <mat-radio-button value="Four-Year Degree" + ><span style="white-space: normal">Four-Year Degree</span> + </mat-radio-button> + <mat-radio-button value="Five-Year Degree" + ><span style="white-space: normal">Five-Year Degree</span> + </mat-radio-button> + <mat-radio-button value="Alternative Teaching Certification at a university or college (e.g., M.A.T., M.Ed.)" + ><span style="white-space: normal" + >Alternative Teaching Certification at a university or college (e.g., M.A.T., M.Ed.)</span + > + </mat-radio-button> + <mat-radio-button + value="Alternative Teaching Certification through a non-profit or for-profit organization (e.g., Teach for America, Troops for Teachers)" + ><span style="white-space: normal" + >Alternative Teaching Certification through a non-profit or for-profit organization (e.g., Teach for + America, Troops for Teachers)</span + > + </mat-radio-button> + <mat-radio-button value="Other in question 6 (please specify)" + ><span style="white-space: normal">Other (please specify)</span> + </mat-radio-button> + </mat-radio-group> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other6" type="text" matInput placeholder="" /> + </mat-form-field> + + <p>{{ formQuestion["question7"] }}</p> + + <div class="row"> + <mat-checkbox + class="col-lg-3" + value="Early Childhood Education" + (click)="checkBox7Function('Early Childhood Education')" + ><span style="white-space: normal">Early Childhood Education</span> + </mat-checkbox> + <mat-checkbox + class="col-lg-3" + value="Elementary Education" + (click)="checkBox7Function('Elementary Education')" + ><span style="white-space: normal">Elementary Education</span> + </mat-checkbox> + </div> + <div class="row"> + <mat-checkbox + class="col-lg-3" + value="Middle School Education" + (click)="checkBox7Function('Middle School Education')" + ><span style="white-space: normal">Middle School Education</span> + </mat-checkbox> + <mat-checkbox class="col-lg-3" value="Secondary Education" (click)="checkBox7Function('Secondary Education')" + ><span style="white-space: normal">Secondary Education</span> + </mat-checkbox> + </div> + <div class="row"> + <mat-checkbox + class="col-lg-3" + value="Special Education (SPED)" + (click)="checkBox7Function('Special Education (SPED)')" + ><span style="white-space: normal">Special Education (SPED)</span> + </mat-checkbox> + <mat-checkbox + class="col-lg-3" + value="English as a Second Language (ESL)" + (click)="checkBox7Function('English as a Second Language (ESL)')" + ><span style="white-space: normal">English as a Second Language (ESL)</span> + </mat-checkbox> + </div> + <div class="row"> + <mat-checkbox class="col-lg-3" value="Reading Specialist" (click)="checkBox7Function('Reading Specialist')" + ><span style="white-space: normal">Reading Specialist</span> + </mat-checkbox> + <mat-checkbox + class="col-lg-3" + value="Principal Certification" + (click)="checkBox7Function('Principal Certification')" + ><span style="white-space: normal">Principal Certification</span> + </mat-checkbox> + </div> + <div class="row"> + <mat-checkbox class="col-lg-3" value="Other in Question 7 (please specify)" + ><span style="white-space: normal">Other (please specify)</span> + </mat-checkbox> + <mat-form-field appearance="outline" class="col-lg-7"> + <mat-label>Please specify</mat-label> + <input formControlName="other7" type="text" matInput placeholder="" /> + </mat-form-field> + </div> + + <p>{{ formQuestion["question8"] }}</p> + <mat-radio-group formControlName="q8" class="example-radio-group"> + <mat-radio-button value="Male">Male</mat-radio-button> + <mat-radio-button value="Female">Female</mat-radio-button> + <mat-radio-button value="Transgender Female">Transgender Female</mat-radio-button> + <mat-radio-button value="Transgender Male">Transgender Male</mat-radio-button> + <mat-radio-button value="Gender-Non-Conforming">Gender-Non-Conforming</mat-radio-button> + <mat-radio-button value="Prefer Not to Answer">Prefer Not to Answer </mat-radio-button> + <mat-radio-button value="Others in Question 8 (Please Specify)">Others (Please Specify)</mat-radio-button> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other8" type="text" matInput placeholder="" /> + </mat-form-field> + </mat-radio-group> + + <p>{{ formQuestion["question9"] }}</p> + <mat-radio-group formControlName="q9" class="example-radio-group"> + <div class="row"> + <mat-radio-button class="col-lg-2" value="18-24">18-24</mat-radio-button> + <mat-radio-button class="col-lg-2" value="25-34">25-34</mat-radio-button> + <mat-radio-button class="col-lg-2" value="35-44">35-44</mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-2" value="45-54">45-54</mat-radio-button> + <mat-radio-button class="col-lg-2" value="55-64">55-64</mat-radio-button> + <mat-radio-button class="col-lg-2" value="65+">65+</mat-radio-button> + </div> + </mat-radio-group> + + <p>{{ formQuestion["question10"] }}</p> + <mat-radio-group formControlName="q10" class="example-radio-group"> + <div class="row"> + <mat-radio-button class="col-lg-3" value="White" + ><span style="white-space: normal">White</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Black or African American" + ><span style="white-space: normal">Black or African American</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Hispanic or Latino" + ><span style="white-space: normal">Hispanic or Latino</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="American Indian or Alaska Native" + ><span style="white-space: normal">American Indian or Alaska Native</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Biracial (two races/ethnicities)" + ><span style="white-space: normal">Biracial (two races/ethnicities)</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Multiracial (more than two races/ethnicities)" + ><span style="white-space: normal">Multiracial (more than two races/ethnicities)</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Another Race/Ethnicity (please specify)" + ><span style="white-space: normal">Another Race/Ethnicity (please specify)</span> + </mat-radio-button> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other10" type="text" matInput placeholder="" /> + </mat-form-field> + </div> + </mat-radio-group> + + <p></p> + + <p>{{ formQuestion["question11"] }}</p> + <mat-radio-group formControlName="q11" class="example-radio-group"> + <div class="row"> + <mat-radio-button class="col-lg-2" value="Poor">Poor </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Working Poor">Working Poor </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Lower Middle Class"> Lower Middle Class </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-2" value="Middle Class">Middle Class </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Upper Middle Class">Upper Middle Class </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Wealthy">Wealthy</mat-radio-button> + </div> + </mat-radio-group> + + <p>{{ formQuestion["question12"] }}</p> + <mat-radio-group formControlName="q12" class="example-radio-group"> + <div class="row"> + <mat-radio-button class="col-lg-2" value="Liberal">Liberal </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Conservative">Conservative </mat-radio-button> + <mat-radio-button class="col-lg-2" value="Independent"> Independent </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-2" value="Other in Question 12 (please specify)" + >Other (please specify) + </mat-radio-button> + </div> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other12" type="text" matInput placeholder="" /> + </mat-form-field> + </mat-radio-group> + + <p>{{ formQuestion["question13"] }}</p> + <mat-radio-group formControlName="q13" class="example-radio-group"> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Christianity" + ><span style="white-space: normal">Christianity</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Catholicism" + ><span style="white-space: normal">Catholicism</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Protestantism" + ><span style="white-space: normal">Protestantism</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Judaism" + ><span style="white-space: normal">Judaism</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Islam" + ><span style="white-space: normal">Islam</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Hinduism" + ><span style="white-space: normal">Hinduism</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Buddhism" + ><span style="white-space: normal">Buddhism</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="African traditional and Diasporic" + ><span style="white-space: normal">African traditional and Diasporic</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Chinese traditional religion" + ><span style="white-space: normal">Chinese traditional religion</span> + </mat-radio-button> + </div> + <div class="row"> + <mat-radio-button class="col-lg-3" value="Spiritual Nonreligious (e.g., Secular/Atheist)" + ><span style="white-space: normal">Spiritual Nonreligious (e.g., Secular/Atheist)</span> + </mat-radio-button> + <mat-radio-button class="col-lg-3" value="Other in question 13 (please specify)" + ><span style="white-space: normal">Other (please specify)</span> + </mat-radio-button> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other13" type="text" matInput placeholder="" /> + </mat-form-field> + </div> + </mat-radio-group> + <div class="table-responsive"> + <table class="table"> + <thead style="text-align: center"> + <tr> + <th></th> + <div class="row"> + <th class="col-3">None</th> + <th class="col-2">1</th> + <th class="col-2">2</th> + <th class="col-2">3</th> + <th class="col-2">4 or more</th> + </div> + </tr> + </thead> + <tbody> + <tr> + <td> + {{ formQuestion["question14"][0] }} + <span style="font-weight: bold">gender inequality</span> + {{ formQuestion["question14"][1] }} + </td> + <mat-radio-group formControlName="q14"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + <tr> + <td> + {{ formQuestion["question15"][0] }} <span style="font-weight: bold"> LGBTQA+</span> + {{ formQuestion["question15"][1] }} + </td> + <mat-radio-group formControlName="q15"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question16"][0] }}<span style="font-weight: bold"> ableism</span> + {{ formQuestion["question16"][1] }} + </td> + <mat-radio-group formControlName="q16"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + + <tr> + <td> + {{ formQuestion["question17"][0] }} + <span style="font-weight: bold">Teaching English to Speakers of Other Languages (TESOL)</span> + {{ formQuestion["question17"][1] }} + </td> + <mat-radio-group formControlName="q17"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + + <br /> + <tr> + <td> + {{ formQuestion["question18"][0] }} + <span style="font-weight: bold">race or ethnicity</span> + {{ formQuestion["question18"][1] }} + </td> + <mat-radio-group formControlName="q18"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + + <br /> + + <tr> + <td> + {{ formQuestion["question19"][0] }} <span style="font-weight: bold">culture</span> + {{ formQuestion["question19"][1] }} + </td> + <mat-radio-group formControlName="q19"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + <tr> + <td> + {{ formQuestion["question20"][0] }} + <span style="font-weight: bold">diversity, equity, and inclusion (DEI)</span> + {{ formQuestion["question20"][1] }} + </td> + <mat-radio-group formControlName="q20"> + <td> + <mat-radio-button class="col-lg-2" value="None"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="1"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="2"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="3"> </mat-radio-button> + </td> + <td> + <mat-radio-button class="col-lg-2" value="4 or more"> </mat-radio-button> + </td> + </mat-radio-group> + </tr> + <br /> + </tbody> + </table> + </div> + + <br /> + + <p>{{ formQuestion["question21"] }}</p> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Abolitionist Teaching')" + ><span style="white-space: normal">Abolitionist Teaching</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('AsianCrit')" + ><span style="white-space: normal">AsianCrit</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Courageous Conversations About Race')" + ><span style="white-space: normal">Courageous Conversations About Race</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Critical Pedagogy')" + ><span style="white-space: normal">Critical Pedagogy</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Critical Race Theory')" + ><span style="white-space: normal">Critical Race Theory</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Cultural Proficiency')" + ><span style="white-space: normal">Cultural Proficiency</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Relevant Teaching')" + ><span style="white-space: normal">Culturally Relevant Teaching</span> + </mat-checkbox> + + <mat-checkbox + class="example-margin col-lg-6" + (click)="checkBoxFunction('Culturally Responsive School Leadership')" + ><span style="white-space: normal">Culturally Responsive School Leadership</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Responsive Teaching')" + ><span style="white-space: normal">Culturally Responsive Teaching</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Culturally Sustaining Pedagogies')" + ><span style="white-space: normal">Culturally Sustaining Pedagogies</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Reality Pedagogy')" + ><span style="white-space: normal">Reality Pedagogy</span> + </mat-checkbox> + + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('(Dis)Crit')" + ><span style="white-space: normal">(Dis)Crit</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Hip-Hop Education')" + ><span style="white-space: normal">Hip-Hop Education</span> + </mat-checkbox> + + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('LatCrit')" + ><span style="white-space: normal">LatCrit</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" (click)="checkBoxFunction('Multicultural Education')" + ><span style="white-space: normal">Multicultural Education</span> + </mat-checkbox> + <mat-checkbox class="example-margin col-lg-6" + ><span style="white-space: normal">Other (please specify)</span> + </mat-checkbox> + <mat-form-field appearance="outline" class="col-lg-4"> + <mat-label>Please specify</mat-label> + <input formControlName="other21" type="text" matInput placeholder="" /> + </mat-form-field> + </div> + <div class="buttons"> + <button class="btn" style="background-color: #29abe2" (click)="submit()">Submit</button> + </div> + </div> + </mat-card> +</div> diff --git a/src/app/pre-survey/pre-survey.component.spec.ts b/src/app/components/pre-survey/pre-survey.component.spec.ts similarity index 52% rename from src/app/pre-survey/pre-survey.component.spec.ts rename to src/app/components/pre-survey/pre-survey.component.spec.ts index 764bb5ee29ea7c5a287bbd11510a6f441351e831..25d5549ad5b0ea4f4790b025f8c85275bf53e8c5 100644 --- a/src/app/pre-survey/pre-survey.component.spec.ts +++ b/src/app/components/pre-survey/pre-survey.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { PreSurveyComponent } from './pre-survey.component'; +import { PreSurveyComponent } from "./pre-survey.component"; -describe('PreSurveyComponent', () => { +describe("PreSurveyComponent", () => { let component: PreSurveyComponent; let fixture: ComponentFixture<PreSurveyComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ PreSurveyComponent ] - }) - .compileComponents(); + declarations: [PreSurveyComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('PreSurveyComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/pre-survey/pre-survey.component.ts b/src/app/components/pre-survey/pre-survey.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..d9e4e374d8996eddfcfc56e631794e4d252300c5 --- /dev/null +++ b/src/app/components/pre-survey/pre-survey.component.ts @@ -0,0 +1,197 @@ +import { Component, OnInit } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup } from "@angular/forms"; +import { MatDialog } from "@angular/material/dialog"; +import { Router } from "@angular/router"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; +import Swal from "sweetalert2"; +import { DialogPDfComponent } from "./dialog-pdf/dialog-pdf.component"; +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; +} +@Component({ + selector: "app-pre-survey", + templateUrl: "./pre-survey.component.html", + styleUrls: ["./pre-survey.component.css"], +}) +export class PreSurveyComponent implements OnInit { + preSurveyForm: UntypedFormGroup; + email: any; + startTime: any; + endTime: any; + durationTime: any; + formQuestion: any; + constructor( + private router: Router, + public dialog: MatDialog, + private fb: UntypedFormBuilder, + private preSurvey: PreSurveyService + ) {} + + ngOnInit(): void { + this.startTime = new Date(); + + this.preSurveyForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + q8: [""], + q9: [""], + q10: [""], + q11: [""], + q12: [""], + q13: [""], + q14: [""], + q15: [""], + q16: [""], + q17: [""], + q18: [""], + q19: [""], + q20: [""], + q21: [""], + other5: "", + other6: "", + other7: "", + other8: "", + other10: "", + other12: "", + other13: "", + other21: "", + consent: "", + }); + + this.preSurvey.getFormQuestions().subscribe( + (res) => { + this.formQuestion = res[0]; + for (let key in this.formQuestion) { + if (this.formQuestion[key].indexOf("gender inequality") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("gender inequality"); + } else if (this.formQuestion[key].indexOf("LGBTQA+") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("LGBTQA+"); + } else if (this.formQuestion[key].indexOf("ableism") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("ableism"); + } else if (this.formQuestion[key].indexOf("Teaching English to Speakers of Other Languages (TESOL)") != -1) { + this.formQuestion[key] = this.formQuestion[key].split( + "Teaching English to Speakers of Other Languages (TESOL)" + ); + } else if (this.formQuestion[key].indexOf("race or ethnicity") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("race or ethnicity"); + } else if (this.formQuestion[key].indexOf("culture") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("culture"); + } else if (this.formQuestion[key].indexOf("diversity, equity, and inclusion (DEI)") != -1) { + this.formQuestion[key] = this.formQuestion[key].split("diversity, equity, and inclusion (DEI)"); + } + } + this.preSurvey.userData().subscribe( + (res) => { + this.preSurveyForm.get("q1").setValue(res["last_name"]); + this.preSurveyForm.get("q2").setValue(res["first_name"]); + this.preSurveyForm.get("q3").setValue(res["email"]); + }, + (err) => {} + ); + }, + (err) => {} + ); + } + + checkBox21 = []; + checkBoxFunction(e) { + if (this.checkBox21.indexOf(e) == -1) { + this.checkBox21.push(e); + } else { + var index = this.checkBox21.indexOf(e); + this.checkBox21.splice(index, 1); + } + } + + checkBox7 = []; + checkBox7Function(e) { + if (this.checkBox7.indexOf(e) == -1) { + this.checkBox7.push(e); + } else { + var index = this.checkBox7.indexOf(e); + this.checkBox7.splice(index, 1); + } + } + + irbFunction() { + this.dialog.open(DialogPDfComponent, { + data: { + animal: "panda", + }, + }); + } + + submit() { + if (!this.preSurveyForm.valid) { + Swal.fire({ + text: "Please fill all the fields", + icon: "error", + }).then((res) => {}); + } else { + this.preSurveyForm.get("q7").setValue(this.checkBox7); + this.preSurveyForm.get("q21").setValue(this.checkBox21); + + if (this.preSurveyForm.value["other5"].length != 0) { + this.preSurveyForm.get("q5").setValue(this.preSurveyForm.value["other5"]); + } + if (this.preSurveyForm.value["other6"].length != 0) { + this.preSurveyForm.get("q6").setValue(this.preSurveyForm.value["other6"]); + } + if (this.preSurveyForm.value["other7"].length != 0) { + this.checkBox7.push(this.preSurveyForm.value["other7"]); + this.preSurveyForm.get("q7").setValue(this.checkBox7); + } + if (this.preSurveyForm.value["other8"].length != 0) { + this.preSurveyForm.get("q8").setValue(this.preSurveyForm.value["other8"]); + } + if (this.preSurveyForm.value["other10"].length != 0) { + this.preSurveyForm.get("q10").setValue(this.preSurveyForm.value["other10"]); + } + if (this.preSurveyForm.value["other12"].length != 0) { + this.preSurveyForm.get("q12").setValue(this.preSurveyForm.value["other12"]); + } + if (this.preSurveyForm.value["other13"].length != 0) { + this.preSurveyForm.get("q13").setValue(this.preSurveyForm.value["other13"]); + } + if (this.preSurveyForm.value["other21"].length != 0) { + this.checkBox21.push(this.preSurveyForm.value["other21"]); + this.preSurveyForm.get("q21").setValue(this.checkBox21); + } + this.preSurveyForm.removeControl("other5"); + this.preSurveyForm.removeControl("other6"); + this.preSurveyForm.removeControl("other7"); + this.preSurveyForm.removeControl("other8"); + this.preSurveyForm.removeControl("other10"); + this.preSurveyForm.removeControl("other12"); + this.preSurveyForm.removeControl("other13"); + this.preSurveyForm.removeControl("other21"); + if (localStorage.getItem("consent") == "true") { + this.preSurveyForm.get("consent").setValue(true); + } else { + this.preSurveyForm.get("consent").setValue(false); + } + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + this.preSurveyForm.value["duration"] = this.durationTime; + this.preSurvey.submitForm(this.preSurveyForm.value).subscribe( + (res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + this.router.navigateByUrl("/dashboard"); + }); + }, + (err) => {} + ); + } + } +} diff --git a/src/app/components/register-component/register-component.component.css b/src/app/components/register-component/register-component.component.css new file mode 100644 index 0000000000000000000000000000000000000000..d0aa6e15cf222dff02cf1f30593a06e0c43fbc2b --- /dev/null +++ b/src/app/components/register-component/register-component.component.css @@ -0,0 +1,72 @@ +.container { + text-align: center; + padding-bottom: 300px; +} + +.example-card { + display: inline-block; + margin-top: 100px; +} + +.intro { + top: 20%; + font-size: 35px; + text-align: center; + font-family: "Loto", sans-serif, cursive; + color: black; + font-weight: bold; +} + +body { + font-family: "Loto", sans-serif; + background-color: #f8fafb; +} + +@media screen and (min-width: 992px) { + p { + padding-top: 150px; + line-height: 150%; + color: #b3b3b3; + font-weight: 300; + margin: 0 20px; + } +} + +@media screen and (max-width: 991px) { + p { + padding-top: 20px; + line-height: 150%; + color: #b3b3b3; + font-weight: 300; + margin: 0 20px; + } +} + +h1, +h2, +h3, +h4, +h5, +h6, +.h1, +.h2, +.h3, +.h4, +.h5, +.h6 { + font-family: "Loto", sans-serif; +} + +a { + -webkit-transition: 0.3s all ease; + -o-transition: 0.3s all ease; + transition: 0.3s all ease; +} + +a:hover { + text-decoration: none !important; +} + +h2 { + font-size: 20px; +} diff --git a/src/app/components/register-component/register-component.component.html b/src/app/components/register-component/register-component.component.html new file mode 100644 index 0000000000000000000000000000000000000000..8b8073f640a94b3093987c899c15bb065d02fb78 --- /dev/null +++ b/src/app/components/register-component/register-component.component.html @@ -0,0 +1,59 @@ +<div class="header-wrap"> + <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> + <div class="container"> + <mat-card class="example-card"> + <div class="mb-4"> + <h3 style="text-align: center">Register</h3> + </div> + <form [formGroup]="loginForm"> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Enter Email Address</mat-label> + <input type="email" matInput placeholder="joe@example.com" formControlName="email" required /> + </mat-form-field> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Enter First Name</mat-label> + <input type="text" matInput placeholder="John" formControlName="first_name" required /> + </mat-form-field> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Enter Last Name</mat-label> + <input type="text" matInput placeholder="" formControlName="last_name" /> + </mat-form-field> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Enter Username</mat-label> + <input type="email" matInput placeholder="joe@example.com" formControlName="username" required /> + </mat-form-field> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Enter your password</mat-label> + <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required /> + <button + mat-icon-button + matSuffix + (click)="hide = !hide" + [attr.aria-label]="'Hide password'" + [attr.aria-pressed]="hide" + > + <mat-icon>{{ hide ? "visibility_off" : "visibility" }}</mat-icon> + </button> + <mat-error *ngIf="loginForm.controls.password.invalid">{{ getPasswordError() }}</mat-error> + </mat-form-field> + <!-- <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Confirm your password</mat-label> + <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required> + <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> + <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> + </button> + <mat-error *ngIf="loginForm.controls.password.invalid">{{getPasswordError()}}</mat-error> + </mat-form-field> --> + + <input + type="submit" + value="Register" + class="btn text-white btn-block btn-primary" + style="background-color: #29abe2; font-size: 20px" + (click)="login()" + /> + </form> + </mat-card> + </div> +</div> +<app-footer></app-footer> diff --git a/src/app/register-component/register-component.component.spec.ts b/src/app/components/register-component/register-component.component.spec.ts similarity index 51% rename from src/app/register-component/register-component.component.spec.ts rename to src/app/components/register-component/register-component.component.spec.ts index 85e1c45176233d9c34b646a3888dfdde73766d67..3816f860a85372c5f1c6da98aae3f165c3392864 100644 --- a/src/app/register-component/register-component.component.spec.ts +++ b/src/app/components/register-component/register-component.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { RegisterComponentComponent } from './register-component.component'; +import { RegisterComponentComponent } from "./register-component.component"; -describe('RegisterComponentComponent', () => { +describe("RegisterComponentComponent", () => { let component: RegisterComponentComponent; let fixture: ComponentFixture<RegisterComponentComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ RegisterComponentComponent ] - }) - .compileComponents(); + declarations: [RegisterComponentComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('RegisterComponentComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/register-component/register-component.component.ts b/src/app/components/register-component/register-component.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..0fef0d1765c55372439bdde669e6de91ba091b5b --- /dev/null +++ b/src/app/components/register-component/register-component.component.ts @@ -0,0 +1,67 @@ +import { Component, OnInit } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { Router } from "@angular/router"; +import { LoginService } from "src/app/services/login.service"; +import Swal from "sweetalert2"; +@Component({ + selector: "app-register-component", + templateUrl: "./register-component.component.html", + styleUrls: ["./register-component.component.css"], +}) +export class RegisterComponentComponent implements OnInit { + loginForm: UntypedFormGroup; + hide = true; + constructor(private fb: UntypedFormBuilder, private router: Router, private loginService: LoginService) {} + + ngOnInit(): void { + this.loginForm = this.fb.group({ + username: ["", [Validators.required]], + email: ["", [Validators.required, Validators.email]], + password: ["", [Validators.required]], + first_name: ["", [Validators.required]], + last_name: [""], + }); + } + + getEmailError() { + if (this.loginForm.controls.username.hasError("required")) { + return "Required"; + } else { + return ""; + } + } + + getPasswordError() { + if (this.loginForm.controls.password.hasError("required")) { + return "Required"; + } else { + return ""; + } + } + + login() { + if (!this.loginForm.valid) { + Swal.fire({ + text: "Please enter all the fields in the right format.", + icon: "error", + }).then((res) => {}); + } else { + this.loginService.register(this.loginForm.value).subscribe( + (res) => { + Swal.fire({ + text: "Registration Successful", + icon: "success", + }).then((res) => { + this.router.navigateByUrl("/preSurvey"); + }); + }, + (err) => { + Swal.fire({ + text: "Username/Email already exists", + icon: "error", + }).then((res) => {}); + } + ); + } + } +} diff --git a/src/app/components/result-dashboard/result-dashboard.component.css b/src/app/components/result-dashboard/result-dashboard.component.css new file mode 100644 index 0000000000000000000000000000000000000000..ab51307cb235c24a0e1d06e1b4e47ba4a9cb4e29 --- /dev/null +++ b/src/app/components/result-dashboard/result-dashboard.component.css @@ -0,0 +1,431 @@ +@media screen and (min-width: 992px) { + .home-wrap { + padding-top: 100px; + } +} + +.icon-select { + width: 0px; +} + +.icon-select .selected-box { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + height: 60px; + border: 1px solid #999999; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-box:hover { + position: relative; + margin: 0px; + padding: 0px; + width: 70px; + height: 60px; + border: 1px solid #000000; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .selected-icon { + position: absolute; + margin: 0px; + padding: 0px; + top: 5px; + left: 5px; + width: 48px; + /* sil */ + height: 48px; + /* sil */ + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; +} + +.icon-select .component-icon { + position: absolute; + bottom: 5px; + right: 4px; +} + +.icon-select .box { + position: absolute; + top: 0px; + left: 71px; + margin: 0px; + padding: 0px; + width: 170px; + height: 170px; + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: auto; +} + +.icon-select .icon { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + height: 48px; + border: 1px solid #cccccc; + background-color: #ffffff; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.icon-select .icon:hover { + border: 1px solid #000000; +} + +.icon-select .icon.selected { + position: relative; + margin: 5px 0px 0px 5px; + padding: 0px; + width: 48px; + height: 48px; + border: 1px solid #eeeeee; + background-color: #eeeeee; + -webkit-border-radius: 3px; + -moz-border-radius: 3px; + border-radius: 3px; + overflow: hidden; + float: left; +} + +.circle { + border-radius: 50%; + width: 150px; + height: 150px; + display: flex; + justify-content: center; + align-items: center; + margin-top: auto; + margin-bottom: auto; +} + +img { + border-radius: 50%; + width: 60px; + height: 60px; +} + +.initials { + color: #ffffff; + font-size: 20px; + line-height: 19px; + letter-spacing: 0.2625; +} + +.leftCards { + margin-bottom: 10px; +} + +.profileImg { + border-radius: 50%; + display: block; + margin-left: auto; + margin-right: auto; + width: 150px; + height: 150px; +} + +.div-wrap { + width: 500px; +} + +p { + font-family: "Loto", sans-serif; +} + +li { + font-family: "Loto", sans-serif; + font-size: 15px; + margin: 15px; +} + +h3 { + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +p { + text-align: justify; + text-justify: inter-word; + font-size: 15px; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +.title { + background-color: #f8c045; + text-align: center; + padding: 8px 0; + margin-bottom: 20px; +} + +h1 { + margin-bottom: 5px !important; + margin-top: 5px; + font-size: 20px; +} + +::ng-deep .custom-dialog .mat-dialog-container { + padding: 0 !important; +} + +.dialog-wrap { + padding: 10px; +} + +.mat-error { + text-align: center; + margin-bottom: 25px; +} + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +.row { + margin: 0 !important; +} + +.col-lg-12 { + padding: 0 !important; +} + +.btn { + background-color: #f8c045; + color: black; + padding: 5px; + margin-top: 5px; + float: right; + border-radius: 5px; + margin-bottom: 20px; + margin-right: 15px; +} + +.btn:hover, +.btn:focus, +.btn:active { + outline: none; + box-shadow: none; +} + +.close { + font-size: 25px; + color: red; + float: right; + margin-right: 20px; + margin-top: 10px; + cursor: pointer; +} + +.outer { + padding: 10px 30px; +} + +.circles { + height: 45px; + width: 45px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; + cursor: pointer; +} + +.active { + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + width: 200px; + height: 5px; + margin-bottom: 13px; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.current { + background-color: rgb(5, 204, 5); + cursor: no-drop; +} + +.bar { + width: 200px; + height: 5px; + margin-bottom: 13px; + border: 2px solid #e4e3e3; + background-color: #e4e3e3; + display: inline-block; + text-align: center; + margin: "0 auto"; +} + +.icon { + margin: 8px; +} + +.chartsRadial { + margin-bottom: -200px; +} + +.alert { + text-align: center; +} + +.alert .mat-card { + display: inline-block; +} + +h3 { + font-size: 20px; + text-align: center; +} + +.status-btn { + border: none; + background-color: #f8c045; + color: black; + padding: 10px 40px; + display: inline-block; + border-radius: 5px; + margin: 20px; +} + +.status-btn:hover, +.status-btn:focus, +.status-btn:active { + border: none; + outline: none; + box-shadow: none; +} + +.legend { + margin-bottom: 40px; +} + +.color1 { + height: 15px; + width: 15px; + border: 2px solid #eeeeee; + background-color: #eeeeee; + border-radius: 50%; + display: inline-block; +} + +.color2 { + height: 15px; + width: 15px; + border: 2px solid #ffa500; + background-color: #ffa500; + border-radius: 50%; + display: inline-block; +} + +.color3 { + height: 15px; + width: 15px; + border: 2px solid rgb(5, 204, 5); + background-color: rgb(5, 204, 5); + border-radius: 50%; + display: inline-block; +} + +small { + margin-left: 10px; +} + +.mat-hint { + color: rgb(0, 132, 255); + cursor: pointer; +} + +::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { + padding: 0 !important; +} + +::ng-deep .mat-datepicker-content-touch .mat-calendar { + width: 0 !important; + height: 0 !important; +} + +.status { + margin-top: 40px; +} + +@media screen and (max-width: 991px) { + .activity { + margin-top: 20px; + } +} + +.profile .mat-card { + display: flex; + flex-direction: column; + height: 100%; +} + +.outer { + display: flex; + margin: 0 50px; +} + +.content { + margin: 20px 50px; +} + +.content .mat-card { + padding: 20px 50px; +} diff --git a/src/app/components/result-dashboard/result-dashboard.component.html b/src/app/components/result-dashboard/result-dashboard.component.html new file mode 100644 index 0000000000000000000000000000000000000000..2c96eec6e4441da34195b85a9bf8bde254306dd5 --- /dev/null +++ b/src/app/components/result-dashboard/result-dashboard.component.html @@ -0,0 +1,195 @@ +<div class="home-wrap"> + <div class="col-6" *ngIf="profile"> + <div class="row"> + <div class="col-6"> + <mat-card class="leftCards"> + <img class="profileImg" src="../../assets/profile.jpg" /> + <mat-card-content> + <h2 style="width: 100%; text-align: center">PROFILE</h2> + <p>Name: John Doe</p> + <p style="margin-top: -10px">Email : john@gmail.com</p> + <p style="margin-top: -10px">Phone : (757)-339-1234</p> + </mat-card-content> + </mat-card> + </div> + <div class="col-6"> + <mat-card class="leftCards"> + <h2>ACTIVITY</h2> + <ul> + <li>Completed Pre-Survey on <span style="color: red"> December 25, 2020</span></li> + <li>Completed CPCQ Form on <span style="color: red"> December 26, 2020</span></li> + <li>Started Unpacking of CPCQ Form answers on <span style="color: red"> December 27, 2020</span></li> + <li>Results will be sent via email by <span style="color: red"> December 31, 2020</span></li> + </ul> + </mat-card> + </div> + </div> + <div class="col-12"> + <mat-card class="leftCards"> + <mat-card-content> + <div class="col-12"> + <span *ngFor="let item of statusIcons; let i = index"> + <span matTooltip="{{ statusNames[i] }}" class="circles" [class.current]="i <= currentStatus" + ><mat-icon class="icon">{{ item }}</mat-icon></span + > + <span + [class.bar]="i >= currentStatus" + [class.active]="i < currentStatus" + *ngIf="i != statusIcons.length - 1" + style="width: 65px" + ></span> + </span> + </div> + </mat-card-content> + </mat-card> + </div> + <!-- <div class="row"> + <div class="col-6"> + <mat-card class="leftCards "> + <mat-card-content> + <h2>CULTURAL PROFICIENCY</h2> + <div> + <apx-chart class="chartsRadial" [series]="chartOptions.series" [chart]="chartOptions.chart" [plotOptions]="chartOptions.plotOptions" [labels]="chartOptions.labels" [fill]="chartOptions.fill"></apx-chart> + </div> + + </mat-card-content> + </mat-card> + </div> + <div class="col-6"> + <mat-card class="leftCards "> + <mat-card-content> + <h2>RESULTS</h2> + <div id="ch"> + <div id="chart"> + <apx-chart [series]="chartOptions2.series" [chart]="chartOptions2.chart" [plotOptions]="chartOptions2.plotOptions" [labels]="chartOptions2.labels" [legend]="chartOptions2.legend" [colors]="chartOptions2.colors" [responsive]="chartOptions2.responsive"></apx-chart> + </div> + + </div> + </mat-card-content> + </mat-card> + </div> + + </div> --> + </div> + + <div class="row outer" *ngIf="!profile"> + <div class="col-lg-5 profile"> + <mat-card> + <div class="row col-lg-12"> + <div class="col-lg-4"> + <script + type="text/javascript" + ng:autobind + src="http://code.angularjs.org/0.10.4/angular-0.10.4.js" + ></script> + <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> + <div ng:controller="Ctrl"> + <div id="my-icon-select"></div> + </div> + <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()" /> + <div *ngIf="showInitials" class="circle" style="background-color: #118ab2" (click)="openDialog()"> + <div class="initials"> + {{ initials }} + </div> + </div> + <br /> + <p (click)="openDialog()" style="width: 100%; text-align: center">Choose Your Avatar</p> + <br /> + </div> + <div class="col-lg-8"> + <mat-card-content> + <h2 style="width: 100%; text-align: center">USER PROFILE</h2> + <br /> + <div class="row"> + <div class="col-12"> + <p>Username: {{ userName }}</p> + </div> + <div class="col-12"> + <p>Email: {{ email }}</p> + </div> + </div> + <div class="row"> + <div class="col-12"> + <p>Gender: {{ gender }}</p> + </div> + <div class="col-12"> + <p>Location: {{ location }}</p> + </div> + </div> + </mat-card-content> + </div> + </div> + </mat-card> + </div> + <div class="col-lg-7 activity"> + <mat-card class="leftCards"> + <h2>CPCDP ACTIVITIES</h2> + <ul> + <li> + Completed Pre-Survey on <span style="color: red"> {{ preSurveyDate }}.</span> + </li> + <li *ngIf="currentStatus >= 1"> + Cultural Proficiency Continuum Q-Sort form completed on + <span style="color: red">{{ responsesDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 1)">Cultural Proficiency Continuum Q-Sort form is pending your completion.</li> + + <li *ngIf="currentStatus >= 2"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on + <span style="color: red">{{ cpcqDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 2)"> + Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion. + </li> + + <li *ngIf="!(currentStatus >= 3)"> + Your facilitator's comments on your reactions were completed on + <span style="color: red">{{ cpcqDate }}.</span> + </li> + <li *ngIf="currentStatus >= 3"> + Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive an + email notifying you to login into your profile and review your facilitator's reactions. + </li> + + <li *ngIf="currentStatus >= 4"> + Post-Survey completed on <span style="color: red">{{ cpcqDate }}.</span> + </li> + <li *ngIf="!(currentStatus >= 4)">Post-Survey is pending your completion.</li> + </ul> + <div class="col-lg-12 status"> + <span *ngFor="let item of statusIcons; let i = index"> + <span matTooltip="{{ statusNames[i] }}" class="circles" [class.current]="i <= currentStatus" + ><mat-icon class="icon">{{ item }}</mat-icon></span + > + <span + [class.bar]="i >= currentStatus" + [class.active]="i < currentStatus" + *ngIf="i != statusIcons.length - 1" + style="width: 65px" + ></span> + </span> + </div> + </mat-card> + </div> + </div> + <div class="content"> + <mat-card> + <mat-card-content> + <h2>Cultural Proficiency Continuum Q-Sort: Waiting for Your Reactions to be Reviewed</h2> + <p style="font-size: 20px"> + Thank you for your engagement with this protocol thus far. At this stage, you have completed the pre-survey + and reacted to and unpacked a host of culturally proficient interactions. Next, a facilitator will review the + comments you provided to the vignettes you unpacked and offer insights concerning your written comments. You + will receive an email notifying you to login into your profile and review your facilitator's comments. + </p> + <ng-lottie + speed="0.1" + height="280px" + [options]="options" + (animationCreated)="animationCreated($event)" + ></ng-lottie> + </mat-card-content> + <mat-card-actions> </mat-card-actions> + </mat-card> + </div> +</div> diff --git a/src/app/result-dashboard/result-dashboard.component.spec.ts b/src/app/components/result-dashboard/result-dashboard.component.spec.ts similarity index 51% rename from src/app/result-dashboard/result-dashboard.component.spec.ts rename to src/app/components/result-dashboard/result-dashboard.component.spec.ts index fa962c84384f2ccbaa1085a08bf74a70a103eadf..b0f11952f885c82cf9b1541ee99236a93d756827 100644 --- a/src/app/result-dashboard/result-dashboard.component.spec.ts +++ b/src/app/components/result-dashboard/result-dashboard.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { ResultDashboardComponent } from './result-dashboard.component'; +import { ResultDashboardComponent } from "./result-dashboard.component"; -describe('ResultDashboardComponent', () => { +describe("ResultDashboardComponent", () => { let component: ResultDashboardComponent; let fixture: ComponentFixture<ResultDashboardComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ ResultDashboardComponent ] - }) - .compileComponents(); + declarations: [ResultDashboardComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('ResultDashboardComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/result-dashboard/result-dashboard.component.ts b/src/app/components/result-dashboard/result-dashboard.component.ts similarity index 67% rename from src/app/result-dashboard/result-dashboard.component.ts rename to src/app/components/result-dashboard/result-dashboard.component.ts index d2bc5d54d4d02153cb4eda6f249a2eab66cbeb1a..5e83505983b80e96a0877f3abdf65b45e6fbc642 100644 --- a/src/app/result-dashboard/result-dashboard.component.ts +++ b/src/app/components/result-dashboard/result-dashboard.component.ts @@ -1,21 +1,21 @@ -import { Component, OnInit, ViewChild,Inject } from '@angular/core'; -import { Router } from '@angular/router'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import Swal from 'sweetalert2'; -import {DashboardDialoComponent} from '../dashboard/dashboard-dialo/dashboard-dialo.component'; -import { AnimationItem } from 'lottie-web'; -import {PreSurveyService} from '../../services/preSurvey.service'; -import {CPCQService} from '../../services/cpcq.service'; -import { AnimationOptions } from 'ngx-lottie'; +import { Component, OnInit, ViewChild } from "@angular/core"; +import { MatDialog } from "@angular/material/dialog"; +import { Router } from "@angular/router"; +import { AnimationItem } from "lottie-web"; import { - ApexNonAxisChartSeries, - ApexPlotOptions, ApexChart, ApexFill, - ChartComponent, ApexLegend, + ApexNonAxisChartSeries, + ApexPlotOptions, ApexResponsive, + ChartComponent, } from "ng-apexcharts"; +import { AnimationOptions } from "ngx-lottie"; +import { CPCQService } from "src/app/services/cpcq.service"; +import { PreSurveyService } from "src/app/services/preSurvey.service"; +import Swal from "sweetalert2"; +import { DashboardDialogComponent } from "../dashboard/dashboard-dialog/dashboard-dialog.component"; export interface DialogData { animal; @@ -46,41 +46,41 @@ export type ChartOptions = { fill: ApexFill; }; @Component({ - selector: 'app-result-dashboard', - templateUrl: './result-dashboard.component.html', - styleUrls: ['./result-dashboard.component.css'] + selector: "app-result-dashboard", + templateUrl: "./result-dashboard.component.html", + styleUrls: ["./result-dashboard.component.css"], }) -export class ResultDashboardComponent implements OnInit { - statusNames = ['Pre-Survey','CPCQ Form','Unpacking', 'Feedback', 'View Results', 'Post Survey']; - statusIcons = ['edit','developer_board','add_comment','edit','bar_chart','chrome_reader_mode']; +export class ResultDashboardComponent implements OnInit { + statusNames = ["Pre-Survey", "CPCQ Form", "Unpacking", "Feedback", "View Results", "Post Survey"]; + statusIcons = ["edit", "developer_board", "add_comment", "edit", "bar_chart", "chrome_reader_mode"]; currentStatus = 2; selectedSatus = 0; profile = false; avatarLink: string; - public photoUrl: string; + public photoUrl: string; - public name: string = "Nihaarika Jagadish"; + public name: string = "Nihaarika Jagadish"; public showInitials = false; - public initials: string; - public circleColor: string; - public profileDetails:any; - public email:any - public location:any - public gender :any - public userName :any - public preSurveyDate :any - public responsesDate :any - public cpcqDate :any - public finalDate : any + public initials: string; + public circleColor: string; + public profileDetails: any; + public email: any; + public location: any; + public gender: any; + public userName: any; + public preSurveyDate: any; + public responsesDate: any; + public cpcqDate: any; + public finalDate: any; - private colors = [ - '#EB7181', // red - '#468547', // green - '#FFD558', // yellow - '#3670B2', // blue - ]; + private colors = [ + "#EB7181", // red + "#468547", // green + "#FFD558", // yellow + "#3670B2", // blue + ]; @ViewChild("chart") chart: ChartComponent; public chartOptions: Partial<ChartOptions>; @@ -88,75 +88,62 @@ export class ResultDashboardComponent implements OnInit { public chartOptions2: Partial<ChartOptions2>; options: AnimationOptions = { - path: 'https://assets2.lottiefiles.com/packages/lf20_cmf6a3.json', + path: "https://assets2.lottiefiles.com/packages/lf20_cmf6a3.json", }; - - animationCreated(animationItem: AnimationItem): void { - - } + + animationCreated(animationItem: AnimationItem): void {} openDialog1(i) { - this.chartOptions2 = { - series: [76, 67, 61, 90,56], + series: [76, 67, 61, 90, 56], chart: { height: 300, type: "radialBar", events: { - legendClick: function(chartContext, seriesIndex, config) { - - - - if(seriesIndex == 0){ - Swal.fire({ - title:"Attitude", - html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content." + legendClick: function (chartContext, seriesIndex, config) { + if (seriesIndex == 0) { + Swal.fire({ + title: "Attitude", + html: "A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. <br /> <br /> <span><b> B.4 </b> Black students have the same opportunities and access to attend college as their white peers. <br/> <br /><span><b> C.1 </b> Students who wear dreadlocks as a hairstyle are a distraction in the classroom. <br/> <br /> D.3 It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. <br/> <br /> E.5 All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants. <br/> F.6 All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 1){ - Swal.fire({ - title:"Empathy", - html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car." + }); + } else if (seriesIndex == 1) { + Swal.fire({ + title: "Empathy", + html: "A.2 A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. <br /> <br /> <span><b> B.4 </b> A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.<br/> <br /><span><b> C.1 </b> In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.<br/> <br /> D.3 An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying,Come on, you are Asian! You should’ve scored better than this. <br/> <br /> E.5 A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. <br/> F.6 Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - else if(seriesIndex == 2){ - Swal.fire({ - title:"Policy", - html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. " + }); + } else if (seriesIndex == 2) { + Swal.fire({ + title: "Policy", + html: "A.2 A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans. <br /> <br /> <span><b> B.4 </b> A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.<br/> <br /><span><b> C.1 </b> A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision. <br/> <br /> D.3 A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse. <br/> <br /> E.5 Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism. <br/> F.6A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish. ", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 3){ - Swal.fire({ - title:"Professionalism", - html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. " + }); + } else if (seriesIndex == 3) { + Swal.fire({ + title: "Professionalism", + html: "A.2A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. <br /> <br /> <span><b> B.4 </b> During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, Why do we have to attend this training; the United States is post-racial because we have a Black president. <br/> <br /><span><b> C.1 </b> The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs. <br/> <br /> D.3 The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†<br/> <br /> E.5 A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. <br/> F.6 An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. ", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) - } - - else if(seriesIndex == 4){ - Swal.fire({ - title:"Teaching Practice", - html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school." + }); + } else if (seriesIndex == 4) { + Swal.fire({ + title: "Teaching Practice", + html: "A.2 A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. <br /> <br /> <span><b> B.4 </b>An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. <br/> <br /><span><b> C.1 </b> A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating. <br/> <br /> D.3 A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic. <br/> <br /> E.5 A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. <br/> F.6 There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school.", // text: "Attitude \n A.2 Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. ", }).then((res) => { window.location.reload(); - }) + }); } - - } - } + }, + }, }, plotOptions: { radialBar: { @@ -167,70 +154,72 @@ export class ResultDashboardComponent implements OnInit { margin: 5, size: "30%", background: "transparent", - image: undefined + image: undefined, }, dataLabels: { name: { - show: false + show: false, }, value: { - show: false - } - } - } + show: false, + }, + }, + }, }, colors: ["#1ab7ea", "#0084ff", "#39539E", "#0077B5"], - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"], + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], legend: { show: true, floating: true, fontSize: "13px", position: "left", labels: { - useSeriesColors: true + useSeriesColors: true, }, - formatter: function(seriesName, opts) { + formatter: function (seriesName, opts) { return seriesName + ": " + opts.w.globals.series[opts.seriesIndex]; }, itemMargin: { - horizontal: 3 - } + horizontal: 3, + }, }, responsive: [ { breakpoint: 480, options: { legend: { - show: false - } - } - } - ] + show: false, + }, + }, + }, + ], }; } - openDialog(){ - const dialogRef = this.dialog.open(DashboardDialoComponent, { - data: {userID: this.profileDetails[0]["id"]} + openDialog() { + const dialogRef = this.dialog.open(DashboardDialogComponent, { + data: { userID: this.profileDetails[0]["id"] }, }); - dialogRef.afterClosed().subscribe(result => { - - + dialogRef.afterClosed().subscribe((result) => { this.showInitials = false; this.avatarLink = result; }); } - constructor(private router:Router,public dialog: MatDialog, public PreSurService : PreSurveyService, public cpcqService : CPCQService) { - + constructor( + private router: Router, + public dialog: MatDialog, + public PreSurService: PreSurveyService, + public cpcqService: CPCQService + ) { this.openDialog1(1); - + this.chartOptions = { series: [76], chart: { height: 300, type: "radialBar", - offsetY: -20 + offsetY: -20, }, plotOptions: { radialBar: { @@ -245,22 +234,21 @@ export class ResultDashboardComponent implements OnInit { top: 2, left: 0, opacity: 0.31, - blur: 2 - } + blur: 2, + }, }, dataLabels: { value: { // offsetY: -2, - fontSize: "22px" + fontSize: "22px", }, name: { show: true, fontSize: "13px", - color: "green" - } - - } - } + color: "green", + }, + }, + }, }, fill: { type: "gradient", @@ -270,64 +258,57 @@ export class ResultDashboardComponent implements OnInit { inverseColors: false, opacityFrom: 1, opacityTo: 1, - stops: [0, 50, 53, 91] - } + stops: [0, 50, 53, 91], + }, }, - labels: ["Culturally Competent"] + labels: ["Culturally Competent"], }; - - this.chartOptions1 = { - series: [44, 55, 67, 83,56], - chart: { - height: 200, - width: 300, - type: "radialBar", - events:{ - click: function(event, chartContext, config) { - - - - - // The last parameter config contains additional information like `seriesIndex` and `dataPointIndex` for cartesian charts. - } - } + this.chartOptions1 = { + series: [44, 55, 67, 83, 56], + chart: { + height: 200, + width: 300, + type: "radialBar", + events: { + click: function (event, chartContext, config) { + // The last parameter config contains additional information like `seriesIndex` and `dataPointIndex` for cartesian charts. + }, }, - plotOptions: { - radialBar: { - dataLabels: { - name: { - fontSize: "22px" - }, - value: { - fontSize: "16px" + }, + plotOptions: { + radialBar: { + dataLabels: { + name: { + fontSize: "22px", + }, + value: { + fontSize: "16px", + }, + total: { + show: true, + label: "Total", + formatter: function (w) { + return "249"; }, - total: { - show: true, - label: "Total", - formatter: function(w) { - return "249"; - } - } - } - } + }, + }, }, - labels: ["Attitude", "Empathy", "Policy", "Professionalism","Teaching Practice"] - }; - + }, + labels: ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"], + }; } - public generateData(count, yrange) { + public generateData(count, yrange) { var i = 0; var series = []; while (i < count) { var x = "w" + (i + 1).toString(); - var y = - Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; + var y = Math.floor(Math.random() * (yrange.max - yrange.min + 1)) + yrange.min; series.push({ x: x, - y: y + y: y, }); i++; } @@ -341,54 +322,66 @@ export class ResultDashboardComponent implements OnInit { const randomIndex = Math.floor(Math.random() * Math.floor(this.colors.length)); this.circleColor = this.colors[randomIndex]; - } - this.PreSurService.profileData().subscribe((res)=> { - this.profileDetails = res - this.email = res[0]["email"] - this.location = res[0]["location"] - this.gender = res[0]["gender"] - this.userName = res[0]["first_name"] - this.preSurveyDate = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.responsesDate = new Date(res[0]["responsesdate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - this.cpcqDate = new Date(res[0]["cpcqdate"]).toLocaleDateString("en-US", { weekday: 'long', year: 'numeric', month: 'long', day: 'numeric' } ) - - this.currentStatus = res[0]["status"].lastIndexOf(true) - // - if(res[0]["photo_profile"].length != 0){ - this.showInitials = false - var lenSTr = res[0]["photo_profile"].length - this.avatarLink = res[0]["photo_profile"] } - }) - - this.cpcqService.getCPCQStatus().subscribe((res) => { - this.finalDate = new Date(res[0]["created"]).toDateString() - }) + this.PreSurService.profileData().subscribe((res) => { + this.profileDetails = res; + this.email = res[0]["email"]; + this.location = res[0]["location"]; + this.gender = res[0]["gender"]; + this.userName = res[0]["first_name"]; + this.preSurveyDate = new Date(res[0]["preSurveydate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.responsesDate = new Date(res[0]["responsesdate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.cpcqDate = new Date(res[0]["cpcqdate"]).toLocaleDateString("en-US", { + weekday: "long", + year: "numeric", + month: "long", + day: "numeric", + }); + this.currentStatus = res[0]["status"].lastIndexOf(true); + // + if (res[0]["photo_profile"].length != 0) { + this.showInitials = false; + var lenSTr = res[0]["photo_profile"].length; + this.avatarLink = res[0]["photo_profile"]; + } + }); + this.cpcqService.getCPCQStatus().subscribe((res) => { + this.finalDate = new Date(res[0]["created"]).toDateString(); + }); } private createInititals(): void { let initials = ""; for (let i = 0; i < this.name.length; i++) { - if (this.name.charAt(i) === ' ') { - continue; - } + if (this.name.charAt(i) === " ") { + continue; + } - if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) { - initials += this.name.charAt(i); + if (this.name.charAt(i) === this.name.charAt(i).toUpperCase()) { + initials += this.name.charAt(i); - if (initials.length == 2) { - break; - } + if (initials.length == 2) { + break; } + } } this.initials = initials; -} - preSurvey(){ + } + preSurvey() { this.router.navigateByUrl("/preSurvey"); } } - diff --git a/src/app/components/score-page/score-page.component.css b/src/app/components/score-page/score-page.component.css new file mode 100644 index 0000000000000000000000000000000000000000..c983d39227672181e31879cf350efb1590055351 --- /dev/null +++ b/src/app/components/score-page/score-page.component.css @@ -0,0 +1,170 @@ +.divClass { + padding-top: 10px; +} + +.example-card { + /* max-height: 700px; */ + /* width: 1000px; */ + /* height: 570px; */ + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; +} + +::ng-deep .mat-tab-body-content { + max-height: 500px !important; +} + +.table-responsive { + height: 310px; +} + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +mat-slider { + width: 350px; +} + +.mat-slider-thumb-label { + transform: rotate(45deg) !important; + border-radius: 50% 50% 0 !important; +} + +.mat-slider-thumb { + transform: scale(0) !important; +} + +.mat-slider-thumb-label-text { + opacity: 1 !important; +} + +.advice { + border: none; + background: none; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +mat-form-field { + width: 100%; + height: 5%; +} + +::ng-deep .mat-form-field-flex > .mat-form-field-infix { + padding: 0.4em 0px !important; +} + +::ng-deep .mat-form-field-label-wrapper { + top: -1.5em; +} + +::ng-deep + .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float + .mat-form-field-label { + transform: translateY(-1.1em) scale(0.75); + width: 133.33333%; + color: black !important; + border: black; +} + +.example-h2 { + margin: 10px; +} + +.example-section { + display: flex; + align-content: center; + align-items: center; + height: 60px; +} + +.example-margin { + margin: 0 10px; +} + +.imgClass { + width: 30px; + height: 30px; +} + +.zoom { + transition: transform 0.2s; + border: none; + background: none; + /* Animation */ + margin: 0 auto; +} + +.zoom:hover { + transform: scale(1.5); + /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +.progress { + margin-left: auto; + margin-right: auto; + width: 50%; +} + +/* +p { + font-family: 'roboto'; +} */ diff --git a/src/app/components/score-page/score-page.component.html b/src/app/components/score-page/score-page.component.html new file mode 100644 index 0000000000000000000000000000000000000000..7282a2ffeb22cbeb15821740fe0ca08dd969a57f --- /dev/null +++ b/src/app/components/score-page/score-page.component.html @@ -0,0 +1,159 @@ +<div class="divClass"> + <mat-card class="example-card"> + <mat-card-content> + <div style="margin-bottom: 10px; margin-left: -10px"> + <mat-progress-bar + *ngIf="selectedIndex > 0 && selectedIndex < 6" + class="example-margin" + style="width: 100%" + [mode]="mode" + [value]="selectedIndex * 20" + [bufferValue]="bufferValue" + > + </mat-progress-bar> + </div> + + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab label="Seventh"> + <h2>Cultural Proficiency Continuum Q-Sort: Review your Facilitator's Feedback and Scores</h2> + <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in + the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis + is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. + Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, + but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> + <p> + <span + ><b>Directions: </b> Each highlighted box yellow represents vignettes you unpacked and scored by the + facilitator. Click on each box to see the individual score for each of the vignettes you reacted to. + </span> + </p> + <button mat-button color="primary"> + Your level of cultural proficiency at this time is {{ meanNumber }} or {{ meanValue }} + </button> + <br /> + + <mat-spinner *ngIf="progressBar" class="progress"></mat-spinner> + + <div class="table-responsive" *ngIf="!progressBar"> + <table class="table"> + <thead class="thead-dark" style="font-size: 15px"> + <tr> + <th></th> + <th + matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). " + > + Cultural Destructiveness + </th> + <th + matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] " + > + Cultural Incapacity + </th> + <th + matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] " + > + Cultural Blindness + </th> + <th + matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context " + > + Cultural Pre-Competence + </th> + <th + matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context " + > + Cultural Competence + </th> + <th + matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality " + > + Cultural Proficiency + </th> + </tr> + </thead> + <tbody *ngFor="let row of responsesArray; let i = index"> + <tr> + <td>{{ row[7] }}</td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[0][1] == 'Colored'" + (click)="openDialog(i, 0, row[0][0])" + > + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] != 'Colored'"> + {{ row[0][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[1][1] == 'Colored'" + (click)="openDialog(i, 1, row[1][0])" + > + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] != 'Colored'"> + {{ row[1][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[2][1] == 'Colored'" + (click)="openDialog(i, 2, row[2][0])" + > + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] != 'Colored'"> + {{ row[2][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[3][1] == 'Colored'" + (click)="openDialog(i, 3, row[3][0])" + > + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] != 'Colored'"> + {{ row[3][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[4][1] == 'Colored'" + (click)="openDialog(i, 4, row[4][0])" + > + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] != 'Colored'"> + {{ row[4][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[5][1] == 'Colored'" + (click)="openDialog(i, 5, row[5][0])" + > + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] != 'Colored'"> + {{ row[5][0] }} + </td> + </tr> + </tbody> + </table> + </div> + </mat-tab> + </mat-tab-group> + </mat-card-content> + + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button mat-raised-button style="background-color: #29abe2" routerLink="/graph">VIEW GRAPH</button> + </div> + </div> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/score-page/score-page.component.spec.ts b/src/app/components/score-page/score-page.component.spec.ts similarity index 52% rename from src/app/score-page/score-page.component.spec.ts rename to src/app/components/score-page/score-page.component.spec.ts index ee8487d6ff63a19a29c8c1003d74cd75e3201d2b..6b28e547b3f5cb9d06eb497d2c3164aef65bcfd3 100644 --- a/src/app/score-page/score-page.component.spec.ts +++ b/src/app/components/score-page/score-page.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { ScorePageComponent } from './score-page.component'; +import { ScorePageComponent } from "./score-page.component"; -describe('ScorePageComponent', () => { +describe("ScorePageComponent", () => { let component: ScorePageComponent; let fixture: ComponentFixture<ScorePageComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ ScorePageComponent ] - }) - .compileComponents(); + declarations: [ScorePageComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('ScorePageComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/score-page/score-page.component.ts b/src/app/components/score-page/score-page.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8c17e979e3f9cddbe85bb5c96d2203791b3c4c1 --- /dev/null +++ b/src/app/components/score-page/score-page.component.ts @@ -0,0 +1,1265 @@ +import { Component, ElementRef, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { ThemePalette } from "@angular/material/core"; +import { MatDialog } from "@angular/material/dialog"; +import { ProgressBarMode } from "@angular/material/progress-bar"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import { LoginService } from "src/app/services/login.service"; +import Swal from "sweetalert2"; +import { DialogFormComponent } from "../cpcq-form/dialog-form/dialog-form.component"; +declare var $: any; + +import { CPCQService } from "src/app/services/cpcq.service"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; + status; + result; +} +@Component({ + selector: "app-score-page", + templateUrl: "./score-page.component.html", + styleUrls: ["./score-page.component.css"], +}) +export class ScorePageComponent implements OnInit { + firstForm: UntypedFormGroup; + responseList: any; + loaded = false; + + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; + statusCheck = false; + buttonClick = false; + + sliderValue = 0; + + selectedIndex = 0; + + color: ThemePalette = "primary"; + mode: ProgressBarMode = "buffer"; + value1 = 50; + bufferValue = 100; + + formValues = []; + meanValue: any = 0; + meanNumber: any = 0; + attributes = ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"]; + columnHeadings = [ + "culturalDestructivenessresponse", + "culturalIncapacityresponse", + "culturalBlindnessresponse", + "culturalPreCompetenceresponse", + "culturalCompetenceresponse", + "culturalProficiencyresponse", + ]; + columnHeadings1 = [ + "Cultural Destructiveness", + "Cultural Incapacity", + "Cultural Blindness", + "Cultural PreCompetence", + "Cultural Competence", + "Cultural Proficiency", + ]; + + rowLetters = [ + ["D", "C", "B", "A", "F", "E"], + ["E", "A", "F", "D", "B", "C"], + ["F", "E", "B", "C", "D", "A"], + ["E", "A", "B", "D", "C", "F"], + ["D", "C", "B", "E", "A", "F"], + ]; + boldList = [[]]; + randomList = [[]]; + finalList = [[]]; + finalList1 = []; + attitudeForm: UntypedFormGroup; + empathyForm: UntypedFormGroup; + policyForm: UntypedFormGroup; + + finalFeedbackForm: UntypedFormGroup; + + progressBar: any = true; + + //arrays of data getting from the backend + + attitude: any; + empathy: any; + policy: any; + professionalism: any; + teachingPractice: any; + wordDescription: any; + unpackedCount = 0; + + startTime: any; + endTime: any; + durationTime: any; + + @ViewChild("changeDiv") changeDiv: ElementRef; + @ViewChild("changeDiv1") changeDiv1: ElementRef; + @ViewChild("changeDiv2") changeDiv2: ElementRef; + @ViewChild("changeDiv3") changeDiv3: ElementRef; + @ViewChild("changeDiv4") changeDiv4: ElementRef; + @ViewChild("changeDiv5") changeDiv5: ElementRef; + @ViewChild("changeDiv6") changeDiv6: ElementRef; + @ViewChild("changeDiv7") changeDiv7: ElementRef; + @ViewChild("changeDiv8") changeDiv8: ElementRef; + @ViewChild("changeDiv9") changeDiv9: ElementRef; + @ViewChild("changeDiv10") changeDiv10: ElementRef; + @ViewChild("changeDiv11") changeDiv11: ElementRef; + @ViewChild("changeDiv12") changeDiv12: ElementRef; + @ViewChild("changeDiv13") changeDiv13: ElementRef; + @ViewChild("changeDiv14") changeDiv14: ElementRef; + @ViewChild("changeDiv15") changeDiv15: ElementRef; + @ViewChild("changeDiv16") changeDiv16: ElementRef; + @ViewChild("changeDiv17") changeDiv17: ElementRef; + @ViewChild("changeDiv18") changeDiv18: ElementRef; + @ViewChild("changeDiv19") changeDiv19: ElementRef; + @ViewChild("changeDiv20") changeDiv20: ElementRef; + @ViewChild("changeDiv21") changeDiv21: ElementRef; + @ViewChild("changeDiv22") changeDiv22: ElementRef; + @ViewChild("changeDiv23") changeDiv23: ElementRef; + @ViewChild("changeDiv24") changeDiv24: ElementRef; + @ViewChild("changeDiv25") changeDiv25: ElementRef; + @ViewChild("changeDiv26") changeDiv26: ElementRef; + @ViewChild("changeDiv27") changeDiv27: ElementRef; + @ViewChild("changeDiv28") changeDiv28: ElementRef; + @ViewChild("changeDiv29") changeDiv29: ElementRef; + + ngAfterViewInit() {} + + sliderFunction1() { + if (this.sliderValue == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (this.sliderValue == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (this.sliderValue == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (this.sliderValue == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (this.sliderValue == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + sliderFunction(e) { + // + this.sliderValue = e.value; + if (e.value == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (e.value == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (e.value == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (e.value == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (e.value == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + constructor( + private fb: UntypedFormBuilder, + private apiService: CPCQService, + private router: Router, + private formService: FirstForm, + private domSanitizer: DomSanitizer, + public dialog: MatDialog, + private loginService: LoginService + ) {} + openDialog(i, j, id) { + // + + var questAns = {}; + var scores = []; + var comments = []; + for (let key in this.scoreRes) { + if (this.scoreRes[key]["topic"] == this.attributes[i]) { + questAns = this.scoreRes[key][this.columnHeadings[j]]; + scores = this.scoreRes[key]["scores"][id]; + comments = this.scoreRes[key]["comment1"][id]; + } + } + + var arr = []; + arr.push(this.attributes[i]); + arr.push(j); + arr.push(this.columnHeadings[j]); + arr.push(id); + arr.push(questAns); + arr.push(scores); + arr.push(comments); + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: arr, + status: "form1", + }, + }); + dialogRef.afterClosed().subscribe((result) => { + if (this.responsesArray[i][j][1] == "colorbold") { + this.unpackedCount = this.unpackedCount + 1; + } + }); + } + + openWordDialog(i) { + // + this.buttonClick = true; + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "word", + }, + disableClose: true, + }); + + dialogRef.afterClosed().subscribe((result) => { + this.wordDescription = result; + }); + } + + helpDialog(i) { + // + this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "help", + }, + }); + } + + keyPressFunc(e) { + // + var numbersList = ["1"]; + for (let key in this.attitudeForm.value) { + if (numbersList.indexOf(this.attitudeForm.value[key]) == -1) { + // + return "Number"; + } + } + } + + getEmailError() { + return "Error"; + } + getResponses() { + this.apiService.getResponsesData().subscribe((res) => { + for (let key in res) { + this.temp = []; + for (let key1 in res[key]) { + this.temp.push(res[key][key1]); + } + this.responsesArray.push(this.temp); + } + }); + } + + getForm() { + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + var attitudeResult = []; + var empathyResult = []; + var policyResult = []; + var profResult = []; + var teachingResult = []; + this.finalList = [[]]; + this.boldList = [[]]; + this.apiService.getFormData().subscribe((res) => { + for (let key in res) { + arr = []; + if (res[key]["topic"] == "Attitude") { + attitudeResult.push("Attitude"); + arr.push("Attitude"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Empathy") { + empathyResult.push("Empathy"); + arr.push("Empathy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Policy") { + policyResult.push("Policy"); + arr.push("Policy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Professionalism") { + profResult.push("Professionalism"); + arr.push("Professionalism"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Teaching Practice") { + arr.push("Teaching Pracice"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + teachingResult.push("Teaching Practice"); + teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } + + this.boldList.push(arr); + } + this.finalList.push(attitudeResult); + this.finalList.push(empathyResult); + this.finalList.push(policyResult); + this.finalList.push(profResult); + this.finalList.push(teachingResult); + }); + this.finalList.splice(0, 1); + this.boldList.splice(0, 1); + // this.getAllIndexes(this.finalList,1) + } + + emoji: any; + changeEmojiSize(data) { + document.getElementById("angry").style.height = "30px"; + document.getElementById("angry").style.width = "30px"; + document.getElementById("sad").style.height = "30px"; + document.getElementById("sad").style.width = "30px"; + document.getElementById("neutral").style.height = "30px"; + document.getElementById("neutral").style.width = "30px"; + document.getElementById("smile").style.height = "30px"; + document.getElementById("smile").style.width = "30px"; + document.getElementById("heart").style.height = "30px"; + document.getElementById("heart").style.width = "30px"; + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + + this.emoji = data; + } + + thumbs: any; + changeThumbsSize(data) { + document.getElementById("thumbsup").style.height = "30px"; + document.getElementById("thumbsup").style.width = "30px"; + document.getElementById("thumbsdown").style.height = "30px"; + document.getElementById("thumbsdown").style.width = "30px"; + + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + this.thumbs = data; + } + finalSubmit() { + this.finalFeedbackForm.value["q6"] = this.thumbs; + this.finalFeedbackForm.value["q7"] = this.emoji; + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe( + (res) => { + this.apiService.changeCPCQStatus().subscribe((res1) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + this.router.navigateByUrl("/result"); + } + }); + }); + }, + (err) => {} + ); + } + responsesArray = []; + temp = []; + scoreRes: any; + ngOnInit(): void { + this.startTime = new Date(); + this.finalFeedbackForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + }); + this.apiService.getResponsesData().subscribe((res) => { + for (let key in res) { + this.temp = []; + for (let key1 in res[key]) { + this.temp.push(res[key][key1]); + } + this.responsesArray.push(this.temp); + } + this.apiService.getScoreInfo().subscribe((res) => { + this.scoreRes = res; + + for (let key in res) { + for (let category in res[key]["scores"]["category"]) { + var firstIndex = this.attributes.indexOf(res[key]["topic"]); + + var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]); + + if (firstIndex != -1 && secondIndex != -1) { + this.responsesArray[firstIndex][secondIndex][1] = "Colored"; + } + } + } + this.progressBar = false; + + // this.apiService.patchStatus("scoresstatus").subscribe((res) => { + // + // }) + }); + }); + + // this.apiService.getScoreInfo().subscribe((res) => { + // this.scoreRes = res + // + // for(let key in res){ + // for(let category in res[key]["scores"]["category"]){ + // var firstIndex = this.attributes.indexOf(res[key]["topic"]) + + // var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]) + // + + // if(firstIndex != -1 && secondIndex != -1){ + // + // this.responsesArray[firstIndex][secondIndex][1] = "Colored" + // } + + // } + + // } + // this.progressBar = false; + // + // // this.apiService.patchStatus("scoresstatus").subscribe((res) => { + // // + // // }) + + // }) + + this.apiService.getScoreVisualization().subscribe((res) => { + var temp = 0; + for (var i = 0; i < res["category"].length; i++) { + temp = temp + res["series"][i]["data"]; + } + this.meanNumber = temp / 4.0; + + this.meanValue = temp / 4.0; + + if (this.meanValue >= 0 && this.meanValue <= 1) { + if (this.meanValue == 1) this.meanValue = this.columnHeadings1[0]; + else this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity"; + } + if (this.meanValue > 1 && this.meanValue <= 2) { + if (this.meanValue == 2) this.meanValue = this.columnHeadings1[1]; + else this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness"; + } + if (this.meanValue > 2 && this.meanValue <= 3) { + if (this.meanValue == 3) this.meanValue = this.columnHeadings1[2]; + else this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence"; + } + if (this.meanValue > 3 && this.meanValue <= 4) { + if (this.meanValue == 4) this.meanValue = this.columnHeadings1[3]; + else this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence"; + } + if (this.meanValue > 4 && this.meanValue <= 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings1[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + if (this.meanValue > 5) { + if (this.meanValue == 5) this.meanValue = this.columnHeadings1[4]; + else this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency"; + } + }); + + this.apiService.attitudeData().subscribe( + (res) => { + // + this.attitude = res[0]; + // + }, + (err) => {} + ); + + this.apiService.empathyData().subscribe( + (res) => { + // + this.empathy = res[0]; + // + }, + (err) => {} + ); + + this.apiService.policyData().subscribe( + (res) => { + this.policy = res[0]; + }, + (err) => {} + ); + + this.apiService.professionalismData().subscribe( + (res) => { + this.professionalism = res[0]; + }, + (err) => {} + ); + + this.apiService.teachingData().subscribe( + (res) => { + this.teachingPractice = res[0]; + }, + (err) => {} + ); + + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + description: ["", [Validators.required]], + }); + + this.empathyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + this.policyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + for (var j = 0; j < 5; j++) { + arr = []; + arr1 = []; + arr2 = []; + i = 0; + while (i < 6) { + var item1 = Math.floor(Math.random() * (7 - 1) + 1); + if (arr1.indexOf(item1) == -1) { + if (i == 0) { + arr.push(this.attributes[j]); + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (arr1[arr1.length - 1] > 2) { + // + arr2.push("True"); + } else { + arr2.push("False"); + } + } else { + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (i == 1) { + if (arr1[arr1.length - 1] > 3) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 2) { + if (arr1[arr1.length - 1] > 4 || arr1[arr1.length - 1] == 1) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 3) { + if (arr1[arr1.length - 1] > 5 || arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 4) { + if (arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 5) { + if (arr1[arr1.length - 1] < 5) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } + } + i = i + 1; + } else { + continue; + } + } + this.formValues.push(arr); + this.boldList.push(arr1); + this.randomList.push(arr2); + } + this.boldList.splice(0, 1); + this.randomList.splice(0, 1); + + this.getAllIndexes(this.randomList, "True"); + this.loaded = true; + } + + getAllIndexes(arr, val) { + var indexes = []; + var i = -1; + for (var i = 0; i < arr.length; i++) { + for (var j = 0; j < arr[i].length; j++) { + if (arr[i][j] == "True") { + var arr1 = []; + arr1.push(i); + arr1.push(j); + indexes.push(arr1); + } + } + } + + var arr1 = []; + for (var i = 0; i < indexes.length; i++) { + arr1.push(i); + } + var ranNums = []; + var i = arr1.length; + var j = 0; + var count = 0; + while (i--) { + if (count < 5) { + j = Math.floor(Math.random() * (i + 1)); + ranNums.push(arr1[j]); + arr1.splice(j, 1); + count = count + 1; + } else { + break; + } + } + + // + for (var i = 0; i < this.boldList.length; i++) { + var temp = []; + for (var j = 0; j < 6; j++) { + temp.push("False"); + } + this.finalList1.push(temp); + } + + for (var i = 0; i < ranNums.length; i++) { + var item = indexes[ranNums[i]]; + + this.finalList1[item[0]][item[1]] = "True"; + } + // this.finalList1.splice(0,1) + } + preSurvey() { + this.router.navigateByUrl("/preSurvey"); + } + + nextButton() { + if (this.selectedIndex == 0) { + this.selectedIndex = this.selectedIndex + 1; + return; + } + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/dashboard"); + return; + } + + var numberList = []; + var flag = true; + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = false; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = false; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = false; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (flag) { + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/postSurvey"); + } + this.sliderFunction1(); + var formData = {}; + formData["topic"] = this.attributes[this.selectedIndex - 1]; + if (this.attributes[this.selectedIndex - 1] == "Attitude") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalCompetence"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalProficiency"] = "E. " + this.attitudeForm.value["E"]; + } else if (this.attributes[this.selectedIndex - 1] == "Empathy") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalProficiency"] = "C. " + this.attitudeForm.value["C"]; + } else if (this.attributes[this.selectedIndex - 1] == "Policy") { + formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalIncapacity"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalProficiency"] = "A. " + this.attitudeForm.value["A"]; + } else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["description"] = this.wordDescription; + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + }, + (err) => {} + ); + // this.getForm(); + this.selectedIndex = this.selectedIndex + 1; + this.buttonClick = false; + this.startTime = new Date(); + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + } + } + + postSurvey() { + this.router.navigateByUrl("/postSurvey"); + } + + submitForm1() { + if (this.unpackedCount == 5) { + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.selectedIndex = this.selectedIndex + 1; + } + }); + } else { + Swal.fire({ + text: "Please click on all the yellow boxes and answer the questions in the prompt.", + icon: "warning", + }).then((res) => {}); + } + } + + submitForm() { + if (this.selectedIndex == 5) { + var numberList = []; + var flag = false; + + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = true; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = true; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = true; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (!flag) { + // + var formData = {}; + + formData["topic"] = this.attributes[this.selectedIndex - 1]; + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + + formData["description"] = this.wordDescription; + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.getResponses(); + + this.selectedIndex = this.selectedIndex + 1; + this.startTime = new Date(); + } + }); + }, + (err) => {} + ); + } + } + } + + submit() { + // + var tempDict; + this.responseList = []; + for (let key in this.firstForm.value) { + tempDict = {}; + tempDict["question"] = key; + tempDict["response"] = this.firstForm.value[key]; + this.responseList.push(tempDict); + } + // + + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); + } + + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + // + // + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } +} diff --git a/src/app/test/my-overlay/my-overlay.component.css b/src/app/components/test/my-overlay/my-overlay.component.css similarity index 100% rename from src/app/test/my-overlay/my-overlay.component.css rename to src/app/components/test/my-overlay/my-overlay.component.css diff --git a/src/app/components/test/my-overlay/my-overlay.component.html b/src/app/components/test/my-overlay/my-overlay.component.html new file mode 100644 index 0000000000000000000000000000000000000000..ecc9ba7d3bb620ba5ff8b2051be048185ff19e87 --- /dev/null +++ b/src/app/components/test/my-overlay/my-overlay.component.html @@ -0,0 +1,6 @@ +<mat-card *cdkPortal> + {{ text }} + <mat-card-actions align="right"> + <button mat-stroked-button (click)="hideOverlay()">OK</button> + </mat-card-actions> +</mat-card> diff --git a/src/app/test/my-overlay/my-overlay.component.spec.ts b/src/app/components/test/my-overlay/my-overlay.component.spec.ts similarity index 52% rename from src/app/test/my-overlay/my-overlay.component.spec.ts rename to src/app/components/test/my-overlay/my-overlay.component.spec.ts index a967f6f659e525ac029050afdf0ce478a5675d52..cdf7c4013548c529e8bafe70ec4408f2e6014a67 100644 --- a/src/app/test/my-overlay/my-overlay.component.spec.ts +++ b/src/app/components/test/my-overlay/my-overlay.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { MyOverlayComponent } from './my-overlay.component'; +import { MyOverlayComponent } from "./my-overlay.component"; -describe('MyOverlayComponent', () => { +describe("MyOverlayComponent", () => { let component: MyOverlayComponent; let fixture: ComponentFixture<MyOverlayComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ MyOverlayComponent ] - }) - .compileComponents(); + declarations: [MyOverlayComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('MyOverlayComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/test/my-overlay/my-overlay.component.ts b/src/app/components/test/my-overlay/my-overlay.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..c8de050110dc0a1773fd5f6de7719195c0d6eb32 --- /dev/null +++ b/src/app/components/test/my-overlay/my-overlay.component.ts @@ -0,0 +1,91 @@ +import { Overlay, OverlayRef } from "@angular/cdk/overlay"; +import { CdkPortal } from "@angular/cdk/portal"; +import { + Component, + ElementRef, + EventEmitter, + Input, + OnDestroy, + OnInit, + Output, + Renderer2, + ViewChild, +} from "@angular/core"; +import { OverlayServiceService } from "src/app/services/overlay-service.service"; +@Component({ + selector: "app-my-overlay", + templateUrl: "./my-overlay.component.html", + styleUrls: ["./my-overlay.component.css"], +}) +export class MyOverlayComponent implements OnInit, OnDestroy { + @Input() connectedTo: any; + @Input() text: string; + @Input() get id(): number { + return this._id; + } + set id(id: number) { + if (typeof id === "string") { + this._id = parseInt(id); + } else { + this._id = id; + } + } + private _id: number; + @Output() closed = new EventEmitter<any>(); + @ViewChild(CdkPortal) portal: ElementRef; + overlayRef: OverlayRef; + private nativeElement; + + constructor(private overlay: Overlay, private renderer: Renderer2, private overlayService: OverlayServiceService) {} + + ngOnInit() { + this.overlayService.registerOverlay(this); + + if (this.connectedTo.getBoundingClientRect) { + this.nativeElement = this.connectedTo; + } else { + this.nativeElement = this.connectedTo._elementRef.nativeElement; + } + } + + public showOverlay() { + const positionStrategy = this.overlay + .position() + .flexibleConnectedTo(this.nativeElement) + .withPositions([ + { originX: "start", originY: "center", overlayX: "end", overlayY: "center", offsetX: -10 }, + { originX: "end", originY: "center", overlayX: "start", overlayY: "center", offsetX: 10 }, + { originX: "center", originY: "bottom", overlayX: "center", overlayY: "top", offsetY: 10 }, + ]) + .withGrowAfterOpen(); + const scrollStrategy = this.overlay.scrollStrategies.reposition(); + const overlayRef = this.overlay.create({ + positionStrategy, + scrollStrategy, + hasBackdrop: true, + backdropClass: "my-backdrop", + }); + this.overlayRef = overlayRef; + overlayRef.detachments().subscribe(() => { + this.renderer.removeClass(this.nativeElement, "elevate"); + this.renderer.removeAttribute(this.nativeElement, "id"); + }); + overlayRef.attach(this.portal); + this.renderer.addClass(this.nativeElement, "elevate"); + this.renderer.setAttribute(this.nativeElement, "id", "onboarding-active"); + overlayRef.backdropClick().subscribe(() => this.hideOverlay()); + } + + public hideOverlay() { + if (this.overlayRef && this.overlayRef.hasAttached) { + this.overlayService.wasClosed(this._id); + this.overlayRef.dispose(); + this.closed.emit(); + } + } + + ngOnDestroy() { + this.hideOverlay(); + this.overlayService.destroyOverlay(this); + } +} diff --git a/src/app/test/test.component.css b/src/app/components/test/test.component.css similarity index 60% rename from src/app/test/test.component.css rename to src/app/components/test/test.component.css index 597433e7464d8b38b3c4c3a448664a78885cc739..d9ce5779bcc6ac9b51dd2d1b5b8f3fc10d3ed6d0 100644 --- a/src/app/test/test.component.css +++ b/src/app/components/test/test.component.css @@ -1,4 +1,4 @@ .button-row button, .button-row a { - margin-right: 8px; -} \ No newline at end of file + margin-right: 8px; +} diff --git a/src/app/components/test/test.component.html b/src/app/components/test/test.component.html new file mode 100644 index 0000000000000000000000000000000000000000..361fd2cabd3cbed24cd116a3e8b7045b82c72654 --- /dev/null +++ b/src/app/components/test/test.component.html @@ -0,0 +1,36 @@ +<mat-card> + <mat-card-title #title>Onboarding Example</mat-card-title> + <app-my-overlay [connectedTo]="title" text="We can also use it on text." id="4"></app-my-overlay> + <mat-card-content> + Here is an example of a card with actions that should be explained to new users. + </mat-card-content> + <mat-card-actions class="button-row"> + <button mat-flat-button #button1>Basic</button> + <app-my-overlay [connectedTo]="button1" text="Use this button to do basic stuff." id="1"></app-my-overlay> + <button mat-flat-button color="accent" #button2>Link</button> + <app-my-overlay [connectedTo]="button2" text="Use this button to link to stuff." id="2"></app-my-overlay> + and here we have enough space to the left + <button mat-flat-button color="warn" #button3>Delete</button> + <app-my-overlay [connectedTo]="button3" text="Use this button to delete stuff." id="3"></app-my-overlay> + </mat-card-actions> +</mat-card> +<br /><br /> +<button mat-icon-button #button5><mat-icon>delete</mat-icon></button> +<app-my-overlay [connectedTo]="button5" text="Use this button to delete stuff." id="5"></app-my-overlay> + +<div style="background: purple"> + <button mat-icon-button #button6><mat-icon>delete</mat-icon></button> + <app-my-overlay [connectedTo]="button6" text="Use this button to delete stuff." id="6"></app-my-overlay> + + <p #text>Here we have text with background</p> + <app-my-overlay [connectedTo]="text" text="Use this button to delete stuff." id="7"></app-my-overlay> + <br /> +</div> + +<div align="center"> + <button mat-raised-button (click)="restartOnboarding()">Restart Onboarding</button> +</div> + +<!-- Copyright 2018 Google Inc. All Rights Reserved. + Use of this source code is governed by an MIT-style license that + can be found in the LICENSE file at http://angular.io/license --> diff --git a/src/app/test/test.component.spec.ts b/src/app/components/test/test.component.spec.ts similarity index 52% rename from src/app/test/test.component.spec.ts rename to src/app/components/test/test.component.spec.ts index ef4e38cbbb9084ca04360d66327b876d3724c113..a9fbe8d64eb4faca93154db923445545e240c380 100644 --- a/src/app/test/test.component.spec.ts +++ b/src/app/components/test/test.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { TestComponent } from './test.component'; +import { TestComponent } from "./test.component"; -describe('TestComponent', () => { +describe("TestComponent", () => { let component: TestComponent; let fixture: ComponentFixture<TestComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ TestComponent ] - }) - .compileComponents(); + declarations: [TestComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('TestComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/test/test.component.ts b/src/app/components/test/test.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..f094c04f132967c90a8eaf7d82bb84ddb26e4df7 --- /dev/null +++ b/src/app/components/test/test.component.ts @@ -0,0 +1,21 @@ +import { AfterViewInit, Component } from "@angular/core"; +import { OverlayServiceService } from "src/app/services/overlay-service.service"; +@Component({ + selector: "app-test", + templateUrl: "./test.component.html", + styleUrls: ["./test.component.css"], +}) +export class TestComponent implements AfterViewInit { + isActive1 = true; + isActive2 = false; + + constructor(private service: OverlayServiceService) {} + + ngAfterViewInit() { + this.service.showOverlay(1); + } + + restartOnboarding() { + this.service.showOverlay(1); + } +} diff --git a/src/app/trial-component/trial-component.component.css b/src/app/components/trial-component/trial-component.component.css similarity index 100% rename from src/app/trial-component/trial-component.component.css rename to src/app/components/trial-component/trial-component.component.css diff --git a/src/app/trial-component/trial-component.component.html b/src/app/components/trial-component/trial-component.component.html similarity index 97% rename from src/app/trial-component/trial-component.component.html rename to src/app/components/trial-component/trial-component.component.html index 810ca6bb3856bf4d03fd52db497f88d7938ef46c..019c346f57d930157f202dfb9619f5e1edd01322 100644 --- a/src/app/trial-component/trial-component.component.html +++ b/src/app/components/trial-component/trial-component.component.html @@ -4,4 +4,4 @@ <video controls="" *ngIf="url"> <source [src]="sanitize(url)" type="video"> </video> -</div> --> \ No newline at end of file +</div> --> diff --git a/src/app/trial-component/trial-component.component.spec.ts b/src/app/components/trial-component/trial-component.component.spec.ts similarity index 51% rename from src/app/trial-component/trial-component.component.spec.ts rename to src/app/components/trial-component/trial-component.component.spec.ts index e3b317598c7fe15ada095cb098a879aba2dca8f7..59f1fd0faa68adbe2146e5600b8ede144b42a100 100644 --- a/src/app/trial-component/trial-component.component.spec.ts +++ b/src/app/components/trial-component/trial-component.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { TrialComponentComponent } from './trial-component.component'; +import { TrialComponentComponent } from "./trial-component.component"; -describe('TrialComponentComponent', () => { +describe("TrialComponentComponent", () => { let component: TrialComponentComponent; let fixture: ComponentFixture<TrialComponentComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ TrialComponentComponent ] - }) - .compileComponents(); + declarations: [TrialComponentComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('TrialComponentComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/trial-component/trial-component.component.ts b/src/app/components/trial-component/trial-component.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..96acb6ee0cc750619b837186a4807d50f654a8d1 --- /dev/null +++ b/src/app/components/trial-component/trial-component.component.ts @@ -0,0 +1,11 @@ +import { Component, OnInit } from "@angular/core"; +declare var $: any; + +@Component({ + selector: "app-trial-component", + templateUrl: "./trial-component.component.html", + styleUrls: ["./trial-component.component.css"], +}) +export class TrialComponentComponent implements OnInit { + ngOnInit(): void {} +} diff --git a/src/app/components/unpacking-page/unpacking-page.component.css b/src/app/components/unpacking-page/unpacking-page.component.css new file mode 100644 index 0000000000000000000000000000000000000000..5ba7b67bf59769baa72d236a837f1feba77535da --- /dev/null +++ b/src/app/components/unpacking-page/unpacking-page.component.css @@ -0,0 +1,164 @@ +.divClass { + padding-top: 10px; +} + +.example-card { + /* max-height: 700px; */ + /* width: 1000px; */ + /* height: 570px; */ + position: absolute; + top: 55%; + left: 50%; + transform: translate(-50%, -50%); + width: 80%; +} + +::ng-deep .mat-tab-body-content { + max-height: 500px !important; +} + +.table-responsive { + height: 310px; +} + +.div-wrap { + width: 500px; +} + +p { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + font-size: 15px; +} + +h3 { + /* font-family: Georgia, 'Times New Roman', Times, serif; */ + font-family: "Loto", sans-serif; + margin-bottom: 40px; +} + +.mat-card { + background-color: #edf6f9; +} + +.inputField { + width: 100%; +} + +/* Chrome, Safari, Edge, Opera */ + +input::-webkit-outer-spin-button, +input::-webkit-inner-spin-button { + -webkit-appearance: none; + margin: 0; +} + +/* Firefox */ + +input[type="number"] { + -moz-appearance: textfield; +} + +::ng-deep .mat-tab-header { + display: none !important; +} + +p { + text-align: justify; + text-justify: inter-word; +} + +h2 { + /* font-family: 'Loto', sans-serif; */ + font-family: "Loto", sans-serif; +} + +mat-slider { + width: 350px; +} + +.mat-slider-thumb-label { + transform: rotate(45deg) !important; + border-radius: 50% 50% 0 !important; +} + +.mat-slider-thumb { + transform: scale(0) !important; +} + +.mat-slider-thumb-label-text { + opacity: 1 !important; +} + +.advice { + border: none; + background: none; +} + +::ng-deep .mat-checkbox-layout { + white-space: normal !important; +} + +mat-form-field { + width: 100%; + height: 5%; +} + +::ng-deep .mat-form-field-flex > .mat-form-field-infix { + padding: 0.4em 0px !important; +} + +::ng-deep .mat-form-field-label-wrapper { + top: -1.5em; +} + +::ng-deep + .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float + .mat-form-field-label { + transform: translateY(-1.1em) scale(0.75); + width: 133.33333%; + color: black !important; + border: black; +} + +.example-h2 { + margin: 10px; +} + +.example-section { + display: flex; + align-content: center; + align-items: center; + height: 60px; +} + +.example-margin { + margin: 0 10px; +} + +.imgClass { + width: 30px; + height: 30px; +} + +.zoom { + transition: transform 0.2s; + border: none; + background: none; + /* Animation */ + margin: 0 auto; +} + +.zoom:hover { + transform: scale(1.5); + /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ +} + +::ng-deep .mat-tooltip { + font-size: 15px !important; +} + +/* +p { + font-family: 'roboto'; +} */ diff --git a/src/app/components/unpacking-page/unpacking-page.component.html b/src/app/components/unpacking-page/unpacking-page.component.html new file mode 100644 index 0000000000000000000000000000000000000000..68a12228a3d2b3116126275dc41f1a416a1b27e4 --- /dev/null +++ b/src/app/components/unpacking-page/unpacking-page.component.html @@ -0,0 +1,1042 @@ +<div class="divClass"> + <mat-card class="example-card"> + <mat-card-content> + <div style="margin-bottom: 10px; margin-left: -10px"> + <mat-progress-bar + *ngIf="selectedIndex > 0 && selectedIndex < 6" + class="example-margin" + style="width: 100%" + [mode]="mode" + [value]="selectedIndex * 20" + [bufferValue]="bufferValue" + > + </mat-progress-bar> + </div> + + <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px"> + <mat-tab label="Second"> + <h2> + Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority + U.S. PreK-12 Schools + </h2> + <p style="font-size: 24px"> + <span style="font-weight: bold">Directions: </span> In the upcoming activity, you will engage with 30 + vignettes situated in five categories that illustrate culturally proficient interactions that have taken + place in U.S. public schools. Your task is to assign a level of reaction using numbers 1 - 6 to each + vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the + highest level of reaction from you, 5 to the vignette that evokes the next highest level of reaction from + you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction + from you. + </p> + <p style="font-size: 20px"> + <span style="font-weight: bold"> Note: </span> There are no correct or wrong ways to react to vignettes; + your level of reaction (negative or positive) is unique to you. If you need to see the directions after + beginning the Q-Sort, click the + <span style="color: #4050b5" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand + corner. + </p> + </mat-tab> + <mat-tab label="Third"> + <button class="advice" (click)="openWordDialog('Attitude')"> + <span + ><h2><u>Attitude</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Attitude')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Attitude" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv>{{ attitude["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv1>{{ attitude["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv2>{{ attitude["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv3>{{ attitude["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv4>{{ attitude["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv5>{{ attitude["question6"] }}</p> + </div> + </div> + </form> + + <p style="margin-top: 20px; font-size: 15px"> + The singular pronouns: “their†or “they†are used as gender-neutral pronouns. + </p> + </mat-tab> + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Empathy')"> + <span + ><h2><u>Empathy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Empathy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Empathy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv6>{{ empathy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv7>{{ empathy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv8>{{ empathy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv9>{{ empathy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv10>{{ empathy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv11>{{ empathy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fourth"> + <button class="advice" (click)="openWordDialog('Policy')"> + <span + ><h2><u>Policy</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Policy')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Policy" and respond to the prompt. + </p> + + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="A" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv12>{{ policy["question1"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="B" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv13>{{ policy["question2"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="C" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv14>{{ policy["question3"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="D" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv15>{{ policy["question4"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="E" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv16>{{ policy["question5"] }}</p> + </div> + </div> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + formControlName="F" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv17>{{ policy["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Fifth"> + <button class="advice" (click)="openWordDialog('Professionalism')"> + <span + ><h2><u>Professionalism</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Professionalism')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Professionalism" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv18>{{ professionalism["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv19>{{ professionalism["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv20>{{ professionalism["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv21>{{ professionalism["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv22>{{ professionalism["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv23>{{ professionalism["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + + <mat-tab label="Sixth"> + <button class="advice" (click)="openWordDialog('Teaching Practice')"> + <span + ><h2><u>Teaching Practice</u></h2></span + > + </button> + <button + style="float: right" + mat-icon-button + color="primary" + aria-label="Example icon button with a delete icon" + (click)="helpDialog('Teaching Practice')" + > + <mat-icon>info</mat-icon> + </button> + <p style="color: #4050b5"> + *Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number + only once. Click on the word "Teaching Practice" and respond to the prompt. + </p> + <form [formGroup]="attitudeForm"> + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="A" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv24>{{ teachingPractice["question1"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="B" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv25>{{ teachingPractice["question2"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="C" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv26>{{ teachingPractice["question3"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="D" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv27>{{ teachingPractice["question4"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="E" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv28>{{ teachingPractice["question5"] }}</p> + </div> + </div> + + <div class="row"> + <div class="col-1"> + <mat-form-field appearance="outline"> + <input + formControlName="F" + onKeyPress="if(this.value.length==1) return false;" + type="number" + matInput + placeholder="" + required + /> + </mat-form-field> + </div> + + <div class="col-11"> + <p #changeDiv29>{{ teachingPractice["question6"] }}</p> + </div> + </div> + </form> + </mat-tab> + <mat-tab label="Seventh"> + <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions</h2> + <p> + <span + ><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the + vignette and the corresponding culturally proficient interaction. Above each column is a link to the + definition for each culturally proficient interaction; review the definitions before unpacking your + reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can + also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. + </span> + </p> + <div class="table-responsive"> + <table class="table"> + <thead class="thead-dark" style="font-size: 15px"> + <tr> + <th></th> + <th + matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). " + > + Cultural Destructiveness + </th> + <th + matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] " + > + Cultural Incapacity + </th> + <th + matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] " + > + Cultural Blindness + </th> + <th + matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context " + > + Cultural Pre-Competence + </th> + <th + matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context " + > + Cultural Competence + </th> + <th + matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality " + > + Cultural Proficiency + </th> + </tr> + </thead> + <tbody *ngFor="let row of responsesArray; let i = index"> + <tr> + <td>{{ row[7] }}</td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[0][1] == 'colorbold'" + (click)="openDialog(i, 0, row[6])" + > + {{ row[0][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i, 0, row[6])"> + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] == 'nobold'"> + {{ row[0][0] }} + </td> + <td *ngIf="row[0][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[0][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[1][1] == 'colorbold'" + (click)="openDialog(i, 1, row[6])" + > + {{ row[1][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i, 1, row[6])"> + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] == 'nobold'"> + {{ row[1][0] }} + </td> + <td *ngIf="row[1][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[1][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[2][1] == 'colorbold'" + (click)="openDialog(i, 2, row[6])" + > + {{ row[2][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i, 2, row[6])"> + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] == 'nobold'"> + {{ row[2][0] }} + </td> + <td *ngIf="row[2][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[2][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[3][1] == 'colorbold'" + (click)="openDialog(i, 3, row[6])" + > + {{ row[3][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i, 3, row[6])"> + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] == 'nobold'"> + {{ row[3][0] }} + </td> + <td *ngIf="row[3][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[3][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[4][1] == 'colorbold'" + (click)="openDialog(i, 4, row[6])" + > + {{ row[4][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i, 4, row[6])"> + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] == 'nobold'"> + {{ row[4][0] }} + </td> + <td *ngIf="row[4][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[4][0] }} + </td> + + <td + style="font-weight: bold; background-color: #face70" + *ngIf="row[5][1] == 'colorbold'" + (click)="openDialog(i, 5, row[6])" + > + {{ row[5][0] }} + </td> + <td style="font-weight: bold" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i, 5, row[6])"> + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] == 'nobold'"> + {{ row[5][0] }} + </td> + <td *ngIf="row[5][1] == 'greencolorbold'" style="font-weight: bold; background-color: #2a9d8f"> + {{ row[5][0] }} + </td> + </tr> + </tbody> + </table> + </div> + </mat-tab> + <mat-tab> + <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections</h2> + <p>Directions: Read and respond to each question below.</p> + <div [formGroup]="finalFeedbackForm" class="questions"> + <p>1. What are your overall impressions of this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q1" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">2. Were there any challenges that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q2" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px">3. Were there any feelings that came up while completing this activity?</p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q3" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different + types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and + cultural backgrounds? + </p> + <mat-form-field appearance="outline" class="col-lg-12"> + <mat-label>Explain</mat-label> + <input formControlName="q4" type="text" matInput placeholder="" required /> + </mat-form-field> + + <p style="margin-top: 15px"> + 5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place + yourself on the Cultural Proficiency Continuum? + </p> + <mat-radio-group formControlName="q5" class="example-radio-group"> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="male">Cultural Destructiveness </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="female">Cultural Incapacity </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other">Cultural Blindness </mat-radio-button> + </div> + </div> + <div class="row"> + <div class="col-4"> + <mat-radio-button value="other1">Cultural Pre-Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other2">Cultural Competence </mat-radio-button> + </div> + <div class="col-4"> + <mat-radio-button value="other3">Cultural Proficiency </mat-radio-button> + </div> + </div> + </mat-radio-group> + + <p style="margin-top: 15px">6. How would you rate the design of our website?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('angry')"> + <img id="angry" class="imgClass" src="../../assets/angry.png" /> + </button> + <p>Very poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('sad')"> + <img id="sad" class="imgClass" src="../../assets/sad.png" /> + </button> + <p>Poor</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('neutral')"> + <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> + </button> + <p style="text-align: justify">Fair</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('smile')"> + <img id="smile" class="imgClass" src="../../assets/smile.png" /> + </button> + <p>Good</p> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeEmojiSize('heart')"> + <img id="heart" class="imgClass" src="../../assets/heart.webp" /> + </button> + <p>Excellent</p> + </div> + </div> + + <br /> + <p style="margin-top: 15px">7. Was our website easy to use and understand?</p> + <div class="row"> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsup')"> + <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png" /> + </button> + </div> + <div class="col-1"> + <button class="zoom" (click)="changeThumbsSize('thumbsdown')"> + <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png" /> + </button> + </div> + </div> + </div> + </mat-tab> + </mat-tab-group> + </mat-card-content> + + <mat-card-actions> + <div class="row"> + <div class="col-8"> + <button + *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex != 7" + mat-raised-button + color="primary" + style="padding-right: -10px" + (click)="nextButton()" + > + NEXT + <mat-icon>arrow_right_al</mat-icon> + </button> + + <button + *ngIf="selectedIndex == 5" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 6" + mat-raised-button + style="padding-right: -10px; background-color: green; color: white" + (click)="submitForm1()" + > + SUBMIT + <mat-icon>done_outline</mat-icon> + </button> + <button + *ngIf="selectedIndex == 7" + mat-raised-button + style="padding-right: -10px; background-color: #29abe2; color: white; margin-top: -100px" + (click)="finalSubmit()" + > + Go to Dashboard + </button> + </div> + <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> + <p style="font-size: 10px; margin: -10px; margin-left: 20px"> + Use this bar to increase or decrease the font size + </p> + <mat-slider + color="primary" + min="0" + max="4" + value="1" + tickInterval="1" + (input)="sliderFunction($event)" + ></mat-slider> + </div> + </div> + </mat-card-actions> + </mat-card> +</div> diff --git a/src/app/unpacking-page/unpacking-page.component.spec.ts b/src/app/components/unpacking-page/unpacking-page.component.spec.ts similarity index 51% rename from src/app/unpacking-page/unpacking-page.component.spec.ts rename to src/app/components/unpacking-page/unpacking-page.component.spec.ts index cf7e2f943db55f011d3caf952b2c5a5a93c0c780..9a8302ea0eb63fed60b0d4c3ab42c13b711d1c8a 100644 --- a/src/app/unpacking-page/unpacking-page.component.spec.ts +++ b/src/app/components/unpacking-page/unpacking-page.component.spec.ts @@ -1,16 +1,15 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; +import { ComponentFixture, TestBed, waitForAsync } from "@angular/core/testing"; -import { UnpackingPageComponent } from './unpacking-page.component'; +import { UnpackingPageComponent } from "./unpacking-page.component"; -describe('UnpackingPageComponent', () => { +describe("UnpackingPageComponent", () => { let component: UnpackingPageComponent; let fixture: ComponentFixture<UnpackingPageComponent>; - beforeEach(async(() => { + beforeEach(waitForAsync(() => { TestBed.configureTestingModule({ - declarations: [ UnpackingPageComponent ] - }) - .compileComponents(); + declarations: [UnpackingPageComponent], + }).compileComponents(); })); beforeEach(() => { @@ -19,7 +18,7 @@ describe('UnpackingPageComponent', () => { fixture.detectChanges(); }); - it('should create', () => { + it("should create", () => { expect(component).toBeTruthy(); }); }); diff --git a/src/app/components/unpacking-page/unpacking-page.component.ts b/src/app/components/unpacking-page/unpacking-page.component.ts new file mode 100644 index 0000000000000000000000000000000000000000..a5c16fd9f52bea748bc7ff175bb9495c79b1d13a --- /dev/null +++ b/src/app/components/unpacking-page/unpacking-page.component.ts @@ -0,0 +1,1158 @@ +import { AfterViewInit, Component, ElementRef, OnInit, ViewChild } from "@angular/core"; +import { UntypedFormBuilder, UntypedFormGroup, Validators } from "@angular/forms"; +import { ThemePalette } from "@angular/material/core"; +import { MatDialog } from "@angular/material/dialog"; +import { ProgressBarMode } from "@angular/material/progress-bar"; +import { DomSanitizer } from "@angular/platform-browser"; +import { Router } from "@angular/router"; +import * as RecordRTC from "recordrtc"; +import { FirstForm } from "src/app/services/firstForm.service"; +import Swal from "sweetalert2"; +import { DialogFormComponent } from "../cpcq-form/dialog-form/dialog-form.component"; +declare var $: any; + +import { CPCQService } from "src/app/services/cpcq.service"; + +export interface DialogData { + animal: "panda" | "unicorn" | "lion"; + status; + result; +} +@Component({ + selector: "app-unpacking-page", + templateUrl: "./unpacking-page.component.html", + styleUrls: ["./unpacking-page.component.css"], +}) +export class UnpackingPageComponent implements OnInit, AfterViewInit { + firstForm: UntypedFormGroup; + responseList: any; + loaded = false; + + questionArray = [ + ["Enter First Name", "text"], + ["Enter Last Name", "text"], + ["Enter Age", "number"], + ]; + statusCheck = false; + buttonClick = false; + + sliderValue = 0; + + selectedIndex = 6; + + color: ThemePalette = "primary"; + mode: ProgressBarMode = "buffer"; + value1 = 50; + bufferValue = 100; + + formValues = []; + attributes = ["Attitude", "Empathy", "Policy", "Professionalism", "Teaching Practice"]; + columnHeadings = [ + "culturalDestructivenessresponse", + "culturalIncapacityresponse", + "culturalBlindnessresponse", + "culturalPreCompetenceresponse", + "culturalCompetenceresponse", + "culturalProficiencyresponse", + ]; + rowLetters = [ + ["D", "C", "B", "A", "F", "E"], + ["E", "A", "F", "D", "B", "C"], + ["F", "E", "B", "C", "D", "A"], + ["E", "A", "B", "D", "C", "F"], + ["D", "C", "B", "E", "A", "F"], + ]; + boldList = [[]]; + randomList = [[]]; + finalList = [[]]; + finalList1 = []; + attitudeForm: UntypedFormGroup; + empathyForm: UntypedFormGroup; + policyForm: UntypedFormGroup; + + finalFeedbackForm: UntypedFormGroup; + + attitude: any; + empathy: any; + policy: any; + professionalism: any; + teachingPractice: any; + wordDescription: any; + unpackedCount = 0; + + startTime: any; + endTime: any; + durationTime: any; + + @ViewChild("changeDiv") changeDiv: ElementRef; + @ViewChild("changeDiv1") changeDiv1: ElementRef; + @ViewChild("changeDiv2") changeDiv2: ElementRef; + @ViewChild("changeDiv3") changeDiv3: ElementRef; + @ViewChild("changeDiv4") changeDiv4: ElementRef; + @ViewChild("changeDiv5") changeDiv5: ElementRef; + @ViewChild("changeDiv6") changeDiv6: ElementRef; + @ViewChild("changeDiv7") changeDiv7: ElementRef; + @ViewChild("changeDiv8") changeDiv8: ElementRef; + @ViewChild("changeDiv9") changeDiv9: ElementRef; + @ViewChild("changeDiv10") changeDiv10: ElementRef; + @ViewChild("changeDiv11") changeDiv11: ElementRef; + @ViewChild("changeDiv12") changeDiv12: ElementRef; + @ViewChild("changeDiv13") changeDiv13: ElementRef; + @ViewChild("changeDiv14") changeDiv14: ElementRef; + @ViewChild("changeDiv15") changeDiv15: ElementRef; + @ViewChild("changeDiv16") changeDiv16: ElementRef; + @ViewChild("changeDiv17") changeDiv17: ElementRef; + @ViewChild("changeDiv18") changeDiv18: ElementRef; + @ViewChild("changeDiv19") changeDiv19: ElementRef; + @ViewChild("changeDiv20") changeDiv20: ElementRef; + @ViewChild("changeDiv21") changeDiv21: ElementRef; + @ViewChild("changeDiv22") changeDiv22: ElementRef; + @ViewChild("changeDiv23") changeDiv23: ElementRef; + @ViewChild("changeDiv24") changeDiv24: ElementRef; + @ViewChild("changeDiv25") changeDiv25: ElementRef; + @ViewChild("changeDiv26") changeDiv26: ElementRef; + @ViewChild("changeDiv27") changeDiv27: ElementRef; + @ViewChild("changeDiv28") changeDiv28: ElementRef; + @ViewChild("changeDiv29") changeDiv29: ElementRef; + + ngAfterViewInit() {} + + sliderFunction1() { + if (this.sliderValue == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (this.sliderValue == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (this.sliderValue == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (this.sliderValue == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (this.sliderValue == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + sliderFunction(e) { + this.sliderValue = e.value; + if (e.value == 1) { + this.changeDiv.nativeElement.style.fontSize = "15px"; + this.changeDiv1.nativeElement.style.fontSize = "15px"; + this.changeDiv2.nativeElement.style.fontSize = "15px"; + this.changeDiv3.nativeElement.style.fontSize = "15px"; + this.changeDiv4.nativeElement.style.fontSize = "15px"; + this.changeDiv5.nativeElement.style.fontSize = "15px"; + this.changeDiv6.nativeElement.style.fontSize = "15px"; + this.changeDiv7.nativeElement.style.fontSize = "15px"; + this.changeDiv8.nativeElement.style.fontSize = "15px"; + this.changeDiv9.nativeElement.style.fontSize = "15px"; + this.changeDiv10.nativeElement.style.fontSize = "15px"; + this.changeDiv11.nativeElement.style.fontSize = "15px"; + this.changeDiv12.nativeElement.style.fontSize = "15px"; + this.changeDiv13.nativeElement.style.fontSize = "15px"; + this.changeDiv14.nativeElement.style.fontSize = "15px"; + this.changeDiv15.nativeElement.style.fontSize = "15px"; + this.changeDiv16.nativeElement.style.fontSize = "15px"; + this.changeDiv17.nativeElement.style.fontSize = "15px"; + this.changeDiv18.nativeElement.style.fontSize = "15px"; + this.changeDiv19.nativeElement.style.fontSize = "15px"; + this.changeDiv20.nativeElement.style.fontSize = "15px"; + this.changeDiv21.nativeElement.style.fontSize = "15px"; + this.changeDiv22.nativeElement.style.fontSize = "15px"; + this.changeDiv23.nativeElement.style.fontSize = "15px"; + this.changeDiv24.nativeElement.style.fontSize = "15px"; + this.changeDiv25.nativeElement.style.fontSize = "15px"; + this.changeDiv26.nativeElement.style.fontSize = "15px"; + this.changeDiv27.nativeElement.style.fontSize = "15px"; + this.changeDiv28.nativeElement.style.fontSize = "15px"; + this.changeDiv29.nativeElement.style.fontSize = "15px"; + } else if (e.value == 2) { + this.changeDiv.nativeElement.style.fontSize = "20px"; + this.changeDiv1.nativeElement.style.fontSize = "20px"; + this.changeDiv2.nativeElement.style.fontSize = "20px"; + this.changeDiv3.nativeElement.style.fontSize = "20px"; + this.changeDiv4.nativeElement.style.fontSize = "20px"; + this.changeDiv5.nativeElement.style.fontSize = "20px"; + this.changeDiv6.nativeElement.style.fontSize = "20px"; + this.changeDiv7.nativeElement.style.fontSize = "20px"; + this.changeDiv8.nativeElement.style.fontSize = "20px"; + this.changeDiv9.nativeElement.style.fontSize = "20px"; + this.changeDiv10.nativeElement.style.fontSize = "20px"; + this.changeDiv11.nativeElement.style.fontSize = "20px"; + this.changeDiv12.nativeElement.style.fontSize = "20px"; + this.changeDiv13.nativeElement.style.fontSize = "20px"; + this.changeDiv14.nativeElement.style.fontSize = "20px"; + this.changeDiv15.nativeElement.style.fontSize = "20px"; + this.changeDiv16.nativeElement.style.fontSize = "20px"; + this.changeDiv17.nativeElement.style.fontSize = "20px"; + this.changeDiv18.nativeElement.style.fontSize = "20px"; + this.changeDiv19.nativeElement.style.fontSize = "20px"; + this.changeDiv20.nativeElement.style.fontSize = "20px"; + this.changeDiv21.nativeElement.style.fontSize = "20px"; + this.changeDiv22.nativeElement.style.fontSize = "20px"; + this.changeDiv23.nativeElement.style.fontSize = "20px"; + this.changeDiv24.nativeElement.style.fontSize = "20px"; + this.changeDiv25.nativeElement.style.fontSize = "20px"; + this.changeDiv26.nativeElement.style.fontSize = "20px"; + this.changeDiv27.nativeElement.style.fontSize = "20px"; + this.changeDiv28.nativeElement.style.fontSize = "20px"; + this.changeDiv29.nativeElement.style.fontSize = "20px"; + } else if (e.value == 3) { + this.changeDiv.nativeElement.style.fontSize = "22px"; + this.changeDiv1.nativeElement.style.fontSize = "22px"; + this.changeDiv2.nativeElement.style.fontSize = "22px"; + this.changeDiv3.nativeElement.style.fontSize = "22px"; + this.changeDiv4.nativeElement.style.fontSize = "22px"; + this.changeDiv5.nativeElement.style.fontSize = "22px"; + this.changeDiv6.nativeElement.style.fontSize = "22px"; + this.changeDiv7.nativeElement.style.fontSize = "22px"; + this.changeDiv8.nativeElement.style.fontSize = "22px"; + this.changeDiv9.nativeElement.style.fontSize = "22px"; + this.changeDiv10.nativeElement.style.fontSize = "22px"; + this.changeDiv11.nativeElement.style.fontSize = "22px"; + this.changeDiv12.nativeElement.style.fontSize = "22px"; + this.changeDiv13.nativeElement.style.fontSize = "22px"; + this.changeDiv14.nativeElement.style.fontSize = "22px"; + this.changeDiv15.nativeElement.style.fontSize = "22px"; + this.changeDiv16.nativeElement.style.fontSize = "22px"; + this.changeDiv17.nativeElement.style.fontSize = "22px"; + this.changeDiv18.nativeElement.style.fontSize = "22px"; + this.changeDiv19.nativeElement.style.fontSize = "22px"; + this.changeDiv20.nativeElement.style.fontSize = "22px"; + this.changeDiv21.nativeElement.style.fontSize = "22px"; + this.changeDiv22.nativeElement.style.fontSize = "22px"; + this.changeDiv23.nativeElement.style.fontSize = "22px"; + this.changeDiv24.nativeElement.style.fontSize = "22px"; + this.changeDiv25.nativeElement.style.fontSize = "22px"; + this.changeDiv26.nativeElement.style.fontSize = "22px"; + this.changeDiv27.nativeElement.style.fontSize = "22px"; + this.changeDiv28.nativeElement.style.fontSize = "22px"; + this.changeDiv29.nativeElement.style.fontSize = "22px"; + } else if (e.value == 4) { + this.changeDiv.nativeElement.style.fontSize = "25px"; + this.changeDiv1.nativeElement.style.fontSize = "25px"; + this.changeDiv2.nativeElement.style.fontSize = "25px"; + this.changeDiv3.nativeElement.style.fontSize = "25px"; + this.changeDiv4.nativeElement.style.fontSize = "25px"; + this.changeDiv5.nativeElement.style.fontSize = "25px"; + this.changeDiv6.nativeElement.style.fontSize = "25px"; + this.changeDiv7.nativeElement.style.fontSize = "25px"; + this.changeDiv8.nativeElement.style.fontSize = "25px"; + this.changeDiv9.nativeElement.style.fontSize = "25px"; + this.changeDiv10.nativeElement.style.fontSize = "25px"; + this.changeDiv11.nativeElement.style.fontSize = "25px"; + this.changeDiv12.nativeElement.style.fontSize = "25px"; + this.changeDiv13.nativeElement.style.fontSize = "25px"; + this.changeDiv14.nativeElement.style.fontSize = "25px"; + this.changeDiv15.nativeElement.style.fontSize = "25px"; + this.changeDiv16.nativeElement.style.fontSize = "25px"; + this.changeDiv17.nativeElement.style.fontSize = "25px"; + this.changeDiv18.nativeElement.style.fontSize = "25px"; + this.changeDiv19.nativeElement.style.fontSize = "25px"; + this.changeDiv20.nativeElement.style.fontSize = "25px"; + this.changeDiv21.nativeElement.style.fontSize = "25px"; + this.changeDiv22.nativeElement.style.fontSize = "25px"; + this.changeDiv23.nativeElement.style.fontSize = "25px"; + this.changeDiv24.nativeElement.style.fontSize = "25px"; + this.changeDiv25.nativeElement.style.fontSize = "25px"; + this.changeDiv26.nativeElement.style.fontSize = "25px"; + this.changeDiv27.nativeElement.style.fontSize = "25px"; + this.changeDiv28.nativeElement.style.fontSize = "25px"; + this.changeDiv29.nativeElement.style.fontSize = "25px"; + } else if (e.value == 5) { + this.changeDiv.nativeElement.style.fontSize = "50px"; + this.changeDiv1.nativeElement.style.fontSize = "50px"; + this.changeDiv2.nativeElement.style.fontSize = "50px"; + this.changeDiv3.nativeElement.style.fontSize = "50px"; + this.changeDiv4.nativeElement.style.fontSize = "50px"; + this.changeDiv5.nativeElement.style.fontSize = "50px"; + } + } + constructor( + private fb: UntypedFormBuilder, + private apiService: CPCQService, + private router: Router, + private formService: FirstForm, + private domSanitizer: DomSanitizer, + public dialog: MatDialog + ) {} + openDialog(i, j, id) { + var arr = []; + arr.push(this.attributes[i]); + arr.push(j); + arr.push(this.columnHeadings[j]); + arr.push(id); + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: arr, + status: "form", + }, + disableClose: true, + }); + dialogRef.afterClosed().subscribe((result) => { + if (this.responsesArray[i][j][1] == "colorbold") { + this.unpackedCount = this.unpackedCount + 1; + this.responsesArray[i][j][1] = "greencolorbold"; + } + }); + } + + openWordDialog(i) { + // + this.buttonClick = true; + const dialogRef = this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "word", + }, + disableClose: true, + }); + + dialogRef.afterClosed().subscribe((result) => { + this.wordDescription = result; + }); + } + + helpDialog(i) { + // + this.dialog.open(DialogFormComponent, { + data: { + animal: i, + status: "help", + }, + }); + } + + keyPressFunc(e) { + // + var numbersList = ["1"]; + for (let key in this.attitudeForm.value) { + if (numbersList.indexOf(this.attitudeForm.value[key]) == -1) { + // + return "Number"; + } + } + } + + getEmailError() { + return "Error"; + } + responsesArray = []; + responsesCount = 0; + temp = []; + getResponses() { + this.apiService.getResponsesData().subscribe((res) => { + for (let key in res) { + this.temp = []; + for (let key1 in res[key]) { + if (res[key][key1] == "colorbold") { + this.responsesCount = this.responsesCount + 1; + } + if (res[key][key1][1] == "greencolorbold") { + this.unpackedCount = this.unpackedCount + 1; + console.log(this.unpackedCount); + } + + this.temp.push(res[key][key1]); + } + this.responsesArray.push(this.temp); + } + }); + } + + getForm() { + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + var attitudeResult = []; + var empathyResult = []; + var policyResult = []; + var profResult = []; + var teachingResult = []; + this.finalList = [[]]; + this.boldList = [[]]; + this.apiService.getFormData().subscribe((res) => { + for (let key in res) { + arr = []; + if (res[key]["topic"] == "Attitude") { + attitudeResult.push("Attitude"); + arr.push("Attitude"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Empathy") { + empathyResult.push("Empathy"); + arr.push("Empathy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Policy") { + policyResult.push("Policy"); + arr.push("Policy"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Professionalism") { + profResult.push("Professionalism"); + arr.push("Professionalism"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + + profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } else if (res[key]["topic"] == "Teaching Practice") { + arr.push("Teaching Pracice"); + arr.push(res[key]["culturalDestructiveness"]); + arr.push(res[key]["culturalIncapacity"]); + arr.push(res[key]["culturalBlindness"]); + arr.push(res[key]["culturalPreCompetence"]); + arr.push(res[key]["culturalCompetence"]); + arr.push(res[key]["culturalProficiency"]); + teachingResult.push("Teaching Practice"); + teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1]) - 4) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1]) - 5) >= 2 ? 1 : 0); + teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1]) - 6) >= 2 ? 1 : 0); + } + + this.boldList.push(arr); + } + this.finalList.push(attitudeResult); + this.finalList.push(empathyResult); + this.finalList.push(policyResult); + this.finalList.push(profResult); + this.finalList.push(teachingResult); + }); + this.finalList.splice(0, 1); + this.boldList.splice(0, 1); + // this.getAllIndexes(this.finalList,1) + } + + emoji: any; + changeEmojiSize(data) { + document.getElementById("angry").style.height = "30px"; + document.getElementById("angry").style.width = "30px"; + document.getElementById("sad").style.height = "30px"; + document.getElementById("sad").style.width = "30px"; + document.getElementById("neutral").style.height = "30px"; + document.getElementById("neutral").style.width = "30px"; + document.getElementById("smile").style.height = "30px"; + document.getElementById("smile").style.width = "30px"; + document.getElementById("heart").style.height = "30px"; + document.getElementById("heart").style.width = "30px"; + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + + this.emoji = data; + } + + thumbs: any; + changeThumbsSize(data) { + document.getElementById("thumbsup").style.height = "30px"; + document.getElementById("thumbsup").style.width = "30px"; + document.getElementById("thumbsdown").style.height = "30px"; + document.getElementById("thumbsdown").style.width = "30px"; + + document.getElementById(data).style.height = "50px"; + document.getElementById(data).style.width = "50px"; + this.thumbs = data; + } + finalSubmit() { + this.finalFeedbackForm.value["q6"] = this.thumbs; + this.finalFeedbackForm.value["q7"] = this.emoji; + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => {}); + + this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe( + (res) => { + this.apiService.changeCPCQStatus().subscribe((res1) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + this.router.navigateByUrl("/result"); + } + }); + }); + }, + (err) => {} + ); + } + ngOnInit(): void { + this.getResponses(); + this.startTime = new Date(); + this.finalFeedbackForm = this.fb.group({ + q1: [""], + q2: [""], + q3: [""], + q4: [""], + q5: [""], + q6: [""], + q7: [""], + }); + + this.apiService.attitudeData().subscribe( + (res) => { + // + this.attitude = res[0]; + // + }, + (err) => {} + ); + + this.apiService.empathyData().subscribe( + (res) => { + // + this.empathy = res[0]; + // + }, + (err) => {} + ); + + this.apiService.policyData().subscribe( + (res) => { + this.policy = res[0]; + }, + (err) => {} + ); + + this.apiService.professionalismData().subscribe( + (res) => { + this.professionalism = res[0]; + }, + (err) => {} + ); + + this.apiService.teachingData().subscribe( + (res) => { + this.teachingPractice = res[0]; + }, + (err) => {} + ); + + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + description: ["", [Validators.required]], + }); + + this.empathyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + this.policyForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + + var arr = []; + var arr1 = []; + var arr2 = []; + var i; + for (var j = 0; j < 5; j++) { + arr = []; + arr1 = []; + arr2 = []; + i = 0; + while (i < 6) { + var item1 = Math.floor(Math.random() * (7 - 1) + 1); + if (arr1.indexOf(item1) == -1) { + if (i == 0) { + arr.push(this.attributes[j]); + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (arr1[arr1.length - 1] > 2) { + // + arr2.push("True"); + } else { + arr2.push("False"); + } + } else { + arr.push(this.rowLetters[j][i] + ". " + item1); + arr1.push(item1); + if (i == 1) { + if (arr1[arr1.length - 1] > 3) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 2) { + if (arr1[arr1.length - 1] > 4 || arr1[arr1.length - 1] == 1) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 3) { + if (arr1[arr1.length - 1] > 5 || arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 4) { + if (arr1[arr1.length - 1] < 4) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } else if (i == 5) { + if (arr1[arr1.length - 1] < 5) { + arr2.push("True"); + } else { + arr2.push("False"); + } + } + } + i = i + 1; + } else { + continue; + } + } + this.formValues.push(arr); + this.boldList.push(arr1); + this.randomList.push(arr2); + } + this.boldList.splice(0, 1); + this.randomList.splice(0, 1); + + this.getAllIndexes(this.randomList, "True"); + this.loaded = true; + } + + getAllIndexes(arr, val) { + var indexes = []; + var i = -1; + for (var i = 0; i < arr.length; i++) { + for (var j = 0; j < arr[i].length; j++) { + if (arr[i][j] == "True") { + var arr1 = []; + arr1.push(i); + arr1.push(j); + indexes.push(arr1); + } + } + } + + var arr1 = []; + for (var i = 0; i < indexes.length; i++) { + arr1.push(i); + } + var ranNums = []; + var i = arr1.length; + var j = 0; + var count = 0; + while (i--) { + if (count < 5) { + j = Math.floor(Math.random() * (i + 1)); + ranNums.push(arr1[j]); + arr1.splice(j, 1); + count = count + 1; + } else { + break; + } + } + + // + for (var i = 0; i < this.boldList.length; i++) { + var temp = []; + for (var j = 0; j < 6; j++) { + temp.push("False"); + } + this.finalList1.push(temp); + } + + for (var i = 0; i < ranNums.length; i++) { + var item = indexes[ranNums[i]]; + + this.finalList1[item[0]][item[1]] = "True"; + } + // this.finalList1.splice(0,1) + } + preSurvey() { + this.router.navigateByUrl("/preSurvey"); + } + + nextButton() { + if (this.selectedIndex == 0) { + this.selectedIndex = this.selectedIndex + 1; + return; + } + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/dashboard"); + return; + } + + var numberList = []; + var flag = true; + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = false; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = false; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = false; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (flag) { + if (this.selectedIndex == 7) { + this.router.navigateByUrl("/postSurvey"); + } + this.sliderFunction1(); + var formData = {}; + formData["topic"] = this.attributes[this.selectedIndex - 1]; + if (this.attributes[this.selectedIndex - 1] == "Attitude") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalCompetence"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalProficiency"] = "E. " + this.attitudeForm.value["E"]; + } else if (this.attributes[this.selectedIndex - 1] == "Empathy") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalProficiency"] = "C. " + this.attitudeForm.value["C"]; + } else if (this.attributes[this.selectedIndex - 1] == "Policy") { + formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value["F"]; + formData["culturalIncapacity"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalProficiency"] = "A. " + this.attitudeForm.value["A"]; + } else if (this.attributes[this.selectedIndex - 1] == "Professionalism") { + formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalIncapacity"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalCompetence"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } else if (this.attributes[this.selectedIndex - 1] == "Teaching Practice") { + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + } + + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["description"] = this.wordDescription; + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + }, + (err) => {} + ); + // this.getForm(); + this.selectedIndex = this.selectedIndex + 1; + this.buttonClick = false; + this.startTime = new Date(); + this.attitudeForm = this.fb.group({ + A: ["", [Validators.minLength(1), Validators.maxLength(1)]], + B: ["", [Validators.minLength(1), Validators.maxLength(1)]], + C: ["", [Validators.minLength(1), Validators.maxLength(1)]], + D: ["", [Validators.minLength(1), Validators.maxLength(1)]], + E: ["", [Validators.minLength(1), Validators.maxLength(1)]], + F: ["", [Validators.minLength(1), Validators.maxLength(1)]], + }); + } + } + + postSurvey() { + this.router.navigateByUrl("/postSurvey"); + } + + submitForm1() { + if (this.unpackedCount >= 5) { + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + this.apiService.patchStatus("cpcqstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + // this.selectedIndex = this.selectedIndex + 1; + this.router.navigateByUrl("/finalFeedback"); + } + }); + }); + } else { + Swal.fire({ + text: "Please click on all the yellow boxes and answer the questions in the prompt.", + icon: "warning", + }).then((res) => {}); + } + } + + submitForm() { + if (this.selectedIndex >= this.responsesCount) { + var numberList = []; + var flag = false; + + for (let key in this.attitudeForm.value) { + if ((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && key != "description") { + flag = true; + Swal.fire({ + text: "Please enter values from 1 through 6 only.", + icon: "warning", + }).then((res) => {}); + break; + } + if (numberList.indexOf(this.attitudeForm.value[key]) == -1) { + numberList.push(this.attitudeForm.value[key]); + } else { + flag = true; + Swal.fire({ + text: "The inputs have been repeated. Please enter values from 1 through 6.", + icon: "warning", + }).then((res) => {}); + break; + } + } + if (!this.buttonClick) { + flag = true; + Swal.fire({ + text: "Click on the word '" + this.attributes[this.selectedIndex - 1] + "' and respond to the prompt.", + icon: "warning", + }).then((res) => {}); + } + if (!flag) { + // + var formData = {}; + + formData["topic"] = this.attributes[this.selectedIndex - 1]; + formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value["D"]; + formData["culturalIncapacity"] = "C. " + this.attitudeForm.value["C"]; + formData["culturalBlindness"] = "B. " + this.attitudeForm.value["B"]; + formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value["E"]; + formData["culturalCompetence"] = "A. " + this.attitudeForm.value["A"]; + formData["culturalProficiency"] = "F. " + this.attitudeForm.value["F"]; + + formData["description"] = this.wordDescription; + this.endTime = new Date(); + + this.durationTime = (this.endTime - this.startTime) / 1000; + this.durationTime = this.durationTime / 60; + + formData["duration"] = this.durationTime; + this.apiService.postFormData(formData).subscribe( + (res) => { + // + this.apiService.patchStatus("responsesstatus").subscribe((res) => { + Swal.fire({ + text: "Submitted", + icon: "success", + }).then((res) => { + if (res["isConfirmed"]) { + // this.getForm() + this.getResponses(); + + this.selectedIndex = this.selectedIndex + 1; + this.startTime = new Date(); + } + }); + }); + }, + (err) => {} + ); + } + } + } + + submit() { + // + var tempDict; + this.responseList = []; + for (let key in this.firstForm.value) { + tempDict = {}; + tempDict["question"] = key; + tempDict["response"] = this.firstForm.value[key]; + this.responseList.push(tempDict); + } + // + + this.formService.submitResponse(this.responseList).subscribe( + (res) => { + // + Swal.fire({ + text: "Submitted", + icon: "success", + }); + this.router.navigateByUrl("/game"); + }, + (err) => { + Swal.fire({ + text: "Duplicate Entries", + icon: "warning", + }); + } + ); + } + + title = "micRecorder"; + //Lets declare Record OBJ + record; + //Will use this flag for toggeling recording + recording = false; + //URL of Blob + url; + error; + sanitize(url: string) { + return this.domSanitizer.bypassSecurityTrustUrl(url); + } + /** + * Start recording. + */ + initiateRecording() { + this.recording = true; + let mediaConstraints = { + video: false, + audio: true, + }; + navigator.mediaDevices + .getUserMedia(mediaConstraints) + .then(this.successCallback.bind(this), this.errorCallback.bind(this)); + } + /** + * Will be called automatically. + */ + successCallback(stream) { + var options = { + mimeType: "audio/wav", + numberOfAudioChannels: 1, + // sampleRate: 16000, + }; + //Start Actuall Recording + var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; + this.record = new StereoAudioRecorder(stream, options); + this.record.record(); + } + /** + * Stop recording. + */ + stopRecording() { + this.recording = false; + this.record.stop(this.processRecording.bind(this)); + } + /** + * processRecording Do what ever you want with blob + * @param {any} blob Blog + */ + processRecording(blob) { + this.url = URL.createObjectURL(blob); + // + // + } + /** + * Process Error. + */ + errorCallback(error) { + this.error = "Can not play audio in your browser"; + } +} diff --git a/src/app/consent-form/consent-form.component.css b/src/app/consent-form/consent-form.component.css deleted file mode 100644 index 0102a9d9634ef5f3fb97a7e5ce12468759a746ff..0000000000000000000000000000000000000000 --- a/src/app/consent-form/consent-form.component.css +++ /dev/null @@ -1,18 +0,0 @@ -.example-card { - max-width: 1000px; - position: absolute; - top: 55%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); -} - -.mat-card { - background-color: #e5e5e5; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} \ No newline at end of file diff --git a/src/app/consent-form/consent-form.component.html b/src/app/consent-form/consent-form.component.html deleted file mode 100644 index d72de16a91418c4345c651514d82a3f93303b2fa..0000000000000000000000000000000000000000 --- a/src/app/consent-form/consent-form.component.html +++ /dev/null @@ -1,26 +0,0 @@ -<app-header></app-header> -<div> - <mat-card class="example-card "> - - <mat-card-content> - <h1>CONSENT FORM</h1> - <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen - book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more - recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> - <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen - book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more - recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> - <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen - book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more - recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> - <p>Lorem Ipsum is simply dummy text of the printing and typesetting industry. Lorem Ipsum has been the industry's standard dummy text ever since the 1500s, when an unknown printer took a galley of type and scrambled it to make a type specimen - book. It has survived not only five centuries, but also the leap into electronic typesetting, remaining essentially unchanged. It was popularised in the 1960s with the release of Letraset sheets containing Lorem Ipsum passages, and more - recently with desktop publishing software like Aldus PageMaker including versions of Lorem Ipsum.</p> - - </mat-card-content> - <mat-card-actions> - <button mat-raised-button style="color: green;" class="inputButton" (click)="agree()">I AGREE</button> - <button mat-raised-button style="color: red;" class="inputButton" (click)="disagree()">I DISAGREE</button> - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/consent-form/consent-form.component.ts b/src/app/consent-form/consent-form.component.ts deleted file mode 100644 index 18d980ffd1cfa8103b7277cb87ad1a9b31e0f4b1..0000000000000000000000000000000000000000 --- a/src/app/consent-form/consent-form.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; - -@Component({ - selector: 'app-consent-form', - templateUrl: './consent-form.component.html', - styleUrls: ['./consent-form.component.css'] -}) -export class ConsentFormComponent implements OnInit { - - constructor( private router: Router) { } - - ngOnInit(): void { - } - - agree(){ - this.router.navigateByUrl("/firstForm"); - } - disagree(){ - this.router.navigateByUrl("/"); - localStorage.removeItem("user"); - } - -} diff --git a/src/app/cpcq-form/cpcq-form.component.css b/src/app/cpcq-form/cpcq-form.component.css deleted file mode 100644 index 24eb34196a903927dee753a7b163e4966afe0e65..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/cpcq-form.component.css +++ /dev/null @@ -1,166 +0,0 @@ -.divClass { - padding-top: 10px; -} - -.example-card { - /* max-height: 700px; */ - /* width: 1000px; */ - /* height: 570px; */ - position: absolute; - top: 55%; - left: 50%; - transform: translate(-50%, -50%); - width: 80%; -} - -::ng-deep .mat-tab-body-content { - max-height: 500px !important; -} - -.table-responsive { - height: 310px; -} - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -mat-slider { - width: 350px; -} - -.mat-slider-thumb-label { - transform: rotate(45deg) !important; - border-radius: 50% 50% 0 !important; -} - -.mat-slider-thumb { - transform: scale(0) !important; -} - -.mat-slider-thumb-label-text { - opacity: 1 !important; -} - -.advice { - border: none; - background: none; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -mat-form-field { - width: 100%; - height: 5%; -} - -::ng-deep .mat-form-field-flex>.mat-form-field-infix { - padding: 0.4em 0px !important; -} - -::ng-deep .mat-form-field-label-wrapper { - top: -1.5em; -} - -::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label { - transform: translateY(-1.1em) scale(.75); - width: 133.33333%; - color: black !important; - border: black; -} - -.example-h2 { - margin: 10px; -} - -.example-section { - display: flex; - align-content: center; - align-items: center; - height: 60px; -} - -.example-margin { - margin: 0 10px; -} - -.imgClass { - width: 30px; - height: 30px -} - -.zoom { - transition: transform .2s; - border: none; - background: none; - /* Animation */ - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); - /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} - - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - - -/* -p { - font-family: 'roboto'; -} */ \ No newline at end of file diff --git a/src/app/cpcq-form/cpcq-form.component.html b/src/app/cpcq-form/cpcq-form.component.html deleted file mode 100644 index 6a7cbc504ebe9adc04a098d09d84b627ec51905a..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/cpcq-form.component.html +++ /dev/null @@ -1,788 +0,0 @@ -<div class="divClass"> - <mat-card class="example-card "> - - <mat-card-content> - <div style="margin-bottom: 10px; margin-left: -10px;"> - <mat-progress-bar *ngIf="selectedIndex > 0 && selectedIndex <6" class="example-margin" style="width: 100%;" [mode]="mode" [value]="selectedIndex*20" [bufferValue]="bufferValue"> - </mat-progress-bar> - </div> - - - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab label="Second"> - <h2>Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority U.S. PreK-12 Schools - - </h2> - <p style="font-size: 24px;"><span style="font-weight: bold;">Directions: </span> In the upcoming activity, you will engage with 30 vignettes situated in five categories that illustrate culturally proficient interactions that have taken place in U.S. public schools. - Your task is to assign a level of reaction using numbers 1 - 6 to each vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the highest level of reaction from you, 5 to the vignette - that evokes the next highest level of reaction from you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction from you. - </p> - <p style="font-size: 20px;"> - <span style="font-weight: bold;"> Note: </span> There are no correct or wrong ways to react to vignettes; your level of reaction (negative or positive) is unique to you. If you need to see the directions after beginning the Q-Sort, click the <span style="color: #4050b5;" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand corner. - - - - </p> - </mat-tab> - <mat-tab label="Third"> - <button class="advice" (click)="openWordDialog('Attitude')"> - <span><h2><u>Attitude</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Attitude')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Attitude" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv>{{attitude['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv1>{{attitude['question2']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv2>{{attitude['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv3>{{attitude['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv4>{{attitude['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv5>{{attitude['question6']}}</p> - </div> - </div> - </form> - - - <p style="margin-top: 20px; font-size: 15px;"> The singular pronouns: “their†or “they†are used as gender-neutral pronouns. - </p> - - - - </mat-tab> - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Empathy')"> - <span><h2><u>Empathy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Empathy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Empathy" and respond to the prompt. - </p> - - <form [formGroup]="attitudeForm"> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv6>{{empathy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv7>{{empathy['question2']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv8>{{empathy['question3']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv9>{{empathy['question4']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv10>{{empathy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv11>{{empathy['question6']}}</p> - </div> - </div> - </form> - - </mat-tab> - - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Policy')"> - <span><h2><u>Policy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Policy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Policy" and respond to the prompt.</p> - - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv12>{{policy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv13>{{policy['question2']}} - - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv14>{{policy['question3']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv15>{{policy['question4']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv16>{{policy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv17>{{policy['question6']}} </p> - </div> - </div> - </form> - </mat-tab> - - <mat-tab label="Fifth"> - <button class="advice" (click)="openWordDialog('Professionalism')"> - <span><h2><u>Professionalism</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Professionalism')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Professionalism" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv18>{{professionalism['question1']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv19>{{professionalism['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv20>{{professionalism['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv21>{{professionalism['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv22>{{professionalism['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv23>{{professionalism['question6']}} </p> - </div> - </div> - - </form> - </mat-tab> - - <mat-tab label="Sixth"> - <button class="advice" (click)="openWordDialog('Teaching Practice')"> - <span><h2><u>Teaching Practice</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Teaching Practice')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Teaching Practice" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv24> {{teachingPractice['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv25>{{teachingPractice['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv26>{{teachingPractice['question3']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv27>{{teachingPractice['question4']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv28>{{teachingPractice['question5']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv29>{{teachingPractice['question6']}}</p> - </div> - </div> - </form> - </mat-tab> - <mat-tab label="Seventh"> - <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions - </h2> - <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in - the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis - is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. - Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, - but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> - <p><span><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the vignette and the corresponding culturally proficient interaction. Above each column is a link to the definition for each culturally proficient interaction; review the definitions before unpacking your reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. - - </span></p> - <div class="table-responsive"> - <table class="table"> - <thead class="thead-dark" style="font-size: 15px;"> - <tr> - <th></th> - <th matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). ">Cultural Destructiveness</th> - <th matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] ">Cultural Incapacity</th> - <th matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] ">Cultural Blindness</th> - <th matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context "> - Cultural Pre-Competence </th> - <th matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context ">Cultural Competence</th> - <th matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality ">Cultural Proficiency</th> - </tr> - </thead> - <tbody *ngFor="let row of responsesArray; let i = index"> - <tr> - <td> {{row[7]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[0][1] == 'colorbold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] == 'nobold'"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[0][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[1][1] == 'colorbold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] == 'nobold'"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[1][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[2][1] == 'colorbold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] == 'nobold'"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[2][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[3][1] == 'colorbold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] == 'nobold'"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[3][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[4][1] == 'colorbold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] == 'nobold'"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[4][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[5][1] == 'colorbold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] == 'nobold'"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[5][0]}} - </td> - - - - </tr> - - </tbody> - <!-- <tbody *ngFor="let row of formValues; let i = index"> - <tr> - <td> {{row[0]}} </td> - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'True'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'False'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td *ngIf="boldList[i][0] <=2"> {{row[1]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'True'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'False'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td *ngIf="boldList[i][1] <=3"> {{row[2]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'True'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'False'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td *ngIf="boldList[i][2] <=4 && boldList[i][2] != 1"> {{row[3]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'True'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'False'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td *ngIf="boldList[i][3] <=5 && boldList[i][3]>=4"> {{row[4]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'True'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'False'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td *ngIf="boldList[i][4]>=4"> {{row[5]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'True'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'False'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td *ngIf="boldList[i][5]>=5"> {{row[6]}} </td> - </tr> - </tbody> --> - </table> - </div> - <!-- <div style="text-align:center;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> --> - </mat-tab> - <mat-tab> - <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections - </h2> - <p>Directions: Read and respond to each question below. - </p> - <div [formGroup]="finalFeedbackForm" class="questions"> - - - <p>1. What are your overall impressions of this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q1" type="text" matInput placeholder="" required> - </mat-form-field> - - - - <p style="margin-top: 15px;">2. Were there any challenges that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q2" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">3. Were there any feelings that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q3" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and cultural backgrounds? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q4" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place yourself on the Cultural Proficiency Continuum? - </p> - <mat-radio-group formControlName="q5" class="example-radio-group"> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="male">Cultural Destructiveness - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="female">Cultural Incapacity - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other">Cultural Blindness - </mat-radio-button> - </div> - </div> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="other1">Cultural Pre-Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other2">Cultural Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other3">Cultural Proficiency - </mat-radio-button> - </div> - </div> - </mat-radio-group> - - <p style="margin-top: 15px;">6. How would you rate the design of our website? - </p> - <div class="row"> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('angry')"> - <img id="angry" class="imgClass" src="../../assets/angry.png"/> - </button> - <p>Very poor</p> - - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('sad')"> - <img id="sad" class="imgClass" src="../../assets/sad.png"/> - </button> - <p>Poor</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('neutral')"> - <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> - </button> - <p style="text-align: justify;">Fair</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('smile')"> - <img id="smile" class="imgClass" src="../../assets/smile.png"/> - </button> - <p>Good</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('heart')"> - <img id="heart" class="imgClass" src="../../assets/heart.webp"/> - </button> - <p>Excellent</p> - </div> - </div> - - <br> - <p style="margin-top: 15px;">7. Was our website easy to use and understand? - </p> - <div class="row"> - - - - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsup')"> - <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png"/> - </button> - </div> - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsdown')"> - <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png"/> - </button> - </div> - </div> - - </div> - - - </mat-tab> - <!-- <mat-tab label="Eight"> - <h2>Sample of Audio Answer</h2> - <p>Please press the button below to start recording your answer.</p> - <div style="text-align:center;margin-top: 200px;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> - </mat-tab> --> - </mat-tab-group> - - - - </mat-card-content> - - - - <mat-card-actions> - <div class="row"> - <div class="col-8"> - <button *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex !=7" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - - <button *ngIf="selectedIndex == 5" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 6" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm1()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 7" mat-raised-button style=" padding-right: -10px; background-color:#29ABE2; color: white; margin-top: -100px;" (click) = "finalSubmit()"> - Go to Dashboard - </button> - </div> - <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> - <p style="font-size: 10px; margin:-10px; margin-left: 20px;">Use this bar to increase or decrease the font size</p> - <mat-slider color="primary" min="0" max="4" value="1" tickInterval="1" (input)="sliderFunction($event)"></mat-slider> - - - </div> - - </div> - - - - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/cpcq-form/cpcq-form.component.ts b/src/app/cpcq-form/cpcq-form.component.ts deleted file mode 100644 index be2c49429c4c4ce304510d6a2d16dc6f9917082b..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/cpcq-form.component.ts +++ /dev/null @@ -1,1225 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {AfterViewInit, ElementRef, ViewChild} from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup,Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -import {ThemePalette} from '@angular/material/core'; -import {ProgressBarMode} from '@angular/material/progress-bar'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {DialogFormComponent} from './dialog-form/dialog-form.component' - -import {CPCQService} from '../../services/cpcq.service'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; - status; - result; -} -@Component({ - selector: 'app-cpcq-form', - templateUrl: './cpcq-form.component.html', - styleUrls: ['./cpcq-form.component.css'] -}) -export class CpcqFormComponent implements OnInit, AfterViewInit { - firstForm: FormGroup; - responseList:any ; - loaded = false; - - questionArray = [["Enter First Name","text"],["Enter Last Name","text"],["Enter Age","number"]]; - statusCheck = false; - buttonClick = false; - - sliderValue = 0; - - selectedIndex = 0; - - color: ThemePalette = 'primary'; - mode: ProgressBarMode = 'buffer'; - value1 = 50; - bufferValue = 100; - - formValues = []; - attributes = ["Attitude","Empathy","Policy","Professionalism","Teaching Practice"]; - columnHeadings = ["culturalDestructivenessresponse","culturalIncapacityresponse","culturalBlindnessresponse","culturalPreCompetenceresponse","culturalCompetenceresponse","culturalProficiencyresponse"] - rowLetters = [["D",'C','B','A','F','E'],['E','A','F','D','B','C'],['F','E','B','C','D','A'],['E','A','B','D','C','F'],['D','C','B','E','A','F']]; - boldList = [[]]; - randomList = [[]]; - finalList=[[]]; - finalList1 = []; - attitudeForm: FormGroup; - empathyForm: FormGroup; - policyForm: FormGroup; - - finalFeedbackForm:FormGroup; - - - - - //arrays of data getting from the backend - - attitude:any; - empathy :any; - policy:any; - professionalism:any; - teachingPractice:any; - wordDescription:any; - unpackedCount = 0; - - startTime: any; - endTime: any; - durationTime : any; - - @ViewChild('changeDiv') changeDiv: ElementRef; - @ViewChild('changeDiv1') changeDiv1: ElementRef; - @ViewChild('changeDiv2') changeDiv2: ElementRef; - @ViewChild('changeDiv3') changeDiv3: ElementRef; - @ViewChild('changeDiv4') changeDiv4: ElementRef; - @ViewChild('changeDiv5') changeDiv5: ElementRef; - @ViewChild('changeDiv6') changeDiv6: ElementRef; - @ViewChild('changeDiv7') changeDiv7: ElementRef; - @ViewChild('changeDiv8') changeDiv8: ElementRef; - @ViewChild('changeDiv9') changeDiv9: ElementRef; - @ViewChild('changeDiv10') changeDiv10: ElementRef; - @ViewChild('changeDiv11') changeDiv11: ElementRef; - @ViewChild('changeDiv12') changeDiv12: ElementRef; - @ViewChild('changeDiv13') changeDiv13: ElementRef; - @ViewChild('changeDiv14') changeDiv14: ElementRef; - @ViewChild('changeDiv15') changeDiv15: ElementRef; - @ViewChild('changeDiv16') changeDiv16: ElementRef; - @ViewChild('changeDiv17') changeDiv17: ElementRef; - @ViewChild('changeDiv18') changeDiv18: ElementRef; - @ViewChild('changeDiv19') changeDiv19: ElementRef; - @ViewChild('changeDiv20') changeDiv20: ElementRef; - @ViewChild('changeDiv21') changeDiv21: ElementRef; - @ViewChild('changeDiv22') changeDiv22: ElementRef; - @ViewChild('changeDiv23') changeDiv23: ElementRef; - @ViewChild('changeDiv24') changeDiv24: ElementRef; - @ViewChild('changeDiv25') changeDiv25: ElementRef; - @ViewChild('changeDiv26') changeDiv26: ElementRef; - @ViewChild('changeDiv27') changeDiv27: ElementRef; - @ViewChild('changeDiv28') changeDiv28: ElementRef; - @ViewChild('changeDiv29') changeDiv29: ElementRef; - - - - - - - - - - ngAfterViewInit() { - - - - } - - sliderFunction1(){ - if(this.sliderValue == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(this.sliderValue == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(this.sliderValue == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(this.sliderValue == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(this.sliderValue == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - } - sliderFunction(e){ - // - this.sliderValue = e.value; - if(e.value == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(e.value == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(e.value == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(e.value == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(e.value == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - - } - constructor(private fb: FormBuilder, private apiService: CPCQService,private router: Router, private formService : FirstForm,private domSanitizer: DomSanitizer,public dialog: MatDialog) { } - openDialog(i,j,id) { - // - - - var arr = []; - arr.push(this.attributes[i]); - arr.push(j); - arr.push(this.columnHeadings[j]) - arr.push(id) - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: arr, - status : "form" - }, - disableClose:true - }); - dialogRef.afterClosed().subscribe(result => { - - if(this.responsesArray[i][j][1] == "colorbold"){ - this.unpackedCount = this.unpackedCount +1 - } - - }) - } - - openWordDialog(i) { - // - this.buttonClick = true; - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "word" - }, - disableClose:true - }); - - dialogRef.afterClosed().subscribe(result => { - - this.wordDescription = result; - }) - } - - helpDialog(i) { - // - this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "help" - } - }); - } - - keyPressFunc(e){ - - // - var numbersList = ["1"]; - for (let key in this.attitudeForm.value) { - - - if(numbersList.indexOf(this.attitudeForm.value[key]) == -1){ - // - return "Number"; - } - } - - - } - - getEmailError(){ - return "Error"; - } -responsesArray =[] -temp = [] - getResponses(){ - this.apiService.getResponsesData().subscribe((res) => { - for(let key in res){ - this.temp = [] - for(let key1 in res[key]){ - this.temp.push(res[key][key1]) - } - this.responsesArray.push(this.temp) - } - - }) - } - - - getForm(){ - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - var attitudeResult = []; - var empathyResult = []; - var policyResult = []; - var profResult = []; - var teachingResult = []; - this.finalList = [[]] - this.boldList = [[]] - this.apiService.getFormData().subscribe((res) => { - for (let key in res){ - arr = []; - if(res[key]["topic"] == "Attitude"){ - attitudeResult.push("Attitude"); - arr.push("Attitude"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Empathy"){ - empathyResult.push("Empathy") - arr.push("Empathy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Policy"){ - policyResult.push("Policy") - arr.push("Policy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Professionalism"){ - profResult.push("Professionalism"); - arr.push("Professionalism"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Teaching Practice"){ - arr.push("Teaching Pracice"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - teachingResult.push("Teaching Practice"); - teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - - this.boldList.push(arr); - - } - this.finalList.push(attitudeResult) - this.finalList.push(empathyResult) - this.finalList.push(policyResult) - this.finalList.push(profResult) - this.finalList.push(teachingResult) - }) - this.finalList.splice(0, 1); - this.boldList.splice(0, 1); - // this.getAllIndexes(this.finalList,1) - - - - } - - emoji:any; - changeEmojiSize(data){ - document.getElementById("angry").style.height = "30px" - document.getElementById("angry").style.width = "30px" - document.getElementById("sad").style.height = "30px" - document.getElementById("sad").style.width = "30px" - document.getElementById("neutral").style.height = "30px" - document.getElementById("neutral").style.width = "30px" - document.getElementById("smile").style.height = "30px" - document.getElementById("smile").style.width = "30px" - document.getElementById("heart").style.height = "30px" - document.getElementById("heart").style.width = "30px" - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - - this.emoji = data; - } - - thumbs:any; - changeThumbsSize(data){ - document.getElementById("thumbsup").style.height = "30px" - document.getElementById("thumbsup").style.width = "30px" - document.getElementById("thumbsdown").style.height = "30px" - document.getElementById("thumbsdown").style.width = "30px" - - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - this.thumbs = data; - } - finalSubmit(){ - this.finalFeedbackForm.value["q6"] = this.thumbs - this.finalFeedbackForm.value["q7"] = this.emoji - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => { - - }) - - this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe((res) => { - this.apiService.changeCPCQStatus().subscribe((res1) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - this.router.navigateByUrl("/result") - } - }) - - }) - },(err) => { - - }) - - } - ngOnInit(): void { - this.startTime = new Date() - this.finalFeedbackForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - }) - - this.apiService.attitudeData().subscribe((res) => { - // - this.attitude = res[0]; - // - },(err) => { - - }) - - this.apiService.empathyData().subscribe((res) => { - // - this.empathy = res[0]; - // - },(err) => { - - }) - - this.apiService.policyData().subscribe((res) => { - this.policy = res[0]; - },(err) => { - - }) - - this.apiService.professionalismData().subscribe((res) => { - this.professionalism = res[0]; - },(err) => { - - }) - - this.apiService.teachingData().subscribe((res) => { - this.teachingPractice = res[0]; - },(err) => { - - }) - - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - description:["",[Validators.required]] - - }) - - this.empathyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - this.policyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - for(var j = 0;j<5;j++){ - arr = []; - arr1 = []; - arr2 = []; - i = 0; - while(i<6){ - var item1 = Math.floor(Math.random() * (7 - 1) + 1); - if(arr1.indexOf(item1) == -1){ - if(i == 0){ - arr.push(this.attributes[j]); - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(arr1[arr1.length -1] >2){ - // - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else{ - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(i==1){ - if(arr1[arr1.length - 1] >3){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==2){ - if(arr1[arr1.length - 1] >4 || arr1[arr1.length - 1] == 1){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==3){ - if(arr1[arr1.length - 1] >5 || arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==4){ - if(arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==5){ - if(arr1[arr1.length - 1] <5){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - } - i = i + 1; - } - else{ - continue; - } - - } - this.formValues.push(arr); - this.boldList.push(arr1); - this.randomList.push(arr2); - } - this.boldList.splice(0, 1); - this.randomList.splice(0, 1); - - - - this.getAllIndexes(this.randomList,"True"); - this.loaded = true; - } - - getAllIndexes(arr, val) { - var indexes = []; - var i = -1; - for(var i = 0;i<arr.length;i++){ - for(var j = 0;j<arr[i].length;j++){ - if(arr[i][j] == "True"){ - var arr1 = []; - arr1.push(i); - arr1.push(j) - indexes.push(arr1); - } - } - } - - var arr1 = []; - for(var i = 0;i<indexes.length;i++){ - arr1.push(i); - } - var ranNums = []; - var i = arr1.length; - var j = 0; - var count = 0; - while (i--) { - - if(count < 5){ - j = Math.floor(Math.random() * (i+1)); - ranNums.push(arr1[j]); - arr1.splice(j,1); - count = count+1; - } - else{ - break; - } - } - - - // - for(var i = 0;i<this.boldList.length;i++){ - var temp = []; - for(var j = 0 ;j <6;j++){ - temp.push("False"); - } - this.finalList1.push(temp); - } - - - for(var i = 0;i<ranNums.length;i++){ - var item = indexes[ranNums[i]]; - - this.finalList1[item[0]][item[1]] = "True"; - } - // this.finalList1.splice(0,1) - -} - preSurvey(){ - this.router.navigateByUrl("/preSurvey"); - } - - nextButton(){ - if(this.selectedIndex == 0){ - this.selectedIndex = this.selectedIndex + 1; - return; - } - if(this.selectedIndex == 7){ - this.router.navigateByUrl('/dashboard'); - return; - } - - var numberList = []; - var flag = true; - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - flag = false; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = false; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = false; - Swal.fire({ - - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(flag){ - - if(this.selectedIndex == 7){ - this.router.navigateByUrl("/postSurvey"); - } - this.sliderFunction1(); - var formData = {} - formData['topic'] = this.attributes[this.selectedIndex-1] - if(this.attributes[this.selectedIndex-1] == "Attitude"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalCompetence"] = "F. " + this.attitudeForm.value['F'] - formData["culturalProficiency"] = "E. " + this.attitudeForm.value['E'] - - } - else if(this.attributes[this.selectedIndex-1] == "Empathy"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "B. " + this.attitudeForm.value['B'] - formData["culturalProficiency"] = "C. " + this.attitudeForm.value['C'] - } - else if(this.attributes[this.selectedIndex-1] == "Policy"){ - formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalIncapacity"] = "E. " + this.attitudeForm.value['E'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalProficiency"] = "A. " + this.attitudeForm.value['A'] - } - else if(this.attributes[this.selectedIndex-1] == "Professionalism"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - else if(this.attributes[this.selectedIndex-1] == "Teaching Practice"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["description"] = this.wordDescription - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - },(err) => { - - }) - // this.getForm(); - this.selectedIndex = this.selectedIndex + 1; - this.buttonClick = false; - this.startTime = new Date() - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - }) - } - - } - - postSurvey(){ - this.router.navigateByUrl("/postSurvey"); - } - - submitForm1(){ - if(this.unpackedCount >= 5 ){ - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - this.apiService.patchStatus("cpcqstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - this.selectedIndex = this.selectedIndex + 1; - } - }) - }) - - - } - else{ - Swal.fire({ - text: "Please click on all the yellow boxes and answer the questions in the prompt.", - icon: "warning" - }).then((res) => { - }) - } - - } - - submitForm(){ - if(this.selectedIndex == 5){ - var numberList = []; - var flag = false; - - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - - - flag = true; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = true; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = true; - Swal.fire({ - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(!flag){ - - - // - var formData = {} - - formData['topic'] = this.attributes[this.selectedIndex-1] - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - - formData["description"] = this.wordDescription - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - this.apiService.patchStatus("responsesstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - // this.getResponses() - this.router.navigateByUrl("/unpacking") - - // this.selectedIndex = this.selectedIndex + 1; - this.startTime = new Date() - } - }) - - }) - },(err) => { - - }) - } - - } - } - - submit(){ - // - var tempDict; - this.responseList = []; - for(let key in this.firstForm.value){ - tempDict = {} - tempDict["question"] = key - tempDict["response"] = this.firstForm.value[key]; - this.responseList.push(tempDict); - } - // - - this.formService.submitResponse(this.responseList).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - },(err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) - - } - - title = 'micRecorder'; -//Lets declare Record OBJ -record; -//Will use this flag for toggeling recording -recording = false; -//URL of Blob -url; -error; -sanitize(url: string) { -return this.domSanitizer.bypassSecurityTrustUrl(url); -} -/** -* Start recording. -*/ -initiateRecording() { -this.recording = true; -let mediaConstraints = { -video: false, -audio: true -}; -navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -} -/** -* Will be called automatically. -*/ -successCallback(stream) { -var options = { -mimeType: "audio/wav", -numberOfAudioChannels: 1, -// sampleRate: 16000, -}; -//Start Actuall Recording -var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -this.record = new StereoAudioRecorder(stream, options); -this.record.record(); -} -/** -* Stop recording. -*/ -stopRecording() { -this.recording = false; -this.record.stop(this.processRecording.bind(this)); -} -/** -* processRecording Do what ever you want with blob -* @param {any} blob Blog -*/ -processRecording(blob) { -this.url = URL.createObjectURL(blob); -// -// -} -/** -* Process Error. -*/ -errorCallback(error) { -this.error = 'Can not play audio in your browser'; -} - - - -} diff --git a/src/app/cpcq-form/dialog-form/dialog-form.component.css b/src/app/cpcq-form/dialog-form/dialog-form.component.css deleted file mode 100644 index aaa33e2999495060a72d6bafed037cf363820792..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/dialog-form/dialog-form.component.css +++ /dev/null @@ -1,32 +0,0 @@ -.home-wrap { - max-width: 500px; -} - -.help-wrap { - max-width: 700px; -} - -.word-wrap { - width: 500px; -} - -h6 { - /* color: #4050b5; */ -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2, -h4 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; - /* color: #4050b5; */ -} - -.advice { - border: none; - background: none; -} \ No newline at end of file diff --git a/src/app/cpcq-form/dialog-form/dialog-form.component.html b/src/app/cpcq-form/dialog-form/dialog-form.component.html deleted file mode 100644 index 42a346832bfb3bd489ca355c18b94b7becc3e764..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/dialog-form/dialog-form.component.html +++ /dev/null @@ -1,217 +0,0 @@ -<script src="https://unpkg.com/wavesurfer.js"></script> -<div *ngIf="data.status == 'word'" class="word-wrap"> - <div mat-dialog-content> - <form [formGroup]="wordDescriptionForm"> - <h6>Define <span>{{data.animal}}</span> using your own words.</h6> - <mat-form-field appearance="outline" class="col-12" style="margin-top: 10px; margin-left: -10px;"> - <mat-label>Describe </mat-label> - <textarea formControlName="answer" type="text" rows="6" matInput placeholder="" required></textarea> - </mat-form-field> - </form> - - <div> - <!-- <h6>Record your views in audio : <span> <button *ngIf="!recording" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="initiateRecording()"> - Start Recording - <mat-icon>arrow_right_al</mat-icon> - - </button> - <button *ngIf="recording" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="stopRecording()"> - Stop Recording - <mat-icon>arrow_right_al</mat-icon> - - </button></span> </h6> --> - <!-- <button (click)="initiateRecording()" class="btn btn-primary" *ngIf="!recording" style="cursor: pointer;background-color: green;color: white;font-size: 40px;"> Start Recording </button> - <button (click)="stopRecording()" class="btn btn-danger" *ngIf="recording" style="cursor: pointer;background-color: red;color: white;font-size: 40px;"> Stop Recording </button> - --> - <!-- <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> --> - <!-- <ng-waveform *ngIf="url" #waveform class="waveform" [src]="url" [height]="150" [useRegion]="true" backgroundColor="#d3d3d3" regionBackgroundColor="rgba(255, 255, 255, 0.7)" regionStartStickColor="#21f032" regionEndStickColor="red" regionTextColor="#09417e" - [withRegionLabels]="true" waveColor="#ff11ff" (trackLoaded)="onTrackLoaded($event)" (rendered)="onTrackRendered($event)" (durationChange)="onDurationChange($event)" (timeUpdate)="onTimeUpdate($event)" (paused)="onPauseButtonClick()" (regionChange)="onRegionChange($event)"> - </ng-waveform> --> - <!-- <button style="width: 100%; text-align: center;" *ngIf="url" (click)="onPlayButtonClick()" class="icon-button"> - <svg style="width:24px;height:24px" viewBox="0 0 24 24"> - <path fill="#000000" d="M8,5.14V19.14L19,12.14L8,5.14Z" /> - </svg> - </button> --> - - <button mat-raised-button color="primary" (click)="closeDialog()"> - Submit - - </button> - </div> - </div> -</div> - -<div *ngIf="data.status == 'form'"> - <div mat-dialog-content class="help-wrap"> - <mat-tab-group [selectedIndex]="selectedIndex"> - <mat-tab label="Cultural Blindness"> - <form [formGroup]="unpackingForm"> - <h4><span style="font-weight: bold;">{{word}} : </span>{{description}}</h4> - <p>1. Explain why this vignette above is understood to be <span> - <button class="advice" style="color: blue;" (click)="describeFunc(tempStatus)">{{tempStatus}}.</button> - </span></p> - <p *ngIf="displayTextControl">{{displayText}}</p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> - </mat-form-field> - <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> - - </form> - </mat-tab> - <mat-tab> - <form [formGroup]="unpackingForm"> - <h4>{{description}}</h4> - <p>2. What is the social problem in the vignette? </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> - </mat-form-field> - <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> - - </form> - </mat-tab> - <mat-tab> - <form [formGroup]="unpackingForm"> - <h4>{{description}}</h4> - <p>3. What is the cause of the social problem in the vignette? - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> - </mat-form-field> - <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> - - </form> - </mat-tab> - <mat-tab> - <form [formGroup]="unpackingForm"> - <h4>{{description}}</h4> - <p>4. What solutions would you offer to address the social problem in the vignette? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <textarea formControlName="response" rows="6" type="text" matInput placeholder="" required></textarea> - </mat-form-field> - <mat-error *ngIf="submit == true && errorField == true">Please enter this field</mat-error> - - </form> - </mat-tab> - </mat-tab-group> - <button *ngIf="selectedIndex != 3 " mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - <button *ngIf="selectedIndex == 3 " mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - - </button> - </div> - <!-- - <div *ngIf="data.animal[0] =='Empathy'" mat-dialog-content class="help-wrap"> - <mat-tab-group [selectedIndex]="selectedIndex"> - <mat-tab label="Cultural Blindness"> - <h4>{{description}}</h4> - <h6>Explain why this vignette above is understood to be Cultural Destructiveness.</h6> - <p>1. Explain (e.g., identify and name) the social problem within the vignette</p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input type="text" matInput placeholder="" required> - </mat-form-field> - - <p>2. Explain the cause(s) of the social problem within the vignette.</p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input type="text" matInput placeholder="" required> - </mat-form-field> - - <p>3. What solutions would you employ to address the social problem within the vignette?</p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input type="text" matInput placeholder="" required> - </mat-form-field> - </mat-tab> - </mat-tab-group> - <button *ngIf="selectedIndex ==3" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - <button mat-dialog-close mat-raised-button color="primary" style=" padding-right: -10px; "> - SUBMIT - <mat-icon>done_outline</mat-icon> - - </button> - </div> --> - - <!-- <div *ngIf="data.animal[0] !='Empathy' && data.animal[0] != 'Attitude'" mat-dialog-content class="help-wrap"> - <mat-tab-group> - <mat-tab label="Cultural Blindness"> - <h4>Similar form for <span>{{data.animal}}</span></h4> - </mat-tab> - </mat-tab-group> - <button mat-dialog-close mat-raised-button color="primary" style=" padding-right: -10px; "> - SUBMIT - <mat-icon>done_outline</mat-icon> - - </button> - </div> --> -</div> - - -<div *ngIf="data.status == 'form1'"> - <div mat-dialog-content class="help-wrap"> - <mat-tab-group [selectedIndex]="selectedIndex"> - <mat-tab label="Cultural Blindness"> - - <h4><span style="font-weight: bold;">{{word}} : </span>{{description}}</h4> - <div *ngFor="let row of questions1; let i = index"> - <p>{{questions2[i]}}</p> - <p >Answer : {{row}}</p> - <p >Score : {{scores1[i]}}</p> - <p >Comment : {{comments[i]}}</p> - - </div> - <button mat-stroked-button color="primary">Your Cultural Proficiency is {{meanNumber}} or {{meanValue}}</button> - - - - - - - - </mat-tab> - - </mat-tab-group> - </div> -</div> - -<div *ngIf="data.status == 'score'" class="help-wrap"> - <div mat-dialog-content> - <h4><span style="font-weight: bold;">{{word}} : </span>{{description}}</h4> - <div *ngFor="let row of questions1; let i = index"> - <p>{{questions2[i]}}</p> - <p >Answer : {{row}}</p> - <p >Score : {{scores1[i]}}</p> - </div> - <button mat-stroked-button color="primary">Your Cultural Proficiency is {{meanNumber}} or {{meanValue}}</button> - - </div> -</div> - -<div *ngIf="data.status == 'help'" class="help-wrap"> - <div mat-dialog-content> - <h2>Cultural Proficiency Continuum Q-Sort: Reacting to Sociocultural Reproductions that take place within Majority-Minority US Public Schools and Student Populations - </h2> - <p>Next are 30 sociocultural interactions situated within vignettes describing culturally proficient behaviors, which occur daily in majority-minority US public schools. There are six vignettes in each of the five categories: Attitude, Empathy, Policy, - Professionalism, and Teaching Practice. Your task is to prioritize these vignettes by numbering them 1 to 6 within each of the five categories according to your level of reaction. Assign the number 6 to the vignette that evoked the highest - level of reaction, 5 to the vignette that evoked the next highest level of reaction, 4 to the vignette that evoked the next highest level of reaction, and so on until you have assigned a number to all six vignettes within each category. When - you have completed this task, follow the directions in the rating guide to summarize your responses.</p> - - </div> -</div> \ No newline at end of file diff --git a/src/app/cpcq-form/dialog-form/dialog-form.component.ts b/src/app/cpcq-form/dialog-form/dialog-form.component.ts deleted file mode 100644 index 8f02555443963441991f4f0243b4dbd06afc735d..0000000000000000000000000000000000000000 --- a/src/app/cpcq-form/dialog-form/dialog-form.component.ts +++ /dev/null @@ -1,547 +0,0 @@ -import { Component, OnInit, ViewChild, ElementRef, AfterViewInit, ChangeDetectorRef } from '@angular/core'; -import { Inject } from '@angular/core'; -import { MatDialog, MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog'; -import { ITimeUpdateEvent, NgWaveformComponent, IRegionPositions } from 'ng-waveform'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { CPCQService } from '../../../services/cpcq.service'; -export interface DialogData { - animal; - status; - result; -} - -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -@Component({ - selector: 'app-dialog-form', - templateUrl: './dialog-form.component.html', - styleUrls: ['./dialog-form.component.css'] -}) -export class DialogFormComponent implements OnInit { - description; - word; - selectedIndex = 0; - displayTextControl = false; - displayText = ''; - wordDescriptionForm: FormGroup; - unpackingForm: FormGroup; - - unpackingArray = {} - - submit = false; - errorField = false; - - startTime: any; - endTime: any; - durationTime: any; - - - attitude = ['D. It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion.', - 'C. Students who wear dreadlocks as a hairstyle are a distraction in the classroom.', - 'B. Black students have the same opportunities and access to attend college as their white peers.', - 'A. Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status.', - 'F. All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.', - 'E. All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants.' - ] - - attitudeOrder = ['D','C','B','A','F','E']; - empathy = ['E. A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits.', - 'A. A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death.', - 'F. Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car.', - 'D. An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying, “Come on, you are Asian! You should’ve scored better than this.â€', - 'B. A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict with their own.', - 'C. In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague feels welcomed in their new school.' - ] - empathyOrder = ['E','A','F','D','B','C'] - policy = ['F. A member of the school board is proposing a policy where English is the official language for all school related business in a community where the majority of the students’ and families’ primary language is Spanish.', - 'E. Students in a high-poverty school who are absent 10 consecutive days in a marking period are referred to special education for excessive absenteeism.', - 'B. A school that does not consider factors related to culture and ethnicity in their decision-making process is more democratic than a school who does consider factors related to culture and ethnicity in their decision-making process.', - 'C. A school leader makes a “diversity hire†to introduce new ideas around school culture, curriculum, leadership, and/or supervision.', - 'D. A principal implemented a policy that all faculty and staff have to participate in quarterly potlucks; they are to bring a traditional dish specific to their culture, as a way to facilitate cross-cultural discourse.', - 'A. A group of teachers and students are protesting the athletic department at a high school for changing the school’s logo to a silhouette of a Native American in a headdress; they have secured a place on the agenda for the next school board meeting to give a presentation on why this logo is offensive and trivializes Native Americans.' - ] - policyOrder = ['F','E','B','C','D','A'] - - professionalism = ['E. A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States.', - 'A. A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story.', - 'B. During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, “Why do we have to attend this training; the United States is post-racial because we have a Black president.â€', - 'D. The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that\'s just how boys behave.†', - 'C. The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan selection to the menu to accommodate their colleagues’ religious beliefs.', - 'F. An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper.' - ] - professionalismOrder = ['E','A','B','D','C','F'] - teaching = ['D. A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this sensitive topic.', - "C. A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated in preferential seating.", - "B. An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars.", - "E. A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy.", - "A. A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context.", - "F. There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement and create a supportive environment for these students to voice their concerns in their school." - ] - teachingOrder = ['D','C','B','E','A','F'] - - - culturalStatus = ['Cultural Destructiveness', 'Cultural Incapacity', 'Cultural Blindness', 'Cultural Pre-Competence', 'Cultural Competence', 'Cultural Proficiency']; - tempStatus = ''; - @ViewChild('waveform', { static: false }) waveform: NgWaveformComponent; - constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData, public dialogRef: MatDialogRef<DialogFormComponent>, public dialog: MatDialog, private fb: FormBuilder, private domSanitizer: DomSanitizer, public cpcqService: CPCQService) { - - } - - closeDialog() { - if (!this.wordDescriptionForm.valid) { - - - } - else { - - this.data.result = this.wordDescriptionForm.value["answer"] - this.dialogRef.close(this.wordDescriptionForm.value["answer"]) - } - - } - - describeFunc(temp) { - - this.displayTextControl = (this.displayTextControl == true) ? false : true; - if (temp == "Cultural Destructiveness") { - this.displayText = "When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009)." - } - else if (temp == "Cultural Incapacity") { - this.displayText = "Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] " - } - else if (temp == "Cultural Blindness") { - this.displayText = `Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] `; - } - else if (temp == "Cultural Pre-Competence") { - this.displayText = `The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context ` - } - else if (temp == "Cultural Competence") { - this.displayText = `The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context` - } - else { - this.displayText = `Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality`; - } - } - - nextButton() { - this.submit = true - if (!this.unpackingForm.valid) { - - this.errorField = true - } - else { - this.submit = false - this.errorField = false - if (this.selectedIndex == 0) { - this.unpackingArray["1. Explain why this vignette above is understood to be " + this.tempStatus + "."] = this.unpackingForm.value["response"] - } - else if (this.selectedIndex == 1) { - this.unpackingArray["2. What is the social problem in the vignette?"] = this.unpackingForm.value["response"] - } - else if (this.selectedIndex == 2) { - this.unpackingArray["3. What is the cause of the social problem in the vignette?"] = this.unpackingForm.value["response"] - } - else if (this.selectedIndex == 3) { - this.unpackingArray["4. What solutions would you offer to address the social problem in the vignette?"] = this.unpackingForm.value["response"] - } - if (this.selectedIndex == 3) { - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - var arr = {} - arr["topic"] = this.word - arr["duration"] = this.durationTime - arr["response_id"] = this.data.animal[3] - arr[this.data.animal[2]] = this.unpackingArray - // if(this.data.animal[2] == ) - this.cpcqService.postUnpacking(arr).subscribe((res) => { - - this.dialogRef.close(res) - }) - - - } - else { - this.selectedIndex = this.selectedIndex + 1; - if (this.selectedIndex > 3) { - this.selectedIndex = 3; - } - } - - this.unpackingForm = this.fb.group({ - "response": ["", Validators.required], - }) - - } - - } - - onPlayButtonClick() { - this.waveform.play(); - } - onPauseButtonClick() { - this.waveform.pause(); - } - - onTrackLoaded(e) { - - } - - onTrackRendered(e) { - - } - - onDurationChange(e) { - - } - - onTimeUpdate(e) { - - } - - onRegionChange(e) { - - } - title = 'micRecorder'; - //Lets declare Record OBJ - record; - //Will use this flag for toggeling recording - recording = false; - //URL of Blob - url; - error; - sanitize(url: string) { - return this.domSanitizer.bypassSecurityTrustUrl(url); - } - /** - * Start recording. - */ - initiateRecording() { - this.recording = true; - let mediaConstraints = { - video: false, - audio: true - }; - navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); - } - /** - * Will be called automatically. - */ - successCallback(stream) { - var options = { - mimeType: "audio/wav", - numberOfAudioChannels: 1, - // sampleRate: 16000, - }; - //Start Actuall Recording - var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; - this.record = new StereoAudioRecorder(stream, options); - this.record.record(); - } - /** - * Stop recording. - */ - stopRecording() { - this.recording = false; - this.record.stop(this.processRecording.bind(this)); - } - /** - * processRecording Do what ever you want with blob - * @param {any} blob Blog - */ - processRecording(blob) { - this.url = URL.createObjectURL(blob); - - - } - /** - * Process Error. - */ - errorCallback(error) { - this.error = 'Can not play audio in your browser'; - } - - questions : any; - questions1 : any; - questions2 : any; - scores1:any; - comments:any; - meanValue : any; - meanNumber : any; - - columnHeadings = ["Cultural Destructiveness","Cultural Incapacity","Cultural Blindness","Cultural PreCompetence","Cultural Competence","Cultural Proficiency"] - - scores: any; - ngOnInit(): void { - - this.startTime = new Date() - this.wordDescriptionForm = this.fb.group({ - answer: ["", [Validators.required]], - }) - this.unpackingForm = this.fb.group({ - "response": ["", Validators.required], - }) - if (this.data.status == 'form') { - if (this.data.animal[0] == "Attitude") { - this.word = "Attitude"; - this.description = this.attitude[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - } - else if (this.data.animal[0] == "Empathy") { - this.word = "Empathy" - this.description = this.empathy[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - } - else if (this.data.animal[0] == "Policy") { - this.word = "Policy" - this.description = this.policy[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - } - else if (this.data.animal[0] == "Professionalism") { - this.word = "Professionalism" - this.description = this.professionalism[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - } - else if (this.data.animal[0] == "Teaching Practice") { - this.word = "Teaching Practice" - this.description = this.teaching[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - } - } - else if(this.data.status == "score"){ - if (this.data.animal[0] == "Attitude") { - this.word = "Attitude"; - var i = this.attitudeOrder.indexOf(this.data.animal[1]) - this.description = this.attitude[i] - this.meanValue = this.data.animal[2] - this.scores = this.data.animal[3] - this.questions = this.data.animal[4] - } - else if (this.data.animal[0] == "Empathy") { - this.word = "Empathy"; - var i = this.empathyOrder.indexOf(this.data.animal[1]) - this.description = this.empathy[i] - this.meanValue = this.data.animal[2] - this.scores = this.data.animal[3] - this.questions = this.data.animal[4] - } - else if (this.data.animal[0] == "Policy") { - this.word = "Policy"; - var i = this.policyOrder.indexOf(this.data.animal[1]) - this.description = this.policy[i] - this.meanValue = this.data.animal[2] - this.scores = this.data.animal[3] - this.questions = this.data.animal[4] - } - else if (this.data.animal[0] == "Professionalism") { - this.word = "Professionalism"; - var i = this.professionalismOrder.indexOf(this.data.animal[1]) - this.description = this.professionalism[i] - this.meanValue = this.data.animal[2] - this.scores = this.data.animal[3] - this.questions = this.data.animal[4] - } - else if (this.data.animal[0] == "Teaching Practice") { - this.word = "Teaching Practice"; - var i = this.teachingOrder.indexOf(this.data.animal[1]) - this.description = this.teaching[i] - this.meanValue = this.data.animal[2] - this.scores = this.data.animal[3] - this.questions = this.data.animal[4] - } - this.meanNumber = this.meanValue - - this.questions1 = [] - this.questions2 = [] - this.scores1 =[] - for(let key in this.scores){ - - - if(this.scores[key] == 1){ - - this.scores1[key] = this.columnHeadings[0] - } - if(this.scores[key] == 2){ - this.scores1[key] = this.columnHeadings[1] - } - if(this.scores[key] == 3){ - this.scores1[key] = this.columnHeadings[2] - } - if(this.scores[key] == 4){ - this.scores1[key] = this.columnHeadings[3] - } - if(this.scores[key] == 5){ - this.scores1[key] = this.columnHeadings[4] - } - } - - - if(this.meanValue >=0 && this.meanValue <= 1){ - if(this.meanValue ==1 ) - this.meanValue = this.columnHeadings[0] - else - this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity" - - } - if(this.meanValue >1 && this.meanValue <= 2){ - if(this.meanValue ==2 ) - this.meanValue = this.columnHeadings[1] - else - this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness" - - } - if(this.meanValue >2 && this.meanValue <= 3){ - if(this.meanValue ==3 ) - this.meanValue = this.columnHeadings[2] - else - this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence" - } - if(this.meanValue >3 && this.meanValue <= 4){ - if(this.meanValue ==4 ) - this.meanValue = this.columnHeadings[3] - else - this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence" - } - if(this.meanValue >4 && this.meanValue <= 5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - if(this.meanValue >5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - for(let key in this.questions) { - this.questions2.push(key) - this.questions1.push(this.questions[key]) - - - } - } - else if ( this.data.status == "form1") { - if (this.data.animal[0] == "Attitude") { - this.word = "Attitude"; - this.description = this.attitude[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - this.questions= this.data.animal[4] - this.scores = this.data.animal[5] - } - else if (this.data.animal[0] == "Empathy") { - this.word = "Empathy" - this.description = this.empathy[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - this.questions= this.data.animal[4] - this.scores = this.data.animal[5] - } - else if (this.data.animal[0] == "Policy") { - this.word = "Policy" - this.description = this.policy[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - this.questions= this.data.animal[4] - this.scores = this.data.animal[5] - } - else if (this.data.animal[0] == "Professionalism") { - this.word = "Professionalism" - this.description = this.professionalism[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - this.questions= this.data.animal[4] - this.scores = this.data.animal[5] - } - else if (this.data.animal[0] == "Teaching Practice") { - this.word = "Teaching Practice" - this.description = this.teaching[this.data.animal[1]]; - this.tempStatus = this.culturalStatus[this.data.animal[1]]; - this.questions= this.data.animal[4] - this.scores = this.data.animal[5] - } - this.questions1 = [] - this.questions2 = [] - this.scores1 =[] - this.comments = this.data.animal[6] - var temp = 0; - for(let key in this.scores){ - temp = temp + this.scores[key] - if(this.scores[key] == 1){ - this.scores1[key] = this.columnHeadings[0] - } - if(this.scores[key] == 2){ - this.scores1[key] = this.columnHeadings[1] - } - if(this.scores[key] == 3){ - this.scores1[key] = this.columnHeadings[2] - } - if(this.scores[key] == 4){ - this.scores1[key] = this.columnHeadings[3] - } - if(this.scores[key] == 5){ - this.scores1[key] = this.columnHeadings[4] - } - } - this.meanValue = temp/4.0 - this.meanNumber = temp/4.0 - if(this.meanValue >=0 && this.meanValue <= 1){ - if(this.meanValue ==1 ) - this.meanValue = this.columnHeadings[0] - else - this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity" - - } - if(this.meanValue >1 && this.meanValue <= 2){ - if(this.meanValue ==2 ) - this.meanValue = this.columnHeadings[1] - else - this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness" - - } - if(this.meanValue >2 && this.meanValue <= 3){ - if(this.meanValue ==3 ) - this.meanValue = this.columnHeadings[2] - else - this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence" - } - if(this.meanValue >3 && this.meanValue <= 4){ - if(this.meanValue ==4 ) - this.meanValue = this.columnHeadings[3] - else - this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence" - } - if(this.meanValue >4 && this.meanValue <= 5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - if(this.meanValue >5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - - for(let key in this.questions) { - this.questions2.push(key) - this.questions1.push(this.questions[key]) - - - } - } - else if (this.data.status == 'word') { - if (this.data.animal == "Attitude") { - this.description = "Attitude B. (Cultural Blindness) - Black students have the same opportunities and access to attend college as their white peers."; - - } - else if (this.data.animal == "Empathy") { - this.description = "Empathy E. (Cultural Destructiveness) - A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits." - } - } - - - } - -} diff --git a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.css b/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.css deleted file mode 100644 index 40f0e34a4fc2f2ba6d3a8a9c722d7d14c3c733d5..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.css +++ /dev/null @@ -1,119 +0,0 @@ -.w1-wrap { - background: linear-gradient(to bottom left, rgb(173, 178, 255), #d6f9ff); - width: 100%; - height: 96%; - top: 30px; - left: 0; - z-index: 1000; - overflow: auto; - text-align: center; - padding: 20px; - position: absolute; -} - -h3 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -.card-img-top { - width: 120px; - height: 120px; -} - -.row { - margin: 0 !important; - text-align: center; -} - -.w1-wrap .col { - padding: 0 !important; -} - -.header { - background-color: #d6f9ff; - font-size: 2vw; - color: rgb(173, 178, 255); - text-align: center; - padding: 1vw 0 !important; - line-height: 150%; -} - -h2 { - font-size: 2vw; - line-height: 150%; - color: black; - line-height: 150%; - text-align: center; -} - -.mat-card { - margin: 2vw 8vw; - padding: 0 !important; -} - -.content { - padding: 2vw; -} - -.col-2 { - text-align: center; -} - -@media screen and (min-width: 500px) { - .outer { - width: 6vw; - margin-top: 1vw; - display: inline-block; - } - .btn { - width: 6vw; - display: inline-block; - } - .btn:hover, - .btn:focus { - outline: none; - box-shadow: none; - } - .overlay { - position: absolute; - top: 1vw; - bottom: 0; - left: 9vw; - right: 0; - width: 6vw; - opacity: 0.6; - transition: .3s ease; - display: none; - background-color: rgb(208, 253, 208); - } -} - -@media screen and (max-width: 499px) { - .outer { - width: 13vw; - margin-top: 6vw; - display: inline-block; - } - .btn { - width: 13vw; - display: inline-block; - } - .btn:hover, - .btn:focus { - outline: none; - box-shadow: none; - } - .overlay { - position: absolute; - top: 6vw; - bottom: 0; - left: 4vw; - right: 0; - width: 13vw; - opacity: 0.6; - transition: .3s ease; - display: none; - background-color: rgb(208, 253, 208); - } -} \ No newline at end of file diff --git a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.html b/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.html deleted file mode 100644 index d6767888388ba1951b6f29a2ae1d45828e4d2fe2..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.html +++ /dev/null @@ -1,22 +0,0 @@ -<h1 mat-dialog-title> - <h3>Choose your Avatar</h3> -</h1> -<div mat-dialog-content> - - - <div class="row col-12"> - <div class="row"> - <div class="col-3" *ngFor="let ball of arr1"> - <div class="outer"> - <button class="btn" id="1{{ball}}"> - <img class="card-img-top" id="1{{ball}}" [src]="ball" (click) = "avatarClick(ball)"> - </button> - <div class="overlay" id="*{{ball}}"> - </div> - </div> - </div> - - </div> - </div> - -</div> \ No newline at end of file diff --git a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.spec.ts b/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.spec.ts deleted file mode 100644 index 2c1d31fe9a4a4fe3b918b0d726b2a0114c08f563..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { DashboardDialoComponent } from './dashboard-dialo.component'; - -describe('DashboardDialoComponent', () => { - let component: DashboardDialoComponent; - let fixture: ComponentFixture<DashboardDialoComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ DashboardDialoComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(DashboardDialoComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.ts b/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.ts deleted file mode 100644 index dd2c11d63c3d2d5bd560c8e25e4b41f7bc07a055..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard-dialo/dashboard-dialo.component.ts +++ /dev/null @@ -1,39 +0,0 @@ -import { Component, OnInit,Inject} from '@angular/core'; -import {MatDialog,MatDialogRef, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import Swal from 'sweetalert2'; -import {PreSurveyService} from '../../../services/preSurvey.service'; - -export interface DialogData { - animal; -} -@Component({ - selector: 'app-dashboard-dialo', - templateUrl: './dashboard-dialo.component.html', - styleUrls: ['./dashboard-dialo.component.css'] -}) -export class DashboardDialoComponent implements OnInit { - - arr1 = ['https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar1.png?alt=media&token=43a091f7-a828-4f7b-9478-991de35a5f5c','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar2.png?alt=media&token=f2020833-12c5-4597-9b1c-b723c988d4d5','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar3.png?alt=media&token=66de0c48-1d0c-4511-ba34-94e6d6fdcf9a','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar4.jpeg?alt=media&token=2c1f1544-d5ee-4f2b-9bd8-c08b5cb7a1b6','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar5.png?alt=media&token=4ccb76eb-871b-4c6c-9390-f89023c88bde','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar6.png?alt=media&token=809414a2-fba6-4815-aae6-775bcb5c7a83','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/avatar7.png?alt=media&token=405e6677-93d5-4f3b-9c84-fe65a4ddb0a7','https://firebasestorage.googleapis.com/v0/b/cpcdp-vcu.appspot.com/o/dog.png?alt=media&token=4bf29ae2-7ddd-4eab-bb0e-749f885bda0b']; - constructor( - public dialogRef: MatDialogRef<DashboardDialoComponent>, - public profileService: PreSurveyService, - @Inject(MAT_DIALOG_DATA) public data: DialogData) { - - } - - avatarClick(avatar){ - // - this.data.animal = avatar; - this.profileService.postProfile({"photo_profile" : avatar, "id": this.data["userID"]}).subscribe((res) => { - Swal.fire({ - text: "Profile Picture Changed", - icon: "success" - }).then((res) => {}) - }) - - this.dialogRef.close(avatar); - } - ngOnInit(): void { - } - -} diff --git a/src/app/dashboard/dashboard.component.css b/src/app/dashboard/dashboard.component.css deleted file mode 100644 index 1e28f7dc7521a7a74c3da61d1e2fc29f5f187436..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard.component.css +++ /dev/null @@ -1,433 +0,0 @@ -@media screen and (min-width: 992px) { - .home-wrap { - padding-top: 100px; - } -} - -.icon-select { - width: 0px; -} - -.icon-select .selected-box { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - height: 60px; - border: 1px solid #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-box:hover { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - height: 60px; - border: 1px solid #000000; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-icon { - position: absolute; - margin: 0px; - padding: 0px; - top: 5px; - left: 5px; - width: 48px; - /* sil */ - height: 48px; - /* sil */ - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .component-icon { - position: absolute; - bottom: 5px; - right: 4px; -} - -.icon-select .box { - position: absolute; - top: 0px; - left: 71px; - margin: 0px; - padding: 0px; - width: 170px; - height: 170px; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: auto; -} - -.icon-select .icon { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - height: 48px; - border: 1px solid #CCCCCC; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.icon-select .icon:hover { - border: 1px solid #000000; -} - -.icon-select .icon.selected { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - height: 48px; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.circle { - border-radius: 50%; - width: 150px; - height: 150px; - display: flex; - justify-content: center; - align-items: center; - margin-top: auto; - margin-bottom: auto; -} - -img { - border-radius: 50%; - width: 60px; - height: 60px; -} - -.initials { - color: #ffffff; - font-size: 20px; - line-height: 19px; - letter-spacing: 0.2625; -} - -.leftCards { - margin-bottom: 10px; -} - -.profileImg { - border-radius: 50%; - display: block; - margin-left: auto; - margin-right: auto; - width: 150px; - height: 150px; -} - -.div-wrap { - width: 500px; -} - -p { - font-family: 'Loto', sans-serif; -} - -li { - font-family: 'Loto', sans-serif; - font-size: 15px; - margin: 15px; -} - -h3 { - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - -p { - text-align: justify; - text-justify: inter-word; - font-size: 15px; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -.title { - background-color: #f8c045; - text-align: center; - padding: 8px 0; - margin-bottom: 20px; -} - -h1 { - margin-bottom: 5px !important; - margin-top: 5px; - font-size: 20px; -} - -::ng-deep .custom-dialog .mat-dialog-container { - padding: 0 !important; -} - -.dialog-wrap { - padding: 10px; -} - -.mat-error { - text-align: center; - margin-bottom: 25px; -} - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.row { - margin: 0 !important; -} - -.col-lg-12 { - padding: 0 !important; -} - -.btn { - background-color: #f8c045; - color: black; - padding: 5px; - margin-top: 5px; - float: right; - border-radius: 5px; - margin-bottom: 20px; - margin-right: 15px; -} - -.btn:hover, -.btn:focus, -.btn:active { - outline: none; - box-shadow: none; -} - -.close { - font-size: 25px; - color: red; - float: right; - margin-right: 20px; - margin-top: 10px; - cursor: pointer; -} - -.outer { - padding: 10px 30px; -} - -.circles { - height: 45px; - width: 45px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; - cursor: pointer; -} - -.active { - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - width: 200px; - height: 5px; - margin-bottom: 13px; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.current { - background-color: rgb(5, 204, 5); - cursor: no-drop; -} - -.bar { - width: 200px; - height: 5px; - margin-bottom: 13px; - border: 2px solid #e4e3e3; - background-color: #e4e3e3; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.icon { - margin: 8px; -} - -.chartsRadial { - margin-bottom: -200px; -} - -.alert { - text-align: center; -} - -.alert .mat-card { - display: inline-block; -} - -h3 { - font-size: 20px; - text-align: center; -} - -.status-btn { - border: none; - background-color: #f8c045; - color: black; - padding: 10px 40px; - display: inline-block; - border-radius: 5px; - margin: 20px; -} - -.status-btn:hover, -.status-btn:focus, -.status-btn:active { - border: none; - outline: none; - box-shadow: none; -} - -.legend { - margin-bottom: 40px; -} - -.color1 { - height: 15px; - width: 15px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; -} - -.color2 { - height: 15px; - width: 15px; - border: 2px solid #ffa500; - background-color: #ffa500; - border-radius: 50%; - display: inline-block; -} - -.color3 { - height: 15px; - width: 15px; - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - border-radius: 50%; - display: inline-block; -} - -small { - margin-left: 10px; -} - -.mat-hint { - color: rgb(0, 132, 255); - cursor: pointer; -} - -::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { - padding: 0 !important; -} - -::ng-deep .mat-datepicker-content-touch .mat-calendar { - width: 0 !important; - height: 0 !important; -} - -.status{ - margin-top: 40px; -} - -@media screen and (max-width: 991px){ - .activity{ - margin-top: 20px; - } -} - -.profile .mat-card{ - display: flex; - flex-direction: column; - height: 100%; -} - -.outer{ - display: flex; - margin: 0 50px; -} - -.content{ - margin: 20px 50px; -} - -.content .mat-card{ - padding: 20px 50px; -} diff --git a/src/app/dashboard/dashboard.component.html b/src/app/dashboard/dashboard.component.html deleted file mode 100644 index 6485479ee12209fbc8c5c852007402105ab5c167..0000000000000000000000000000000000000000 --- a/src/app/dashboard/dashboard.component.html +++ /dev/null @@ -1,149 +0,0 @@ -<div class="home-wrap"> - <!-- <div class="row col-lg-12"> --> - <!-- <div class="col-lg-6"> --> - <div class="col-lg-12" *ngIf="profile"> - <div class="row col-lg-12"> - <div class="col-lg-6"> - <mat-card> - <img class="profileImg" src="../../assets/profile.jpg"> - <mat-card-content> - <h2 style="width: 100%; text-align: center;">PROFILE</h2> - <p>Name: John Doe</p> - <p style="margin-top: -10px;">Email : john@gmail.com</p> - <p style="margin-top: -10px;">Phone : (757)-339-1234</p> - </mat-card-content> - </mat-card> - </div> - <div class="col-lg-6"> - <mat-card> - <h2>ACTIVITY</h2> - <ul> - <li>Completed Pre-Survey on <span style="color: red;"> March 25, 2021</span></li> - <li>Completed CPCQ Form on <span style="color: red;"> March 26, 2021</span></li> - <li>Started Unpacking of CPCQ Form answers on <span style="color: red;"> March 26, 2021</span></li> - <li>You will receive an email notifying you to login into your profile and review your facilitator's comments by <span style="color: red;"> April 10, 2021</span></li> - </ul> - </mat-card> - </div> - - </div> - <div class="col-lg-12"> - <mat-card> - <mat-card-content> - <div class="col-lg-12"> - <span *ngFor="let item of statusIcons; let i = index"> - <span matTooltip="{{statusNames[i]}}" class="circles" [class.current]="i <= currentStatus" ><mat-icon class="icon">{{item}}</mat-icon></span> - <span [class.bar]="i >= currentStatus" [class.active]="i < currentStatus" *ngIf="(i != statusIcons.length-1)" style="width: 65px;"></span> - </span> - </div> - </mat-card-content> - </mat-card> - </div> - </div> - - <div class="row outer" *ngIf="!profile"> - <div class="col-lg-5 profile"> - <mat-card> - <div class="row col-lg-12"> - <div class="col-lg-4"> - <script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.10.4/angular-0.10.4.js"></script> - <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> - <div ng:controller="Ctrl"> - - <div id="my-icon-select"></div> - - </div> - <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()"> - <div *ngIf="showInitials" class="circle" style="background-color:#118ab2;" (click)="openDialog()"> - - <div class="initials"> - {{initials}} - </div> - </div> - <br/> - <p (click)="openDialog()" style="text-align: center; width: 100%;">Choose Your Avatar</p> - - <br> - <!-- <img class="profileImg" src="../../assets/profile.jpg"> --> - </div> - <div class="col-lg-8"> - <mat-card-content> - <h2 style="width: 100%; text-align: center;"> USER PROFILE</h2> - <br> - <div class="row"> - <div class="col-12"> - <p>Username: {{userName}}</p> - </div> - <div class="col-12"> - <p>Email: {{email}}</p> - </div> - </div> - <div class="row"> - <div class="col-12"> - <p>Gender: {{gender}}</p> - </div> - <div class="col-12"> - <p>Location: {{location}}</p> - </div> - </div> - </mat-card-content> - </div> - </div> - </mat-card> - </div> - <div class="col-lg-7 activity"> - <mat-card> - <h2>CPCDP ACTIVITIES</h2> - <ul> - <li>Completed Pre-Survey on <span style="color: red;"> {{createdat}}.</span></li> - <li *ngIf="currentStatus >= 1">Cultural Proficiency Continuum Q-Sort form completed on <span style="color: red;"> March 26, 2021.</span></li> - <li *ngIf="!(currentStatus >= 1)">Cultural Proficiency Continuum Q-Sort form is pending your completion.</li> - - <li *ngIf="currentStatus >= 2">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on <span style="color: red;"> March 26, 2021.</span></li> - <li *ngIf="!(currentStatus >= 2)">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion.</li> - - <li *ngIf="(currentStatus >= 3)" >Your facilitator's comments on your reactions were completed on <span style="color: red;">{{createdat}}.</span></li> - <li *ngIf="!(currentStatus >= 3)" >Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive an email notifying you to login into your profile and review your facilitator's reactions.</li> - - <li *ngIf="(currentStatus >= 4)" >Post-Survey completed on <span style="color: red;">{{createdat}}.</span></li> - <li *ngIf="!(currentStatus >= 4)" >Post-Survey is pending your completion.</li> - - </ul> - - <div class="col-lg-12 status"> - <span *ngFor="let item of statusIcons; let i = index"> - <span matTooltip="{{statusNames[i]}}" class="circles" [class.current]="i <= currentStatus" ><mat-icon class="icon">{{item}}</mat-icon></span> - <span [class.bar]="i >= currentStatus" [class.active]="i < currentStatus" *ngIf="(i != statusIcons.length-1)" style="width: 65px;"></span> - </span> - </div> - </mat-card> - </div> - </div> - <!-- </div> --> - - <div class="content"> - <mat-card> - <mat-card-content> - <h2>Cultural Proficiency Continuum Q-Sort: A Majority-Minority PreK-12 Schooling Context </h2> - <p style="font-size: 20px;">Before engaging with the Cultural Proficiency Continuum Q-Sort (CPCQ), situate yourself as a new teacher in a U.S. public school that educates a <span matTooltip='Specific to the United States, a majority-minority student population is when the "number of one or more racial or ethnic minorities is greater than the White population" (Cormier, 2021, p. 17).' - style="font-style: italic; font-weight: bold;">majority-minority student population</span>. You are at this school for an interview as a potential new teacher. The principal is taking you on a tour of the school during which you - will observe a variety of culturally proficient interactions. While you are completing CPCQ, consider how you may react to these interactions during your tour. - </p> - <!-- <p><span style="font-weight: bold;">Note:</span> Your data and responses are confidential and will not be used for research or published without your signed consent. Thank you for your engagement and participation.</p> --> - - <ng-lottie speed="0.1" height="170px" [options]="options" (animationCreated)="animationCreated($event)"></ng-lottie> - - </mat-card-content> - <mat-card-actions> - <button mat-raised-button style="background-color: #29ABE2;" routerLink="/pcqform"> - CPCQ Directions - </button> - </mat-card-actions> - </mat-card> - - - </div> - - <!-- </div> --> - -</div> \ No newline at end of file diff --git a/src/app/email-password/email-password.component.css b/src/app/email-password/email-password.component.css deleted file mode 100644 index cb2e8a4516eb951edff739f67c9a8fb8b2ba4ded..0000000000000000000000000000000000000000 --- a/src/app/email-password/email-password.component.css +++ /dev/null @@ -1,72 +0,0 @@ -.container{ - text-align: center; - padding-bottom: 300px; -} - -.example-card { - display: inline-block; - margin-top: 100px; -} - -.intro { - top: 20%; - font-size: 35px; - text-align: center; - font-family: 'Loto', sans-serif, cursive; - color: black; - font-weight: bold; -} - -body { - font-family: 'Loto', sans-serif; - background-color: #f8fafb; -} - -@media screen and (min-width: 992px){ - p { - padding-top: 150px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -@media screen and (max-width: 991px){ - p { - padding-top: 20px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Loto', sans-serif; -} - -a { - -webkit-transition: .3s all ease; - -o-transition: .3s all ease; - transition: .3s all ease; -} - -a:hover { - text-decoration: none !important; -} - -h2 { - font-size: 20px; -} \ No newline at end of file diff --git a/src/app/email-password/email-password.component.html b/src/app/email-password/email-password.component.html deleted file mode 100644 index 26feeed4530473486687c72fd123b21647511e6f..0000000000000000000000000000000000000000 --- a/src/app/email-password/email-password.component.html +++ /dev/null @@ -1,22 +0,0 @@ -<div class="header-wrap"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <div class="container"> - <mat-card class="example-card "> - <div class="mb-4"> - <h3 style="text-align: center;">Authentication Required</h3> - </div> - <form [formGroup]="forgotForm"> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Password sent via e-mail</mat-label> - <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="forgotForm.controls.password.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> - <input type="submit" value="Verify" class="btn text-white btn-block btn-primary" style="background-color: #29ABE2; font-size: 20px;" (click)="login()"> - </form> - </mat-card> - </div> -</div> -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/email-password/email-password.component.spec.ts b/src/app/email-password/email-password.component.spec.ts deleted file mode 100644 index dc5de40c87e91020e15e33b51a7b199b2ce45494..0000000000000000000000000000000000000000 --- a/src/app/email-password/email-password.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { EmailPasswordComponent } from './email-password.component'; - -describe('EmailPasswordComponent', () => { - let component: EmailPasswordComponent; - let fixture: ComponentFixture<EmailPasswordComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ EmailPasswordComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(EmailPasswordComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/email-password/email-password.component.ts b/src/app/email-password/email-password.component.ts deleted file mode 100644 index a425afe0c93e33327500ffdcb4ff196249c7e93f..0000000000000000000000000000000000000000 --- a/src/app/email-password/email-password.component.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { EmailValidator, FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; -import Swal from 'sweetalert2'; -import { Login } from '../../services/login.sevice'; -@Component({ - selector: 'app-email-password', - templateUrl: './email-password.component.html', - styleUrls: ['./email-password.component.css'] -}) -export class EmailPasswordComponent implements OnInit { - forgotForm: FormGroup; - hide = true; - constructor(private fb: FormBuilder, private router: Router, private loginService : Login) { } - - ngOnInit(): void { - this.forgotForm = this.fb.group({ - password:["",[ Validators.required]], - username:[""] - - }) - - } - - getEmailError(){ - if(this.forgotForm.controls.username.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - getPasswordError(){ - if(this.forgotForm.controls.password.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - - login(){ - if(!this.forgotForm.valid){ - - Swal.fire({ - text: "Please enter all the fields in the right format.", - icon: "error" - }).then((res) => { - }) - } - else{ - this.forgotForm.get("username").setValue(localStorage.getItem("username")); - this.loginService.login(this.forgotForm.value).subscribe((res) => { - localStorage.setItem("user",res["token"]); - // this.router.navigateByUrl("/changePassword") - - Swal.fire({ - text: "Verification Successful!", - icon: "success" - }).then((res) => { - this.router.navigateByUrl("/changePassword") - }) - - },(err) => { - - Swal.fire({ - text: "Username and email do not match.", - icon: "error" - }).then((res) => { - }) - }) - } - } - -} diff --git a/src/app/final-dashboard/final-dashboard.component.css b/src/app/final-dashboard/final-dashboard.component.css deleted file mode 100644 index a365711bd9267d513b8835c31e5773f74be6f778..0000000000000000000000000000000000000000 --- a/src/app/final-dashboard/final-dashboard.component.css +++ /dev/null @@ -1,454 +0,0 @@ -@media screen and (min-width: 992px) { - .home-wrap { - padding-top: 100px; - } -} - -.icon-select { - width: 0px; -} - -.icon-select .selected-box { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - /* sil */ - height: 60px; - /* sil */ - border: 1px solid #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-box:hover { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - /* sil */ - height: 60px; - /* sil */ - border: 1px solid #000000; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-icon { - position: absolute; - margin: 0px; - padding: 0px; - top: 5px; - left: 5px; - width: 48px; - /* sil */ - height: 48px; - /* sil */ - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .component-icon { - position: absolute; - bottom: 5px; - right: 4px; -} - -.icon-select .box { - position: absolute; - top: 0px; - left: 71px; - margin: 0px; - padding: 0px; - width: 170px; - /* sil */ - height: 170px; - /* sil */ - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: auto; - /* - -webkit-overflow-scrolling: touch; - */ -} - -.icon-select .icon { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - /* sil */ - height: 48px; - /* sil */ - border: 1px solid #CCCCCC; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.icon-select .icon:hover { - border: 1px solid #000000; -} - -.icon-select .icon.selected { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - /* sil */ - height: 48px; - /* sil */ - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.example-card { - /* max-width: 1000px; - */ - width: 1000px; - height: 570px; - position: absolute; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); -} - -.circle { - border-radius: 50%; - width: 150px; - height: 150px; - display: flex; - justify-content: center; - align-items: center; - /* margin-right: auto; */ - /* margin-left: auto; */ - margin-top: auto; - margin-bottom: auto; -} - -img { - border-radius: 50%; - width: 60px; - height: 60px; -} - -.initials { - color: #ffffff; - font-size: 20px; - line-height: 19px; - letter-spacing: 0.2625; -} - -.leftCards { - margin-bottom: 10px; -} - -.profileImg { - border-radius: 50%; - display: block; - margin-left: auto; - margin-right: auto; - width: 150px; - height: 150px; -} - -.div-wrap { - width: 500px; -} - -p { - font-family: 'Loto', sans-serif; -} - -li { - font-family: 'Loto', sans-serif; - font-size: 15px; - margin: 15px; -} - -h3 { - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -.title { - background-color: #f8c045; - text-align: center; - padding: 8px 0; - margin-bottom: 20px; -} - -h1 { - margin-bottom: 5px !important; - margin-top: 5px; -} - -::ng-deep .custom-dialog .mat-dialog-container { - padding: 0 !important; -} - -.dialog-wrap { - padding: 10px; -} - -.mat-error { - text-align: center; - margin-bottom: 25px; -} - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.row { - margin: 0 !important; -} - -.col-lg-12 { - padding: 0 !important; -} - -.btn { - background-color: #f8c045; - color: black; - padding: 5px; - margin-top: 5px; - float: right; - border-radius: 5px; - margin-bottom: 20px; - margin-right: 15px; -} - -.btn:hover, -.btn:focus, -.btn:active { - outline: none; - box-shadow: none; -} - -.close { - font-size: 25px; - color: red; - float: right; - margin-right: 20px; - margin-top: 10px; - cursor: pointer; -} - -.outer { - padding: 10px 30px; -} - -.circles { - height: 45px; - width: 45px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; - cursor: pointer; -} - -.active { - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - width: 200px; - height: 5px; - margin-bottom: 13px; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.current { - background-color: rgb(5, 204, 5); - cursor: no-drop; -} - -.bar { - width: 200px; - height: 5px; - margin-bottom: 13px; - border: 2px solid #e4e3e3; - background-color: #e4e3e3; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.icon { - margin: 8px; -} - -.chartsRadial { - margin-bottom: -200px; -} - -.alert { - text-align: center; -} - -.alert .mat-card { - display: inline-block; -} - -h3 { - font-size: 20px; - text-align: center; -} - -.status-btn { - border: none; - background-color: #f8c045; - color: black; - padding: 10px 40px; - display: inline-block; - border-radius: 5px; - margin: 20px; -} - -.status-btn:hover, -.status-btn:focus, -.status-btn:active { - border: none; - outline: none; - box-shadow: none; -} - -.legend { - margin-bottom: 40px; -} - -.color1 { - height: 15px; - width: 15px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; -} - -.color2 { - height: 15px; - width: 15px; - border: 2px solid #ffa500; - background-color: #ffa500; - border-radius: 50%; - display: inline-block; -} - -.color3 { - height: 15px; - width: 15px; - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - border-radius: 50%; - display: inline-block; -} - -small { - margin-left: 10px; -} - -.mat-hint { - color: rgb(0, 132, 255); - cursor: pointer; -} - -::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { - padding: 0 !important; -} - -::ng-deep .mat-datepicker-content-touch .mat-calendar { - width: 0 !important; - height: 0 !important; -} - -.status{ - margin-top: 40px; -} - -@media screen and (max-width: 991px){ - .activity{ - margin-top: 20px; - } -} - -.profile .mat-card{ - display: flex; - flex-direction: column; - height: 100%; -} - -.outer{ - display: flex; - margin: 0 50px; -} - -.content{ - margin: 20px 50px; -} - -.content .mat-card{ - padding: 20px 50px; -} \ No newline at end of file diff --git a/src/app/final-dashboard/final-dashboard.component.html b/src/app/final-dashboard/final-dashboard.component.html deleted file mode 100644 index b582a7494bea24705ee9cd8493b3264a6e31f62b..0000000000000000000000000000000000000000 --- a/src/app/final-dashboard/final-dashboard.component.html +++ /dev/null @@ -1,98 +0,0 @@ -<div class="home-wrap"> - - <div *ngIf="!profile"> - <div class="row outer"> - <div class="col-lg-5 profile"> - <mat-card class="leftCards"> - <div class="row col-lg-12"> - <div class="col-lg-4"> - <script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.10.4/angular-0.10.4.js"></script> - <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> - <div ng:controller="Ctrl"> - - <div id="my-icon-select"></div> - - </div> - <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()"> - <div *ngIf="showInitials" class="circle" style="background-color:#118ab2;" (click)="openDialog()"> - - <div class="initials"> - {{initials}} - </div> - </div> - <br/> - <p (click)="openDialog()" style="width: 100%; text-align: center;">Choose Your Avatar</p> - </div> - <div class="col-lg-8"> - <mat-card-content> - <h2 style="width: 100%; text-align: center;">USER PROFILE</h2> - <br> - <div class="row"> - <div class="col-12"> - <p>Username: {{userName}}</p> - </div> - <div class="col-12"> - <p>Email: {{email}}</p> - </div> - </div> - <div class="row"> - <div class="col-12"> - <p>Gender: {{gender}}</p> - </div> - <div class="col-12"> - <p>Location: {{location}}</p> - </div> - </div> - </mat-card-content> - </div> - </div> - </mat-card> - </div> - <div class="col-lg-7 activity"> - <mat-card class="leftCards"> - <h2>CPCDP ACTIVITIES</h2> - <ul> - <li>Completed Pre-Survey on <span style="color: red;"> {{preSurveyDate}}.</span></li> - <li *ngIf="currentStatus >= 1">Cultural Proficiency Continuum Q-Sort form completed on <span style="color: red;">{{responsesDate}}.</span></li> - <li *ngIf="!(currentStatus >= 1)">Cultural Proficiency Continuum Q-Sort form is pending your completion.</li> - - <li *ngIf="currentStatus >= 2">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on <span style="color: red;">{{cpcqDate}}.</span></li> - <li *ngIf="!(currentStatus >= 2)">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion.</li> - - <li *ngIf="(currentStatus >= 3)" >Your facilitator's comments on your reactions were completed on <span style="color: red;">{{scoreDate}}.</span></li> - <li *ngIf="!(currentStatus >= 3)" >Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive an email notifying you to login into your profile and review your facilitator's reactions.</li> - - <li *ngIf="(currentStatus >= 4)" >Post-Survey completed on <span style="color: red;">{{postSurveyDate}}.</span></li> - <li *ngIf="!(currentStatus >= 4)" >Post-Survey is pending your completion.</li> - - </ul> - <div class="col-lg-12 status"> - <span *ngFor="let item of statusIcons; let i = index"> - <span matTooltip="{{statusNames[i]}}" class="circles" [class.current]="i <= currentStatus" ><mat-icon class="icon">{{item}}</mat-icon></span> - <span [class.bar]="i >= currentStatus" [class.active]="i < currentStatus" *ngIf="(i != statusIcons.length-1)" style="width: 65px;"></span> - </span> - </div> - </mat-card> - </div> - </div> - </div> - <div class="content"> - <mat-card> - <mat-card-content> - <h2>Cultural Proficiency Continuum Q-Sort: A Majority-Minority PreK-12 Schooling Context - - </h2> - <p style="font-size: 20px;">Thank you for engaging with the Cultural Proficiency Continuum Web-Based Dialogic Protocol. At this stage, you have completed the Pre-Survey, reacted to and unpacked a host of Culturally Proficient interactions, reviewed your facilitator's feedback and scores, and completed the Post-Survey. Thank you again, and we look forward to providing you with opportunities in the future to assess and codify your cultural competence. - - </p> - <ng-lottie speed="0.1" height="280px" [options]="options" (animationCreated)="animationCreated($event)"></ng-lottie> - </mat-card-content> - <mat-card-actions> - <button mat-raised-button style="background-color: #29ABE2;" routerLink="/score"> - View Facilitator's Comments - </button> - - </mat-card-actions> - </mat-card> - </div> -</div> \ No newline at end of file diff --git a/src/app/final-feedback/final-feedback.component.css b/src/app/final-feedback/final-feedback.component.css deleted file mode 100644 index 24eb34196a903927dee753a7b163e4966afe0e65..0000000000000000000000000000000000000000 --- a/src/app/final-feedback/final-feedback.component.css +++ /dev/null @@ -1,166 +0,0 @@ -.divClass { - padding-top: 10px; -} - -.example-card { - /* max-height: 700px; */ - /* width: 1000px; */ - /* height: 570px; */ - position: absolute; - top: 55%; - left: 50%; - transform: translate(-50%, -50%); - width: 80%; -} - -::ng-deep .mat-tab-body-content { - max-height: 500px !important; -} - -.table-responsive { - height: 310px; -} - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -mat-slider { - width: 350px; -} - -.mat-slider-thumb-label { - transform: rotate(45deg) !important; - border-radius: 50% 50% 0 !important; -} - -.mat-slider-thumb { - transform: scale(0) !important; -} - -.mat-slider-thumb-label-text { - opacity: 1 !important; -} - -.advice { - border: none; - background: none; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -mat-form-field { - width: 100%; - height: 5%; -} - -::ng-deep .mat-form-field-flex>.mat-form-field-infix { - padding: 0.4em 0px !important; -} - -::ng-deep .mat-form-field-label-wrapper { - top: -1.5em; -} - -::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label { - transform: translateY(-1.1em) scale(.75); - width: 133.33333%; - color: black !important; - border: black; -} - -.example-h2 { - margin: 10px; -} - -.example-section { - display: flex; - align-content: center; - align-items: center; - height: 60px; -} - -.example-margin { - margin: 0 10px; -} - -.imgClass { - width: 30px; - height: 30px -} - -.zoom { - transition: transform .2s; - border: none; - background: none; - /* Animation */ - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); - /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} - - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - - -/* -p { - font-family: 'roboto'; -} */ \ No newline at end of file diff --git a/src/app/final-feedback/final-feedback.component.html b/src/app/final-feedback/final-feedback.component.html deleted file mode 100644 index cb81e04cbc6fdcb71c822acffaf7ef2e0c9128bf..0000000000000000000000000000000000000000 --- a/src/app/final-feedback/final-feedback.component.html +++ /dev/null @@ -1,770 +0,0 @@ -<div class="divClass"> - <mat-card class="example-card "> - - <mat-card-content> - <div style="margin-bottom: 10px; margin-left: -10px;"> - <mat-progress-bar *ngIf="selectedIndex > 0 && selectedIndex <6" class="example-margin" style="width: 100%;" [mode]="mode" [value]="selectedIndex*20" [bufferValue]="bufferValue"> - </mat-progress-bar> - </div> - - - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab label="Second"> - <h2>Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority U.S. PreK-12 Schools - - </h2> - <p style="font-size: 24px;"><span style="font-weight: bold;">Directions: </span> In the upcoming activity, you will engage with 30 vignettes situated in five categories that illustrate culturally proficient interactions that have taken place in U.S. public schools. - Your task is to assign a level of reaction using numbers 1 - 6 to each vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the highest level of reaction from you, 5 to the vignette - that evokes the next highest level of reaction from you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction from you. - </p> - <p style="font-size: 20px;"> - <span style="font-weight: bold;"> Note: </span> There are no correct or wrong ways to react to vignettes; your level of reaction (negative or positive) is unique to you. If you need to see the directions after beginning the Q-Sort, click the <span style="color: #4050b5;" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand corner. - - - - </p> - </mat-tab> - <mat-tab label="Third"> - <button class="advice" (click)="openWordDialog('Attitude')"> - <span><h2><u>Attitude</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Attitude')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Attitude" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv>{{attitude['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv1>{{attitude['question2']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv2>{{attitude['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv3>{{attitude['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv4>{{attitude['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv5>{{attitude['question6']}}</p> - </div> - </div> - </form> - - - <p style="margin-top: 20px; font-size: 15px;"> The singular pronouns: “their†or “they†are used as gender-neutral pronouns. - </p> - - - - </mat-tab> - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Empathy')"> - <span><h2><u>Empathy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Empathy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Empathy" and respond to the prompt. - </p> - - <form [formGroup]="attitudeForm"> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv6>{{empathy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv7>{{empathy['question2']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv8>{{empathy['question3']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv9>{{empathy['question4']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv10>{{empathy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv11>{{empathy['question6']}}</p> - </div> - </div> - </form> - - </mat-tab> - - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Policy')"> - <span><h2><u>Policy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Policy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Policy" and respond to the prompt.</p> - - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv12>{{policy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv13>{{policy['question2']}} - - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv14>{{policy['question3']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv15>{{policy['question4']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv16>{{policy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv17>{{policy['question6']}} </p> - </div> - </div> - </form> - </mat-tab> - - <mat-tab label="Fifth"> - <button class="advice" (click)="openWordDialog('Professionalism')"> - <span><h2><u>Professionalism</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Professionalism')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Professionalism" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv18>{{professionalism['question1']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv19>{{professionalism['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv20>{{professionalism['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv21>{{professionalism['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv22>{{professionalism['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv23>{{professionalism['question6']}} </p> - </div> - </div> - - </form> - </mat-tab> - - <mat-tab label="Sixth"> - <button class="advice" (click)="openWordDialog('Teaching Practice')"> - <span><h2><u>Teaching Practice</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Teaching Practice')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Teaching Practice" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv24> {{teachingPractice['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv25>{{teachingPractice['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv26>{{teachingPractice['question3']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv27>{{teachingPractice['question4']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv28>{{teachingPractice['question5']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv29>{{teachingPractice['question6']}}</p> - </div> - </div> - </form> - </mat-tab> - <mat-tab label="Seventh"> - <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions - </h2> - <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in - the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis - is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. - Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, - but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> - <p><span><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the vignette and the corresponding culturally proficient interaction. Above each column is a link to the definition for each culturally proficient interaction; review the definitions before unpacking your reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. - - </span></p> - <div class="table-responsive"> - <table class="table"> - <thead class="thead-dark" style="font-size: 15px;"> - <tr> - <th></th> - <th matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). ">Cultural Destructiveness</th> - <th matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] ">Cultural Incapacity</th> - <th matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] ">Cultural Blindness</th> - <th matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context "> - Cultural Pre-Competence </th> - <th matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context ">Cultural Competence</th> - <th matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality ">Cultural Proficiency</th> - </tr> - </thead> - <tbody *ngFor="let row of responsesArray; let i = index"> - <tr> - <td> {{row[7]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[0][1] == 'colorbold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] == 'nobold'"> - {{row[0][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[1][1] == 'colorbold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] == 'nobold'"> - {{row[1][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[2][1] == 'colorbold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] == 'nobold'"> - {{row[2][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[3][1] == 'colorbold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] == 'nobold'"> - {{row[3][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[4][1] == 'colorbold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] == 'nobold'"> - {{row[4][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[5][1] == 'colorbold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] == 'nobold'"> - {{row[5][0]}} - </td> - - - - </tr> - - </tbody> - <!-- <tbody *ngFor="let row of formValues; let i = index"> - <tr> - <td> {{row[0]}} </td> - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'True'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'False'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td *ngIf="boldList[i][0] <=2"> {{row[1]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'True'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'False'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td *ngIf="boldList[i][1] <=3"> {{row[2]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'True'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'False'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td *ngIf="boldList[i][2] <=4 && boldList[i][2] != 1"> {{row[3]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'True'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'False'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td *ngIf="boldList[i][3] <=5 && boldList[i][3]>=4"> {{row[4]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'True'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'False'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td *ngIf="boldList[i][4]>=4"> {{row[5]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'True'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'False'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td *ngIf="boldList[i][5]>=5"> {{row[6]}} </td> - </tr> - </tbody> --> - </table> - </div> - <!-- <div style="text-align:center;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> --> - </mat-tab> - <mat-tab> - <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections - </h2> - <p>Directions: Read and respond to each question below. - </p> - <div [formGroup]="finalFeedbackForm" class="questions"> - - - <p>1. What are your overall impressions of this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q1" type="text" matInput placeholder="" required> - </mat-form-field> - - - - <p style="margin-top: 15px;">2. Were there any challenges that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q2" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">3. Were there any feelings that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q3" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and cultural backgrounds? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q4" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place yourself on the Cultural Proficiency Continuum? - </p> - <mat-radio-group formControlName="q5" class="example-radio-group"> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="Cultural Destructiveness">Cultural Destructiveness - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="Cultural Incapacity">Cultural Incapacity - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="Cultural Blindness">Cultural Blindness - </mat-radio-button> - </div> - </div> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="Cultural Pre-Competence">Cultural Pre-Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="Cultural Competence">Cultural Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="Cultural Proficiency">Cultural Proficiency - </mat-radio-button> - </div> - </div> - </mat-radio-group> - - <p style="margin-top: 15px;">6. How would you rate the design of our website? - </p> - <div class="row"> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('angry')"> - <img id="angry" class="imgClass" src="../../assets/angry.png"/> - </button> - <p>Very poor</p> - - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('sad')"> - <img id="sad" class="imgClass" src="../../assets/sad.png"/> - </button> - <p>Poor</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('neutral')"> - <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> - </button> - <p style="text-align: justify;">Fair</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('smile')"> - <img id="smile" class="imgClass" src="../../assets/smile.png"/> - </button> - <p>Good</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('heart')"> - <img id="heart" class="imgClass" src="../../assets/heart.webp"/> - </button> - <p>Excellent</p> - </div> - </div> - - <br> - <p style="margin-top: 15px;">7. Was our website easy to use and understand? - </p> - <div class="row"> - - - - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsup')"> - <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png"/> - </button> - </div> - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsdown')"> - <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png"/> - </button> - </div> - </div> - - </div> - - - </mat-tab> - <!-- <mat-tab label="Eight"> - <h2>Sample of Audio Answer</h2> - <p>Please press the button below to start recording your answer.</p> - <div style="text-align:center;margin-top: 200px;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> - </mat-tab> --> - </mat-tab-group> - - - - </mat-card-content> - - - - <mat-card-actions> - <div class="row"> - <div class="col-8"> - <button *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex !=7" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - - <button *ngIf="selectedIndex == 5" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 6" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm1()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 7" mat-raised-button style=" padding-right: -10px; background-color:#29ABE2; color: white; margin-top: -100px;" (click) = "finalSubmit()"> - Go to Dashboard - </button> - </div> - <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> - <p style="font-size: 10px; margin:-10px; margin-left: 20px;">Use this bar to increase or decrease the font size</p> - <mat-slider color="primary" min="0" max="4" value="1" tickInterval="1" (input)="sliderFunction($event)"></mat-slider> - - - </div> - - </div> - - - - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/final-feedback/final-feedback.component.ts b/src/app/final-feedback/final-feedback.component.ts deleted file mode 100644 index 11dfac46b8374cf3eabc09ac389d54bbabfb0fab..0000000000000000000000000000000000000000 --- a/src/app/final-feedback/final-feedback.component.ts +++ /dev/null @@ -1,1226 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {AfterViewInit, ElementRef, ViewChild} from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup,Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -import {ThemePalette} from '@angular/material/core'; -import {ProgressBarMode} from '@angular/material/progress-bar'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {DialogFormComponent} from '../cpcq-form/dialog-form/dialog-form.component' - -import {CPCQService} from '../../services/cpcq.service'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; - status; - result; -} -@Component({ - selector: 'app-final-feedback', - templateUrl: './final-feedback.component.html', - styleUrls: ['./final-feedback.component.css'] -}) -export class FinalFeedbackComponent implements OnInit, AfterViewInit { - firstForm: FormGroup; - responseList:any ; - loaded = false; - - questionArray = [["Enter First Name","text"],["Enter Last Name","text"],["Enter Age","number"]]; - statusCheck = false; - buttonClick = false; - - sliderValue = 0; - - selectedIndex = 7; - - color: ThemePalette = 'primary'; - mode: ProgressBarMode = 'buffer'; - value1 = 50; - bufferValue = 100; - - formValues = []; - attributes = ["Attitude","Empathy","Policy","Professionalism","Teaching Practice"]; - columnHeadings = ["culturalDestructivenessresponse","culturalIncapacityresponse","culturalBlindnessresponse","culturalPreCompetenceresponse","culturalCompetenceresponse","culturalProficiencyresponse"] - rowLetters = [["D",'C','B','A','F','E'],['E','A','F','D','B','C'],['F','E','B','C','D','A'],['E','A','B','D','C','F'],['D','C','B','E','A','F']]; - boldList = [[]]; - randomList = [[]]; - finalList=[[]]; - finalList1 = []; - attitudeForm: FormGroup; - empathyForm: FormGroup; - policyForm: FormGroup; - - finalFeedbackForm:FormGroup; - - - - - //arrays of data getting from the backend - - attitude:any; - empathy :any; - policy:any; - professionalism:any; - teachingPractice:any; - wordDescription:any; - unpackedCount = 0; - - startTime: any; - endTime: any; - durationTime : any; - - @ViewChild('changeDiv') changeDiv: ElementRef; - @ViewChild('changeDiv1') changeDiv1: ElementRef; - @ViewChild('changeDiv2') changeDiv2: ElementRef; - @ViewChild('changeDiv3') changeDiv3: ElementRef; - @ViewChild('changeDiv4') changeDiv4: ElementRef; - @ViewChild('changeDiv5') changeDiv5: ElementRef; - @ViewChild('changeDiv6') changeDiv6: ElementRef; - @ViewChild('changeDiv7') changeDiv7: ElementRef; - @ViewChild('changeDiv8') changeDiv8: ElementRef; - @ViewChild('changeDiv9') changeDiv9: ElementRef; - @ViewChild('changeDiv10') changeDiv10: ElementRef; - @ViewChild('changeDiv11') changeDiv11: ElementRef; - @ViewChild('changeDiv12') changeDiv12: ElementRef; - @ViewChild('changeDiv13') changeDiv13: ElementRef; - @ViewChild('changeDiv14') changeDiv14: ElementRef; - @ViewChild('changeDiv15') changeDiv15: ElementRef; - @ViewChild('changeDiv16') changeDiv16: ElementRef; - @ViewChild('changeDiv17') changeDiv17: ElementRef; - @ViewChild('changeDiv18') changeDiv18: ElementRef; - @ViewChild('changeDiv19') changeDiv19: ElementRef; - @ViewChild('changeDiv20') changeDiv20: ElementRef; - @ViewChild('changeDiv21') changeDiv21: ElementRef; - @ViewChild('changeDiv22') changeDiv22: ElementRef; - @ViewChild('changeDiv23') changeDiv23: ElementRef; - @ViewChild('changeDiv24') changeDiv24: ElementRef; - @ViewChild('changeDiv25') changeDiv25: ElementRef; - @ViewChild('changeDiv26') changeDiv26: ElementRef; - @ViewChild('changeDiv27') changeDiv27: ElementRef; - @ViewChild('changeDiv28') changeDiv28: ElementRef; - @ViewChild('changeDiv29') changeDiv29: ElementRef; - - - - - - - - - - ngAfterViewInit() { - - - - } - - sliderFunction1(){ - if(this.sliderValue == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(this.sliderValue == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(this.sliderValue == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(this.sliderValue == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(this.sliderValue == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - } - sliderFunction(e){ - // - this.sliderValue = e.value; - if(e.value == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(e.value == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(e.value == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(e.value == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(e.value == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - - } - constructor(private fb: FormBuilder, private apiService: CPCQService,private router: Router, private formService : FirstForm,private domSanitizer: DomSanitizer,public dialog: MatDialog) { } - openDialog(i,j,id) { - // - - - var arr = []; - arr.push(this.attributes[i]); - arr.push(j); - arr.push(this.columnHeadings[j]) - arr.push(id) - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: arr, - status : "form" - }, - disableClose:true - }); - dialogRef.afterClosed().subscribe(result => { - - if(this.responsesArray[i][j][1] == "colorbold"){ - this.unpackedCount = this.unpackedCount +1 - } - - }) - } - - openWordDialog(i) { - // - this.buttonClick = true; - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "word" - }, - disableClose:true - }); - - dialogRef.afterClosed().subscribe(result => { - - this.wordDescription = result; - }) - } - - helpDialog(i) { - // - this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "help" - } - }); - } - - keyPressFunc(e){ - - // - var numbersList = ["1"]; - for (let key in this.attitudeForm.value) { - - - if(numbersList.indexOf(this.attitudeForm.value[key]) == -1){ - // - return "Number"; - } - } - - - } - - getEmailError(){ - return "Error"; - } -responsesArray =[] -temp = [] - getResponses(){ - this.apiService.getResponsesData().subscribe((res) => { - for(let key in res){ - this.temp = [] - for(let key1 in res[key]){ - this.temp.push(res[key][key1]) - } - this.responsesArray.push(this.temp) - } - - }) - } - - - getForm(){ - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - var attitudeResult = []; - var empathyResult = []; - var policyResult = []; - var profResult = []; - var teachingResult = []; - this.finalList = [[]] - this.boldList = [[]] - this.apiService.getFormData().subscribe((res) => { - for (let key in res){ - arr = []; - if(res[key]["topic"] == "Attitude"){ - attitudeResult.push("Attitude"); - arr.push("Attitude"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Empathy"){ - empathyResult.push("Empathy") - arr.push("Empathy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Policy"){ - policyResult.push("Policy") - arr.push("Policy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Professionalism"){ - profResult.push("Professionalism"); - arr.push("Professionalism"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Teaching Practice"){ - arr.push("Teaching Pracice"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - teachingResult.push("Teaching Practice"); - teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - - this.boldList.push(arr); - - } - this.finalList.push(attitudeResult) - this.finalList.push(empathyResult) - this.finalList.push(policyResult) - this.finalList.push(profResult) - this.finalList.push(teachingResult) - }) - this.finalList.splice(0, 1); - this.boldList.splice(0, 1); - // this.getAllIndexes(this.finalList,1) - - - - } - - emoji:any; - changeEmojiSize(data){ - document.getElementById("angry").style.height = "30px" - document.getElementById("angry").style.width = "30px" - document.getElementById("sad").style.height = "30px" - document.getElementById("sad").style.width = "30px" - document.getElementById("neutral").style.height = "30px" - document.getElementById("neutral").style.width = "30px" - document.getElementById("smile").style.height = "30px" - document.getElementById("smile").style.width = "30px" - document.getElementById("heart").style.height = "30px" - document.getElementById("heart").style.width = "30px" - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - - this.emoji = data; - } - - thumbs:any; - changeThumbsSize(data){ - document.getElementById("thumbsup").style.height = "30px" - document.getElementById("thumbsup").style.width = "30px" - document.getElementById("thumbsdown").style.height = "30px" - document.getElementById("thumbsdown").style.width = "30px" - - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - this.thumbs = data; - } - finalSubmit(){ - this.finalFeedbackForm.value["q6"] = this.thumbs - this.finalFeedbackForm.value["q7"] = this.emoji - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => { - - }) - - this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe((res) => { - this.apiService.changeCPCQStatus().subscribe((res1) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - this.router.navigateByUrl("/result") - } - }) - - }) - },(err) => { - - }) - - } - ngOnInit(): void { - this.startTime = new Date() - this.finalFeedbackForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - }) - - this.apiService.attitudeData().subscribe((res) => { - // - this.attitude = res[0]; - // - },(err) => { - - }) - - this.apiService.empathyData().subscribe((res) => { - // - this.empathy = res[0]; - // - },(err) => { - - }) - - this.apiService.policyData().subscribe((res) => { - this.policy = res[0]; - },(err) => { - - }) - - this.apiService.professionalismData().subscribe((res) => { - this.professionalism = res[0]; - },(err) => { - - }) - - this.apiService.teachingData().subscribe((res) => { - this.teachingPractice = res[0]; - },(err) => { - - }) - - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - description:["",[Validators.required]] - - }) - - this.empathyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - this.policyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - for(var j = 0;j<5;j++){ - arr = []; - arr1 = []; - arr2 = []; - i = 0; - while(i<6){ - var item1 = Math.floor(Math.random() * (7 - 1) + 1); - if(arr1.indexOf(item1) == -1){ - if(i == 0){ - arr.push(this.attributes[j]); - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(arr1[arr1.length -1] >2){ - // - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else{ - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(i==1){ - if(arr1[arr1.length - 1] >3){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==2){ - if(arr1[arr1.length - 1] >4 || arr1[arr1.length - 1] == 1){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==3){ - if(arr1[arr1.length - 1] >5 || arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==4){ - if(arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==5){ - if(arr1[arr1.length - 1] <5){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - } - i = i + 1; - } - else{ - continue; - } - - } - this.formValues.push(arr); - this.boldList.push(arr1); - this.randomList.push(arr2); - } - this.boldList.splice(0, 1); - this.randomList.splice(0, 1); - - - - this.getAllIndexes(this.randomList,"True"); - this.loaded = true; - } - - getAllIndexes(arr, val) { - var indexes = []; - var i = -1; - for(var i = 0;i<arr.length;i++){ - for(var j = 0;j<arr[i].length;j++){ - if(arr[i][j] == "True"){ - var arr1 = []; - arr1.push(i); - arr1.push(j) - indexes.push(arr1); - } - } - } - - var arr1 = []; - for(var i = 0;i<indexes.length;i++){ - arr1.push(i); - } - var ranNums = []; - var i = arr1.length; - var j = 0; - var count = 0; - while (i--) { - - if(count < 5){ - j = Math.floor(Math.random() * (i+1)); - ranNums.push(arr1[j]); - arr1.splice(j,1); - count = count+1; - } - else{ - break; - } - } - - - // - for(var i = 0;i<this.boldList.length;i++){ - var temp = []; - for(var j = 0 ;j <6;j++){ - temp.push("False"); - } - this.finalList1.push(temp); - } - - - for(var i = 0;i<ranNums.length;i++){ - var item = indexes[ranNums[i]]; - - this.finalList1[item[0]][item[1]] = "True"; - } - // this.finalList1.splice(0,1) - -} - preSurvey(){ - this.router.navigateByUrl("/preSurvey"); - } - - nextButton(){ - if(this.selectedIndex == 0){ - this.selectedIndex = this.selectedIndex + 1; - return; - } - if(this.selectedIndex == 7){ - this.router.navigateByUrl('/dashboard'); - return; - } - - var numberList = []; - var flag = true; - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - flag = false; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = false; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = false; - Swal.fire({ - - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(flag){ - - if(this.selectedIndex == 7){ - this.router.navigateByUrl("/postSurvey"); - } - this.sliderFunction1(); - var formData = {} - formData['topic'] = this.attributes[this.selectedIndex-1] - if(this.attributes[this.selectedIndex-1] == "Attitude"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalCompetence"] = "F. " + this.attitudeForm.value['F'] - formData["culturalProficiency"] = "E. " + this.attitudeForm.value['E'] - - } - else if(this.attributes[this.selectedIndex-1] == "Empathy"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "B. " + this.attitudeForm.value['B'] - formData["culturalProficiency"] = "C. " + this.attitudeForm.value['C'] - } - else if(this.attributes[this.selectedIndex-1] == "Policy"){ - formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalIncapacity"] = "E. " + this.attitudeForm.value['E'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalProficiency"] = "A. " + this.attitudeForm.value['A'] - } - else if(this.attributes[this.selectedIndex-1] == "Professionalism"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - else if(this.attributes[this.selectedIndex-1] == "Teaching Practice"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["description"] = this.wordDescription - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - },(err) => { - - }) - // this.getForm(); - this.selectedIndex = this.selectedIndex + 1; - this.buttonClick = false; - this.startTime = new Date() - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - }) - } - - } - - postSurvey(){ - this.router.navigateByUrl("/postSurvey"); - } - - submitForm1(){ - if(this.unpackedCount >= 5 ){ - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - this.apiService.patchStatus("cpcqstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - this.selectedIndex = this.selectedIndex + 1; - } - }) - }) - - - } - else{ - Swal.fire({ - text: "Please click on all the yellow boxes and answer the questions in the prompt.", - icon: "warning" - }).then((res) => { - }) - } - - } - - submitForm(){ - if(this.selectedIndex == 5){ - var numberList = []; - var flag = false; - - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - - - flag = true; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = true; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = true; - Swal.fire({ - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(!flag){ - - - // - var formData = {} - - formData['topic'] = this.attributes[this.selectedIndex-1] - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - - formData["description"] = this.wordDescription - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - this.apiService.patchStatus("responsesstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - // this.getResponses() - this.router.navigateByUrl("/unpacking") - - // this.selectedIndex = this.selectedIndex + 1; - this.startTime = new Date() - } - }) - - }) - },(err) => { - - }) - } - - } - } - - submit(){ - // - var tempDict; - this.responseList = []; - for(let key in this.firstForm.value){ - tempDict = {} - tempDict["question"] = key - tempDict["response"] = this.firstForm.value[key]; - this.responseList.push(tempDict); - } - // - - this.formService.submitResponse(this.responseList).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - },(err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) - - } - - title = 'micRecorder'; -//Lets declare Record OBJ -record; -//Will use this flag for toggeling recording -recording = false; -//URL of Blob -url; -error; -sanitize(url: string) { -return this.domSanitizer.bypassSecurityTrustUrl(url); -} -/** -* Start recording. -*/ -initiateRecording() { -this.recording = true; -let mediaConstraints = { -video: false, -audio: true -}; -navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -} -/** -* Will be called automatically. -*/ -successCallback(stream) { -var options = { -mimeType: "audio/wav", -numberOfAudioChannels: 1, -// sampleRate: 16000, -}; -//Start Actuall Recording -var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -this.record = new StereoAudioRecorder(stream, options); -this.record.record(); -} -/** -* Stop recording. -*/ -stopRecording() { -this.recording = false; -this.record.stop(this.processRecording.bind(this)); -} -/** -* processRecording Do what ever you want with blob -* @param {any} blob Blog -*/ -processRecording(blob) { -this.url = URL.createObjectURL(blob); -// -// -} -/** -* Process Error. -*/ -errorCallback(error) { -this.error = 'Can not play audio in your browser'; -} - - - -} - diff --git a/src/app/first-form/first-form.component.css b/src/app/first-form/first-form.component.css deleted file mode 100644 index cfc7747fa8974100b9e9d4cd2363e8a5388a81cd..0000000000000000000000000000000000000000 --- a/src/app/first-form/first-form.component.css +++ /dev/null @@ -1,83 +0,0 @@ -.example-card { - /* max-width: 1000px; - */ - width: 1000px; - height: 570px; - position: absolute; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); -} - - -/* .inputButton { - position: absolute; - right: 0; - bottom: 0; -} - -.inputButton1 { - position: absolute; - left: 0; - bottom: 5; -} */ - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; - -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} \ No newline at end of file diff --git a/src/app/first-form/first-form.component.html b/src/app/first-form/first-form.component.html deleted file mode 100644 index b05054cee7d4a72470e09856aa3e37673eb9a795..0000000000000000000000000000000000000000 --- a/src/app/first-form/first-form.component.html +++ /dev/null @@ -1,239 +0,0 @@ -<app-header></app-header> -<div> - <mat-card class="example-card "> - - <mat-card-content> - <mat-tab-group [selectedIndex]="selectedIndex"> - <mat-tab label="First"> - <h2>Cultural Proficiency Continuum Q-Sort: Contextualizing, Setting Norms, and Creating a Professional and Safe Space</h2> - <p>Before you engage with the Cultural Proficiency Continuum Q-Sort (CPCQ), situate yourself as a new teacher in a US public school that educates a majority-minority student population. You are at this school for an interview as a potential - new teacher. The principal is taking you on a tour of the school during which you will observe a variety of sociocultural interactions. While you are completing CPCQ, consider how you may react to the sociocultural interactions - you will observe during the tour. Please understand that this is not a "gotcha moment" and do not try to anticipate what the facilitator may want to hear, but rather give an honest response. Thank you for your cooperation and trust - the process; this will make this experience more impactful. - </p> - <p> - Setting norms for Dialogic, creating a professional and safe environment, with Glenn E, Singleton’s (2015) Four Agreements of Courageous Conversations. They are as follows: - </p> - <p>1. Stay engaged.</p> - <p>2. Speak your truth.</p> - <p>3. Experience discomfort..</p> - <p>4. Expect and accept non-closure. </p> - - - - <p>Your data and responses are confidential and will not be used for research or published without your signed consent. Thank you for your engagement and participation.</p> - <button mat-raised-button style="float: right; padding-right: -10px; background-color: #29ABE2;" (click)="preSurvey()"> - Take The Pre-Survey - - </button> - </mat-tab> - <mat-tab label="Second"> - <h2>Cultural Proficiency Continuum Q-Sort: Reacting to Sociocultural Reproductions that take place within Majority-Minority US Public Schools and Student Populations - </h2> - <p>Next are 30 sociocultural interactions situated within vignettes describing culturally proficient behaviors, which occur daily in majority-minority US public schools. There are six vignettes in each of the five categories: Attitude, - Empathy, Policy, Professionalism, and Teaching Practice. Your task is to prioritize these vignettes by numbering them 1 to 6 within each of the five categories according to your level of reaction. Assign the number 6 to the vignette - that evoked the highest level of reaction, 5 to the vignette that evoked the next highest level of reaction, 4 to the vignette that evoked the next highest level of reaction, and so on until you have assigned a number to all six - vignettes within each category. When you have completed this task, follow the directions in the rating guide to summarize your responses.</p> - </mat-tab> - <mat-tab label="Third"> - <h2>Attitude</h2> - <div> - <mat-checkbox class="example-margin">A. Many suspect that a student from a high poverty school with a 4.0 GPA and a perfect score on the SAT has received a scholarship from an Ivy League School due to their socioeconomic status. - - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">B. Black students have the same opportunities and access to attend college as their white peers. - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">C. Students who wear dreadlocks as a hairstyle are a distraction in the classroom. - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">D. It should be required for students to remove hair accessories that are associated with their culture, tribe, sexuality, or religion. - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">E. All students who live in the United States deserve a quality public education, even those students whose parents are undocumented immigrants.</mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">F. All faculty and staff within a school setting have equal ability to transfer knowledge to students in regards to life, culture, character, and/or academic content.</mat-checkbox> - - </div> - - <p style="margin-top: 20px; font-size: 15px;"> The singular pronouns: “their†or “they†are used as gender-neutral pronouns. - </p> - - - - </mat-tab> - <mat-tab label="Fourth"> - <h2>Empathy</h2> - <div> - <mat-checkbox class="example-margin"> - A. A 10th-grade male died as a result of a car accident during an illegal street race. A group of teachers will not attend the funeral because of the activity that led to the student’s cause of death. - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">B. A public school Teacher is grounded by the philosophy of their religion. Throughout their career as an educator; they have learned to be welcoming to others’ cultural and religious beliefs even if those beliefs are in conflict - with their own. - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">C. In two weeks, the 8th grade teaching cluster will be getting a new math teacher who is Muslim. Next week’s professional development is dedicated to learning about the customs and etiquette of Islam to ensure that the new colleague - feels welcomed in their new school. - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">D. An Asian student scored an 85 percent on today’s math quiz. The teacher expressed disappointment in the student by saying, “Come on, you are Asian! You should’ve scored better than this.†- - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">E. A school counselor advised a biracial student that they would appear more professional if they perm their hair (removing the kinks) for their upcoming college visits. - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">F. Your colleague was pulled over by the police on the way to work this morning. You hear other colleagues in the break room discussing the reasons why they were pulled over, and all of the suspected reasons were related to what - they may have done (i.e., speeding, running a stop sign, etc.), rather than acknowledging that they may have been pulled over for being a person of color driving a luxury car. - </mat-checkbox> - - </div> - </mat-tab> - - <mat-tab label="Fifth"> - <h2>Professionalism</h2> - <div> - <mat-checkbox class="example-margin"> - A. A teacher asked the class who has traveled out of the country. A Black male raises his hand and states “I have.†The teacher asked the student three follow-up questions to corroborate his story. - - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">B. During lunch duty, teachers had a discussion in the presence of students about tomorrow’s district-wide racial sensitivity training. A teacher commented, “Why do we have to attend this training; the United States is post-racial - because we have a Black president.†- - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">C. The social committee at an elementary school is planning an awards ceremony and dinner for the staff and faculty. Six of their colleagues are vegan because of their religious beliefs. As a result, the committee has added a vegan - selection to the menu to accommodate their colleagues’ religious beliefs - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">D. The reading specialist expressed some concerns to the Vice Principal about how her male students emasculates her during whole group instruction. The Vice Principal said, “Don’t worry about it, that's just how boys behave.†- - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">E. A history teacher refuses to acknowledge black history month and does not want to teach content about black history in the United States. - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin"> F. An AP English teacher has assigned a research paper where the students were required to write about their religion. The teacher did not let their own religious beliefs cloud their judgement; the teacher researched the student’s - religion while grading the paper to offer relevant constructive feedback back on the arguments made within the paper. - - - </mat-checkbox> - - </div> - - </mat-tab> - - <mat-tab label="Sixth"> - <h2>Teaching Practice - </h2> - <div> - <mat-checkbox class="example-margin"> - A. A novice teacher in a school where the majority of the students are African-American and Latino uses hip-hop as a way to make science relevant in the student's social and cultural context. - - - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">B. An algebra teacher who teaches in a school where the majority of the students are on free and reduced lunch requires that each student buy a specific graphing calculator for Algebra, which retails for over 100 dollars. - - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">C. A teacher created a seating chart that placed ‘unteachable students’ in the back of the classroom, all of whom were male: 2 Latinos and 6 African Americans. In the same seating chart, her ‘good students,' all white, were seated - in preferential seating. - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin">D. A teacher puts together a petition to request a textbook company to remove the narrative about the enslavement of Africans in the United States in their history textbook to accommodate teachers’ discomfort with discussing this - sensitive topic. - - - - </mat-checkbox> - </div> - <div> - <mat-checkbox class="example-margin">E. A teacher in a Title 1 school (high percentage of children from low-income families) checks homework for completeness rather than correctness as a strategy to improve student efficacy. - - - </mat-checkbox> - - </div> - <div> - <mat-checkbox class="example-margin"> F. There is an increase of LGBTQIA+ students reporting that they are being harassed both verbally and physically in United States public schools. A group of students and teachers are researching the best practices to implement - and create a supportive environment for these students to voice their concerns in their school. - - - </mat-checkbox> - - </div> - - </mat-tab> - <mat-tab label="Seventh"> - <h2>Sample of Audio Answer</h2> - <p>Please press the button below to start recording your answer.</p> - <div style="text-align:center;margin-top: 200px;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> - </mat-tab> - </mat-tab-group> - - - - </mat-card-content> - <!-- - <div class="inputButton1"> - <button mat-raised-button color="primary" style="float: left; padding-right: -10px;" (click)="prevButton()"> - <mat-icon>arrow_left_al</mat-icon> - PREVIOUS - </button> - </div> - <div class="inputButton"> - <button mat-raised-button color="primary" style="float: right; padding-right: -10px;" (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - </div> --> - - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/first-form/first-form.component.ts b/src/app/first-form/first-form.component.ts deleted file mode 100644 index 87d19650b91d9b3f325e70f0267639b3af69f281..0000000000000000000000000000000000000000 --- a/src/app/first-form/first-form.component.ts +++ /dev/null @@ -1,154 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup, FormControl,Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; - - -@Component({ - selector: 'app-first-form', - templateUrl: './first-form.component.html', - styleUrls: ['./first-form.component.css'] -}) -export class FirstFormComponent implements OnInit { - firstForm: FormGroup; - responseList:any ; - - questionArray = [["Enter First Name","text"],["Enter Last Name","text"],["Enter Age","number"]]; - statusCheck = false; - - selectedIndex = 0; - - constructor(private router: Router, private formService : FirstForm,private domSanitizer: DomSanitizer) { } - - ngOnInit(): void { - - // let group={} - - - // this.formService.firstForm().subscribe((res) => { - // - // this.questionArray = res[0]["question_instance"]; - // - // this.questionArray.forEach(input_template=>{ - // - // group[input_template["id"]]=new FormControl(''); - // }) - // this.firstForm = new FormGroup(group); - // this.statusCheck = true; - // - - - // },(err) =>{ - // - // }) - } - - preSurvey(){ - this.router.navigateByUrl("/preSurvey"); - } - - nextButton(){ - this.selectedIndex = this.selectedIndex + 1; - } - prevButton(){ - this.selectedIndex = this.selectedIndex - 1; - if(this.selectedIndex <0){ - this.selectedIndex = 0; - } - } - - submit(){ - - var tempDict; - this.responseList = []; - for(let key in this.firstForm.value){ - tempDict = {} - tempDict["question"] = key - tempDict["response"] = this.firstForm.value[key]; - this.responseList.push(tempDict); - } - - - this.formService.submitResponse(this.responseList).subscribe((res) => { - - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - },(err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) - - } - - title = 'micRecorder'; -//Lets declare Record OBJ -record; -//Will use this flag for toggeling recording -recording = false; -//URL of Blob -url; -error; -sanitize(url: string) { -return this.domSanitizer.bypassSecurityTrustUrl(url); -} -/** -* Start recording. -*/ -initiateRecording() { -this.recording = true; -let mediaConstraints = { -video: false, -audio: true -}; -navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -} -/** -* Will be called automatically. -*/ -successCallback(stream) { -var options = { -mimeType: "audio/wav", -numberOfAudioChannels: 1, -// sampleRate: 16000, -}; -//Start Actuall Recording -var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -this.record = new StereoAudioRecorder(stream, options); -this.record.record(); -} -/** -* Stop recording. -*/ -stopRecording() { -this.recording = false; -this.record.stop(this.processRecording.bind(this)); -} -/** -* processRecording Do what ever you want with blob -* @param {any} blob Blog -*/ -processRecording(blob) { -this.url = URL.createObjectURL(blob); - - -} -/** -* Process Error. -*/ -errorCallback(error) { -this.error = 'Can not play audio in your browser'; -} - - - -} diff --git a/src/app/footer/footer.component.css b/src/app/footer/footer.component.css deleted file mode 100644 index 00d6b2293cb5647a7a62197c25f3092573065342..0000000000000000000000000000000000000000 --- a/src/app/footer/footer.component.css +++ /dev/null @@ -1,107 +0,0 @@ -@media screen and (min-width: 992px){ - .footer-wrap { - /* background-color: #fcd581; */ - padding-top: 25px; - /* position: fixed; */ - left: 0; - bottom: 0; - width: 100%; - } -} - -@media screen and (max-height: 991px){ - .footer-wrap { - /* background-color: #fcd581; */ - padding-top: 25px; - left: 0; - bottom: 0; - width: 100%; - } -} - - -.logo { - margin-top: 15px; - margin-left: 5px; - /* padding-bottom: 30px; */ - /* color: #fcb913; */ - font-size: 30px; - font-weight: bold; - font-family: 'Loto', sans-serif; -} - -.outer-div { - text-align: center; -} - -.inner-div { - display: inline-block; -} - -h2 { - color: #3C096C; - font-family: 'Loto', sans-serif; - text-align: right; - font-size: 15px; - margin: 0 !important; -} - -hr { - border: 1px solid rgb(224, 224, 224); -} - -p{ - color: black; - text-align: center; - text-decoration: none; -} - -.mat-icon { - font-size: 15px; -} - -.outer { - text-align: center; -} - -.icons { - display: inline-block; -} - -.icons a { - font-size: 20px; - margin-left: 10px; - margin-right: 10px; - margin-bottom: 20px; -} - -.link-div { - text-align: center; -} - -.links { - display: inline-block; -} - -.copyrights { - margin-top: 20px; - width: 100%; -} - -h1 { - font-family: 'Loto', sans-serif; - text-align: center; - font-size: 12px; -} - -.row { - margin: 0 !important; -} - -mat-form-field.mat-form-field { - width: 80%; -} - -.buttonClass { - height: 100%; -} \ No newline at end of file diff --git a/src/app/footer/footer.component.html b/src/app/footer/footer.component.html deleted file mode 100644 index c34e8fa8c7a4fdfeaf4b38cebf36f7ce14f7abcf..0000000000000000000000000000000000000000 --- a/src/app/footer/footer.component.html +++ /dev/null @@ -1,12 +0,0 @@ -<div class="footer-wrap"> - <div> - <div class="row col-lg-12"> - <div class="col-lg-12"> - <!-- <h2>The Cultural Proficiency Continuum Web-Based Dialogic Protocol was designed using Dwayne Ray Cormier (2019) <a href="https://etda.libraries.psu.edu/catalog/16331drc5411" target="_blank"> Dissertation Research</a></h2> --> - <h2>Website Developed by the <a target="_blank" href="https://handson.cs.odu.edu/">Hands-On Lab</a> at <a target="_blank" href="https://odu.edu/">Old Dominion University.</a> </h2> - <h2>Copyright © 2021. Dwayne Ray Cormier. All rights reserved. </h2> - <br/> - </div> - </div> - </div> -</div> diff --git a/src/app/footer/footer.component.ts b/src/app/footer/footer.component.ts deleted file mode 100644 index d004296c2094c91fda8e1c549aba365de7beed30..0000000000000000000000000000000000000000 --- a/src/app/footer/footer.component.ts +++ /dev/null @@ -1,38 +0,0 @@ - -import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; -import { Component, OnInit } from '@angular/core'; -import { Observable } from 'rxjs'; -import { map, shareReplay } from 'rxjs/operators'; - -@Component({ - selector: 'app-footer', - templateUrl: './footer.component.html', - styleUrls: ['./footer.component.css'] -}) -export class FooterComponent implements OnInit { - - - isHandset: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset) - .pipe( - map(result => result.matches), - shareReplay() - ); - -isTablet: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Tablet) - .pipe( - map(result => result.matches), - shareReplay() - ); - - isMedium: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Medium) - .pipe( - map(result => result.matches), - shareReplay() - ); - - constructor(private breakpointObserver: BreakpointObserver) { } - - ngOnInit(): void { - } - -} \ No newline at end of file diff --git a/src/app/forgot-password/forgot-password.component.css b/src/app/forgot-password/forgot-password.component.css deleted file mode 100644 index cb2e8a4516eb951edff739f67c9a8fb8b2ba4ded..0000000000000000000000000000000000000000 --- a/src/app/forgot-password/forgot-password.component.css +++ /dev/null @@ -1,72 +0,0 @@ -.container{ - text-align: center; - padding-bottom: 300px; -} - -.example-card { - display: inline-block; - margin-top: 100px; -} - -.intro { - top: 20%; - font-size: 35px; - text-align: center; - font-family: 'Loto', sans-serif, cursive; - color: black; - font-weight: bold; -} - -body { - font-family: 'Loto', sans-serif; - background-color: #f8fafb; -} - -@media screen and (min-width: 992px){ - p { - padding-top: 150px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -@media screen and (max-width: 991px){ - p { - padding-top: 20px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Loto', sans-serif; -} - -a { - -webkit-transition: .3s all ease; - -o-transition: .3s all ease; - transition: .3s all ease; -} - -a:hover { - text-decoration: none !important; -} - -h2 { - font-size: 20px; -} \ No newline at end of file diff --git a/src/app/forgot-password/forgot-password.component.html b/src/app/forgot-password/forgot-password.component.html deleted file mode 100644 index 09580c648643b8b0c745d11deff8177df244b253..0000000000000000000000000000000000000000 --- a/src/app/forgot-password/forgot-password.component.html +++ /dev/null @@ -1,18 +0,0 @@ -<div class="header-wrap"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <div class="container"> - <mat-card class="example-card "> - <div class="mb-4"> - <h3 style="text-align: center;">Forgot Password</h3> - </div> - <form [formGroup]="forgotForm"> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Username/e-mail</mat-label> - <input type="text" matInput placeholder="joe" formControlName="username" required> - </mat-form-field> - <input type="submit" value="Send Email" class="btn text-white btn-block btn-primary" style="background-color: #29ABE2; font-size: 20px;" (click)="login()"> - </form> - </mat-card> - </div> -</div> -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/forgot-password/forgot-password.component.spec.ts b/src/app/forgot-password/forgot-password.component.spec.ts deleted file mode 100644 index 9c1a9322bd06150db9011c6b38f0d45e30a544a5..0000000000000000000000000000000000000000 --- a/src/app/forgot-password/forgot-password.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { ForgotPasswordComponent } from './forgot-password.component'; - -describe('ForgotPasswordComponent', () => { - let component: ForgotPasswordComponent; - let fixture: ComponentFixture<ForgotPasswordComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ ForgotPasswordComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(ForgotPasswordComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/forgot-password/forgot-password.component.ts b/src/app/forgot-password/forgot-password.component.ts deleted file mode 100644 index e750035c681c71b5fd7c58274a84d4d4b1e2d4af..0000000000000000000000000000000000000000 --- a/src/app/forgot-password/forgot-password.component.ts +++ /dev/null @@ -1,72 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { EmailValidator, FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; -import Swal from 'sweetalert2'; -import { Login } from '../../services/login.sevice'; -@Component({ - selector: 'app-forgot-password', - templateUrl: './forgot-password.component.html', - styleUrls: ['./forgot-password.component.css'] -}) -export class ForgotPasswordComponent implements OnInit { - forgotForm: FormGroup; - hide = true; - constructor(private fb: FormBuilder, private router: Router, private loginService : Login) { } - - ngOnInit(): void { - this.forgotForm = this.fb.group({ - username:["",[ Validators.required]], - - }) - - } - - getEmailError(){ - if(this.forgotForm.controls.username.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - getPasswordError(){ - if(this.forgotForm.controls.password.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - - login(){ - if(!this.forgotForm.valid){ - - Swal.fire({ - text: "Please enter all the fields in the right format.", - icon: "error" - }).then((res) => { - }) - } - else{ - this.loginService.forgotpassword(this.forgotForm.value).subscribe((res) => { - localStorage.setItem("username",this.forgotForm.get("username").value); - Swal.fire({ - text: "e-mail sent successfully!", - icon: "success" - }).then((res) => { - this.router.navigateByUrl("/emailPass") - }) - - },(err) => { - - Swal.fire({ - text: "Username/e-mail not found!", - icon: "error" - }).then((res) => { - }) - }) - } - } - -} diff --git a/src/app/graph-page/graph-page.component.css b/src/app/graph-page/graph-page.component.css deleted file mode 100644 index 24eb34196a903927dee753a7b163e4966afe0e65..0000000000000000000000000000000000000000 --- a/src/app/graph-page/graph-page.component.css +++ /dev/null @@ -1,166 +0,0 @@ -.divClass { - padding-top: 10px; -} - -.example-card { - /* max-height: 700px; */ - /* width: 1000px; */ - /* height: 570px; */ - position: absolute; - top: 55%; - left: 50%; - transform: translate(-50%, -50%); - width: 80%; -} - -::ng-deep .mat-tab-body-content { - max-height: 500px !important; -} - -.table-responsive { - height: 310px; -} - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -mat-slider { - width: 350px; -} - -.mat-slider-thumb-label { - transform: rotate(45deg) !important; - border-radius: 50% 50% 0 !important; -} - -.mat-slider-thumb { - transform: scale(0) !important; -} - -.mat-slider-thumb-label-text { - opacity: 1 !important; -} - -.advice { - border: none; - background: none; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -mat-form-field { - width: 100%; - height: 5%; -} - -::ng-deep .mat-form-field-flex>.mat-form-field-infix { - padding: 0.4em 0px !important; -} - -::ng-deep .mat-form-field-label-wrapper { - top: -1.5em; -} - -::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label { - transform: translateY(-1.1em) scale(.75); - width: 133.33333%; - color: black !important; - border: black; -} - -.example-h2 { - margin: 10px; -} - -.example-section { - display: flex; - align-content: center; - align-items: center; - height: 60px; -} - -.example-margin { - margin: 0 10px; -} - -.imgClass { - width: 30px; - height: 30px -} - -.zoom { - transition: transform .2s; - border: none; - background: none; - /* Animation */ - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); - /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} - - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - - -/* -p { - font-family: 'roboto'; -} */ \ No newline at end of file diff --git a/src/app/graph-page/graph-page.component.html b/src/app/graph-page/graph-page.component.html deleted file mode 100644 index cd3cd7c172231732c930e1c8310080207281b81a..0000000000000000000000000000000000000000 --- a/src/app/graph-page/graph-page.component.html +++ /dev/null @@ -1,77 +0,0 @@ -<div class="divClass"> - <mat-card class="example-card "> - - <mat-card-content> - <div style="margin-bottom: 10px; margin-left: -10px;"> - <mat-progress-bar *ngIf="selectedIndex > 0 && selectedIndex <6" class="example-margin" style="width: 100%;" [mode]="mode" [value]="selectedIndex*20" [bufferValue]="bufferValue"> - </mat-progress-bar> - </div> - - - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab label="Seventh"> - <h2>Cultural Proficiency Continuum Q-Sort: Score Visualization - </h2> - <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in - the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis - is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. - Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, - but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> - <p><span><b>Info: </b> Each of the Bars indicate the overall score awarded by your rater for the vignette you unpacked. Click on the bar if you wish to see the score for each of the four questions that you answered in each vignette. - </span> - </p> - <button mat-button color="primary">Your level of cultural proficiency at this time is {{meanNumber}} or {{meanValue}}</button> - - <br/> - - <div id="chart"> - <apx-chart - [series]="chartOptions.series" - [chart]="chartOptions.chart" - [dataLabels]="chartOptions.dataLabels" - [plotOptions]="chartOptions.plotOptions" - [yaxis]="chartOptions.yaxis" - [xaxis]="chartOptions.xaxis" - [fill]="chartOptions.fill" - [title]="chartOptions.title" - ></apx-chart> - </div> - </mat-tab> - </mat-tab-group> - - - - </mat-card-content> - - - - <mat-card-actions> - <div class="row"> - <div class="col-8"> - - <button *ngIf = "!postSurveyFlag" mat-raised-button style="background-color: #29ABE2;" routerLink="/postSurvey"> - POST SURVEY - </button> - </div> - - </div> - - - - </mat-card-actions> - <mat-card-actions> - <div class="row"> - <div class="col-8"> - - <button *ngIf = "postSurveyFlag" mat-raised-button style="background-color: #29ABE2;" routerLink="/final"> - DASHBOARD - </button> - </div> - - </div> - - - - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/guards/landing-page.guard.spec.ts b/src/app/guards/landing-page.guard.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..32caf18ef7d0826b39c8c8535328b97531fa641c --- /dev/null +++ b/src/app/guards/landing-page.guard.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from "@angular/core/testing"; + +import { LandingPageGuard } from "./landing-page.guard"; + +describe("LandingPageGuard", () => { + let guard: LandingPageGuard; + + beforeEach(() => { + TestBed.configureTestingModule({}); + guard = TestBed.inject(LandingPageGuard); + }); + + it("should be created", () => { + expect(guard).toBeTruthy(); + }); +}); diff --git a/src/app/guards/landing-page.guard.ts b/src/app/guards/landing-page.guard.ts new file mode 100644 index 0000000000000000000000000000000000000000..4fd48b7740e11331269d6ef9d4c27b37ac51b153 --- /dev/null +++ b/src/app/guards/landing-page.guard.ts @@ -0,0 +1,29 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from "@angular/router"; +import { LoginService } from "../services/login.service"; + +@Injectable({ + providedIn: "root", +}) +export class LandingPageGuard implements CanActivate { + constructor(private loginService: LoginService, private _router: Router) {} + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { + return new Promise((resolve, reject) => { + this.loginService.getToken().subscribe({ + next: (token) => { + if (token) { + resolve(false); + this._router.navigate(["dashboard"]); + } else { + resolve(true); + } + }, + error: (error) => { + console.log(error); + resolve(true); + }, + }); + }); + } +} diff --git a/src/app/guards/role.guard.spec.ts b/src/app/guards/role.guard.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..fa103f05829ebb0d882412a179226e7e490c764c --- /dev/null +++ b/src/app/guards/role.guard.spec.ts @@ -0,0 +1,16 @@ +import { TestBed } from "@angular/core/testing"; + +import { RoleGuard } from "./role.guard"; + +describe("RoleGuard", () => { + let guard: RoleGuard; + + beforeEach(() => { + TestBed.configureTestingModule({}); + guard = TestBed.inject(RoleGuard); + }); + + it("should be created", () => { + expect(guard).toBeTruthy(); + }); +}); diff --git a/src/app/guards/role.guard.ts b/src/app/guards/role.guard.ts new file mode 100644 index 0000000000000000000000000000000000000000..6270c9543c60b787ead8b934554cb672b34f659d --- /dev/null +++ b/src/app/guards/role.guard.ts @@ -0,0 +1,30 @@ +import { Injectable } from "@angular/core"; +import { ActivatedRouteSnapshot, CanActivate, Router, RouterStateSnapshot } from "@angular/router"; +import { LoginService } from "../services/login.service"; + +@Injectable({ + providedIn: "root", +}) +export class RoleGuard implements CanActivate { + constructor(private loginService: LoginService, private _router: Router) {} + + canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Promise<boolean> { + return new Promise((resolve, reject) => { + this.loginService.getToken().subscribe({ + next: (token) => { + console.log(token); + // implement role check functionalities + if (token) { + resolve(true); + } else { + resolve(false); + } + }, + error: (error) => { + console.log(error); + resolve(false); + }, + }); + }); + } +} diff --git a/src/app/header/header.component.css b/src/app/header/header.component.css deleted file mode 100644 index 771b3e48440bd20954d32852d4a6320bf2a4d193..0000000000000000000000000000000000000000 --- a/src/app/header/header.component.css +++ /dev/null @@ -1,118 +0,0 @@ -@media screen and (min-width:1024px) { - .mat-toolbar { - background-color: white; - height: 70px; - z-index: -1; - box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); - } -} - -@media screen and (min-width: 992px) { - .mat-sidenav-container { - position: fixed; - width: 100%; - box-shadow: 6px 0 6px rgb(206, 206, 206); - } -} - -@media screen and (max-width:1023px) { - .mat-toolbar { - background-color: white; - height: 70px; - z-index: -1; - box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); - } -} - -.sidenav { - width: 200px; - box-shadow: 3px 0 6px rgba(0, 0, 0, 0.24); - position: fixed; -} - -.hidden { - display: none; -} - -.textHeader { - margin-top: 15px; - margin-left: 5px; - /* color: #45087e; */ - color: #fcb913; - font-size: 22px; - font-weight: bold; - font-family: 'Loto', sans-serif; -} - -img { - margin-top: 10px; - margin-bottom: 8px; - margin-left: 10px; - /* width: 60px; */ - height: 60px; -} - -.mat-toolbar a { - display: inline-block; - color: black; - text-decoration: none; - padding: 0 20px; - font-size: 16px; - font-family: 'Lato', sans-serif; - cursor: pointer; - font-weight: bold; -} - -.mat-toolbar a:hover, -.mat-toolbar a:focus, -.mat-toolbar a:active { - display: inline-block; - color: white; - background-color: #29ABE2; - padding: 0 20px; - border-radius: 5px; - text-decoration: none; - font-size: 16px; - font-family: 'Lato', sans-serif; -} - -.menu { - text-decoration: none; - font-size: 16px; - font-family: 'Lato', sans-serif; - color: black; -} - -.menu:hover, -.menu:focus, -.menu:active { - color: black; - text-decoration: none; - font-size: 16px; - font-family: 'Lato', sans-serif; - border: none; - outline: none; - box-shadow: none; -} - -.mat-nav-list { - margin-top: 60px; -} - -.mat-nav-list a { - display: inline-block; - margin: 0 10px; - color: black; - text-decoration: none; - font-size: 15px; -} - -.mat-nav-list a:hover, -.mat-nav-list a:focus, -.mat-nav-list a:active { - display: inline-block; - margin: 0 10px; - font-weight: bold; - text-decoration: none; - font-size: 15px; -} \ No newline at end of file diff --git a/src/app/header/header.component.html b/src/app/header/header.component.html deleted file mode 100644 index bb3c17aa8e5793dc7eea884c0e5ccce62e27edc8..0000000000000000000000000000000000000000 --- a/src/app/header/header.component.html +++ /dev/null @@ -1,41 +0,0 @@ -<mat-sidenav-container class="sidenav-container"> - <mat-sidenav #drawer class="sidenav" fixedInViewport="false" [attr.role]="(((isHandset | async) || (isTablet | async)) && !(isMedium |async)) ? 'dialog' : 'navigation'" [mode]="(((isHandset | async)||(isTablet |async)) && !(isMedium|async)) ? 'over' : 'side'" - [opened]="((!(isHandset | async) && !(isTablet | async)) || (isMedium | async))" [ngClass]="{hidden: (isMedium | async) || (!(isHandset | async) && !(isTablet | async))}"> - <mat-toolbar class="matToolbar"> - <button type="button" class="menu-btn" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()"> - <mat-icon aria-label="Side nav toggle icon">close</mat-icon> - </button> - </mat-toolbar> - <mat-nav-list> - <a routerLink="/" mat-list-item>HOME</a> - <a routerLink="/about" mat-list-item>ABOUT US</a> - <a routerLink="/login" *ngIf="!user" mat-list-item>LOGIN</a> - <a (click)="logout()" *ngIf="user" mat-list-item>LOGOUT</a> - - <button *ngIf="user" mat-icon-button class="example-icon favorite-icon" aria-label="Example icon-button with heart icon" (click)="logout()"> - <mat-icon style="color: white;">logout</mat-icon> - </button> - </mat-nav-list> - </mat-sidenav> - <mat-sidenav-content> - <mat-toolbar class="matToolbar"> - <button type="button" class="menu-btn" aria-label="Toggle sidenav" mat-icon-button (click)="drawer.toggle()" *ngIf="((isHandset | async) || (isTablet | async)) && !(isMedium |async)"> - <mat-icon aria-label="Side nav toggle icon">menu</mat-icon> - </button> - <span><img src="../../assets/vcu.png"></span> - <!-- <span class="textHeader">Cultural Proficiency Continuum Dialogic Protocol</span> --> - <span class="spacer"></span> - <div *ngIf="(!(isHandset | async) && !(isTablet | async)) || (isMedium | async)" style="margin-right: 0; margin-left: auto;"> - <a routerLink="/" id="home" (click)="activate('home')">HOME</a> - <a routerLink="/about" id="about" (click)="activate('about')">ABOUT US</a> - <a routerLink="/login" id="login" *ngIf="!user" (click)="activate('login')">LOGIN</a> - <a (click)="logout()" id="logout" *ngIf="user" (click)="activate('login')">LOGOUT</a> - - <button *ngIf="user" mat-icon-button class="example-icon favorite-icon" aria-label="Example icon-button with heart icon" (click)="logout()"> - <mat-icon style="color: white;">logout</mat-icon> - </button> - </div> - </mat-toolbar> - <ng-content></ng-content> - </mat-sidenav-content> -</mat-sidenav-container> \ No newline at end of file diff --git a/src/app/header/header.component.ts b/src/app/header/header.component.ts deleted file mode 100644 index bc56b960422064468c2f59b96a9b8c200f2279f4..0000000000000000000000000000000000000000 --- a/src/app/header/header.component.ts +++ /dev/null @@ -1,74 +0,0 @@ -import { BreakpointObserver, Breakpoints } from '@angular/cdk/layout'; -import { Component, OnInit } from '@angular/core'; -import { NavigationEnd, Router, RouterEvent } from '@angular/router'; -import { Observable } from 'rxjs'; -import { map, shareReplay } from 'rxjs/operators'; -import { Login } from '../../services/login.sevice'; - -@Component({ - selector: 'app-header', - templateUrl: './header.component.html', - styleUrls: ['./header.component.css'] -}) -export class HeaderComponent implements OnInit { - user = false; - - r - isHandset: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Handset) - .pipe( - map(result => result.matches), - shareReplay() - ); - -isTablet: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Tablet) - .pipe( - map(result => result.matches), - shareReplay() - ); - -isMedium: Observable<boolean> = this.breakpointObserver.observe(Breakpoints.Medium) - .pipe( - map(result => result.matches), - shareReplay() - ); - - constructor( - private breakpointObserver: BreakpointObserver, - private router: Router, - private loginService : Login - ) { } - - ngOnInit(): void { - this.router.events.subscribe(event => { - if(event instanceof NavigationEnd) { - if(localStorage.getItem("user") != null || localStorage.getItem("user") != undefined){ - this.user = true - } - } - }) - } - - logout(){ - this.loginService.logout().subscribe((res) => { - localStorage.removeItem("user"); - this.router.navigateByUrl("/"); - this.user = false - },(err) => { - localStorage.removeItem("user"); - this.router.navigateByUrl("/"); - this.user = false - }) - - - } - - activate(e){ - (<HTMLInputElement>document.getElementById("home")).style.backgroundColor = "none"; - (<HTMLInputElement>document.getElementById("about")).style.backgroundColor = "none"; - (<HTMLInputElement>document.getElementById("login")).style.backgroundColor = "none"; - (<HTMLInputElement>document.getElementById("logout")).style.backgroundColor = "none"; - (<HTMLInputElement>document.getElementById(e)).style.backgroundColor = "#face70"; - } - - -} diff --git a/src/app/home-page/home-page.component.css b/src/app/home-page/home-page.component.css deleted file mode 100644 index c3573069c0d8abbfcb589ea1423bbc49b9f1dfe4..0000000000000000000000000000000000000000 --- a/src/app/home-page/home-page.component.css +++ /dev/null @@ -1,486 +0,0 @@ -h1 { - font-size: 40px; - padding-bottom: 40px; -} - -.example-card { - width: 60%; - text-align: center; - margin-left: 20%; -} - -.sectionClass { - background-color: #fff1e6; -} - -.example-card1 { - width: 100%; - text-align: center; - margin-top: 100px; -} - -.text-label { - font-size: 20px; - /* font-family: Arial, Helvetica, sans-serif; */ - font-family: 'Loto', sans-serif; - font-weight: 300; - padding-right: 10px; - margin-right: 20%; -} - -.btn-custom { - background-color: #00b4d8; - width: 30%; - font-size: 20px; -} - -.matcard-Div { - padding-top: 10%; -} - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -ul { - display: block; - list-style-type: disc; - margin-block-start: 1em; - margin-block-end: 1em; - margin-inline-start: 0px; - margin-inline-end: 0px; - padding-inline-start: 40px; -} - -li { - font-size: 30px; -} - -@media screen and (min-width: 992px) { - .home-wrap { - padding-top: 70px; - } -} - -.home-wrap { - padding-bottom: 200px; -} - -.home { - background-color: white; -} - -.buttons { - display: inline-block; -} - -@media screen and (min-width: 1024px) { - .overlay { - padding: 60px !important; - text-align: center; - } - .intro { - margin-top: 130px; - font-family: 'Lato', sans-serif; - color: #283618; - font-size: 50px; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin-bottom: 0 !important; - } - .tag { - font-family: 'Lato', sans-serif; - color: #3C096C; - font-size: 20px; - font-style: italic; - margin-top: 20px; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin-bottom: 0 !important; - } - .btn { - color: white; - font-family: 'Lato', sans-serif; - padding: 10px; - border-radius: 5px; - /* width: 200px; */ - font-size: 20px; - margin-top: 30px; - margin-right: 10px; - margin-left: 10px; - } - .slides { - margin-top: 80px; - width: 100%; - height: 500px; - } -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -.mat-tab-group{ - position: sticky; -} - -@media screen and (max-width: 1023px) and (min-width: 480px) { - .overlay { - padding: 20px 20px 60px 20px !important; - text-align: center; - } - .intro { - font-weight: bold; - font-family: 'Lato', sans-serif; - font-size: 50px; - padding: 10px; - color: #3C096C; - margin: 0 !important; - } - .tag { - font-family: 'Lato', sans-serif; - color: #3C096C; - font-size: 16px; - font-style: italic; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin: 0 !important; - } - .slides { - width: 100%; - height: 400px; - overflow: hidden; - } - .btn { - background-color: black; - color: white; - font-family: 'Lato', sans-serif; - padding: 2px; - /* width: 200px; */ - border-radius: 5px; - margin-top: 30px; - margin-right: 10px; - } -} - -@media screen and (max-width: 479px) { - .overlay { - padding: 20px 20px 60px 20px !important; - text-align: center; - } - .intro { - font-weight: bold; - font-family: 'Lato', sans-serif; - font-size: 30px; - padding: 10px; - color: #3C096C; - margin: 0 !important; - } - .tag { - font-family: 'Lato', sans-serif; - color: #3C096C; - font-size: 18px; - font-style: italic; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin: 0 !important; - } - .slides { - width: 100%; - height: 400px; - overflow: hidden; - } - .btn { - color: white; - font-family: 'Lato', sans-serif; - padding: 2px; - /* width: 200px; */ - border-radius: 5px; - margin-top: 10px; - } -} - -.row { - margin: 0 !important; - padding: 0 !important; -} - -.col-lg-6 { - padding: 0 !important; -} - -.test { - background-color: black; -} - -.test h2 { - color: white; - font-family: 'Lato', sans-serif; - margin: 0 !important; - padding: 30px 20px; - text-align: center; - font-size: 18px; -} - -.test-btn { - cursor: pointer; -} - -.test-btn:hover, -.test-btn:focus { - outline: none; - box-shadow: none; -} - -.content-div { - padding: 40px; -} - -.vision { - background-color: #3C096C; -} - -.mission { - background-color: #00AB96; -} - -.content { - background-color: #f5f5f6; -} - -h1 { - padding-top: 40px; - text-align: center; - font-size: 40px; - color: white; - font-family: 'Lato', sans-serif; - text-align: center; -} - -p { - margin-top: 40px; - margin-bottom: 40px; - text-align: center; - color: white; - font-family: 'Lato', sans-serif; - text-align: center; - font-size: 16px; - line-height: 150%; -} - -.content h1, -.about h1 { - color: rgb(65, 64, 64); - font-size: 35px; - line-height: 150%; -} - -.content p { - color: rgb(65, 64, 64); -} - -.btn:hover, -.btn:focus { - background-color: #f5f5f6 !important; - color: black; - outline: none; - box-shadow: none; -} - -.about { - margin: 40px; - text-align: center; -} - -.detail { - margin-top: 40px !important; -} - -.blog, -.feedback, -.video { - margin-top: 80px; - position: sticky; -} - -@media screen and (min-width: 1024px) { - .blog-img { - width: 80%; - height: 450px; - box-shadow: 10px 11px 46px 0px rgba(15, 8, 49, 0.2); - } -} - -@media screen and (max-width: 1023px) { - .blog-img { - width: 100%; - height: 380px; - box-shadow: 10px 11px 46px 0px rgba(15, 8, 49, 0.2); - } -} - -@media screen and (max-width: 967px) { - .blog-content { - margin-top: 50px; - } -} - -.blog-content h2 { - font-size: 30px; - color: black; - font-family: 'Lato', sans-serif; - font-weight: bold; - line-height: 150%; -} - -.blog-content h5 { - font-size: 20px; - font-family: 'Lato', sans-serif; - color: rgb(190, 190, 190); -} - -.blog-content p { - height: 210px; - font-family: 'Lato', sans-serif; - text-align: left; - margin-top: 20px; - line-height: 150%; - font-size: 16px; - overflow: hidden; - color: rgb(59, 59, 59); -} - -.blog-btn { - background-color: #00AB96; - color: white; - font-family: 'Lato', sans-serif; - margin-top: 30px; - font-size: 15px; -} - -.blog-btn:hover, -.blog-btn:focus { - outline: none; - box-shadow: 4px 4px 8px rgba(202, 199, 199, 0.2); - transform: scale(1.1); -} - -.feedback { - background-color: #f5f5f6; - position: sticky; -} - -.feedback h1 { - padding-top: 60px; - padding-bottom: 40px; - color: rgb(65, 64, 64); - margin-bottom: 0 !important; - font-family: 'Lato', sans-serif; - font-size: 36px; -} - -.feedback p { - font-size: 22px; - text-align: center; - font-style: italic; - color: #3C096C; - padding-bottom: 30px; - font-family: 'Lato', sans-serif; -} - - ::ng-deep .feedback .carousel-control-next-icon, - ::ng-deep .feedback .carousel-control-prev-icon { - display: none !important; -} - -.video { - margin-top: 80px; - margin-bottom: 40px; -} - -.video-content h2 { - margin-top: 30px; - font-size: 30px; - line-height: 150%; - color: black; - font-family: 'Lato', sans-serif; -} - -.video-content p { - font-family: 'Lato', sans-serif; - text-align: left; - margin-top: 20px; - line-height: 150%; - font-size: 16px; - overflow: hidden; - color: rgb(59, 59, 59); -} - -.collaborations { - margin-top: 60px; - padding-right: 70px; - position: sticky; -} - -.collaborations h1 { - font-family: 'Lato', sans-serif; - color: #3C096C; - font-size: 35px; - /* text-shadow: 4px 4px 8px rgba(202, 199, 199, 0.95); */ - margin-bottom: 0 !important; -} - -.collaborations .mat-card { - text-align: center; - margin: 20px; - padding: 30px; -} - -.collaborations img { - display: inline-block; -} - -@media screen and (min-width: 1024px) { - .contact-wrap { - margin-top: 10px; - margin-bottom: 50px; - background-color: #f0efeb; - } -} - -.outer-div { - text-align: center; -} - -.buttons { - margin-top: 10px !important; - text-align: center; - margin-bottom: 10px !important; -} - -.mat-input-element { - margin-top: 15px; -} - -::ng-deep .contact-wrap .mat-form-field { - background-color: #ffffff; - border-radius: 50px; - color: black; - box-shadow: 3px 5px 5px 0px rgba(98, 96, 107, 0.2); - margin-bottom: 30px; -} - -.textAreaClass { - border-radius: 10px; -} - -::ng-deep .contact-wrap .mat-form-field-infix { - padding: 0 !important; - border: none !important; - box-shadow: black; -} \ No newline at end of file diff --git a/src/app/home-page/home-page.component.html b/src/app/home-page/home-page.component.html deleted file mode 100644 index 205598e30a6b190f8263e2f7ffef4335d58a54d8..0000000000000000000000000000000000000000 --- a/src/app/home-page/home-page.component.html +++ /dev/null @@ -1,25 +0,0 @@ -<div class="home-wrap"> - <div class="row home"> - <div class="overlay col-lg-7"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <p class="tag">An exploration of culturally proficient behaviors and interactions that take place within U.S. PreK-12 schools and classrooms. - </p> - <div class="row buttons"> - <a routerLink="/login"><button mat-raised-button class="btn" style="background-color: #29ABE2;">Login to Begin Protocol</button></a> - </div> - </div> - <div class="slideshow col-lg-5"> - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab> <img class="slides" src="../../assets/image1.jpeg"></mat-tab> - - <mat-tab><img class="slides" src="../../assets/image3.jpeg"></mat-tab> - <mat-tab><img class="slides" src="../../assets/image4.jpeg"></mat-tab> - - <mat-tab><img class="slides" src="../../assets/image5.jpeg"></mat-tab> - - - </mat-tab-group> - </div> - </div> -</div> -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/home-page/home-page.component.ts b/src/app/home-page/home-page.component.ts deleted file mode 100644 index c640da1e4bf03a6a7654cc7f139fbc0fa3040dd8..0000000000000000000000000000000000000000 --- a/src/app/home-page/home-page.component.ts +++ /dev/null @@ -1,26 +0,0 @@ -import { Component, OnInit } from '@angular/core'; - -@Component({ - selector: 'app-home-page', - templateUrl: './home-page.component.html', - styleUrls: ['./home-page.component.css'] -}) -export class HomePageComponent implements OnInit { - - selectedIndex = 0; - id:any; - constructor() { } - - changeCount(){ - this.selectedIndex = this.selectedIndex + 1; - if(this.selectedIndex>4){ - this.selectedIndex = 0; - } - } - ngOnInit(): void { - this.id = setInterval(() => { - this.changeCount(); - }, 3000); - } - -} diff --git a/src/app/interceptors/token.interceptor.spec.ts b/src/app/interceptors/token.interceptor.spec.ts new file mode 100644 index 0000000000000000000000000000000000000000..13781f945877f4c9af4fe19823b7201fdb9ee0e8 --- /dev/null +++ b/src/app/interceptors/token.interceptor.spec.ts @@ -0,0 +1,14 @@ +import { TokenInterceptor } from './token.interceptor'; + +describe('TokenInterceptor', () => { + beforeEach(() => TestBed.configureTestingModule({ + providers: [ + TokenInterceptor + ] + })); + + it('should be created', () => { + const interceptor: TokenInterceptor = TestBed.inject(TokenInterceptor); + expect(interceptor).toBeTruthy(); + }); +}); diff --git a/src/app/interceptors/token.interceptor.ts b/src/app/interceptors/token.interceptor.ts new file mode 100644 index 0000000000000000000000000000000000000000..55189076262ea9f0d1fbecf5af29bf029a47222a --- /dev/null +++ b/src/app/interceptors/token.interceptor.ts @@ -0,0 +1,23 @@ +import { HttpEvent, HttpHandler, HttpInterceptor, HttpRequest } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { from, Observable } from "rxjs"; +import { LoginService } from "../services/login.service"; + +@Injectable() +export class TokenInterceptor implements HttpInterceptor { + constructor(private loginService: LoginService) {} + + intercept(request: HttpRequest<unknown>, next: HttpHandler): Observable<HttpEvent<unknown>> { + console.log("i am token interceptor"); + return from(this.handleIntercept(request, next)); + } + + private async handleIntercept(request: HttpRequest<any>, next: HttpHandler): Promise<HttpEvent<any>> { + const token = await this.loginService.getToken().toPromise(); + console.log("token is", token); + if (token) { + request = request.clone({ headers: request.headers.set("Authorization", "Bearer " + token) }); + } + return next.handle(request).toPromise(); + } +} diff --git a/src/app/login/login.component.css b/src/app/login/login.component.css deleted file mode 100644 index 9f807aed9ddebd4c09aaa447507b40c9ea73c691..0000000000000000000000000000000000000000 --- a/src/app/login/login.component.css +++ /dev/null @@ -1,73 +0,0 @@ -.container{ - text-align: center; - padding-bottom: 300px; -} - -.example-card { - height: 370px; - display: inline-block; - margin-top: 100px; -} - -.intro { - top: 20%; - font-size: 35px; - text-align: center; - font-family: 'Loto', sans-serif, cursive; - color: black; - font-weight: bold; -} - -body { - font-family: 'Loto', sans-serif; - background-color: #f8fafb; -} - -@media screen and (min-width: 992px){ - p { - padding-top: 150px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -@media screen and (max-width: 991px){ - p { - padding-top: 20px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Loto', sans-serif; -} - -a { - -webkit-transition: .3s all ease; - -o-transition: .3s all ease; - transition: .3s all ease; -} - -a:hover { - text-decoration: none !important; -} - -h2 { - font-size: 20px; -} diff --git a/src/app/login/login.component.html b/src/app/login/login.component.html deleted file mode 100644 index 96282d8963dec75fa348e261b4fb5982f870b52b..0000000000000000000000000000000000000000 --- a/src/app/login/login.component.html +++ /dev/null @@ -1,34 +0,0 @@ -<div class="home-warp"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <div class="container"> - <mat-card class="example-card"> - <div class="mb-4"> - <h3 style="text-align: center;">Login</h3> - </div> - <form [formGroup]="loginForm"> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Username </mat-label> - <input type="email" matInput placeholder="John" formControlName="username" required> - <mat-error *ngIf="loginForm.controls.username.invalid">{{getEmailError()}}</mat-error> - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter your password</mat-label> - <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="loginForm.controls.password.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> - - <input type="submit" value="Login" class="btn text-white btn-block btn-primary" style="background-color: #29ABE2; font-size: 20px;" (click)="login()"> - </form> - <small>Don't have an account?<a routerLink="/register">Click here</a></small> - <br/> - <small>Forgot password?<a routerLink="/forgotPassword">Click here</a></small> - <br/> - <small>Login as admin?<a href="https://cpcdpvcu.bhoomee.org/admin">Click here</a></small> - </mat-card> - </div> -</div> - -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/login/login.component.spec.ts b/src/app/login/login.component.spec.ts deleted file mode 100644 index d6d85a8465b79ee37cb75c371f6e6e936997c573..0000000000000000000000000000000000000000 --- a/src/app/login/login.component.spec.ts +++ /dev/null @@ -1,25 +0,0 @@ -import { async, ComponentFixture, TestBed } from '@angular/core/testing'; - -import { LoginComponent } from './login.component'; - -describe('LoginComponent', () => { - let component: LoginComponent; - let fixture: ComponentFixture<LoginComponent>; - - beforeEach(async(() => { - TestBed.configureTestingModule({ - declarations: [ LoginComponent ] - }) - .compileComponents(); - })); - - beforeEach(() => { - fixture = TestBed.createComponent(LoginComponent); - component = fixture.componentInstance; - fixture.detectChanges(); - }); - - it('should create', () => { - expect(component).toBeTruthy(); - }); -}); diff --git a/src/app/login/login.component.ts b/src/app/login/login.component.ts deleted file mode 100644 index ab98bc08deae90ee42608b02f477caff0538f0ac..0000000000000000000000000000000000000000 --- a/src/app/login/login.component.ts +++ /dev/null @@ -1,167 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; -import { map } from 'rxjs/operators'; -import Swal from 'sweetalert2'; -import { Login } from '../../services/login.sevice'; -@Component({ - selector: 'app-login', - templateUrl: './login.component.html', - styleUrls: ['./login.component.css'] -}) -export class LoginComponent implements OnInit { - loginForm: FormGroup; - hide = true; - constructor(private fb: FormBuilder, private router: Router, private loginService : Login) { } - - ngOnInit(): void { - this.loginForm = this.fb.group({ - username:["",[Validators.required]], - password:["",[Validators.required]] - }) - - } - - getEmailError(){ - if(this.loginForm.controls.username.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - getPasswordError(){ - if(this.loginForm.controls.password.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - - login(){ - if(!this.loginForm.valid){ - - Swal.fire({ - text: "Please enter all the fields in the right format.", - icon: "error" - }).then((res) => { - }) - } - else{ - this.loginService.login(this.loginForm.value).subscribe((res) => { - - localStorage.setItem("user",res["token"]); - localStorage.setItem("study",res["user"]["study_id"]) - Swal.fire({ - text: "Login Successful", - icon: "success" - }).then((res) => { - this.loginService.checkStatus().subscribe((res) => { - - if(res[0] == undefined){ - this.router.navigateByUrl("/preSurvey") - } - else{ - if(res[0]["postsurveystatus"] == true){ - this.router.navigateByUrl("/final") - } - else if(res[0]["scoresstatus"] == true){ - this.router.navigateByUrl("/score") - } - else if(res[0]["finalfeedbackstatus"] == true){ - this.router.navigateByUrl("/result") - } - else if(res[0]["cpcqstatus"] == true){ - this.router.navigateByUrl("/finalFeedback") - } - else if(res[0]["responsesstatus"] == true){ - this.router.navigateByUrl("/unpacking") - } - else if(res[0]["presurveystatus"] == true){ - this.router.navigateByUrl("/dashboard") - } - } - }) - }) - },(err) => { - - Swal.fire({ - text: "Wrong credentials", - icon: "error" - }).then((res) => { - }) - }) - - // this.loginService.login(this.loginForm.value).subscribe((res) => { - // - // var arr = []; - // var flag = false; - // Object.keys(res).map(function(key){ - // arr.push({[key]:res[key]}) - // }) - // - // for(var i = 0 ; i<arr.length;i++){ - // - // if((this.loginForm.value["username"] == arr[i][i]["email"]) && (this.loginForm.value["password"] == arr[i][i]["password"])){ - // flag = true; - // Swal.fire({ - // text: "Login Successful", - // icon: "success" - // }).then((res) => { - // localStorage.setItem("user","test1"); - // this.router.navigateByUrl("/preSurvey") - // }) - // } - // } - // if(!flag){ - // Swal.fire({ - // text: "Wrong credentials", - // icon: "error" - // }).then((res) => { - // }) - // } - // },(err) =>{ - - // }) - } - // this.loginService.login(this.loginForm.value).subscribe((res) => { - // var arr = []; - // Object.keys(res).map(function(key){ - // arr.push({[key]:res[key]}) - // return arr - // }) - // var flag = true; - // for(var i = 0; i<arr.length;i++){ - // - // if((this.loginForm.value["username"] == arr[i][`${i}`]['username']) && (this.loginForm.value["password"] == arr[i][`${i}`]['password'])){ - // flag = false; - // Swal.fire({ - // text: "Login Successful", - // icon: "success" - // }).then((res) => { - // localStorage.setItem("user","test1"); - // this.router.navigateByUrl("/preSurvey") - // }) - // } - // } - // if(flag){ - // Swal.fire({ - // text: "Wrong credentials", - // icon: "error" - // }); - // } - // // this.router.navigateByUrl("/consent"); - // // localStorage.setItem("user", res["token"]); - // // localStorage.setItem("exID",res["user"]["id"]) - // },(err) => { - // - // Swal.fire({ - // text: err.error["message"], - // icon: "error" - // }); - // }) - } - -} diff --git a/src/app/main-game/dialog/dialog.component.html b/src/app/main-game/dialog/dialog.component.html deleted file mode 100644 index 1cfc7760e0dcff26058ea1dd51b3d90fa0cce2a1..0000000000000000000000000000000000000000 --- a/src/app/main-game/dialog/dialog.component.html +++ /dev/null @@ -1,15 +0,0 @@ -<h1 mat-dialog-title>Favorite Animal</h1> -<div mat-dialog-content> - My favorite animal is: - <ul> - <li> - <span *ngIf="data.animal === 'panda'">✓</span> Panda - </li> - <li> - <span *ngIf="data.animal === 'unicorn'">✓</span> Unicorn - </li> - <li> - <span *ngIf="data.animal === 'lion'">✓</span> Lion - </li> - </ul> -</div> \ No newline at end of file diff --git a/src/app/main-game/dialog/dialog.component.ts b/src/app/main-game/dialog/dialog.component.ts deleted file mode 100644 index 074fa74cdda01beedeb05cf553eb3224d7474d4a..0000000000000000000000000000000000000000 --- a/src/app/main-game/dialog/dialog.component.ts +++ /dev/null @@ -1,19 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; -} -@Component({ - selector: 'app-dialog', - templateUrl: './dialog.component.html', - styleUrls: ['./dialog.component.css'] -}) -export class DialogComponent implements OnInit { - - constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) { } - - ngOnInit(): void { - } - -} diff --git a/src/app/main-game/main-game.component.css b/src/app/main-game/main-game.component.css deleted file mode 100644 index aa8bff7ea314870510bb438d38e310f28a0ed4f2..0000000000000000000000000000000000000000 --- a/src/app/main-game/main-game.component.css +++ /dev/null @@ -1,104 +0,0 @@ -.home-wrap { - /* background: linear-gradient(to bottom left, rgb(173, 178, 255), #d6f9ff); */ - background-color: green; - width: 100%; - height: 100%; - left: 0; - z-index: 1000; - overflow: auto; - text-align: center; - padding: 20px; - position: absolute; -} - -.example-card { - max-width: 300px; - position: absolute; - top: 50%; - left: 50%; - margin-right: -50%; - transform: translate(-50%, -50%); -} - -p { - font-size: 1rem; - text-align: left; -} - -h3 { - text-align: left; -} - -.dealerRow { - top: 50px; - left: 10px; - z-index: 1; -} - -.firstRow { - /* width: 200px; */ - /* height: 200px; */ - /* position: relative; */ - top: 10px; - left: 0px; - z-index: 1; -} - -.secondRow { - /* width: 200px; - height: 200px; */ - position: absolute; - top: 420px; - left: 40px; - z-index: 2; -} - -.thirdRow { - /* width: 200px; - height: 200px; */ - position: absolute; - top: 480px; - left: 60px; - z-index: 2; -} - -.deck { - float: right; - top: 50px; -} - -.mat-card { - background-color: #edf6f9; -} - -section { - display: table; -} - -.example-label { - display: table-cell; - font-size: 14px; - margin-left: 8px; - min-width: 120px; -} - -.example-button-row { - display: table-cell; - width: 490px; -} - -.example-button-row .mat-button-base { - margin: 8px 8px 8px 0; -} - -.example-flex-container { - display: flex; - justify-content: space-between; - flex-wrap: wrap; -} - -.example-button-container { - display: flex; - justify-content: center; - width: 120px; -} \ No newline at end of file diff --git a/src/app/main-game/main-game.component.html b/src/app/main-game/main-game.component.html deleted file mode 100644 index 47c62543cad843dbe8946c7fb5b301aa74cb4313..0000000000000000000000000000000000000000 --- a/src/app/main-game/main-game.component.html +++ /dev/null @@ -1,66 +0,0 @@ -<!-- <app-header></app-header> --> - -<div class="home-wrap"> - <div class="row"> - <div class="row col-2 dealerRow"> - <div class="col-1" *ngFor="let card of dealer[0]"> - <img [src]="card"> - </div> - </div> - <div class="col-2"> - - </div> - <div class="col-4" style="margin-top: 50px;"> - <mat-card class="example-card "> - - <mat-card-content> - <h3>Your Game Scores</h3> - <countdown [config]="{leftTime: timeForTotalGame}" (event)="totalTimeEvent($event)"></countdown> - <p>Attempt Number : 3</p> - <p>Total wins : 2</p> - <p>Winning percentage : 55%</p> - <p>Performance goal : 21</p> - <p>Score of bust : 21</p> - <!-- <button mat-button (click)="openDialog()"> Click</button> --> - - </mat-card-content> - </mat-card> - </div> - <div class="col-2"> - - </div> - - <div class="col-2 deck"> - <div> - <img src="../../assets/cards/BACKY.png" style="margin-right: 20px;"> - </div> - <div class="row" style="margin-top: 10px;"> - <div class="col-6"> - <button mat-raised-button style="background-color: #fae1dd;">STAND</button> - </div> - <div class="col-6"> - <button mat-raised-button style="background-color: #fae1dd;" (click)="addCard()">HIT</button> - </div> - </div> - </div> - </div> - - - <div class="row col-10 firstRow"> - <div class="col-1" *ngFor="let card of player[0]"> - <img [src]="card"> - </div> - </div> - - <div class="row col-10 secondRow" *ngIf="totalCardsofPlayer > 10"> - <div class="col-1" *ngFor="let card of player[1]"> - <img [src]="card"> - </div> - </div> - <div class="row col-10 thirdRow" *ngIf="totalCardsofPlayer > 20"> - <div class="col-1" *ngFor="let card of player[2]"> - <img [src]="card"> - </div> - </div> - -</div> \ No newline at end of file diff --git a/src/app/post-survey/post-survey.component.css b/src/app/post-survey/post-survey.component.css deleted file mode 100644 index d29c5652874528e726a38bfd1a799904c967c25b..0000000000000000000000000000000000000000 --- a/src/app/post-survey/post-survey.component.css +++ /dev/null @@ -1,62 +0,0 @@ -@media screen and (min-width:1024px) { - .form-wrap { - padding-top: 70px; - } -} - -.example-radio-group { - display: flex; - flex-direction: column; - margin: 15px 0; -} - -h4 { - font-size: 20px; - line-height: 150%; - font-weight: bold; -} - -p { - font-size: 18px; - line-height: 150%; -} - -.mat-card { - margin: 20px 60px; - padding: 0; -} - -h1 { - background-color: #efe9ae; - color: black; - line-height: 150%; - text-align: center; - padding: 10px 0; -} - -.questions { - padding: 20px; -} - -.sign1 { - border: 1px solid black; - margin: 20px 5px !important; -} - -.buttons { - margin-bottom: 50px; - text-align: center; -} - -.btn { - width: 200px; - background-color: #00b4d8; - color: white; - display: inline-block; - padding: 10px; - margin-bottom: 20px; -} - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} \ No newline at end of file diff --git a/src/app/post-survey/post-survey.component.html b/src/app/post-survey/post-survey.component.html deleted file mode 100644 index 9d27d9f6435321dd3136a9d16e5fea7da7b939aa..0000000000000000000000000000000000000000 --- a/src/app/post-survey/post-survey.component.html +++ /dev/null @@ -1,328 +0,0 @@ -<div class="form-wrap"> - <mat-card class=""> - <div> - <h1>Cultural Proficiency Continuum Dialogic Protocol: Post-Survey - </h1> - <div [formGroup]="postSurveyForm" class="questions"> - <h4 *ngIf="!consentFlag">Your responses are confidential and will not be used for research or published without your informed and signed consent. - <span><p style="font-weight: 400; color: blue;" (click)="irbFunction()" >Click here to review the <span style="font-style: italic;">Research Participant Information and Consent Form.</span></p></span> - </h4> - - <h4 *ngIf="consentFlag"></h4> - <br> - - <table class="table"> - <thead style="text-align:center"> - <tr> - <th> - - </th> - <div class="row"> - - <th class="col-2" > - Strongly Agree - </th> - <th class="col-2" > - Agree - </th> - <th class="col-3" > - Neither Agree<br> nor disagree - </th> - <th class="col-3" > - Disagree - </th> - <th class="col-2" > - Strongly Disagree - </th> - </div> - - </tr> - </thead> - <tbody> - <tr> - <td> - {{formQuestion['question1'][0]}} <span style="font-weight: bold;">gender inequality.</span> - </td> - <mat-radio-group formControlName="q1"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - <tr> - <td> - {{formQuestion['question2'][0]}} <span style="font-weight: bold;">LGBTQA+.</span> - - </td> - <mat-radio-group formControlName="q2"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - - <tr> - <td> - {{formQuestion['question3'][0]}} <span style="font-weight: bold;">ableism.</span> - - </td> - <mat-radio-group formControlName="q3"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - - <tr> - <td> - {{formQuestion['question4'][0]}} <span style="font-weight: bold;">Teaching English to Speakers of Other Languages (TESOL).</span> - - </td> - <mat-radio-group formControlName="q4"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - - <tr> - <td> - {{formQuestion['question5'][0]}} <span style="font-weight: bold;">race or ethnicity.</span> - - </td> - <mat-radio-group formControlName="q5"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - <tr> - <td> - {{formQuestion['question6'][0]}} <span style="font-weight: bold;">culture.</span> - </td> - <mat-radio-group formControlName="q6"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - <tr> - <td> - {{formQuestion['question7'][0]}} <span style="font-weight: bold;">diversity, equity, and inclusion (DEI).</span> - </td> - <mat-radio-group formControlName="q7"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - <tr> - <td> - {{formQuestion['question8'][0]}} <span style="font-weight: bold;">racial, ethnic, and cultural</span> {{formQuestion['question8'][1]}} - - </td> - <mat-radio-group formControlName="q8"> - - <td> - <mat-radio-button class="col-lg-2" value="Strongly Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Agree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Neither Agree nor Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Disagree"></mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="Strongly Disagree"></mat-radio-button> - </td> - </mat-radio-group> - </tr> - <br> - - </tbody> - </table> - - - <p>{{formQuestion['question9']}} - - </p> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Abolitionist Teaching')">Abolitionist Teaching - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('AsianCrit')">AsianCrit - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Courageous Conversations About Race')">Courageous Conversations About Race - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Critical Pedagogy')"> Critical Pedagogy - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Critical Race Theory')">Critical Race Theory - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Cultural Proficiency')">Cultural Proficiency - - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Relevant Teaching')">Culturally Relevant Teaching - </mat-checkbox> - - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Responsive School Leadership')">Culturally Responsive School Leadership - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Responsive Teaching')">Culturally Responsive Teaching - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Sustaining Pedagogies')">Culturally Sustaining Pedagogies - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Reality Pedagogy')">Reality Pedagogy - - </mat-checkbox> - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('(Dis)Crit')">(Dis)Crit - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Hip-Hop Education')">Hip-Hop Education - - - </mat-checkbox> - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('LatCrit')">LatCrit - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Multicultural Education')">Multicultural Education - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" >Other (please specify) - </mat-checkbox> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName = "other9" type="text" matInput placeholder=""> - </mat-form-field> - - - <p>{{formQuestion['question10'][0]}}<span style="font-weight: bold; font-style: italic;" matTooltip="Cultural competence is the ability to successfully teach students who come from a culture or cultures other than our own (Moule, 2011)."> cultural competence? </span> {{formQuestion['question10'][1]}} - </p> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Describe</mat-label> - <input formControlName="q10" type="text" matInput placeholder="" required> - </mat-form-field> - - <p>{{formQuestion['question11']}} - </p> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Describe</mat-label> - <input formControlName="q11" type="text" matInput placeholder="" required> - </mat-form-field> - </div> - <div class="buttons"> - <button class="btn" style="background-color: #29ABE2;" (click)="submit()">Submit</button> - </div> - </div> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/post-survey/post-survey.component.ts b/src/app/post-survey/post-survey.component.ts deleted file mode 100644 index 3702360cffb3ea753aba87d9ed4dc6b5b1937c31..0000000000000000000000000000000000000000 --- a/src/app/post-survey/post-survey.component.ts +++ /dev/null @@ -1,147 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import Swal from 'sweetalert2'; -import { Router } from '@angular/router'; -import { FormBuilder, FormGroup, FormControl,Validators } from '@angular/forms'; -import {PreSurveyService} from '../../services/preSurvey.service'; -import {MatDialog} from '@angular/material/dialog'; -import { DialogPDfComponent } from "../pre-survey/dialog-pdf/dialog-pdf.component"; -import {CPCQService} from '../../services/cpcq.service'; - -@Component({ - selector: 'app-post-survey', - templateUrl: './post-survey.component.html', - styleUrls: ['./post-survey.component.css'] -}) -export class PostSurveyComponent implements OnInit { - postSurveyForm: FormGroup; - - consentFlag:boolean; - formQuestion:any; - - constructor(private router:Router,public dialog: MatDialog, private fb: FormBuilder, private presurvey : PreSurveyService, private apiService: CPCQService) { } - - ngOnInit(): void { - this.postSurveyForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - q8:[""], - q9:[""], - q10:[""], - q11:[""], - other9:[''] - }) - - this.presurvey.getPreSurveyAnswer().subscribe((res) => { - this.consentFlag = res[0]["consent"] - }) - - // if(localStorage.getItem("consent") == "true"){ - // this.consentFlag = true - // } - // else{ - // this.consentFlag = false - // } - this.presurvey.getPostSurveyFormQuestions().subscribe((res) => { - this.formQuestion = res[0]; - for(let key in this.formQuestion){ - if(this.formQuestion[key].indexOf('gender inequality') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('gender inequality.') - } - else if(this.formQuestion[key].indexOf('LGBTQA+.') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('LGBTQA+.') - } - else if(this.formQuestion[key].indexOf('ableism.') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('ableism.') - } - else if(this.formQuestion[key].indexOf('Teaching English to Speakers of Other Languages (TESOL).') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('Teaching English to Speakers of Other Languages (TESOL).') - } - else if(this.formQuestion[key].indexOf('race or ethnicity.') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('race or ethnicity.') - } - else if(this.formQuestion[key].indexOf('culture.') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('culture.') - } - else if(this.formQuestion[key].indexOf('diversity, equity, and inclusion (DEI).') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('diversity, equity, and inclusion (DEI).') - } - else if(this.formQuestion[key].indexOf('racial, ethnic, and cultural') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('racial, ethnic, and cultural') - } - else if(this.formQuestion[key].indexOf('cultural competence?')){ - this.formQuestion[key] = this.formQuestion[key].split('cultural competence?') - } - } - },(err) => { - - }) - } - - irbFunction(){ - - this.dialog.open(DialogPDfComponent, { - data: { - animal: 'panda' - } - }); - - } - checkBoxAnswers = []; - checkBoxFunction(e){ - if(this.checkBoxAnswers.indexOf(e) == -1){ - this.checkBoxAnswers.push(e) - } - else{ - var index = this.checkBoxAnswers.indexOf(e) - this.checkBoxAnswers.splice(index, 1); - } - - - } - submit(){ - - if(!this.postSurveyForm.valid){ - Swal.fire({ - text: "Please fill all the fields", - icon: "error" - }).then((res) => { - }) - - } - else{ - this.postSurveyForm.get("q9").setValue(this.checkBoxAnswers) - - if(this.postSurveyForm.value['other9'].length != 0){ - this.checkBoxAnswers.push(this.postSurveyForm.value['other9']) - this.postSurveyForm.get("q9").setValue(this.checkBoxAnswers) - } - this.postSurveyForm.removeControl('other9'); - - this.presurvey.submitPostSurvey(this.postSurveyForm.value).subscribe((res) => { - this.apiService.patchStatus("postsurveystatus").subscribe((res) => { - Swal.fire({ - text: "Submitted!", - icon: "success" - }).then((res) => { - this.router.navigateByUrl("/final"); - - }) - }) - - },(err) =>{ - Swal.fire({ - text: "Failed to submit form.", - icon: "error" - }).then((res) => { - }) - }) - - - } -} -} diff --git a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.css b/src/app/pre-survey/dialog-pdf/dialog-pdf.component.css deleted file mode 100644 index 0b867c45f3ec7710529ba34c82b16b370024ff2f..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.css +++ /dev/null @@ -1,16 +0,0 @@ -.buttons { - margin-top: 20px; - display: -webkit-flex; - display: flex; - -webkit-justify-content: space-between; - justify-content: space-between; -} - -.btn { - width: 200px; - background-color: #00b4d8; - color: white; - display: inline-block; - padding: 10px; - margin-bottom: 20px; -} \ No newline at end of file diff --git a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.html b/src/app/pre-survey/dialog-pdf/dialog-pdf.component.html deleted file mode 100644 index 8f2d88e140fda425da073d0c6c6a48163808c08f..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.html +++ /dev/null @@ -1,8 +0,0 @@ -<h1 mat-dialog-title>Consent Form</h1> -<div mat-dialog-content> - <pdf-viewer src="../../../assets/consent.pdf"></pdf-viewer> -</div> -<div class="buttons"> - <button class="btn" style="background-color: #43aa8b;" mat-dialog-close (click) = "agree()" >I AGREE</button> - <button class="btn" style="background-color: #f94144;" mat-dialog-close (click) = "disagree()">I DISAGREE</button> -</div> diff --git a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.ts b/src/app/pre-survey/dialog-pdf/dialog-pdf.component.ts deleted file mode 100644 index a94193571c8138bd0a83bb98574ee8d336c2a0bb..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/dialog-pdf/dialog-pdf.component.ts +++ /dev/null @@ -1,29 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import Swal from 'sweetalert2'; -import { Router } from '@angular/router'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import { PdfViewerModule } from 'ng2-pdf-viewer'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; -} -@Component({ - selector: 'app-dialog-pdf', - templateUrl: './dialog-pdf.component.html', - styleUrls: ['./dialog-pdf.component.css'] -}) -export class DialogPDfComponent implements OnInit { - - constructor(@Inject(MAT_DIALOG_DATA) public data: DialogData) {} - - ngOnInit(): void { - } - - agree(){ - localStorage.setItem("consent","true") - } - disagree(){ - localStorage.setItem("consent","false") - } - -} diff --git a/src/app/pre-survey/pre-survey.component.css b/src/app/pre-survey/pre-survey.component.css deleted file mode 100644 index 01158b09218261854f8de071d043b4db0f2a0c6c..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/pre-survey.component.css +++ /dev/null @@ -1,58 +0,0 @@ -@media screen and (min-width:1024px) { - .form-wrap { - padding-top: 100px; - } -} - -.example-radio-group { - display: flex; - flex-direction: column; - margin: 15px 0; -} - -h4 { - font-size: 20px; - line-height: 150%; - font-weight: bold; -} - -p { - font-size: 18px; - line-height: 150%; -} - -.mat-card { - margin: 20px 60px; - padding: 0; -} - -h1 { - background-color: #efe9ae; - color: black; - line-height: 150%; - text-align: center; - padding: 10px 0; -} - -.questions { - padding: 20px; -} - -.sign1 { - border: 1px solid black; - margin: 20px 5px !important; -} - -.buttons { - margin-bottom: 50px; - text-align: center; -} - -.btn { - width: 200px; - background-color: #00b4d8; - color: white; - display: inline-block; - padding: 10px; - margin-bottom: 20px; -} \ No newline at end of file diff --git a/src/app/pre-survey/pre-survey.component.html b/src/app/pre-survey/pre-survey.component.html deleted file mode 100644 index b437d7e204bcb2a3d657f1b400810963fc97b0a5..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/pre-survey.component.html +++ /dev/null @@ -1,621 +0,0 @@ -<div class="form-wrap"> - <mat-card class=""> - <div> - <h1>Cultural Proficiency Continuum Dialogic Protocol: Pre-Survey</h1> - <div [formGroup]="preSurveyForm" class="questions"> - <h4 >Your responses are confidential and will not be used for research or published without your informed and signed consent. - <span><p style="font-weight: 400; color: blue;" (click)="irbFunction()" >Click here to review the <span style="font-style: italic;">Research Participant Information and Consent Form.</span></p></span> - </h4> - <br> - <br> - - <div class="row"> - - <div class="col-6"> - <p>{{formQuestion['question1']}}</p> - <mat-form-field appearance="outline" class="col-lg-8"> - <mat-label>Enter Last Name</mat-label> - <input value="nedjnd" formControlName="q1" type="text" matInput placeholder="Last Name" required> - </mat-form-field> - </div> - <div class="col-6"> - <p>{{formQuestion['question2']}}</p> - <mat-form-field appearance="outline" class="col-lg-8"> - <mat-label>Enter First Name</mat-label> - <input formControlName="q2" type="text" matInput placeholder="First Name"> - </mat-form-field> - </div> - - </div> - <div class="row"> - <div class="col-6"> - <p>{{formQuestion['question3']}}</p> - <mat-form-field appearance="outline" class="col-lg-6"> - <mat-label>Enter email</mat-label> - <input formControlName="q3" type="email" matInput placeholder="name@example.com" required> - </mat-form-field> - </div> - <div class="col-6"> - <p>{{formQuestion['question4']}}</p> - <mat-form-field appearance="outline" class="col-lg-6"> - <mat-label>State</mat-label> - <select formControlName="q4" matNativeControl required id="state" name="state"><option value="---">---</option><option value="Alabama">Alabama</option><option value="Alaska">Alaska</option><option value="Arizona">Arizona</option><option value="Arkansas">Arkansas</option><option value="California">California</option><option value="Colorado">Colorado</option><option value="Connecticut">Connecticut</option><option value="Delaware">Delaware</option><option value="District of Columbia">District of Columbia</option><option value="Florida">Florida</option><option value="Georgia">Georgia</option><option value="Guam">Guam</option><option value="Hawaii">Hawaii</option><option value="Idaho">Idaho</option><option value="Illinois">Illinois</option><option value="Indiana">Indiana</option><option value="Iowa">Iowa</option><option value="Kansas">Kansas</option><option value="Kentucky">Kentucky</option><option value="Louisiana">Louisiana</option><option value="Maine">Maine</option><option value="Maryland">Maryland</option><option value="Massachusetts">Massachusetts</option><option value="Michigan">Michigan</option><option value="Minnesota">Minnesota</option><option value="Mississippi">Mississippi</option><option value="Missouri">Missouri</option><option value="Montana">Montana</option><option value="Nebraska">Nebraska</option><option value="Nevada">Nevada</option><option value="New Hampshire">New Hampshire</option><option value="New Jersey">New Jersey</option><option value="New Mexico">New Mexico</option><option value="New York">New York</option><option value="North Carolina">North Carolina</option><option value="North Dakota">North Dakota</option><option value="Northern Marianas Islands">Northern Marianas Islands</option><option value="Ohio">Ohio</option><option value="Oklahoma">Oklahoma</option><option value="Oregon">Oregon</option><option value="Pennsylvania">Pennsylvania</option><option value="Puerto Rico">Puerto Rico</option><option value="Rhode Island">Rhode Island</option><option value="South Carolina">South Carolina</option><option value="South Dakota">South Dakota</option><option value="Tennessee">Tennessee</option><option value="Texas">Texas</option><option value="Utah">Utah</option><option value="Vermont">Vermont</option><option value="Virginia">Virginia</option><option value="Virgin Islands">Virgin Islands</option><option value="Washington">Washington</option><option value="West Virginia">West Virginia</option><option value="Wisconsin">Wisconsin</option><option value="Wyoming">Wyoming</option></select> - </mat-form-field> - </div> - </div> - - <p>{{formQuestion['question5']}}</p> - <mat-radio-group formControlName="q5" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Pre-Service Teacher (with clinical, field, or practicum experience)"><span style="white-space: normal;">Pre-Service Teacher (with clinical, field, or practicum experience)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Pre-Service Teacher (without clinical, field, or practicum experience)"><span style="white-space: normal;">Pre-Service Teacher (without clinical, field, or practicum experience)</span> - </mat-radio-button> - - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="In-service Teacher (1-2 years of experience)"><span style="white-space: normal;">In-service Teacher (1-2 years of experience)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="In-service Teacher (3-5 years of experience)"><span style="white-space: normal;">In-service Teacher (3-5 years of experience)</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="In-service Teacher (6-10 years of experience)"><span style="white-space: normal;">In-service Teacher (6-10 years of experience)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="In-service Teacher (11-15 years of experience)"><span style="white-space: normal;">In-service Teacher (11-15 years of experience)</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="In-service Teacher (more than 15 years of experience)"><span style="white-space: normal;">In-service Teacher (more than 15 years of experience)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Graduate Student"><span style="white-space: normal;">Graduate Student</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Teacher Educator"><span style="white-space: normal;">Teacher Educator</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="School Leader"><span style="white-space: normal;">School Leader</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Mentor Teacher"><span style="white-space: normal;">Mentor Teacher</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Other in Question 5 (please specify)"><span style="white-space: normal;">Other (please specify) </span> - </mat-radio-button> - </div> - </mat-radio-group> - <mat-form-field appearance="outline" class="col-lg-6"> - <mat-label>Please specify</mat-label> - <input formControlName="other5" type="text" matInput placeholder=""> - </mat-form-field> - - - <p></p> - <p>{{formQuestion['question6']}} - </p> - <mat-radio-group formControlName="q6" class="example-radio-group"> - <mat-radio-button value="Four-Year Degree"><span style="white-space: normal;">Four-Year Degree</span> - </mat-radio-button> - <mat-radio-button value="Five-Year Degree"><span style="white-space: normal;">Five-Year Degree</span> - </mat-radio-button> - <mat-radio-button value="Alternative Teaching Certification at a university or college (e.g., M.A.T., M.Ed.)"><span style="white-space: normal;">Alternative Teaching Certification at a university or college (e.g., M.A.T., M.Ed.)</span> - </mat-radio-button> - <mat-radio-button value="Alternative Teaching Certification through a non-profit or for-profit organization (e.g., Teach for America, Troops for Teachers)"><span style="white-space: normal;">Alternative Teaching Certification through a non-profit or for-profit organization (e.g., Teach for America, Troops for Teachers)</span> - </mat-radio-button> - <mat-radio-button value="Other in question 6 (please specify)"><span style="white-space: normal;">Other (please specify)</span> - </mat-radio-button> - </mat-radio-group> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other6" type="text" matInput placeholder=""> - </mat-form-field> - - <p>{{formQuestion['question7']}} </p> - - <div class="row"> - <mat-checkbox class="col-lg-3" value="Early Childhood Education" (click) = "checkBox7Function('Early Childhood Education')"><span style="white-space: normal;">Early Childhood Education</span> - </mat-checkbox> - <mat-checkbox class="col-lg-3" value="Elementary Education" (click) = "checkBox7Function('Elementary Education')"><span style="white-space: normal;">Elementary Education</span> - </mat-checkbox> - </div> - <div class="row"> - <mat-checkbox class="col-lg-3" value="Middle School Education" (click) = "checkBox7Function('Middle School Education')"><span style="white-space: normal;">Middle School Education</span> - </mat-checkbox> - <mat-checkbox class="col-lg-3" value="Secondary Education" (click) = "checkBox7Function('Secondary Education')"><span style="white-space: normal;">Secondary Education</span> - </mat-checkbox> - </div> - <div class="row"> - <mat-checkbox class="col-lg-3" value="Special Education (SPED)" (click) = "checkBox7Function('Special Education (SPED)')"><span style="white-space: normal;">Special Education (SPED)</span> - </mat-checkbox> - <mat-checkbox class="col-lg-3" value="English as a Second Language (ESL)" (click) = "checkBox7Function('English as a Second Language (ESL)')"><span style="white-space: normal;">English as a Second Language (ESL)</span> - </mat-checkbox> - </div> - <div class="row"> - <mat-checkbox class="col-lg-3" value="Reading Specialist" (click) = "checkBox7Function('Reading Specialist')"><span style="white-space: normal;">Reading Specialist</span> - </mat-checkbox> - <mat-checkbox class="col-lg-3" value="Principal Certification" (click) = "checkBox7Function('Principal Certification')"><span style="white-space: normal;">Principal Certification</span> - </mat-checkbox> - </div> - <div class="row"> - <mat-checkbox class="col-lg-3" value="Other in Question 7 (please specify)"><span style="white-space: normal;">Other (please specify)</span> - </mat-checkbox> - <mat-form-field appearance="outline" class="col-lg-7"> - <mat-label>Please specify</mat-label> - <input formControlName="other7" type="text" matInput placeholder=""> - </mat-form-field> - </div> - - - <p>{{formQuestion['question8']}} </p> - <mat-radio-group formControlName="q8" class="example-radio-group"> - <mat-radio-button value="Male">Male</mat-radio-button> - <mat-radio-button value="Female">Female</mat-radio-button> - <mat-radio-button value="Transgender Female">Transgender Female</mat-radio-button> - <mat-radio-button value="Transgender Male">Transgender Male</mat-radio-button> - <mat-radio-button value="Gender-Non-Conforming">Gender-Non-Conforming</mat-radio-button> - <mat-radio-button value="Prefer Not to Answer">Prefer Not to Answer </mat-radio-button> - <mat-radio-button value="Others in Question 8 (Please Specify)">Others (Please Specify)</mat-radio-button> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other8" type="text" matInput placeholder=""> - </mat-form-field> - </mat-radio-group> - - - <p>{{formQuestion['question9']}}</p> - <mat-radio-group formControlName="q9" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-2" value="18-24">18-24</mat-radio-button> - <mat-radio-button class="col-lg-2" value="25-34">25-34</mat-radio-button> - <mat-radio-button class="col-lg-2" value="35-44">35-44</mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-2" value="45-54">45-54</mat-radio-button> - <mat-radio-button class="col-lg-2" value="55-64">55-64</mat-radio-button> - <mat-radio-button class="col-lg-2" value="65+">65+</mat-radio-button> - </div> - - </mat-radio-group> - - <p>{{formQuestion['question10']}}</p> - <mat-radio-group formControlName="q10" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-3" value="White"><span style="white-space: normal;">White</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Black or African American"><span style="white-space: normal;">Black or African American</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Hispanic or Latino"><span style="white-space: normal;">Hispanic or Latino</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="American Indian or Alaska Native"><span style="white-space: normal;">American Indian or Alaska Native</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Biracial (two races/ethnicities)"><span style="white-space: normal;">Biracial (two races/ethnicities)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Multiracial (more than two races/ethnicities)"><span style="white-space: normal;">Multiracial (more than two races/ethnicities)</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Another Race/Ethnicity (please specify)"><span style="white-space: normal;">Another Race/Ethnicity (please specify)</span> - </mat-radio-button> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other10" type="text" matInput placeholder=""> - </mat-form-field> - </div> - </mat-radio-group> - - - <p></p> - - - <p>{{formQuestion['question11']}}</p> - <mat-radio-group formControlName="q11" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-2" value="Poor">Poor - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Working Poor">Working Poor - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Lower Middle Class"> Lower Middle Class - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-2" value="Middle Class">Middle Class - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Upper Middle Class">Upper Middle Class - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Wealthy">Wealthy</mat-radio-button> - </div> - </mat-radio-group> - - <p>{{formQuestion['question12']}}</p> - <mat-radio-group formControlName="q12" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-2" value="Liberal">Liberal - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Conservative">Conservative - </mat-radio-button> - <mat-radio-button class="col-lg-2" value="Independent"> Independent - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-2" value="Other in Question 12 (please specify)">Other (please specify) - </mat-radio-button> - </div> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other12" type="text" matInput placeholder=""> - </mat-form-field> - </mat-radio-group> - - <p>{{formQuestion['question13']}}</p> - <mat-radio-group formControlName="q13" class="example-radio-group"> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Christianity"><span style="white-space: normal;">Christianity</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Catholicism"><span style="white-space: normal;">Catholicism</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Protestantism"><span style="white-space: normal;">Protestantism</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Judaism"><span style="white-space: normal;">Judaism</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Islam"><span style="white-space: normal;">Islam</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Hinduism"><span style="white-space: normal;">Hinduism</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Buddhism"><span style="white-space: normal;">Buddhism</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="African traditional and Diasporic"><span style="white-space: normal;">African traditional and Diasporic</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Chinese traditional religion"><span style="white-space: normal;">Chinese traditional religion</span> - </mat-radio-button> - </div> - <div class="row"> - <mat-radio-button class="col-lg-3" value="Spiritual Nonreligious (e.g., Secular/Atheist)"><span style="white-space: normal;">Spiritual Nonreligious (e.g., Secular/Atheist)</span> - </mat-radio-button> - <mat-radio-button class="col-lg-3" value="Other in question 13 (please specify)"><span style="white-space: normal;">Other (please specify)</span> - </mat-radio-button> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other13" type="text" matInput placeholder=""> - </mat-form-field> - </div> - </mat-radio-group> - <div class="table-responsive"> - <table class="table"> - <thead style="text-align:center"> - <tr> - <th> - - </th> - <div class="row"> - <th class="col-3" > - None - </th> - <th class="col-2"> - 1 - </th> - <th class="col-2"> - 2 - </th> - <th class="col-2"> - 3 - </th> - <th class="col-2"> - 4 or more - </th> - </div> - </tr> - </thead> - <tbody> - <tr> - <td> - {{formQuestion['question14'][0]}} <span style="font-weight: bold;">gender inequality</span> {{formQuestion['question14'][1]}} - - </td> - <mat-radio-group formControlName="q14"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - <br> - <tr> - <td> - {{formQuestion['question15'][0]}} <span style="font-weight: bold;"> LGBTQA+</span> {{formQuestion['question15'][1]}} - - </td> - <mat-radio-group formControlName="q15"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - <br> - - <tr> - <td> - {{formQuestion['question16'][0]}}<span style="font-weight: bold;"> ableism</span> {{formQuestion['question16'][1]}} - - - </td> - <mat-radio-group formControlName="q16"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - <br> - - - <tr> - <td> - {{formQuestion['question17'][0]}} <span style="font-weight: bold;">Teaching English to Speakers of Other Languages (TESOL)</span> {{formQuestion['question17'][1]}} - - </td> - <mat-radio-group formControlName="q17"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - - - - <br> - <tr> - <td> - {{formQuestion['question18'][0]}} <span style="font-weight: bold;">race or ethnicity</span> {{formQuestion['question18'][1]}} - - - </td> - <mat-radio-group formControlName="q18"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - - <br> - - <tr> - <td> - {{formQuestion['question19'][0]}} <span style="font-weight: bold;">culture</span> {{formQuestion['question19'][1]}} - - </td> - <mat-radio-group formControlName="q19"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - <tr> - <td> - {{formQuestion['question20'][0]}} <span style="font-weight: bold;">diversity, equity, and inclusion (DEI)</span> {{formQuestion['question20'][1]}} - - </td> - <mat-radio-group formControlName="q20"> - <td> - <mat-radio-button class="col-lg-2" value="None"> - </mat-radio-button> - </td> - <td> - <mat-radio-button class="col-lg-2" value="1"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="2"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="3"> - </mat-radio-button> - - </td> - <td> - <mat-radio-button class="col-lg-2" value="4 or more"> - </mat-radio-button> - - </td> - </mat-radio-group> - </tr> - <br> - </tbody> - </table> - </div> - - <br/> - - - <p>{{formQuestion['question21']}}</p> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Abolitionist Teaching')"><span style="white-space: normal;" >Abolitionist Teaching</span> - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('AsianCrit')"><span style="white-space: normal;">AsianCrit</span> - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Courageous Conversations About Race')"><span style="white-space: normal;">Courageous Conversations About Race</span> - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Critical Pedagogy')"><span style="white-space: normal;">Critical Pedagogy</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Critical Race Theory')"><span style="white-space: normal;">Critical Race Theory</span> - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Cultural Proficiency')"><span style="white-space: normal;">Cultural Proficiency</span> - - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Relevant Teaching')"><span style="white-space: normal;">Culturally Relevant Teaching</span> - </mat-checkbox> - - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Responsive School Leadership')"><span style="white-space: normal;">Culturally Responsive School Leadership</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Responsive Teaching')"><span style="white-space: normal;">Culturally Responsive Teaching</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Culturally Sustaining Pedagogies')"><span style="white-space: normal;">Culturally Sustaining Pedagogies</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Reality Pedagogy')"><span style="white-space: normal;">Reality Pedagogy</span> - - </mat-checkbox> - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('(Dis)Crit')"><span style="white-space: normal;">(Dis)Crit</span> - - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Hip-Hop Education')"><span style="white-space: normal;">Hip-Hop Education</span> - - - </mat-checkbox> - - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('LatCrit')"><span style="white-space: normal;">LatCrit</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6" (click) = "checkBoxFunction('Multicultural Education')"><span style="white-space: normal;">Multicultural Education</span> - </mat-checkbox> - <mat-checkbox class="example-margin col-lg-6"><span style="white-space: normal;">Other (please specify)</span> - </mat-checkbox> - <mat-form-field appearance="outline" class="col-lg-4"> - <mat-label>Please specify</mat-label> - <input formControlName="other21" type="text" matInput placeholder=""> - </mat-form-field> - </div> - <div class="buttons"> - <button class="btn" style="background-color: #29ABE2;" (click)="submit()">Submit</button> - </div> - </div> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/pre-survey/pre-survey.component.ts b/src/app/pre-survey/pre-survey.component.ts deleted file mode 100644 index 701120b0bfad7cb29becc419b057bf38643a55d0..0000000000000000000000000000000000000000 --- a/src/app/pre-survey/pre-survey.component.ts +++ /dev/null @@ -1,212 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import Swal from 'sweetalert2'; -import { Router } from '@angular/router'; -import {MatDialog} from '@angular/material/dialog'; -import { DialogPDfComponent } from "./dialog-pdf/dialog-pdf.component"; -import { FormBuilder, FormGroup, FormControl,Validators } from '@angular/forms'; -import {PreSurveyService} from '../../services/preSurvey.service'; -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; -} -@Component({ - selector: 'app-pre-survey', - templateUrl: './pre-survey.component.html', - styleUrls: ['./pre-survey.component.css'] -}) -export class PreSurveyComponent implements OnInit { - preSurveyForm: FormGroup; - email : any; - startTime: any; - endTime: any; - durationTime : any; - formQuestion: any; - constructor(private router:Router,public dialog: MatDialog,private fb: FormBuilder, private presurvey : PreSurveyService) { } - - ngOnInit(): void { - this.startTime = new Date() - - this.preSurveyForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - q8:[""], - q9:[""], - q10:[""], - q11:[""], - q12:[""], - q13:[""], - q14:[""], - q15:[""], - q16:[""], - q17:[""], - q18:[""], - q19:[""], - q20:[""], - q21:[""], - other5:'', - other6:'', - other7:'', - other8:'', - other10:'', - other12:'', - other13:'', - other21:'', - consent:'' - }) - - this.presurvey.getFormQuestions().subscribe((res) => { - this.formQuestion = res[0]; - for(let key in this.formQuestion){ - if(this.formQuestion[key].indexOf('gender inequality') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('gender inequality') - } - else if(this.formQuestion[key].indexOf('LGBTQA+') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('LGBTQA+') - } - else if(this.formQuestion[key].indexOf('ableism') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('ableism') - } - else if(this.formQuestion[key].indexOf('Teaching English to Speakers of Other Languages (TESOL)') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('Teaching English to Speakers of Other Languages (TESOL)') - } - else if(this.formQuestion[key].indexOf('race or ethnicity') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('race or ethnicity') - } - else if(this.formQuestion[key].indexOf('culture') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('culture') - } - else if(this.formQuestion[key].indexOf('diversity, equity, and inclusion (DEI)') != -1){ - this.formQuestion[key] = this.formQuestion[key].split('diversity, equity, and inclusion (DEI)') - } - } - this.presurvey.userData().subscribe((res) => { - this.preSurveyForm.get("q1").setValue(res["last_name"]) - this.preSurveyForm.get("q2").setValue(res["first_name"]) - this.preSurveyForm.get("q3").setValue(res["email"]) - - },(err) => { - - }) - },(err) => { - - }) - - - - } - - checkBox21 = []; - checkBoxFunction(e){ - if(this.checkBox21.indexOf(e) == -1){ - this.checkBox21.push(e) - } - else{ - var index = this.checkBox21.indexOf(e) - this.checkBox21.splice(index, 1); - } - - } - - checkBox7 = []; - checkBox7Function(e){ - - if(this.checkBox7.indexOf(e) == -1){ - this.checkBox7.push(e) - } - else{ - var index = this.checkBox7.indexOf(e) - this.checkBox7.splice(index, 1); - } - - } - - irbFunction(){ - - this.dialog.open(DialogPDfComponent, { - data: { - animal: 'panda' - } - }); - - } - - submit(){ - if(!this.preSurveyForm.valid){ - Swal.fire({ - text: "Please fill all the fields", - icon: "error" - }).then((res) => { - }) - - } - else{ - this.preSurveyForm.get("q7").setValue(this.checkBox7) - this.preSurveyForm.get("q21").setValue(this.checkBox21) - - if(this.preSurveyForm.value["other5"].length != 0){ - this.preSurveyForm.get("q5").setValue(this.preSurveyForm.value["other5"]) - } - if(this.preSurveyForm.value["other6"].length != 0){ - this.preSurveyForm.get("q6").setValue(this.preSurveyForm.value["other6"]) - } - if(this.preSurveyForm.value["other7"].length != 0){ - - this.checkBox7.push(this.preSurveyForm.value["other7"]) - this.preSurveyForm.get("q7").setValue(this.checkBox7) - } - if(this.preSurveyForm.value["other8"].length != 0){ - this.preSurveyForm.get("q8").setValue(this.preSurveyForm.value["other8"]) - } - if(this.preSurveyForm.value["other10"].length != 0){ - this.preSurveyForm.get("q10").setValue(this.preSurveyForm.value["other10"]) - } - if(this.preSurveyForm.value["other12"].length != 0){ - this.preSurveyForm.get("q12").setValue(this.preSurveyForm.value["other12"]) - } - if(this.preSurveyForm.value["other13"].length != 0){ - this.preSurveyForm.get("q13").setValue(this.preSurveyForm.value["other13"]) - } - if(this.preSurveyForm.value["other21"].length != 0){ - this.checkBox21.push(this.preSurveyForm.value["other21"]) - this.preSurveyForm.get("q21").setValue(this.checkBox21) - } - this.preSurveyForm.removeControl('other5'); - this.preSurveyForm.removeControl('other6'); - this.preSurveyForm.removeControl('other7'); - this.preSurveyForm.removeControl('other8'); - this.preSurveyForm.removeControl('other10'); - this.preSurveyForm.removeControl('other12'); - this.preSurveyForm.removeControl('other13'); - this.preSurveyForm.removeControl('other21'); - if(localStorage.getItem("consent") == "true"){ - this.preSurveyForm.get("consent").setValue(true) - } - else{ - this.preSurveyForm.get("consent").setValue(false) - } - - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - this.preSurveyForm.value["duration"] = this.durationTime - this.presurvey.submitForm(this.preSurveyForm.value).subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - this.router.navigateByUrl("/dashboard") - }) - },(err) => { - - }) - - } - } - } - diff --git a/src/app/register-component/register-component.component.css b/src/app/register-component/register-component.component.css deleted file mode 100644 index cb2e8a4516eb951edff739f67c9a8fb8b2ba4ded..0000000000000000000000000000000000000000 --- a/src/app/register-component/register-component.component.css +++ /dev/null @@ -1,72 +0,0 @@ -.container{ - text-align: center; - padding-bottom: 300px; -} - -.example-card { - display: inline-block; - margin-top: 100px; -} - -.intro { - top: 20%; - font-size: 35px; - text-align: center; - font-family: 'Loto', sans-serif, cursive; - color: black; - font-weight: bold; -} - -body { - font-family: 'Loto', sans-serif; - background-color: #f8fafb; -} - -@media screen and (min-width: 992px){ - p { - padding-top: 150px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -@media screen and (max-width: 991px){ - p { - padding-top: 20px; - line-height: 150%; - color: #b3b3b3; - font-weight: 300; - margin: 0 20px; - } -} - -h1, -h2, -h3, -h4, -h5, -h6, -.h1, -.h2, -.h3, -.h4, -.h5, -.h6 { - font-family: 'Loto', sans-serif; -} - -a { - -webkit-transition: .3s all ease; - -o-transition: .3s all ease; - transition: .3s all ease; -} - -a:hover { - text-decoration: none !important; -} - -h2 { - font-size: 20px; -} \ No newline at end of file diff --git a/src/app/register-component/register-component.component.html b/src/app/register-component/register-component.component.html deleted file mode 100644 index 906ba83bd01b5822149c173c1338e378bd1099bd..0000000000000000000000000000000000000000 --- a/src/app/register-component/register-component.component.html +++ /dev/null @@ -1,47 +0,0 @@ -<div class="header-wrap"> - <p class="intro">Cultural Proficiency Continuum Dialogic Protocol</p> - <div class="container"> - <mat-card class="example-card "> - <div class="mb-4"> - <h3 style="text-align: center;">Register</h3> - </div> - <form [formGroup]="loginForm"> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Email Address</mat-label> - <input type="email" matInput placeholder="joe@example.com" formControlName="email" required> - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter First Name</mat-label> - <input type="text" matInput placeholder="John" formControlName="first_name" required> - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Last Name</mat-label> - <input type="text" matInput placeholder="" formControlName="last_name" > - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter Username</mat-label> - <input type="email" matInput placeholder="joe@example.com" formControlName="username" required> - </mat-form-field> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Enter your password</mat-label> - <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="loginForm.controls.password.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> - <!-- <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Confirm your password</mat-label> - <input matInput formControlName="password" [type]="hide ? 'password' : 'text'" required> - <button mat-icon-button matSuffix (click)="hide = !hide" [attr.aria-label]="'Hide password'" [attr.aria-pressed]="hide"> - <mat-icon>{{hide ? 'visibility_off' : 'visibility'}}</mat-icon> - </button> - <mat-error *ngIf="loginForm.controls.password.invalid">{{getPasswordError()}}</mat-error> - </mat-form-field> --> - - <input type="submit" value="Register" class="btn text-white btn-block btn-primary" style="background-color: #29ABE2; font-size: 20px;" (click)="login()"> - </form> - </mat-card> - </div> -</div> -<app-footer></app-footer> \ No newline at end of file diff --git a/src/app/register-component/register-component.component.ts b/src/app/register-component/register-component.component.ts deleted file mode 100644 index eb877e2fc2e21204d42edc336523f4abc7ac69d5..0000000000000000000000000000000000000000 --- a/src/app/register-component/register-component.component.ts +++ /dev/null @@ -1,76 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import { EmailValidator, FormBuilder, FormGroup, Validators } from '@angular/forms'; -import { MatDialog, MatDialogRef } from '@angular/material/dialog'; -import { Router } from '@angular/router'; -import Swal from 'sweetalert2'; -import { Login } from '../../services/login.sevice'; -@Component({ - selector: 'app-register-component', - templateUrl: './register-component.component.html', - styleUrls: ['./register-component.component.css'] -}) -export class RegisterComponentComponent implements OnInit { - loginForm: FormGroup; - hide = true; - constructor(private fb: FormBuilder, private router: Router, private loginService : Login) { } - - ngOnInit(): void { - this.loginForm = this.fb.group({ - username:["",[ Validators.required]], - email:['',[Validators.required, Validators.email]], - password:["",[Validators.required]], - first_name:["",[Validators.required]], - last_name:[""] - - }) - - } - - getEmailError(){ - if(this.loginForm.controls.username.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - getPasswordError(){ - if(this.loginForm.controls.password.hasError('required')){ - return 'Required' - }else{ - return '' - } - } - - - login(){ - if(!this.loginForm.valid){ - - Swal.fire({ - text: "Please enter all the fields in the right format.", - icon: "error" - }).then((res) => { - }) - } - else{ - this.loginService.register(this.loginForm.value).subscribe((res) => { - localStorage.setItem("user",res["token"]); - Swal.fire({ - text: "Registration Successful", - icon: "success" - }).then((res) => { - this.router.navigateByUrl("/preSurvey") - }) - - },(err) => { - - Swal.fire({ - text: "Username/Email already exists", - icon: "error" - }).then((res) => { - }) - }) - } - } - -} diff --git a/src/app/result-dashboard/result-dashboard.component.css b/src/app/result-dashboard/result-dashboard.component.css deleted file mode 100644 index 1e28f7dc7521a7a74c3da61d1e2fc29f5f187436..0000000000000000000000000000000000000000 --- a/src/app/result-dashboard/result-dashboard.component.css +++ /dev/null @@ -1,433 +0,0 @@ -@media screen and (min-width: 992px) { - .home-wrap { - padding-top: 100px; - } -} - -.icon-select { - width: 0px; -} - -.icon-select .selected-box { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - height: 60px; - border: 1px solid #999999; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-box:hover { - position: relative; - margin: 0px; - padding: 0px; - width: 70px; - height: 60px; - border: 1px solid #000000; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .selected-icon { - position: absolute; - margin: 0px; - padding: 0px; - top: 5px; - left: 5px; - width: 48px; - /* sil */ - height: 48px; - /* sil */ - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; -} - -.icon-select .component-icon { - position: absolute; - bottom: 5px; - right: 4px; -} - -.icon-select .box { - position: absolute; - top: 0px; - left: 71px; - margin: 0px; - padding: 0px; - width: 170px; - height: 170px; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: auto; -} - -.icon-select .icon { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - height: 48px; - border: 1px solid #CCCCCC; - background-color: #FFFFFF; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.icon-select .icon:hover { - border: 1px solid #000000; -} - -.icon-select .icon.selected { - position: relative; - margin: 5px 0px 0px 5px; - padding: 0px; - width: 48px; - height: 48px; - border: 1px solid #EEEEEE; - background-color: #EEEEEE; - -webkit-border-radius: 3px; - -moz-border-radius: 3px; - border-radius: 3px; - overflow: hidden; - float: left; -} - -.circle { - border-radius: 50%; - width: 150px; - height: 150px; - display: flex; - justify-content: center; - align-items: center; - margin-top: auto; - margin-bottom: auto; -} - -img { - border-radius: 50%; - width: 60px; - height: 60px; -} - -.initials { - color: #ffffff; - font-size: 20px; - line-height: 19px; - letter-spacing: 0.2625; -} - -.leftCards { - margin-bottom: 10px; -} - -.profileImg { - border-radius: 50%; - display: block; - margin-left: auto; - margin-right: auto; - width: 150px; - height: 150px; -} - -.div-wrap { - width: 500px; -} - -p { - font-family: 'Loto', sans-serif; -} - -li { - font-family: 'Loto', sans-serif; - font-size: 15px; - margin: 15px; -} - -h3 { - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - -p { - text-align: justify; - text-justify: inter-word; - font-size: 15px; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -.title { - background-color: #f8c045; - text-align: center; - padding: 8px 0; - margin-bottom: 20px; -} - -h1 { - margin-bottom: 5px !important; - margin-top: 5px; - font-size: 20px; -} - -::ng-deep .custom-dialog .mat-dialog-container { - padding: 0 !important; -} - -.dialog-wrap { - padding: 10px; -} - -.mat-error { - text-align: center; - margin-bottom: 25px; -} - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - -.row { - margin: 0 !important; -} - -.col-lg-12 { - padding: 0 !important; -} - -.btn { - background-color: #f8c045; - color: black; - padding: 5px; - margin-top: 5px; - float: right; - border-radius: 5px; - margin-bottom: 20px; - margin-right: 15px; -} - -.btn:hover, -.btn:focus, -.btn:active { - outline: none; - box-shadow: none; -} - -.close { - font-size: 25px; - color: red; - float: right; - margin-right: 20px; - margin-top: 10px; - cursor: pointer; -} - -.outer { - padding: 10px 30px; -} - -.circles { - height: 45px; - width: 45px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; - cursor: pointer; -} - -.active { - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - width: 200px; - height: 5px; - margin-bottom: 13px; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.current { - background-color: rgb(5, 204, 5); - cursor: no-drop; -} - -.bar { - width: 200px; - height: 5px; - margin-bottom: 13px; - border: 2px solid #e4e3e3; - background-color: #e4e3e3; - display: inline-block; - text-align: center; - margin: "0 auto"; -} - -.icon { - margin: 8px; -} - -.chartsRadial { - margin-bottom: -200px; -} - -.alert { - text-align: center; -} - -.alert .mat-card { - display: inline-block; -} - -h3 { - font-size: 20px; - text-align: center; -} - -.status-btn { - border: none; - background-color: #f8c045; - color: black; - padding: 10px 40px; - display: inline-block; - border-radius: 5px; - margin: 20px; -} - -.status-btn:hover, -.status-btn:focus, -.status-btn:active { - border: none; - outline: none; - box-shadow: none; -} - -.legend { - margin-bottom: 40px; -} - -.color1 { - height: 15px; - width: 15px; - border: 2px solid #eeeeee; - background-color: #eeeeee; - border-radius: 50%; - display: inline-block; -} - -.color2 { - height: 15px; - width: 15px; - border: 2px solid #ffa500; - background-color: #ffa500; - border-radius: 50%; - display: inline-block; -} - -.color3 { - height: 15px; - width: 15px; - border: 2px solid rgb(5, 204, 5); - background-color: rgb(5, 204, 5); - border-radius: 50%; - display: inline-block; -} - -small { - margin-left: 10px; -} - -.mat-hint { - color: rgb(0, 132, 255); - cursor: pointer; -} - -::ng-deep .mat-form-field-appearance-outline .mat-form-field-subscript-wrapper { - padding: 0 !important; -} - -::ng-deep .mat-datepicker-content-touch .mat-calendar { - width: 0 !important; - height: 0 !important; -} - -.status{ - margin-top: 40px; -} - -@media screen and (max-width: 991px){ - .activity{ - margin-top: 20px; - } -} - -.profile .mat-card{ - display: flex; - flex-direction: column; - height: 100%; -} - -.outer{ - display: flex; - margin: 0 50px; -} - -.content{ - margin: 20px 50px; -} - -.content .mat-card{ - padding: 20px 50px; -} diff --git a/src/app/result-dashboard/result-dashboard.component.html b/src/app/result-dashboard/result-dashboard.component.html deleted file mode 100644 index eddfbf23e9b49e432ce0abcb55bae2a59f6f95ef..0000000000000000000000000000000000000000 --- a/src/app/result-dashboard/result-dashboard.component.html +++ /dev/null @@ -1,164 +0,0 @@ -<div class="home-wrap"> - <div class="col-6" *ngIf="profile"> - <div class="row"> - <div class="col-6"> - <mat-card class="leftCards "> - <img class="profileImg" src="../../assets/profile.jpg"> - <mat-card-content> - <h2 style="width: 100%; text-align: center;">PROFILE</h2> - <p>Name: John Doe</p> - <p style="margin-top: -10px;">Email : john@gmail.com</p> - <p style="margin-top: -10px;">Phone : (757)-339-1234</p> - </mat-card-content> - </mat-card> - </div> - <div class="col-6"> - <mat-card class="leftCards "> - <h2>ACTIVITY</h2> - <ul> - <li>Completed Pre-Survey on <span style="color: red;"> December 25, 2020</span></li> - <li>Completed CPCQ Form on <span style="color: red;"> December 26, 2020</span></li> - <li>Started Unpacking of CPCQ Form answers on <span style="color: red;"> December 27, 2020</span></li> - <li>Results will be sent via email by <span style="color: red;"> December 31, 2020</span></li> - </ul> - </mat-card> - </div> - - </div> - <div class="col-12"> - <mat-card class="leftCards "> - <mat-card-content> - <div class="col-12"> - <span *ngFor="let item of statusIcons; let i = index"> - <span matTooltip="{{statusNames[i]}}" class="circles" [class.current]="i <= currentStatus" ><mat-icon class="icon">{{item}}</mat-icon></span> - <span [class.bar]="i >= currentStatus" [class.active]="i < currentStatus" *ngIf="(i != statusIcons.length-1)" style="width: 65px;"></span> - </span> - </div> - </mat-card-content> - </mat-card> - - </div> - <!-- <div class="row"> - <div class="col-6"> - <mat-card class="leftCards "> - <mat-card-content> - <h2>CULTURAL PROFICIENCY</h2> - <div> - <apx-chart class="chartsRadial" [series]="chartOptions.series" [chart]="chartOptions.chart" [plotOptions]="chartOptions.plotOptions" [labels]="chartOptions.labels" [fill]="chartOptions.fill"></apx-chart> - </div> - - </mat-card-content> - </mat-card> - </div> - <div class="col-6"> - <mat-card class="leftCards "> - <mat-card-content> - <h2>RESULTS</h2> - <div id="ch"> - <div id="chart"> - <apx-chart [series]="chartOptions2.series" [chart]="chartOptions2.chart" [plotOptions]="chartOptions2.plotOptions" [labels]="chartOptions2.labels" [legend]="chartOptions2.legend" [colors]="chartOptions2.colors" [responsive]="chartOptions2.responsive"></apx-chart> - </div> - - </div> - </mat-card-content> - </mat-card> - </div> - - </div> --> - - </div> - - <div class="row outer" *ngIf="!profile"> - <div class="col-lg-5 profile"> - <mat-card> - <div class="row col-lg-12"> - <div class="col-lg-4"> - <script type="text/javascript" ng:autobind src="http://code.angularjs.org/0.10.4/angular-0.10.4.js"></script> - <script type="text/javascript" src="http://bug7a.github.io/iconselect.js/sample/lib/iscroll.js"></script> - <div ng:controller="Ctrl"> - - <div id="my-icon-select"></div> - - </div> - <img *ngIf="!showInitials" [src]="avatarLink" class="profileImg" (click)="openDialog()"> - <div *ngIf="showInitials" class="circle" style="background-color:#118ab2;" (click)="openDialog()"> - - <div class="initials"> - {{initials}} - </div> - </div> - <br/> - <p (click)="openDialog()" style="width: 100%; text-align: center;">Choose Your Avatar</p> - <br> - - </div> - <div class="col-lg-8"> - <mat-card-content> - <h2 style="width: 100%; text-align: center;">USER PROFILE</h2> - <br> - <div class="row"> - <div class="col-12"> - <p>Username: {{userName}}</p> - </div> - <div class="col-12"> - <p>Email: {{email}}</p> - </div> - </div> - <div class="row"> - <div class="col-12"> - <p>Gender: {{gender}}</p> - </div> - <div class="col-12"> - <p>Location: {{location}}</p> - </div> - </div> - </mat-card-content> - </div> - </div> - </mat-card> - </div> - <div class="col-lg-7 activity"> - <mat-card class="leftCards"> - <h2>CPCDP ACTIVITIES</h2> - <ul> - <li>Completed Pre-Survey on <span style="color: red;"> {{preSurveyDate}}.</span></li> - <li *ngIf="currentStatus >= 1">Cultural Proficiency Continuum Q-Sort form completed on <span style="color: red;">{{responsesDate}}.</span></li> - <li *ngIf="!(currentStatus >= 1)">Cultural Proficiency Continuum Q-Sort form is pending your completion.</li> - - <li *ngIf="currentStatus >= 2">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) completed on <span style="color: red;">{{cpcqDate}}.</span></li> - <li *ngIf="!(currentStatus >= 2)">Cultural Proficiency Continuum Q-Sort reactions (i.e., unpacking) are pending your completion.</li> - - <li *ngIf="!(currentStatus >= 3)" >Your facilitator's comments on your reactions were completed on <span style="color: red;">{{cpcqDate}}.</span></li> - <li *ngIf="(currentStatus >= 3)" >Your facilitator's comments on your reactions are pending the facilitator's completion. (You will receive an email notifying you to login into your profile and review your facilitator's reactions.</li> - - <li *ngIf="(currentStatus >= 4)" >Post-Survey completed on <span style="color: red;">{{cpcqDate}}.</span></li> - <li *ngIf="!(currentStatus >= 4)" >Post-Survey is pending your completion.</li> - - </ul> - <div class="col-lg-12 status"> - <span *ngFor="let item of statusIcons; let i = index"> - <span matTooltip="{{statusNames[i]}}" class="circles" [class.current]="i <= currentStatus" ><mat-icon class="icon">{{item}}</mat-icon></span> - <span [class.bar]="i >= currentStatus" [class.active]="i < currentStatus" *ngIf="(i != statusIcons.length-1)" style="width: 65px;"></span> - </span> - </div> - </mat-card> - </div> - </div> - <div class="content"> - <mat-card> - <mat-card-content> - <h2>Cultural Proficiency Continuum Q-Sort: Waiting for Your Reactions to be Reviewed - - </h2> - <p style="font-size: 20px;">Thank you for your engagement with this protocol thus far. At this stage, you have completed the pre-survey and reacted to and unpacked a host of culturally proficient interactions. Next, a facilitator will review the comments you - provided to the vignettes you unpacked and offer insights concerning your written comments. You will receive an email notifying you to login into your profile and review your facilitator's comments. - - </p> - <ng-lottie speed="0.1" height="280px" [options]="options" (animationCreated)="animationCreated($event)"></ng-lottie> - </mat-card-content> - <mat-card-actions> - - </mat-card-actions> - </mat-card> - </div> -</div> \ No newline at end of file diff --git a/src/app/score-page/score-page.component.css b/src/app/score-page/score-page.component.css deleted file mode 100644 index 1838533c67801ba02ba54b26fe8d17d3786adcd3..0000000000000000000000000000000000000000 --- a/src/app/score-page/score-page.component.css +++ /dev/null @@ -1,172 +0,0 @@ -.divClass { - padding-top: 10px; -} - -.example-card { - /* max-height: 700px; */ - /* width: 1000px; */ - /* height: 570px; */ - position: absolute; - top: 55%; - left: 50%; - transform: translate(-50%, -50%); - width: 80%; -} - -::ng-deep .mat-tab-body-content { - max-height: 500px !important; -} - -.table-responsive { - height: 310px; -} - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -mat-slider { - width: 350px; -} - -.mat-slider-thumb-label { - transform: rotate(45deg) !important; - border-radius: 50% 50% 0 !important; -} - -.mat-slider-thumb { - transform: scale(0) !important; -} - -.mat-slider-thumb-label-text { - opacity: 1 !important; -} - -.advice { - border: none; - background: none; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -mat-form-field { - width: 100%; - height: 5%; -} - -::ng-deep .mat-form-field-flex>.mat-form-field-infix { - padding: 0.4em 0px !important; -} - -::ng-deep .mat-form-field-label-wrapper { - top: -1.5em; -} - -::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label { - transform: translateY(-1.1em) scale(.75); - width: 133.33333%; - color: black !important; - border: black; -} - -.example-h2 { - margin: 10px; -} - -.example-section { - display: flex; - align-content: center; - align-items: center; - height: 60px; -} - -.example-margin { - margin: 0 10px; -} - -.imgClass { - width: 30px; - height: 30px -} - -.zoom { - transition: transform .2s; - border: none; - background: none; - /* Animation */ - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); - /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} - - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - -.progress{ - margin-left: auto; - margin-right: auto; - width: 50%; -} - - -/* -p { - font-family: 'roboto'; -} */ \ No newline at end of file diff --git a/src/app/score-page/score-page.component.html b/src/app/score-page/score-page.component.html deleted file mode 100644 index 6944836a42665ce425594b006756c332d1a89384..0000000000000000000000000000000000000000 --- a/src/app/score-page/score-page.component.html +++ /dev/null @@ -1,121 +0,0 @@ -<div class="divClass"> - <mat-card class="example-card "> - - <mat-card-content> - <div style="margin-bottom: 10px; margin-left: -10px;"> - <mat-progress-bar *ngIf="selectedIndex > 0 && selectedIndex <6" class="example-margin" style="width: 100%;" [mode]="mode" [value]="selectedIndex*20" [bufferValue]="bufferValue"> - </mat-progress-bar> - </div> - - - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab label="Seventh"> - <h2>Cultural Proficiency Continuum Q-Sort: Review your Facilitator's Feedback and Scores - </h2> - <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in - the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis - is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. - Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, - but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> - <p><span><b>Directions: </b> Each highlighted box yellow represents vignettes you unpacked and scored by the facilitator. Click on each box to see the individual score for each of the vignettes you reacted to. - - - </span> - </p> - <button mat-button color="primary">Your level of cultural proficiency at this time is {{meanNumber}} or {{meanValue}}</button> - <br/> - - <mat-spinner *ngIf="progressBar" class="progress"></mat-spinner> - - <div class="table-responsive" *ngIf="!progressBar"> - <table class="table"> - <thead class="thead-dark" style="font-size: 15px;"> - <tr> - <th></th> - <th matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). ">Cultural Destructiveness</th> - <th matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] ">Cultural Incapacity</th> - <th matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] ">Cultural Blindness</th> - <th matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context "> - Cultural Pre-Competence </th> - <th matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context ">Cultural Competence</th> - <th matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality ">Cultural Proficiency</th> - </tr> - </thead> - <tbody *ngFor="let row of responsesArray; let i = index"> - <tr> - <td> {{row[7]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[0][1] == 'Colored'" (click)="openDialog(i,0,row[0][0])"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] != 'Colored'"> - {{row[0][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[1][1] == 'Colored'" (click)="openDialog(i,1,row[1][0])"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] != 'Colored'"> - {{row[1][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[2][1] == 'Colored'" (click)="openDialog(i,2,row[2][0])"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] != 'Colored'"> - {{row[2][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[3][1] == 'Colored'" (click)="openDialog(i,3,row[3][0])"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] != 'Colored'"> - {{row[3][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[4][1] == 'Colored'" (click)="openDialog(i,4,row[4][0])"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] != 'Colored'"> - {{row[4][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[5][1] == 'Colored'" (click)="openDialog(i,5,row[5][0])"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] != 'Colored'"> - {{row[5][0]}} - </td> - - - - </tr> - - </tbody> - </table> - </div> - </mat-tab> - </mat-tab-group> - - - - </mat-card-content> - - - - <mat-card-actions> - <div class="row"> - <div class="col-8"> - - <button mat-raised-button style="background-color: #29ABE2;" routerLink="/graph" > - VIEW GRAPH - </button> - </div> - - </div> - - - - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/score-page/score-page.component.ts b/src/app/score-page/score-page.component.ts deleted file mode 100644 index 134b962e7a04f5a5e8ed514e4f7127ebcbae15d0..0000000000000000000000000000000000000000 --- a/src/app/score-page/score-page.component.ts +++ /dev/null @@ -1,1349 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -import {AfterViewInit, ElementRef, ViewChild} from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup,Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -import {ThemePalette} from '@angular/material/core'; -import {ProgressBarMode} from '@angular/material/progress-bar'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {DialogFormComponent} from '../cpcq-form/dialog-form/dialog-form.component' -import { Login } from '../../services/login.sevice'; - -import {CPCQService} from '../../services/cpcq.service'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; - status; - result; -} -@Component({ - selector: 'app-score-page', - templateUrl: './score-page.component.html', - styleUrls: ['./score-page.component.css'] -}) -export class ScorePageComponent implements OnInit{ - firstForm: FormGroup; - responseList:any ; - loaded = false; - - questionArray = [["Enter First Name","text"],["Enter Last Name","text"],["Enter Age","number"]]; - statusCheck = false; - buttonClick = false; - - sliderValue = 0; - - selectedIndex = 0; - - color: ThemePalette = 'primary'; - mode: ProgressBarMode = 'buffer'; - value1 = 50; - bufferValue = 100; - - formValues = []; - meanValue:any = 0; - meanNumber:any = 0; - attributes = ["Attitude","Empathy","Policy","Professionalism","Teaching Practice"]; - columnHeadings = ["culturalDestructivenessresponse","culturalIncapacityresponse","culturalBlindnessresponse","culturalPreCompetenceresponse","culturalCompetenceresponse","culturalProficiencyresponse"] - columnHeadings1 = ["Cultural Destructiveness","Cultural Incapacity","Cultural Blindness","Cultural PreCompetence","Cultural Competence","Cultural Proficiency"] - - rowLetters = [["D",'C','B','A','F','E'],['E','A','F','D','B','C'],['F','E','B','C','D','A'],['E','A','B','D','C','F'],['D','C','B','E','A','F']]; - boldList = [[]]; - randomList = [[]]; - finalList=[[]]; - finalList1 = []; - attitudeForm: FormGroup; - empathyForm: FormGroup; - policyForm: FormGroup; - - finalFeedbackForm:FormGroup; - - progressBar : any = true; - - - - - //arrays of data getting from the backend - - attitude:any; - empathy :any; - policy:any; - professionalism:any; - teachingPractice:any; - wordDescription:any; - unpackedCount = 0; - - startTime: any; - endTime: any; - durationTime : any; - - @ViewChild('changeDiv') changeDiv: ElementRef; - @ViewChild('changeDiv1') changeDiv1: ElementRef; - @ViewChild('changeDiv2') changeDiv2: ElementRef; - @ViewChild('changeDiv3') changeDiv3: ElementRef; - @ViewChild('changeDiv4') changeDiv4: ElementRef; - @ViewChild('changeDiv5') changeDiv5: ElementRef; - @ViewChild('changeDiv6') changeDiv6: ElementRef; - @ViewChild('changeDiv7') changeDiv7: ElementRef; - @ViewChild('changeDiv8') changeDiv8: ElementRef; - @ViewChild('changeDiv9') changeDiv9: ElementRef; - @ViewChild('changeDiv10') changeDiv10: ElementRef; - @ViewChild('changeDiv11') changeDiv11: ElementRef; - @ViewChild('changeDiv12') changeDiv12: ElementRef; - @ViewChild('changeDiv13') changeDiv13: ElementRef; - @ViewChild('changeDiv14') changeDiv14: ElementRef; - @ViewChild('changeDiv15') changeDiv15: ElementRef; - @ViewChild('changeDiv16') changeDiv16: ElementRef; - @ViewChild('changeDiv17') changeDiv17: ElementRef; - @ViewChild('changeDiv18') changeDiv18: ElementRef; - @ViewChild('changeDiv19') changeDiv19: ElementRef; - @ViewChild('changeDiv20') changeDiv20: ElementRef; - @ViewChild('changeDiv21') changeDiv21: ElementRef; - @ViewChild('changeDiv22') changeDiv22: ElementRef; - @ViewChild('changeDiv23') changeDiv23: ElementRef; - @ViewChild('changeDiv24') changeDiv24: ElementRef; - @ViewChild('changeDiv25') changeDiv25: ElementRef; - @ViewChild('changeDiv26') changeDiv26: ElementRef; - @ViewChild('changeDiv27') changeDiv27: ElementRef; - @ViewChild('changeDiv28') changeDiv28: ElementRef; - @ViewChild('changeDiv29') changeDiv29: ElementRef; - - - - - - - - - - ngAfterViewInit() { - - - - } - - sliderFunction1(){ - if(this.sliderValue == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(this.sliderValue == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(this.sliderValue == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(this.sliderValue == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(this.sliderValue == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - } - sliderFunction(e){ - // - this.sliderValue = e.value; - if(e.value == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(e.value == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(e.value == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(e.value == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(e.value == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - - } - constructor(private fb: FormBuilder, private apiService: CPCQService,private router: Router, private formService : FirstForm,private domSanitizer: DomSanitizer,public dialog: MatDialog, private loginService : Login) { } - openDialog(i,j,id) { - // - - - - - var questAns = {} - var scores = [] - var comments = [] - for(let key in this.scoreRes){ - if(this.scoreRes[key]["topic"] == this.attributes[i]){ - questAns = this.scoreRes[key][this.columnHeadings[j]] - scores = this.scoreRes[key]['scores'][id] - comments = this.scoreRes[key]['comment1'][id] - } - } - - var arr = []; - arr.push(this.attributes[i]); - arr.push(j); - arr.push(this.columnHeadings[j]) - arr.push(id) - arr.push(questAns) - arr.push(scores) - arr.push(comments) - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: arr, - status : "form1" - }, - }); - dialogRef.afterClosed().subscribe(result => { - - if(this.responsesArray[i][j][1] == "colorbold"){ - this.unpackedCount = this.unpackedCount +1 - } - - }) - } - - openWordDialog(i) { - // - this.buttonClick = true; - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "word" - }, - disableClose:true - }); - - dialogRef.afterClosed().subscribe(result => { - - this.wordDescription = result; - }) - } - - helpDialog(i) { - // - this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "help" - } - }); - } - - keyPressFunc(e){ - - // - var numbersList = ["1"]; - for (let key in this.attitudeForm.value) { - - - if(numbersList.indexOf(this.attitudeForm.value[key]) == -1){ - // - return "Number"; - } - } - - - } - - getEmailError(){ - return "Error"; - } - getResponses(){ - this.apiService.getResponsesData().subscribe((res) => { - for(let key in res){ - this.temp = [] - for(let key1 in res[key]){ - this.temp.push(res[key][key1]) - } - this.responsesArray.push(this.temp) - } - - }) - } - - - getForm(){ - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - var attitudeResult = []; - var empathyResult = []; - var policyResult = []; - var profResult = []; - var teachingResult = []; - this.finalList = [[]] - this.boldList = [[]] - this.apiService.getFormData().subscribe((res) => { - for (let key in res){ - arr = []; - if(res[key]["topic"] == "Attitude"){ - attitudeResult.push("Attitude"); - arr.push("Attitude"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Empathy"){ - empathyResult.push("Empathy") - arr.push("Empathy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Policy"){ - policyResult.push("Policy") - arr.push("Policy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Professionalism"){ - profResult.push("Professionalism"); - arr.push("Professionalism"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Teaching Practice"){ - arr.push("Teaching Pracice"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - teachingResult.push("Teaching Practice"); - teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - - this.boldList.push(arr); - - } - this.finalList.push(attitudeResult) - this.finalList.push(empathyResult) - this.finalList.push(policyResult) - this.finalList.push(profResult) - this.finalList.push(teachingResult) - }) - this.finalList.splice(0, 1); - this.boldList.splice(0, 1); - // this.getAllIndexes(this.finalList,1) - - - - } - - emoji:any; - changeEmojiSize(data){ - document.getElementById("angry").style.height = "30px" - document.getElementById("angry").style.width = "30px" - document.getElementById("sad").style.height = "30px" - document.getElementById("sad").style.width = "30px" - document.getElementById("neutral").style.height = "30px" - document.getElementById("neutral").style.width = "30px" - document.getElementById("smile").style.height = "30px" - document.getElementById("smile").style.width = "30px" - document.getElementById("heart").style.height = "30px" - document.getElementById("heart").style.width = "30px" - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - - this.emoji = data; - } - - thumbs:any; - changeThumbsSize(data){ - document.getElementById("thumbsup").style.height = "30px" - document.getElementById("thumbsup").style.width = "30px" - document.getElementById("thumbsdown").style.height = "30px" - document.getElementById("thumbsdown").style.width = "30px" - - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - this.thumbs = data; - } - finalSubmit(){ - this.finalFeedbackForm.value["q6"] = this.thumbs - this.finalFeedbackForm.value["q7"] = this.emoji - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe((res) => { - this.apiService.changeCPCQStatus().subscribe((res1) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - this.router.navigateByUrl("/result") - } - }) - - }) - },(err) => { - - }) - - } - responsesArray =[] -temp = [] -scoreRes : any; - ngOnInit(): void { - this.startTime = new Date() - this.finalFeedbackForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - }) - this.apiService.getResponsesData().subscribe((res) => { - for(let key in res){ - this.temp = [] - for(let key1 in res[key]){ - this.temp.push(res[key][key1]) - } - this.responsesArray.push(this.temp) - } - this.apiService.getScoreInfo().subscribe((res) => { - this.scoreRes = res - - for(let key in res){ - for(let category in res[key]["scores"]["category"]){ - var firstIndex = this.attributes.indexOf(res[key]["topic"]) - - var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]) - - - if(firstIndex != -1 && secondIndex != -1){ - this.responsesArray[firstIndex][secondIndex][1] = "Colored" - } - - } - - } - this.progressBar = false; - - // this.apiService.patchStatus("scoresstatus").subscribe((res) => { - // - // }) - - }) - - }) - - - // this.apiService.getScoreInfo().subscribe((res) => { - // this.scoreRes = res - // - // for(let key in res){ - // for(let category in res[key]["scores"]["category"]){ - // var firstIndex = this.attributes.indexOf(res[key]["topic"]) - - // var secondIndex = this.columnHeadings.indexOf(res[key]["scores"]["category"][category]) - // - - - // if(firstIndex != -1 && secondIndex != -1){ - // - // this.responsesArray[firstIndex][secondIndex][1] = "Colored" - // } - - // } - - // } - // this.progressBar = false; - // - // // this.apiService.patchStatus("scoresstatus").subscribe((res) => { - // // - // // }) - - // }) - - this.apiService.getScoreVisualization().subscribe((res) => { - var temp = 0; - for(var i = 0; i<res["category"].length;i++){ - temp = temp + res["series"][i]['data'] - } - this.meanNumber = temp /4.0; - - this.meanValue = temp /4.0; - - - if(this.meanValue >=0 && this.meanValue <= 1){ - if(this.meanValue ==1 ) - this.meanValue = this.columnHeadings1[0] - else - this.meanValue = " somewhere between Cultural Destructiveness and Cultural Incapacity" - - } - if(this.meanValue >1 && this.meanValue <= 2){ - if(this.meanValue ==2 ) - this.meanValue = this.columnHeadings1[1] - else - this.meanValue = " somewhere between Cultural Incapacity and Cultural Blindness" - - } - if(this.meanValue >2 && this.meanValue <= 3){ - if(this.meanValue ==3 ) - this.meanValue = this.columnHeadings1[2] - else - this.meanValue = " somewhere between Cultural Blindness and Cultural PreCompetence" - } - if(this.meanValue >3 && this.meanValue <= 4){ - if(this.meanValue ==4 ) - this.meanValue = this.columnHeadings1[3] - else - this.meanValue = " somewhere between Cultural PreCompetence and Cultural Competence" - } - if(this.meanValue >4 && this.meanValue <= 5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings1[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - if(this.meanValue >5){ - if(this.meanValue ==5 ) - this.meanValue = this.columnHeadings1[4] - else - this.meanValue = " somewhere between Cultural Competence and Cultural Proficiency" - } - }) - - this.apiService.attitudeData().subscribe((res) => { - // - this.attitude = res[0]; - // - },(err) => { - - }) - - this.apiService.empathyData().subscribe((res) => { - // - this.empathy = res[0]; - // - },(err) => { - - }) - - this.apiService.policyData().subscribe((res) => { - this.policy = res[0]; - },(err) => { - - }) - - this.apiService.professionalismData().subscribe((res) => { - this.professionalism = res[0]; - },(err) => { - - }) - - this.apiService.teachingData().subscribe((res) => { - this.teachingPractice = res[0]; - },(err) => { - - }) - - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - description:["",[Validators.required]] - - }) - - this.empathyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - this.policyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - for(var j = 0;j<5;j++){ - arr = []; - arr1 = []; - arr2 = []; - i = 0; - while(i<6){ - var item1 = Math.floor(Math.random() * (7 - 1) + 1); - if(arr1.indexOf(item1) == -1){ - if(i == 0){ - arr.push(this.attributes[j]); - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(arr1[arr1.length -1] >2){ - // - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else{ - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(i==1){ - if(arr1[arr1.length - 1] >3){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==2){ - if(arr1[arr1.length - 1] >4 || arr1[arr1.length - 1] == 1){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==3){ - if(arr1[arr1.length - 1] >5 || arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==4){ - if(arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==5){ - if(arr1[arr1.length - 1] <5){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - } - i = i + 1; - } - else{ - continue; - } - - } - this.formValues.push(arr); - this.boldList.push(arr1); - this.randomList.push(arr2); - } - this.boldList.splice(0, 1); - this.randomList.splice(0, 1); - - - - this.getAllIndexes(this.randomList,"True"); - this.loaded = true; - } - - getAllIndexes(arr, val) { - var indexes = []; - var i = -1; - for(var i = 0;i<arr.length;i++){ - for(var j = 0;j<arr[i].length;j++){ - if(arr[i][j] == "True"){ - var arr1 = []; - arr1.push(i); - arr1.push(j) - indexes.push(arr1); - } - } - } - - var arr1 = []; - for(var i = 0;i<indexes.length;i++){ - arr1.push(i); - } - var ranNums = []; - var i = arr1.length; - var j = 0; - var count = 0; - while (i--) { - - if(count < 5){ - j = Math.floor(Math.random() * (i+1)); - ranNums.push(arr1[j]); - arr1.splice(j,1); - count = count+1; - } - else{ - break; - } - } - - - // - for(var i = 0;i<this.boldList.length;i++){ - var temp = []; - for(var j = 0 ;j <6;j++){ - temp.push("False"); - } - this.finalList1.push(temp); - } - - - for(var i = 0;i<ranNums.length;i++){ - var item = indexes[ranNums[i]]; - - this.finalList1[item[0]][item[1]] = "True"; - } - // this.finalList1.splice(0,1) - -} - preSurvey(){ - this.router.navigateByUrl("/preSurvey"); - } - - nextButton(){ - if(this.selectedIndex == 0){ - this.selectedIndex = this.selectedIndex + 1; - return; - } - if(this.selectedIndex == 7){ - this.router.navigateByUrl('/dashboard'); - return; - } - - var numberList = []; - var flag = true; - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - flag = false; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = false; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = false; - Swal.fire({ - - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(flag){ - - if(this.selectedIndex == 7){ - this.router.navigateByUrl("/postSurvey"); - } - this.sliderFunction1(); - var formData = {} - formData['topic'] = this.attributes[this.selectedIndex-1] - if(this.attributes[this.selectedIndex-1] == "Attitude"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalCompetence"] = "F. " + this.attitudeForm.value['F'] - formData["culturalProficiency"] = "E. " + this.attitudeForm.value['E'] - - } - else if(this.attributes[this.selectedIndex-1] == "Empathy"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "B. " + this.attitudeForm.value['B'] - formData["culturalProficiency"] = "C. " + this.attitudeForm.value['C'] - } - else if(this.attributes[this.selectedIndex-1] == "Policy"){ - formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalIncapacity"] = "E. " + this.attitudeForm.value['E'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalProficiency"] = "A. " + this.attitudeForm.value['A'] - } - else if(this.attributes[this.selectedIndex-1] == "Professionalism"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - else if(this.attributes[this.selectedIndex-1] == "Teaching Practice"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["description"] = this.wordDescription - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - },(err) => { - - }) - // this.getForm(); - this.selectedIndex = this.selectedIndex + 1; - this.buttonClick = false; - this.startTime = new Date() - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - }) - } - - } - - postSurvey(){ - this.router.navigateByUrl("/postSurvey"); - } - - submitForm1(){ - if(this.unpackedCount == 5 ){ - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - this.selectedIndex = this.selectedIndex + 1; - } - }) - } - else{ - Swal.fire({ - text: "Please click on all the yellow boxes and answer the questions in the prompt.", - icon: "warning" - }).then((res) => { - }) - } - - } - - submitForm(){ - if(this.selectedIndex == 5){ - var numberList = []; - var flag = false; - - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - - - flag = true; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = true; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = true; - Swal.fire({ - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(!flag){ - - - // - var formData = {} - - formData['topic'] = this.attributes[this.selectedIndex-1] - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - - formData["description"] = this.wordDescription - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - this.getResponses() - - this.selectedIndex = this.selectedIndex + 1; - this.startTime = new Date() - } - }) - },(err) => { - - }) - } - - } - } - - submit(){ - // - var tempDict; - this.responseList = []; - for(let key in this.firstForm.value){ - tempDict = {} - tempDict["question"] = key - tempDict["response"] = this.firstForm.value[key]; - this.responseList.push(tempDict); - } - // - - this.formService.submitResponse(this.responseList).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - },(err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) - - } - - title = 'micRecorder'; -//Lets declare Record OBJ -record; -//Will use this flag for toggeling recording -recording = false; -//URL of Blob -url; -error; -sanitize(url: string) { -return this.domSanitizer.bypassSecurityTrustUrl(url); -} -/** -* Start recording. -*/ -initiateRecording() { -this.recording = true; -let mediaConstraints = { -video: false, -audio: true -}; -navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -} -/** -* Will be called automatically. -*/ -successCallback(stream) { -var options = { -mimeType: "audio/wav", -numberOfAudioChannels: 1, -// sampleRate: 16000, -}; -//Start Actuall Recording -var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -this.record = new StereoAudioRecorder(stream, options); -this.record.record(); -} -/** -* Stop recording. -*/ -stopRecording() { -this.recording = false; -this.record.stop(this.processRecording.bind(this)); -} -/** -* processRecording Do what ever you want with blob -* @param {any} blob Blog -*/ -processRecording(blob) { -this.url = URL.createObjectURL(blob); -// -// -} -/** -* Process Error. -*/ -errorCallback(error) { -this.error = 'Can not play audio in your browser'; -} - - - -} diff --git a/src/app/services/cpcq.service.ts b/src/app/services/cpcq.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..44f74931318895a843fe596e23bb857a43e81a23 --- /dev/null +++ b/src/app/services/cpcq.service.ts @@ -0,0 +1,73 @@ +import { HttpClient } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { environment } from "src/environments/environment"; + +@Injectable({ + providedIn: "root", +}) +export class CPCQService { + baseUri = environment.apiUrl; + cpcqUrl = environment.cqcqUrl; + + constructor(private http: HttpClient) {} + + attitudeData() { + return this.http.get(`${this.baseUri}/attitude`); + } + + empathyData() { + return this.http.get(`${this.baseUri}/empathy`); + } + + policyData() { + return this.http.get(`${this.baseUri}/policy`); + } + + professionalismData() { + return this.http.get(`${this.baseUri}/professionalism`); + } + + teachingData() { + return this.http.get(`${this.baseUri}/teaching`); + } + + changeCPCQStatus() { + return this.http.post(`${this.cpcqUrl}`, { choices: "Finished All Forms" }); + } + + getCPCQStatus() { + return this.http.get(`${this.cpcqUrl}`); + } + + postFormData(data) { + return this.http.post(`${this.baseUri}/responses`, data); + } + + postFeedbackForm(data) { + return this.http.post(`${this.baseUri}/finalFeedback`, data); + } + + getFormData() { + return this.http.get(`${this.baseUri}/responses`); + } + + getResponsesData() { + return this.http.get(`${this.baseUri}/responses_all/`); + } + + postUnpacking(data) { + return this.http.post(`${this.baseUri}/cpcq_response`, data); + } + + getScoreInfo() { + return this.http.get(`${this.baseUri}/cpcq_response`); + } + + getScoreVisualization() { + return this.http.get(`${this.baseUri}/graphs`); + } + + patchStatus(data) { + return this.http.patch(`${this.baseUri}/status/?value=${data}`, {}); + } +} diff --git a/src/app/services/firstForm.service.ts b/src/app/services/firstForm.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..aab050444edc30d3228aa59adba1f07e99d63dbb --- /dev/null +++ b/src/app/services/firstForm.service.ts @@ -0,0 +1,21 @@ +import { HttpClient } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { environment } from "src/environments/environment"; + +@Injectable({ + providedIn: "root", +}) +export class FirstForm { + baseUri = environment.loginUrl; + responseUrl = environment.loginUrl; + + constructor(private http: HttpClient) {} + + firstForm() { + return this.http.get(`${this.baseUri}`); + } + + submitResponse(data) { + return this.http.post(`${this.responseUrl}`, data); + } +} diff --git a/src/app/services/login.service.ts b/src/app/services/login.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..e7a4bede81d4d6f129d547f92404b8c7806b631e --- /dev/null +++ b/src/app/services/login.service.ts @@ -0,0 +1,85 @@ +import { HttpClient } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { AuthService, User } from "@auth0/auth0-angular"; +import { BehaviorSubject } from "rxjs"; +import { environment } from "src/environments/environment"; + +@Injectable({ + providedIn: "root", +}) +export class LoginService { + loginUrl = environment.loginUrl; + registerUrl = environment.registerUrl; + logoutUrl = environment.logoutUrl; + baseUrl = environment.apiUrl; + token$ = new BehaviorSubject<string>(""); + currentUser$ = new BehaviorSubject<User>(null); + + constructor(private http: HttpClient, private authService: AuthService) { + authService.user$.subscribe((user: User) => { + this.setCurrentUser(user); + }); + this.authService.idTokenClaims$.subscribe((claims) => { + if (claims && claims.__raw) { + this.setToken(claims.__raw); + } else { + this.setToken(""); + } + }); + } + + setToken(value: string) { + return this.token$.next(value); + } + + getToken() { + return this.token$.asObservable(); + } + + setCurrentUser(user: User) { + this.currentUser$.next(user); + } + + getCurrentUser() { + return this.currentUser$.asObservable(); + } + + loginWithRedirect() { + this.authService.loginWithRedirect(); + } + + logout() { + this.authService.logout({ returnTo: document.location.origin }); + } + + register(data) { + return this.http.post(`${this.registerUrl}`, data, { + headers: { + "Content-Type": "application/json", + }, + }); + } + + changePassword(data) { + return this.http.patch(`${this.baseUrl}/password_change/`, data, { + headers: { + "Content-Type": "application/json", + }, + }); + } + + checkStatus() { + return this.http.get(`${this.baseUrl}/status`); + } + + patchStatus(data) { + return this.http.patch(`${this.baseUrl}/status`, data); + } + + getTestUsers() { + console.log("testing apis"); + return this.http.get(`http://localhost:3013/user`, { + params: { organization_id: "1" }, + }); + } +} diff --git a/src/app/services/mainGame.service.ts b/src/app/services/mainGame.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..545c7f980aee0c479227830936e24117b2130e7b --- /dev/null +++ b/src/app/services/mainGame.service.ts @@ -0,0 +1,16 @@ +import { Injectable } from "@angular/core"; +import { HttpClient } from "@angular/common/http"; +import { environment } from "src/environments/environment"; + +@Injectable({ + providedIn: "root", +}) +export class MainGame { + baseUri = environment.loginUrl; + + constructor(private http: HttpClient) {} + + mainGame(data) { + return this.http.post(`${this.baseUri}`, data); + } +} diff --git a/src/services/overlay-service.service.ts b/src/app/services/overlay-service.service.ts similarity index 73% rename from src/services/overlay-service.service.ts rename to src/app/services/overlay-service.service.ts index 289b65176db82c52f41a2e5a472aa5dfbcd64fb4..fa8a38788ba4185eac7c8e03208529fdc51517ad 100644 --- a/src/services/overlay-service.service.ts +++ b/src/app/services/overlay-service.service.ts @@ -1,26 +1,23 @@ -import { Injectable } from '@angular/core'; -import { MyOverlayComponent } from '../app/test/my-overlay/my-overlay.component'; +import { Injectable } from "@angular/core"; +import { MyOverlayComponent } from "src/app/components/test/my-overlay/my-overlay.component"; -@Injectable({providedIn: "root"}) +@Injectable({ providedIn: "root" }) export class OverlayServiceService { - - constructor() { } + constructor() {} private overlays: Map<number, MyOverlayComponent> = new Map(); private latestShownOverlayId = -1; public showOverlay(id: number) { - const overlay = this.overlays.get(id); - + if (overlay) { overlay.showOverlay(); } } public registerOverlay(overlay: MyOverlayComponent) { - - this.overlays.set(overlay.id, overlay) + this.overlays.set(overlay.id, overlay); } public destroyOverlay(overlay: MyOverlayComponent) { @@ -34,5 +31,4 @@ export class OverlayServiceService { setTimeout(() => overlay.showOverlay(), 500); } } - -} \ No newline at end of file +} diff --git a/src/app/services/preSurvey.service.ts b/src/app/services/preSurvey.service.ts new file mode 100644 index 0000000000000000000000000000000000000000..671bf478b3b73fbf499e29da7d262281851e55af --- /dev/null +++ b/src/app/services/preSurvey.service.ts @@ -0,0 +1,52 @@ +import { HttpClient } from "@angular/common/http"; +import { Injectable } from "@angular/core"; +import { environment } from "src/environments/environment"; + +@Injectable({ + providedIn: "root", +}) +export class PreSurveyService { + baseUrl = environment.apiUrl; + preSurveys = environment.preSurveyUrl; + profileUrl = environment.profileUrl; + userUrl = environment.userUrl; + postSurveyUrl = environment.postSurveyUrl; + + constructor(private http: HttpClient) {} + + submitForm(data) { + return this.http.post(`${this.preSurveys}`, data); + } + + postProfile(data) { + return this.http.patch(`${this.profileUrl}`, data); + } + + getPreSurveyAnswer() { + return this.http.get(`${this.preSurveys}`); + } + + profileData() { + return this.http.get(`${this.profileUrl}`); + } + + userData() { + return this.http.get(`${this.userUrl}`); + } + + submitPostSurvey(data) { + return this.http.post(`${this.postSurveyUrl}`, data); + } + + getFormData() { + return this.http.get(`${this.userUrl}`); + } + + getFormQuestions() { + return this.http.get(`${this.baseUrl}` + "presurvey_questions/"); + } + + getPostSurveyFormQuestions() { + return this.http.get(`${this.baseUrl}` + "postsurvey_questions/"); + } +} diff --git a/src/app/test/my-overlay/my-overlay.component.html b/src/app/test/my-overlay/my-overlay.component.html deleted file mode 100644 index 75fe4dd7d8c347e4ad7bb7c5702e21c187622783..0000000000000000000000000000000000000000 --- a/src/app/test/my-overlay/my-overlay.component.html +++ /dev/null @@ -1,6 +0,0 @@ -<mat-card *cdkPortal> - {{text}} - <mat-card-actions align="right"> - <button mat-stroked-button (click)="hideOverlay()">OK</button> - </mat-card-actions> -</mat-card> \ No newline at end of file diff --git a/src/app/test/my-overlay/my-overlay.component.ts b/src/app/test/my-overlay/my-overlay.component.ts deleted file mode 100644 index c7521053bc09fa695d51c6f539b1f72f1eaee433..0000000000000000000000000000000000000000 --- a/src/app/test/my-overlay/my-overlay.component.ts +++ /dev/null @@ -1,80 +0,0 @@ -import { Component, OnInit, ViewChild, AfterViewInit, ElementRef, Input, OnDestroy, Renderer2, Output, EventEmitter } from '@angular/core'; -import { Overlay, OverlayRef } from '@angular/cdk/overlay'; -import { CdkPortal } from '@angular/cdk/portal'; -import { OverlayServiceService } from '../../../services/overlay-service.service'; -@Component({ - selector: 'app-my-overlay', - templateUrl: './my-overlay.component.html', - styleUrls: ['./my-overlay.component.css'] -}) -export class MyOverlayComponent implements OnInit, OnDestroy { - - @Input() connectedTo: any; - @Input() text: string; - @Input() get id(): number { - return this._id; - }; - set id(id: number) { - if (typeof id === 'string') { - this._id = parseInt(id); - } else { - this._id = id; - } - } - private _id: number; - @Output() closed = new EventEmitter<any>(); - @ViewChild(CdkPortal) portal: ElementRef; - overlayRef: OverlayRef; - private nativeElement; - - constructor(private overlay: Overlay, - private renderer: Renderer2, - private overlayService: OverlayServiceService) { - } - - ngOnInit() { - this.overlayService.registerOverlay(this); - - if (this.connectedTo.getBoundingClientRect) { - this.nativeElement = this.connectedTo; - } else { - this.nativeElement = this.connectedTo._elementRef.nativeElement; - } - } - - public showOverlay() { - const positionStrategy = this.overlay.position() - .flexibleConnectedTo(this.nativeElement) - .withPositions([ - { originX: 'start', originY: 'center', overlayX: 'end', overlayY: 'center', offsetX: -10 }, - { originX: 'end', originY: 'center', overlayX: 'start', overlayY: 'center', offsetX: 10 }, - { originX: 'center', originY: 'bottom', overlayX: 'center', overlayY: 'top', offsetY: 10 }, - ]) - .withGrowAfterOpen(); - const scrollStrategy = this.overlay.scrollStrategies.reposition(); - const overlayRef = this.overlay.create({ positionStrategy, scrollStrategy, hasBackdrop: true, backdropClass: 'my-backdrop' }); - this.overlayRef = overlayRef; - overlayRef.detachments().subscribe(() => { - this.renderer.removeClass(this.nativeElement, 'elevate'); - this.renderer.removeAttribute(this.nativeElement, 'id'); - }); - overlayRef.attach(this.portal); - this.renderer.addClass(this.nativeElement, 'elevate'); - this.renderer.setAttribute(this.nativeElement, 'id', 'onboarding-active'); - overlayRef.backdropClick().subscribe(() => this.hideOverlay()) - } - - public hideOverlay() { - if (this.overlayRef && this.overlayRef.hasAttached) { - this.overlayService.wasClosed(this._id); - this.overlayRef.dispose(); - this.closed.emit(); - } - } - - ngOnDestroy() { - this.hideOverlay(); - this.overlayService.destroyOverlay(this); - } - -} \ No newline at end of file diff --git a/src/app/test/test.component.html b/src/app/test/test.component.html deleted file mode 100644 index c4bb92d067deb35cc2c92ca9c249386030e6988b..0000000000000000000000000000000000000000 --- a/src/app/test/test.component.html +++ /dev/null @@ -1,39 +0,0 @@ -<mat-card> - - <mat-card-title #title>Onboarding Example</mat-card-title> - <app-my-overlay [connectedTo]="title" text="We can also use it on text." id="4"></app-my-overlay> - <mat-card-content> - Here is an example of a card with actions that should be explained to new users. - </mat-card-content> - <mat-card-actions class="button-row"> - <button mat-flat-button #button1>Basic</button> - <app-my-overlay [connectedTo]="button1" text="Use this button to do basic stuff." id="1"></app-my-overlay> - <button mat-flat-button color="accent" #button2>Link</button> - <app-my-overlay [connectedTo]="button2" text="Use this button to link to stuff." id="2"></app-my-overlay> - and here we have enough space to the left - <button mat-flat-button color="warn" #button3>Delete</button> - <app-my-overlay [connectedTo]="button3" text="Use this button to delete stuff." id="3"></app-my-overlay> - </mat-card-actions> -</mat-card> -<br><br> -<button mat-icon-button #button5><mat-icon>delete</mat-icon></button> -<app-my-overlay [connectedTo]="button5" text="Use this button to delete stuff." id="5"></app-my-overlay> - -<div style="background: purple"> - <button mat-icon-button #button6><mat-icon>delete</mat-icon></button> - <app-my-overlay [connectedTo]="button6" text="Use this button to delete stuff." id="6"></app-my-overlay> - - <p #text>Here we have text with background</p> - <app-my-overlay [connectedTo]="text" text="Use this button to delete stuff." id="7"></app-my-overlay> - <br> -</div> - - -<div align="center"> - <button mat-raised-button (click)="restartOnboarding()">Restart Onboarding</button> -</div> - - -<!-- Copyright 2018 Google Inc. All Rights Reserved. - Use of this source code is governed by an MIT-style license that - can be found in the LICENSE file at http://angular.io/license --> \ No newline at end of file diff --git a/src/app/test/test.component.ts b/src/app/test/test.component.ts deleted file mode 100644 index 082fb3da91ca0f9de21fdaef67e1149532bdb0bf..0000000000000000000000000000000000000000 --- a/src/app/test/test.component.ts +++ /dev/null @@ -1,24 +0,0 @@ -import { Component, OnInit, AfterViewInit } from '@angular/core'; -import { OverlayServiceService } from '../../services/overlay-service.service'; -@Component({ - selector: 'app-test', - templateUrl: './test.component.html', - styleUrls: ['./test.component.css'] -}) -export class TestComponent implements AfterViewInit { - - isActive1 = true; - isActive2 = false; - - constructor(private service: OverlayServiceService) { - } - - ngAfterViewInit() { - this.service.showOverlay(1); - } - - restartOnboarding() { - this.service.showOverlay(1); - } - -} diff --git a/src/app/trial-component/trial-component.component.ts b/src/app/trial-component/trial-component.component.ts deleted file mode 100644 index bd76dffb12e5cc4379ada367dcb0c3ea5d45afb8..0000000000000000000000000000000000000000 --- a/src/app/trial-component/trial-component.component.ts +++ /dev/null @@ -1,78 +0,0 @@ -import { Component, OnInit } from '@angular/core'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; - -@Component({ - selector: 'app-trial-component', - templateUrl: './trial-component.component.html', - styleUrls: ['./trial-component.component.css'] -}) -export class TrialComponentComponent implements OnInit { - -// title = 'micRecorder'; -// //Lets declare Record OBJ -// record; -// //Will use this flag for toggeling recording -// recording = false; -// //URL of Blob -// url; -// error; -// constructor(private domSanitizer: DomSanitizer) {} -// sanitize(url: string) { -// return this.domSanitizer.bypassSecurityTrustUrl(url); -// } -// /** -// * Start recording. -// */ -// initiateRecording() { -// this.recording = true; -// let mediaConstraints = { -// video: true, -// audio: true -// }; -// navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -// } -// /** -// * Will be called automatically. -// */ -// successCallback(stream) { -// var options = { -// mimeType: "video/webm", -// numberOfAudioChannels: 1, -// // sampleRate: 16000, -// }; -// //Start Actuall Recording -// var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -// this.record = new StereoAudioRecorder(stream, options); -// this.record.record(); -// } -// /** -// * Stop recording. -// */ -// stopRecording() { -// this.recording = false; -// this.record.stop(this.processRecording.bind(this)); -// } -// /** -// * processRecording Do what ever you want with blob -// * @param {any} blob Blog -// */ -// processRecording(blob) { -// this.url = URL.createObjectURL(blob); -// -// -// } -// /** -// * Process Error. -// */ -// errorCallback(error) { -// this.error = 'Can not play audio in your browser'; -// } - - - - ngOnInit(): void { - } - -} diff --git a/src/app/unpacking-page/unpacking-page.component.css b/src/app/unpacking-page/unpacking-page.component.css deleted file mode 100644 index 24eb34196a903927dee753a7b163e4966afe0e65..0000000000000000000000000000000000000000 --- a/src/app/unpacking-page/unpacking-page.component.css +++ /dev/null @@ -1,166 +0,0 @@ -.divClass { - padding-top: 10px; -} - -.example-card { - /* max-height: 700px; */ - /* width: 1000px; */ - /* height: 570px; */ - position: absolute; - top: 55%; - left: 50%; - transform: translate(-50%, -50%); - width: 80%; -} - -::ng-deep .mat-tab-body-content { - max-height: 500px !important; -} - -.table-responsive { - height: 310px; -} - -.div-wrap { - width: 500px; -} - -p { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - font-size: 15px; -} - -h3 { - /* font-family: Georgia, 'Times New Roman', Times, serif; */ - font-family: 'Loto', sans-serif; - margin-bottom: 40px; -} - -.mat-card { - background-color: #edf6f9; -} - -.inputField { - width: 100%; -} - - -/* Chrome, Safari, Edge, Opera */ - -input::-webkit-outer-spin-button, -input::-webkit-inner-spin-button { - -webkit-appearance: none; - margin: 0; -} - - -/* Firefox */ - -input[type=number] { - -moz-appearance: textfield; -} - -::ng-deep .mat-tab-header { - display: none !important; -} - -p { - text-align: justify; - text-justify: inter-word; -} - -h2 { - /* font-family: 'Loto', sans-serif; */ - font-family: 'Loto', sans-serif; -} - -mat-slider { - width: 350px; -} - -.mat-slider-thumb-label { - transform: rotate(45deg) !important; - border-radius: 50% 50% 0 !important; -} - -.mat-slider-thumb { - transform: scale(0) !important; -} - -.mat-slider-thumb-label-text { - opacity: 1 !important; -} - -.advice { - border: none; - background: none; -} - -::ng-deep .mat-checkbox-layout { - white-space: normal !important; -} - -mat-form-field { - width: 100%; - height: 5%; -} - -::ng-deep .mat-form-field-flex>.mat-form-field-infix { - padding: 0.4em 0px !important; -} - -::ng-deep .mat-form-field-label-wrapper { - top: -1.5em; -} - -::ng-deep .mat-form-field-appearance-outline.mat-form-field-can-float.mat-form-field-should-float .mat-form-field-label { - transform: translateY(-1.1em) scale(.75); - width: 133.33333%; - color: black !important; - border: black; -} - -.example-h2 { - margin: 10px; -} - -.example-section { - display: flex; - align-content: center; - align-items: center; - height: 60px; -} - -.example-margin { - margin: 0 10px; -} - -.imgClass { - width: 30px; - height: 30px -} - -.zoom { - transition: transform .2s; - border: none; - background: none; - /* Animation */ - margin: 0 auto; -} - -.zoom:hover { - transform: scale(1.5); - /* (150% zoom - Note: if the zoom is too large, it will go outside of the viewport) */ -} - - -::ng-deep .mat-tooltip { - font-size: 15px !important; -} - - -/* -p { - font-family: 'roboto'; -} */ \ No newline at end of file diff --git a/src/app/unpacking-page/unpacking-page.component.html b/src/app/unpacking-page/unpacking-page.component.html deleted file mode 100644 index d9dafb4ffa29b20dd0636151a0184cc0c18931f6..0000000000000000000000000000000000000000 --- a/src/app/unpacking-page/unpacking-page.component.html +++ /dev/null @@ -1,788 +0,0 @@ -<div class="divClass"> - <mat-card class="example-card "> - - <mat-card-content> - <div style="margin-bottom: 10px; margin-left: -10px;"> - <mat-progress-bar *ngIf="selectedIndex > 0 && selectedIndex <6" class="example-margin" style="width: 100%;" [mode]="mode" [value]="selectedIndex*20" [bufferValue]="bufferValue"> - </mat-progress-bar> - </div> - - - <mat-tab-group [selectedIndex]="selectedIndex" style="margin: 0px;"> - <mat-tab label="Second"> - <h2>Cultural Proficiency Continuum Q-Sort: Reacting to interactions that take place within Majority-Minority U.S. PreK-12 Schools - - </h2> - <p style="font-size: 24px;"><span style="font-weight: bold;">Directions: </span> In the upcoming activity, you will engage with 30 vignettes situated in five categories that illustrate culturally proficient interactions that have taken place in U.S. public schools. - Your task is to assign a level of reaction using numbers 1 - 6 to each vignette within each category. Specifically, you are to assign the number 6 to the vignette that evokes the highest level of reaction from you, 5 to the vignette - that evokes the next highest level of reaction from you, and so on until you have assigned the number 1 to the vignette that evokes the least level of reaction from you. - </p> - <p style="font-size: 20px;"> - <span style="font-weight: bold;"> Note: </span> There are no correct or wrong ways to react to vignettes; your level of reaction (negative or positive) is unique to you. If you need to see the directions after beginning the Q-Sort, click the <span style="color: #4050b5;" color="primary"><mat-icon>info</mat-icon></span> in the upper right-hand corner. - - - - </p> - </mat-tab> - <mat-tab label="Third"> - <button class="advice" (click)="openWordDialog('Attitude')"> - <span><h2><u>Attitude</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Attitude')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Attitude" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv>{{attitude['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv1>{{attitude['question2']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv2>{{attitude['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv3>{{attitude['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv4>{{attitude['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv5>{{attitude['question6']}}</p> - </div> - </div> - </form> - - - <p style="margin-top: 20px; font-size: 15px;"> The singular pronouns: “their†or “they†are used as gender-neutral pronouns. - </p> - - - - </mat-tab> - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Empathy')"> - <span><h2><u>Empathy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Empathy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Empathy" and respond to the prompt. - </p> - - <form [formGroup]="attitudeForm"> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv6>{{empathy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv7>{{empathy['question2']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv8>{{empathy['question3']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv9>{{empathy['question4']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv10>{{empathy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv11>{{empathy['question6']}}</p> - </div> - </div> - </form> - - </mat-tab> - - <mat-tab label="Fourth"> - <button class="advice" (click)="openWordDialog('Policy')"> - <span><h2><u>Policy</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Policy')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Policy" and respond to the prompt.</p> - - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="A" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv12>{{policy['question1']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="B" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv13>{{policy['question2']}} - - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="C" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv14>{{policy['question3']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="D" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv15>{{policy['question4']}} - </p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="E" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv16>{{policy['question5']}}</p> - </div> - </div> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" formControlName="F" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv17>{{policy['question6']}} </p> - </div> - </div> - </form> - </mat-tab> - - <mat-tab label="Fifth"> - <button class="advice" (click)="openWordDialog('Professionalism')"> - <span><h2><u>Professionalism</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Professionalism')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Professionalism" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv18>{{professionalism['question1']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv19>{{professionalism['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv20>{{professionalism['question3']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv21>{{professionalism['question4']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv22>{{professionalism['question5']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv23>{{professionalism['question6']}} </p> - </div> - </div> - - </form> - </mat-tab> - - <mat-tab label="Sixth"> - <button class="advice" (click)="openWordDialog('Teaching Practice')"> - <span><h2><u>Teaching Practice</u></h2></span></button> - <button style="float: right;" mat-icon-button color="primary" aria-label="Example icon button with a delete icon" (click)="helpDialog('Teaching Practice')"> - <mat-icon>info</mat-icon> - </button> - <p style="color: #4050b5;">*Enter your level of reaction to each vignette using numbers 1 - 6 in the text box below; use each number only once. Click on the word "Teaching Practice" and respond to the prompt.</p> - <form [formGroup]="attitudeForm"> - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="A" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv24> {{teachingPractice['question1']}}</p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="B" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv25>{{teachingPractice['question2']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="C" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv26>{{teachingPractice['question3']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="D" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv27>{{teachingPractice['question4']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="E" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv28>{{teachingPractice['question5']}} - </p> - </div> - </div> - - <div class="row"> - <div class="col-1"> - <mat-form-field appearance="outline"> - <input formControlName="F" onKeyPress="if(this.value.length==1) return false;" type="number" matInput placeholder="" required> - </mat-form-field> - </div> - - <div class="col-11"> - <p #changeDiv29>{{teachingPractice['question6']}}</p> - </div> - </div> - </form> - </mat-tab> - <mat-tab label="Seventh"> - <h2>Cultural Proficiency Continuum Q-Sort: Unpacking your Reactions - </h2> - <!-- <p>Below are the results of the CPCQ forms filled by you. The numbers that you assigned to each vignette within each of the five categories to the right of the corresponding letter—A, B, C, D, E, F—in the spaces are provided below in - the rating guide. Ideally, the final results in each row would read 1, 2, 3, 4, 5, 6, but because Cultural Proficiency is a fluid and dynamic phenomenon, these numbers may not align in numerical order. The final step in your analysis - is to locate the culturally proficient interactions, which are 2 or more points higher or lower than the ideal number by each letter. For example, if a row reads 2, 1, 5, 4, 6, 3, then the numbers 5 and 3 are bold and clickable. - Each number you bolded in each row represents an opportunity for inquiry and Dialogic for that particular culturally proficient behavior. Please click on the bolded numbers to unpack your views. Remember, this is not a judgment, - but rather an opportunity for you to make inquiries and have a conversation about the sociocultural interactions that take place within majority-minority US Prek-12 schools. </p> --> - <p><span><b>Directions: </b> Each bolded number represents an opportunity for you to unpack your reaction to the vignette and the corresponding culturally proficient interaction. Above each column is a link to the definition for each culturally proficient interaction; review the definitions before unpacking your reactions. After, begin unpacking your reactions by clicking each of the items highlighted yellow. You can also click other bolded items not highlighted yellow if you wish to unpack additional vignettes. - - </span></p> - <div class="table-responsive"> - <table class="table"> - <thead class="thead-dark" style="font-size: 15px;"> - <tr> - <th></th> - <th matTooltip="When individuals or policies seek to eliminate all vestiges of others culture in educational and/or social contexts (Lindsey, Robins, & Terrell, 2009). ">Cultural Destructiveness</th> - <th matTooltip="Trivializing and stereotyping other cultures; seeking to make the cultures of others appear [incongruent with and] inferior to the dominant [or host] culture [within educational and/or social context] ">Cultural Incapacity</th> - <th matTooltip="Not noticing or acknowledging the culture of others and ignoring the [diverse] experiences of cultures within [educational and/or social context]; treating everyone in the system the same way without recognizing the needs that require differentiated [approaches] ">Cultural Blindness</th> - <th matTooltip="The awareness/ability to identify when an individual/institution does not know how to effectively engage families, students, and teachers in a culturally diverse educational and/or social context "> - Cultural Pre-Competence </th> - <th matTooltip="The practical/institutional alignment of an individual’s personal values and behaviors which are in agreement with educational policies and practices that honors cultures that are new, different, and/or a minority. Such an environment displays healthy and productive interactions that denote solidarity in the educational context. However, this level of the Cultural Proficiency Continuum may or may not be limited to educational context ">Cultural Competence</th> - <th matTooltip="Espouses a vision that educational and social spaces are agents of social change and a model of a just democracy. These individual/institutions learn, teach, research, advocate, and champion for members of diverse and minoritized cultural groups. This level of the Cultural Proficiency Continuum is displayed and espoused in a variety of social constructions and contexts: educational, gender, professional, race, religious, and sexuality ">Cultural Proficiency</th> - </tr> - </thead> - <tbody *ngFor="let row of responsesArray; let i = index"> - <tr> - <td> {{row[7]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[0][1] == 'colorbold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[0][1] == 'bold'" (click)="openDialog(i,0,row[6])"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] == 'nobold'"> - {{row[0][0]}} - </td> - <td *ngIf="row[0][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[0][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[1][1] == 'colorbold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[1][1] == 'bold'" (click)="openDialog(i,1,row[6])"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] == 'nobold'"> - {{row[1][0]}} - </td> - <td *ngIf="row[1][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[1][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[2][1] == 'colorbold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[2][1] == 'bold'" (click)="openDialog(i,2,row[6])"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] == 'nobold'"> - {{row[2][0]}} - </td> - <td *ngIf="row[2][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[2][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[3][1] == 'colorbold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[3][1] == 'bold'" (click)="openDialog(i,3,row[6])"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] == 'nobold'"> - {{row[3][0]}} - </td> - <td *ngIf="row[3][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[3][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[4][1] == 'colorbold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[4][1] == 'bold'" (click)="openDialog(i,4,row[6])"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] == 'nobold'"> - {{row[4][0]}} - </td> - <td *ngIf="row[4][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[4][0]}} - </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="row[5][1] == 'colorbold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td style="font-weight: bold;" *ngIf="row[5][1] == 'bold'" (click)="openDialog(i,5,row[6])"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] == 'nobold'"> - {{row[5][0]}} - </td> - <td *ngIf="row[5][1] == 'greencolorbold'" style="font-weight: bold; background-color:#2a9d8f;"> - {{row[5][0]}} - </td> - - - - </tr> - - </tbody> - <!-- <tbody *ngFor="let row of formValues; let i = index"> - <tr> - <td> {{row[0]}} </td> - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'True'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][0] >2 && finalList1[i][0] == 'False'" (click)="openDialog(i,0) "> {{row[1]}} </td> - <td *ngIf="boldList[i][0] <=2"> {{row[1]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'True'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][1] >3 && finalList1[i][1] == 'False'" (click)="openDialog(i,1) "> {{row[2]}} </td> - <td *ngIf="boldList[i][1] <=3"> {{row[2]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'True'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][2] >4 || boldList[i][2] == 1) && finalList1[i][2] == 'False'" (click)="openDialog(i,2) "> {{row[3]}} </td> - <td *ngIf="boldList[i][2] <=4 && boldList[i][2] != 1"> {{row[3]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'True'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td style="font-weight: bold;" *ngIf="(boldList[i][3] >5 || boldList[i][3] <4) && finalList1[i][3] == 'False'" (click)="openDialog(i,3) "> {{row[4]}} </td> - <td *ngIf="boldList[i][3] <=5 && boldList[i][3]>=4"> {{row[4]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'True'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][4] <4 && finalList1[i][4] == 'False'" (click)="openDialog(i,4) "> {{row[5]}} </td> - <td *ngIf="boldList[i][4]>=4"> {{row[5]}} </td> - - <td style="font-weight: bold; background-color:#face70;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'True'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td style="font-weight: bold;" *ngIf="boldList[i][5] <5 && finalList1[i][5] == 'False'" (click)="openDialog(i,5) "> {{row[6]}} </td> - <td *ngIf="boldList[i][5]>=5"> {{row[6]}} </td> - </tr> - </tbody> --> - </table> - </div> - <!-- <div style="text-align:center;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> --> - </mat-tab> - <mat-tab> - <h2>Cultural Proficiency Continuum Q-Sort: Additional Inquires and Reflections - </h2> - <p>Directions: Read and respond to each question below. - </p> - <div [formGroup]="finalFeedbackForm" class="questions"> - - - <p>1. What are your overall impressions of this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q1" type="text" matInput placeholder="" required> - </mat-form-field> - - - - <p style="margin-top: 15px;">2. Were there any challenges that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q2" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">3. Were there any feelings that came up while completing this activity? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q3" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">4. Has this activity (i.e., reacting to and unpacking vignettes) increased your awareness of the different types of culturally proficient interactions and how they affect students from diverse racial, ethnic, and cultural backgrounds? - - </p> - <mat-form-field appearance="outline" class="col-lg-12"> - <mat-label>Explain</mat-label> - <input formControlName="q4" type="text" matInput placeholder="" required> - </mat-form-field> - - <p style="margin-top: 15px;">5. After engaging with the activity (i.e., reacting to and unpacking vignettes), where would you place yourself on the Cultural Proficiency Continuum? - </p> - <mat-radio-group formControlName="q5" class="example-radio-group"> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="male">Cultural Destructiveness - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="female">Cultural Incapacity - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other">Cultural Blindness - </mat-radio-button> - </div> - </div> - <div class="row"> - <div class="col-4"> - <mat-radio-button value="other1">Cultural Pre-Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other2">Cultural Competence - </mat-radio-button> - </div> - <div class="col-4"> - <mat-radio-button value="other3">Cultural Proficiency - </mat-radio-button> - </div> - </div> - </mat-radio-group> - - <p style="margin-top: 15px;">6. How would you rate the design of our website? - </p> - <div class="row"> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('angry')"> - <img id="angry" class="imgClass" src="../../assets/angry.png"/> - </button> - <p>Very poor</p> - - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('sad')"> - <img id="sad" class="imgClass" src="../../assets/sad.png"/> - </button> - <p>Poor</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('neutral')"> - <img id="neutral" class="imgClass" src="../../assets/neutral.png" /> - </button> - <p style="text-align: justify;">Fair</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('smile')"> - <img id="smile" class="imgClass" src="../../assets/smile.png"/> - </button> - <p>Good</p> - </div> - <div class="col-1"> - <button class="zoom" (click)="changeEmojiSize('heart')"> - <img id="heart" class="imgClass" src="../../assets/heart.webp"/> - </button> - <p>Excellent</p> - </div> - </div> - - <br> - <p style="margin-top: 15px;">7. Was our website easy to use and understand? - </p> - <div class="row"> - - - - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsup')"> - <img id="thumbsup" class="imgClass" src="../../assets/thumbsup.png"/> - </button> - </div> - <div class="col-1"> - <button class="zoom" (click) ="changeThumbsSize('thumbsdown')"> - <img id="thumbsdown" class="imgClass" src="../../assets/thumbsdown.png"/> - </button> - </div> - </div> - - </div> - - - </mat-tab> - <!-- <mat-tab label="Eight"> - <h2>Sample of Audio Answer</h2> - <p>Please press the button below to start recording your answer.</p> - <div style="text-align:center;margin-top: 200px;"> - <button mat-raised-button color="primary" (click)="initiateRecording()" *ngIf="!recording"> Start Recording </button> - <button mat-raised-button color="primary" (click)="stopRecording()" class="btn btn-danger" *ngIf="recording"> Stop Recording </button> - <p></p> - <audio controls="" *ngIf="url"> - <source [src]="sanitize(url)" type="audio/wav"> - </audio> - </div> - </mat-tab> --> - </mat-tab-group> - - - - </mat-card-content> - - - - <mat-card-actions> - <div class="row"> - <div class="col-8"> - <button *ngIf="selectedIndex != 5 && selectedIndex != 6 && selectedIndex !=7" mat-raised-button color="primary" style=" padding-right: -10px; " (click)="nextButton()"> - NEXT - <mat-icon>arrow_right_al</mat-icon> - - </button> - - <button *ngIf="selectedIndex == 5" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 6" mat-raised-button style=" padding-right: -10px; background-color: green; color: white;" (click)="submitForm1()"> - SUBMIT - <mat-icon>done_outline</mat-icon> - </button> - <button *ngIf="selectedIndex == 7" mat-raised-button style=" padding-right: -10px; background-color:#29ABE2; color: white; margin-top: -100px;" (click) = "finalSubmit()"> - Go to Dashboard - </button> - </div> - <div *ngIf="selectedIndex != 6 && selectedIndex != 7 && selectedIndex != 0" class="col-4"> - <p style="font-size: 10px; margin:-10px; margin-left: 20px;">Use this bar to increase or decrease the font size</p> - <mat-slider color="primary" min="0" max="4" value="1" tickInterval="1" (input)="sliderFunction($event)"></mat-slider> - - - </div> - - </div> - - - - </mat-card-actions> - </mat-card> -</div> \ No newline at end of file diff --git a/src/app/unpacking-page/unpacking-page.component.ts b/src/app/unpacking-page/unpacking-page.component.ts deleted file mode 100644 index 1b5f089467ba1fc39a4acc2afd25f40436198b47..0000000000000000000000000000000000000000 --- a/src/app/unpacking-page/unpacking-page.component.ts +++ /dev/null @@ -1,1234 +0,0 @@ -import { Component, OnInit, Inject } from '@angular/core'; -import {AfterViewInit, ElementRef, ViewChild} from '@angular/core'; -import { Router } from '@angular/router'; -import { FirstForm } from "../../services/firstForm.service"; -import { FormBuilder, FormGroup,Validators } from '@angular/forms'; -import Swal from 'sweetalert2'; -import {ThemePalette} from '@angular/material/core'; -import {ProgressBarMode} from '@angular/material/progress-bar'; -declare var $: any; -import * as RecordRTC from 'recordrtc'; -import { DomSanitizer } from '@angular/platform-browser'; -import {MatDialog, MAT_DIALOG_DATA} from '@angular/material/dialog'; -import {DialogFormComponent} from '../cpcq-form/dialog-form/dialog-form.component'; - -import {CPCQService} from '../../services/cpcq.service'; - -export interface DialogData { - animal: 'panda' | 'unicorn' | 'lion'; - status; - result; -} -@Component({ - selector: 'app-unpacking-page', - templateUrl: './unpacking-page.component.html', - styleUrls: ['./unpacking-page.component.css'] -}) -export class UnpackingPageComponent implements OnInit, AfterViewInit { - firstForm: FormGroup; - responseList:any ; - loaded = false; - - questionArray = [["Enter First Name","text"],["Enter Last Name","text"],["Enter Age","number"]]; - statusCheck = false; - buttonClick = false; - - sliderValue = 0; - - selectedIndex = 6; - - color: ThemePalette = 'primary'; - mode: ProgressBarMode = 'buffer'; - value1 = 50; - bufferValue = 100; - - formValues = []; - attributes = ["Attitude","Empathy","Policy","Professionalism","Teaching Practice"]; - columnHeadings = ["culturalDestructivenessresponse","culturalIncapacityresponse","culturalBlindnessresponse","culturalPreCompetenceresponse","culturalCompetenceresponse","culturalProficiencyresponse"] - rowLetters = [["D",'C','B','A','F','E'],['E','A','F','D','B','C'],['F','E','B','C','D','A'],['E','A','B','D','C','F'],['D','C','B','E','A','F']]; - boldList = [[]]; - randomList = [[]]; - finalList=[[]]; - finalList1 = []; - attitudeForm: FormGroup; - empathyForm: FormGroup; - policyForm: FormGroup; - - finalFeedbackForm:FormGroup; - - - - - //arrays of data getting from the backend - - attitude:any; - empathy :any; - policy:any; - professionalism:any; - teachingPractice:any; - wordDescription:any; - unpackedCount = 0; - - startTime: any; - endTime: any; - durationTime : any; - - @ViewChild('changeDiv') changeDiv: ElementRef; - @ViewChild('changeDiv1') changeDiv1: ElementRef; - @ViewChild('changeDiv2') changeDiv2: ElementRef; - @ViewChild('changeDiv3') changeDiv3: ElementRef; - @ViewChild('changeDiv4') changeDiv4: ElementRef; - @ViewChild('changeDiv5') changeDiv5: ElementRef; - @ViewChild('changeDiv6') changeDiv6: ElementRef; - @ViewChild('changeDiv7') changeDiv7: ElementRef; - @ViewChild('changeDiv8') changeDiv8: ElementRef; - @ViewChild('changeDiv9') changeDiv9: ElementRef; - @ViewChild('changeDiv10') changeDiv10: ElementRef; - @ViewChild('changeDiv11') changeDiv11: ElementRef; - @ViewChild('changeDiv12') changeDiv12: ElementRef; - @ViewChild('changeDiv13') changeDiv13: ElementRef; - @ViewChild('changeDiv14') changeDiv14: ElementRef; - @ViewChild('changeDiv15') changeDiv15: ElementRef; - @ViewChild('changeDiv16') changeDiv16: ElementRef; - @ViewChild('changeDiv17') changeDiv17: ElementRef; - @ViewChild('changeDiv18') changeDiv18: ElementRef; - @ViewChild('changeDiv19') changeDiv19: ElementRef; - @ViewChild('changeDiv20') changeDiv20: ElementRef; - @ViewChild('changeDiv21') changeDiv21: ElementRef; - @ViewChild('changeDiv22') changeDiv22: ElementRef; - @ViewChild('changeDiv23') changeDiv23: ElementRef; - @ViewChild('changeDiv24') changeDiv24: ElementRef; - @ViewChild('changeDiv25') changeDiv25: ElementRef; - @ViewChild('changeDiv26') changeDiv26: ElementRef; - @ViewChild('changeDiv27') changeDiv27: ElementRef; - @ViewChild('changeDiv28') changeDiv28: ElementRef; - @ViewChild('changeDiv29') changeDiv29: ElementRef; - - - - - - - - - - ngAfterViewInit() { - - - - } - - sliderFunction1(){ - if(this.sliderValue == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(this.sliderValue == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(this.sliderValue == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(this.sliderValue == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(this.sliderValue == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - } - sliderFunction(e){ - // - this.sliderValue = e.value; - if(e.value == 1){ - this.changeDiv.nativeElement.style.fontSize = "15px"; - this.changeDiv1.nativeElement.style.fontSize = "15px"; - this.changeDiv2.nativeElement.style.fontSize = "15px"; - this.changeDiv3.nativeElement.style.fontSize = "15px"; - this.changeDiv4.nativeElement.style.fontSize = "15px"; - this.changeDiv5.nativeElement.style.fontSize = "15px"; - this.changeDiv6.nativeElement.style.fontSize = "15px"; - this.changeDiv7.nativeElement.style.fontSize = "15px"; - this.changeDiv8.nativeElement.style.fontSize = "15px"; - this.changeDiv9.nativeElement.style.fontSize = "15px"; - this.changeDiv10.nativeElement.style.fontSize = "15px"; - this.changeDiv11.nativeElement.style.fontSize = "15px"; - this.changeDiv12.nativeElement.style.fontSize = "15px"; - this.changeDiv13.nativeElement.style.fontSize = "15px"; - this.changeDiv14.nativeElement.style.fontSize = "15px"; - this.changeDiv15.nativeElement.style.fontSize = "15px"; - this.changeDiv16.nativeElement.style.fontSize = "15px"; - this.changeDiv17.nativeElement.style.fontSize = "15px"; - this.changeDiv18.nativeElement.style.fontSize = "15px"; - this.changeDiv19.nativeElement.style.fontSize = "15px"; - this.changeDiv20.nativeElement.style.fontSize = "15px"; - this.changeDiv21.nativeElement.style.fontSize = "15px"; - this.changeDiv22.nativeElement.style.fontSize = "15px"; - this.changeDiv23.nativeElement.style.fontSize = "15px"; - this.changeDiv24.nativeElement.style.fontSize = "15px"; - this.changeDiv25.nativeElement.style.fontSize = "15px"; - this.changeDiv26.nativeElement.style.fontSize = "15px"; - this.changeDiv27.nativeElement.style.fontSize = "15px"; - this.changeDiv28.nativeElement.style.fontSize = "15px"; - this.changeDiv29.nativeElement.style.fontSize = "15px"; - - } - else if(e.value == 2){ - this.changeDiv.nativeElement.style.fontSize = "20px"; - this.changeDiv1.nativeElement.style.fontSize = "20px"; - this.changeDiv2.nativeElement.style.fontSize = "20px"; - this.changeDiv3.nativeElement.style.fontSize = "20px"; - this.changeDiv4.nativeElement.style.fontSize = "20px"; - this.changeDiv5.nativeElement.style.fontSize = "20px"; - this.changeDiv6.nativeElement.style.fontSize = "20px"; - this.changeDiv7.nativeElement.style.fontSize = "20px"; - this.changeDiv8.nativeElement.style.fontSize = "20px"; - this.changeDiv9.nativeElement.style.fontSize = "20px"; - this.changeDiv10.nativeElement.style.fontSize = "20px"; - this.changeDiv11.nativeElement.style.fontSize = "20px"; - this.changeDiv12.nativeElement.style.fontSize = "20px"; - this.changeDiv13.nativeElement.style.fontSize = "20px"; - this.changeDiv14.nativeElement.style.fontSize = "20px"; - this.changeDiv15.nativeElement.style.fontSize = "20px"; - this.changeDiv16.nativeElement.style.fontSize = "20px"; - this.changeDiv17.nativeElement.style.fontSize = "20px"; - this.changeDiv18.nativeElement.style.fontSize = "20px"; - this.changeDiv19.nativeElement.style.fontSize = "20px"; - this.changeDiv20.nativeElement.style.fontSize = "20px"; - this.changeDiv21.nativeElement.style.fontSize = "20px"; - this.changeDiv22.nativeElement.style.fontSize = "20px"; - this.changeDiv23.nativeElement.style.fontSize = "20px"; - this.changeDiv24.nativeElement.style.fontSize = "20px"; - this.changeDiv25.nativeElement.style.fontSize = "20px"; - this.changeDiv26.nativeElement.style.fontSize = "20px"; - this.changeDiv27.nativeElement.style.fontSize = "20px"; - this.changeDiv28.nativeElement.style.fontSize = "20px"; - this.changeDiv29.nativeElement.style.fontSize = "20px"; - } - else if(e.value == 3){ - this.changeDiv.nativeElement.style.fontSize = "22px"; - this.changeDiv1.nativeElement.style.fontSize = "22px"; - this.changeDiv2.nativeElement.style.fontSize = "22px"; - this.changeDiv3.nativeElement.style.fontSize = "22px"; - this.changeDiv4.nativeElement.style.fontSize = "22px"; - this.changeDiv5.nativeElement.style.fontSize = "22px"; - this.changeDiv6.nativeElement.style.fontSize = "22px"; - this.changeDiv7.nativeElement.style.fontSize = "22px"; - this.changeDiv8.nativeElement.style.fontSize = "22px"; - this.changeDiv9.nativeElement.style.fontSize = "22px"; - this.changeDiv10.nativeElement.style.fontSize = "22px"; - this.changeDiv11.nativeElement.style.fontSize = "22px"; - this.changeDiv12.nativeElement.style.fontSize = "22px"; - this.changeDiv13.nativeElement.style.fontSize = "22px"; - this.changeDiv14.nativeElement.style.fontSize = "22px"; - this.changeDiv15.nativeElement.style.fontSize = "22px"; - this.changeDiv16.nativeElement.style.fontSize = "22px"; - this.changeDiv17.nativeElement.style.fontSize = "22px"; - this.changeDiv18.nativeElement.style.fontSize = "22px"; - this.changeDiv19.nativeElement.style.fontSize = "22px"; - this.changeDiv20.nativeElement.style.fontSize = "22px"; - this.changeDiv21.nativeElement.style.fontSize = "22px"; - this.changeDiv22.nativeElement.style.fontSize = "22px"; - this.changeDiv23.nativeElement.style.fontSize = "22px"; - this.changeDiv24.nativeElement.style.fontSize = "22px"; - this.changeDiv25.nativeElement.style.fontSize = "22px"; - this.changeDiv26.nativeElement.style.fontSize = "22px"; - this.changeDiv27.nativeElement.style.fontSize = "22px"; - this.changeDiv28.nativeElement.style.fontSize = "22px"; - this.changeDiv29.nativeElement.style.fontSize = "22px"; - } - else if(e.value == 4){ - this.changeDiv.nativeElement.style.fontSize = "25px"; - this.changeDiv1.nativeElement.style.fontSize = "25px"; - this.changeDiv2.nativeElement.style.fontSize = "25px"; - this.changeDiv3.nativeElement.style.fontSize = "25px"; - this.changeDiv4.nativeElement.style.fontSize = "25px"; - this.changeDiv5.nativeElement.style.fontSize = "25px"; - this.changeDiv6.nativeElement.style.fontSize = "25px"; - this.changeDiv7.nativeElement.style.fontSize = "25px"; - this.changeDiv8.nativeElement.style.fontSize = "25px"; - this.changeDiv9.nativeElement.style.fontSize = "25px"; - this.changeDiv10.nativeElement.style.fontSize = "25px"; - this.changeDiv11.nativeElement.style.fontSize = "25px"; - this.changeDiv12.nativeElement.style.fontSize = "25px"; - this.changeDiv13.nativeElement.style.fontSize = "25px"; - this.changeDiv14.nativeElement.style.fontSize = "25px"; - this.changeDiv15.nativeElement.style.fontSize = "25px"; - this.changeDiv16.nativeElement.style.fontSize = "25px"; - this.changeDiv17.nativeElement.style.fontSize = "25px"; - this.changeDiv18.nativeElement.style.fontSize = "25px"; - this.changeDiv19.nativeElement.style.fontSize = "25px"; - this.changeDiv20.nativeElement.style.fontSize = "25px"; - this.changeDiv21.nativeElement.style.fontSize = "25px"; - this.changeDiv22.nativeElement.style.fontSize = "25px"; - this.changeDiv23.nativeElement.style.fontSize = "25px"; - this.changeDiv24.nativeElement.style.fontSize = "25px"; - this.changeDiv25.nativeElement.style.fontSize = "25px"; - this.changeDiv26.nativeElement.style.fontSize = "25px"; - this.changeDiv27.nativeElement.style.fontSize = "25px"; - this.changeDiv28.nativeElement.style.fontSize = "25px"; - this.changeDiv29.nativeElement.style.fontSize = "25px"; - } - else if(e.value == 5){ - this.changeDiv.nativeElement.style.fontSize = "50px"; - this.changeDiv1.nativeElement.style.fontSize = "50px"; - this.changeDiv2.nativeElement.style.fontSize = "50px"; - this.changeDiv3.nativeElement.style.fontSize = "50px"; - this.changeDiv4.nativeElement.style.fontSize = "50px"; - this.changeDiv5.nativeElement.style.fontSize = "50px"; - - } - - } - constructor(private fb: FormBuilder, private apiService: CPCQService,private router: Router, private formService : FirstForm,private domSanitizer: DomSanitizer,public dialog: MatDialog) { } - openDialog(i,j,id) { - var arr = []; - arr.push(this.attributes[i]); - arr.push(j); - arr.push(this.columnHeadings[j]) - arr.push(id) - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: arr, - status : "form" - }, - disableClose:true - }); - dialogRef.afterClosed().subscribe(result => { - - if(this.responsesArray[i][j][1] == "colorbold"){ - this.unpackedCount = this.unpackedCount +1 - this.responsesArray[i][j][1] = "greencolorbold"; - } - - }) - } - - openWordDialog(i) { - // - this.buttonClick = true; - const dialogRef = this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "word" - }, - disableClose:true - }); - - dialogRef.afterClosed().subscribe(result => { - - this.wordDescription = result; - }) - } - - helpDialog(i) { - // - this.dialog.open(DialogFormComponent, { - data: { - animal: i, - status : "help" - } - }); - } - - keyPressFunc(e){ - - // - var numbersList = ["1"]; - for (let key in this.attitudeForm.value) { - - - if(numbersList.indexOf(this.attitudeForm.value[key]) == -1){ - // - return "Number"; - } - } - - - } - - getEmailError(){ - return "Error"; - } -responsesArray =[] -responsesCount = 0 -temp = [] - getResponses(){ - this.apiService.getResponsesData().subscribe((res) => { - for(let key in res){ - this.temp = [] - for(let key1 in res[key]){ - if(res[key][key1] == "colorbold"){ - this.responsesCount = this.responsesCount + 1 - } - if(res[key][key1][1] == "greencolorbold"){ - this.unpackedCount = this.unpackedCount + 1 - console.log(this.unpackedCount) - } - - this.temp.push(res[key][key1]) - - } - this.responsesArray.push(this.temp) - } - - }) - } - - - getForm(){ - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - var attitudeResult = []; - var empathyResult = []; - var policyResult = []; - var profResult = []; - var teachingResult = []; - this.finalList = [[]] - this.boldList = [[]] - this.apiService.getFormData().subscribe((res) => { - for (let key in res){ - arr = []; - if(res[key]["topic"] == "Attitude"){ - attitudeResult.push("Attitude"); - arr.push("Attitude"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - attitudeResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - attitudeResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Empathy"){ - empathyResult.push("Empathy") - arr.push("Empathy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - empathyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - empathyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - empathyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Policy"){ - policyResult.push("Policy") - arr.push("Policy"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - policyResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - policyResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - policyResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Professionalism"){ - profResult.push("Professionalism"); - arr.push("Professionalism"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - - profResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - profResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - profResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - else if (res[key]["topic"] == "Teaching Practice"){ - arr.push("Teaching Pracice"); - arr.push(res[key]["culturalDestructiveness"]) - arr.push(res[key]["culturalIncapacity"]) - arr.push(res[key]["culturalBlindness"]) - arr.push(res[key]["culturalPreCompetence"]) - arr.push(res[key]["culturalCompetence"]) - arr.push(res[key]["culturalProficiency"]) - teachingResult.push("Teaching Practice"); - teachingResult.push(Math.abs(parseInt(res[key]["culturalDestructiveness"].split(".")[1]) - 1) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalIncapacity"].split(".")[1]) - 2) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalBlindness"].split(".")[1]) - 3) >= 2 ? 1 : 0 ) - teachingResult.push(Math.abs(parseInt(res[key]["culturalPreCompetence"].split(".")[1])-4) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalCompetence"].split(".")[1])-5) >= 2 ? 1 : 0) - teachingResult.push(Math.abs(parseInt(res[key]["culturalProficiency"].split(".")[1])-6) >= 2 ? 1 : 0) - } - - this.boldList.push(arr); - - } - this.finalList.push(attitudeResult) - this.finalList.push(empathyResult) - this.finalList.push(policyResult) - this.finalList.push(profResult) - this.finalList.push(teachingResult) - }) - this.finalList.splice(0, 1); - this.boldList.splice(0, 1); - // this.getAllIndexes(this.finalList,1) - - - - } - - emoji:any; - changeEmojiSize(data){ - document.getElementById("angry").style.height = "30px" - document.getElementById("angry").style.width = "30px" - document.getElementById("sad").style.height = "30px" - document.getElementById("sad").style.width = "30px" - document.getElementById("neutral").style.height = "30px" - document.getElementById("neutral").style.width = "30px" - document.getElementById("smile").style.height = "30px" - document.getElementById("smile").style.width = "30px" - document.getElementById("heart").style.height = "30px" - document.getElementById("heart").style.width = "30px" - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - - this.emoji = data; - } - - thumbs:any; - changeThumbsSize(data){ - document.getElementById("thumbsup").style.height = "30px" - document.getElementById("thumbsup").style.width = "30px" - document.getElementById("thumbsdown").style.height = "30px" - document.getElementById("thumbsdown").style.width = "30px" - - document.getElementById(data).style.height = "50px" - document.getElementById(data).style.width = "50px" - this.thumbs = data; - } - finalSubmit(){ - this.finalFeedbackForm.value["q6"] = this.thumbs - this.finalFeedbackForm.value["q7"] = this.emoji - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - this.apiService.patchStatus("finalfeedbackstatus").subscribe((res) => { - - }) - - this.apiService.postFeedbackForm(this.finalFeedbackForm.value).subscribe((res) => { - this.apiService.changeCPCQStatus().subscribe((res1) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - this.router.navigateByUrl("/result") - } - }) - - }) - },(err) => { - - }) - - } - ngOnInit(): void { - this.getResponses() - this.startTime = new Date() - this.finalFeedbackForm = this.fb.group({ - q1:[""], - q2:[""], - q3:[""], - q4:[""], - q5:[""], - q6:[""], - q7:[""], - }) - - this.apiService.attitudeData().subscribe((res) => { - // - this.attitude = res[0]; - // - },(err) => { - - }) - - this.apiService.empathyData().subscribe((res) => { - // - this.empathy = res[0]; - // - },(err) => { - - }) - - this.apiService.policyData().subscribe((res) => { - this.policy = res[0]; - },(err) => { - - }) - - this.apiService.professionalismData().subscribe((res) => { - this.professionalism = res[0]; - },(err) => { - - }) - - this.apiService.teachingData().subscribe((res) => { - this.teachingPractice = res[0]; - },(err) => { - - }) - - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - description:["",[Validators.required]] - - }) - - this.empathyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - this.policyForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - - }) - - - var arr = []; - var arr1 = []; - var arr2 = []; - var i; - for(var j = 0;j<5;j++){ - arr = []; - arr1 = []; - arr2 = []; - i = 0; - while(i<6){ - var item1 = Math.floor(Math.random() * (7 - 1) + 1); - if(arr1.indexOf(item1) == -1){ - if(i == 0){ - arr.push(this.attributes[j]); - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(arr1[arr1.length -1] >2){ - // - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else{ - arr.push(this.rowLetters[j][i] + ". "+ item1); - arr1.push(item1); - if(i==1){ - if(arr1[arr1.length - 1] >3){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==2){ - if(arr1[arr1.length - 1] >4 || arr1[arr1.length - 1] == 1){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==3){ - if(arr1[arr1.length - 1] >5 || arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==4){ - if(arr1[arr1.length - 1] <4){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - else if(i==5){ - if(arr1[arr1.length - 1] <5){ - arr2.push("True"); - } - else{ - arr2.push("False"); - } - } - } - i = i + 1; - } - else{ - continue; - } - - } - this.formValues.push(arr); - this.boldList.push(arr1); - this.randomList.push(arr2); - } - this.boldList.splice(0, 1); - this.randomList.splice(0, 1); - - - - this.getAllIndexes(this.randomList,"True"); - this.loaded = true; - } - - getAllIndexes(arr, val) { - var indexes = []; - var i = -1; - for(var i = 0;i<arr.length;i++){ - for(var j = 0;j<arr[i].length;j++){ - if(arr[i][j] == "True"){ - var arr1 = []; - arr1.push(i); - arr1.push(j) - indexes.push(arr1); - } - } - } - - var arr1 = []; - for(var i = 0;i<indexes.length;i++){ - arr1.push(i); - } - var ranNums = []; - var i = arr1.length; - var j = 0; - var count = 0; - while (i--) { - - if(count < 5){ - j = Math.floor(Math.random() * (i+1)); - ranNums.push(arr1[j]); - arr1.splice(j,1); - count = count+1; - } - else{ - break; - } - } - - - // - for(var i = 0;i<this.boldList.length;i++){ - var temp = []; - for(var j = 0 ;j <6;j++){ - temp.push("False"); - } - this.finalList1.push(temp); - } - - - for(var i = 0;i<ranNums.length;i++){ - var item = indexes[ranNums[i]]; - - this.finalList1[item[0]][item[1]] = "True"; - } - // this.finalList1.splice(0,1) - -} - preSurvey(){ - this.router.navigateByUrl("/preSurvey"); - } - - nextButton(){ - if(this.selectedIndex == 0){ - this.selectedIndex = this.selectedIndex + 1; - return; - } - if(this.selectedIndex == 7){ - this.router.navigateByUrl('/dashboard'); - return; - } - - var numberList = []; - var flag = true; - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - flag = false; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = false; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = false; - Swal.fire({ - - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(flag){ - - if(this.selectedIndex == 7){ - this.router.navigateByUrl("/postSurvey"); - } - this.sliderFunction1(); - var formData = {} - formData['topic'] = this.attributes[this.selectedIndex-1] - if(this.attributes[this.selectedIndex-1] == "Attitude"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalCompetence"] = "F. " + this.attitudeForm.value['F'] - formData["culturalProficiency"] = "E. " + this.attitudeForm.value['E'] - - } - else if(this.attributes[this.selectedIndex-1] == "Empathy"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "B. " + this.attitudeForm.value['B'] - formData["culturalProficiency"] = "C. " + this.attitudeForm.value['C'] - } - else if(this.attributes[this.selectedIndex-1] == "Policy"){ - formData["culturalDestructiveness"] = "F. " + this.attitudeForm.value['F'] - formData["culturalIncapacity"] = "E. " + this.attitudeForm.value['E'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalProficiency"] = "A. " + this.attitudeForm.value['A'] - } - else if(this.attributes[this.selectedIndex-1] == "Professionalism"){ - formData["culturalDestructiveness"] = "E. " + this.attitudeForm.value['E'] - formData["culturalIncapacity"] = "A. " + this.attitudeForm.value['A'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "D. " + this.attitudeForm.value['D'] - formData["culturalCompetence"] = "C. " + this.attitudeForm.value['C'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - else if(this.attributes[this.selectedIndex-1] == "Teaching Practice"){ - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - } - - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["description"] = this.wordDescription - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - },(err) => { - - }) - // this.getForm(); - this.selectedIndex = this.selectedIndex + 1; - this.buttonClick = false; - this.startTime = new Date() - this.attitudeForm = this.fb.group({ - A:["",[Validators.minLength(1),Validators.maxLength(1)]], - B:["",[Validators.minLength(1),Validators.maxLength(1)]], - C:["",[Validators.minLength(1),Validators.maxLength(1)]], - D:["",[Validators.minLength(1),Validators.maxLength(1)]], - E:["",[Validators.minLength(1),Validators.maxLength(1)]], - F:["",[Validators.minLength(1),Validators.maxLength(1)]], - }) - } - - } - - postSurvey(){ - this.router.navigateByUrl("/postSurvey"); - } - - submitForm1(){ - if(this.unpackedCount >= 5 ){ - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - this.apiService.patchStatus("cpcqstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - // this.selectedIndex = this.selectedIndex + 1; - this.router.navigateByUrl("/finalFeedback") - } - }) - }) - - - } - else{ - Swal.fire({ - text: "Please click on all the yellow boxes and answer the questions in the prompt.", - icon: "warning" - }).then((res) => { - }) - } - - } - - submitForm(){ - if(this.selectedIndex >= this.responsesCount){ - var numberList = []; - var flag = false; - - for (let key in this.attitudeForm.value) { - - if((this.attitudeForm.value[key] > 6 || this.attitudeForm.value[key] < 1) && (key != "description")){ - - - flag = true; - Swal.fire({ - text: "Please enter values from 1 through 6 only.", - icon: "warning" - }).then((res) => { - }) - break; - } - if(numberList.indexOf(this.attitudeForm.value[key]) == -1){ - numberList.push(this.attitudeForm.value[key]); - } - else{ - flag = true; - Swal.fire({ - text: "The inputs have been repeated. Please enter values from 1 through 6.", - icon: "warning" - }).then((res) => { - }) - break; - } - } - if(!this.buttonClick){ - flag = true; - Swal.fire({ - text: "Click on the word '"+ this.attributes[this.selectedIndex-1]+"' and respond to the prompt.", - icon: "warning" - }).then((res) => { - }) - } - if(!flag){ - - - // - var formData = {} - - formData['topic'] = this.attributes[this.selectedIndex-1] - formData["culturalDestructiveness"] = "D. " + this.attitudeForm.value['D'] - formData["culturalIncapacity"] = "C. " + this.attitudeForm.value['C'] - formData["culturalBlindness"] = "B. " + this.attitudeForm.value['B'] - formData["culturalPreCompetence"] = "E. " + this.attitudeForm.value['E'] - formData["culturalCompetence"] = "A. " + this.attitudeForm.value['A'] - formData["culturalProficiency"] = "F. " + this.attitudeForm.value['F'] - - formData["description"] = this.wordDescription - this.endTime = new Date() - - this.durationTime = (this.endTime - this.startTime)/1000 - this.durationTime = this.durationTime/ 60 - - formData["duration"] = this.durationTime - this.apiService.postFormData(formData).subscribe((res) => { - // - this.apiService.patchStatus("responsesstatus").subscribe((res) => { - Swal.fire({ - text: "Submitted", - icon: "success" - }).then((res) => { - if(res["isConfirmed"]){ - // this.getForm() - this.getResponses() - - this.selectedIndex = this.selectedIndex + 1; - this.startTime = new Date() - } - }) - - }) - },(err) => { - - }) - } - - } - } - - submit(){ - // - var tempDict; - this.responseList = []; - for(let key in this.firstForm.value){ - tempDict = {} - tempDict["question"] = key - tempDict["response"] = this.firstForm.value[key]; - this.responseList.push(tempDict); - } - // - - this.formService.submitResponse(this.responseList).subscribe((res) => { - // - Swal.fire({ - text: "Submitted", - icon: "success" - }) - this.router.navigateByUrl("/game"); - },(err) => { - - Swal.fire({ - text: "Duplicate Entries", - icon: "warning" - }) - }) - - } - - title = 'micRecorder'; -//Lets declare Record OBJ -record; -//Will use this flag for toggeling recording -recording = false; -//URL of Blob -url; -error; -sanitize(url: string) { -return this.domSanitizer.bypassSecurityTrustUrl(url); -} -/** -* Start recording. -*/ -initiateRecording() { -this.recording = true; -let mediaConstraints = { -video: false, -audio: true -}; -navigator.mediaDevices.getUserMedia(mediaConstraints).then(this.successCallback.bind(this), this.errorCallback.bind(this)); -} -/** -* Will be called automatically. -*/ -successCallback(stream) { -var options = { -mimeType: "audio/wav", -numberOfAudioChannels: 1, -// sampleRate: 16000, -}; -//Start Actuall Recording -var StereoAudioRecorder = RecordRTC.StereoAudioRecorder; -this.record = new StereoAudioRecorder(stream, options); -this.record.record(); -} -/** -* Stop recording. -*/ -stopRecording() { -this.recording = false; -this.record.stop(this.processRecording.bind(this)); -} -/** -* processRecording Do what ever you want with blob -* @param {any} blob Blog -*/ -processRecording(blob) { -this.url = URL.createObjectURL(blob); -// -// -} -/** -* Process Error. -*/ -errorCallback(error) { -this.error = 'Can not play audio in your browser'; -} - - - -} diff --git a/src/config/Config.ts b/src/config/Config.ts deleted file mode 100644 index bf4328bf89b84aec9912e295039d1b643a18c9fa..0000000000000000000000000000000000000000 --- a/src/config/Config.ts +++ /dev/null @@ -1,24 +0,0 @@ -export const Config = { - // apiUrl: "http://127.0.0.1:8000/api/", - // registerUrl: "http://127.0.0.1:8000/api/register", - // loginUrl: "http://127.0.0.1:8000/api/login", - // logoutUrl :"http://127.0.0.1:8000/api/logout", - // userUrl: "http://127.0.0.1:8000/api/user", - // cqcqUrl : "http://127.0.0.1:8000/api/cpcq", - // profileUrl: "http://127.0.0.1:8000/api/profile/", - // preSurveyUrl: "http://127.0.0.1:8000/api/preSurvey/", - // postSurveyUrl: "http://127.0.0.1:8000/api/postSurvey/", - - - apiUrl: "https://cpcdpvcu.bhoomee.org/api/", - registerUrl: "https://cpcdpvcu.bhoomee.org/api/register", - loginUrl: "https://cpcdpvcu.bhoomee.org/api/login", - logoutUrl :"https://cpcdpvcu.bhoomee.org/api/logout", - userUrl: "https://cpcdpvcu.bhoomee.org/api/user", - cqcqUrl : "https://cpcdpvcu.bhoomee.org/api/cpcq", - profileUrl: "https://cpcdpvcu.bhoomee.org/api/profile/", - preSurveyUrl: "https://cpcdpvcu.bhoomee.org/api/preSurvey/", - postSurveyUrl: "https://cpcdpvcu.bhoomee.org/api/postSurvey/", - -} - diff --git a/src/environments/environment.prod.ts b/src/environments/environment.prod.ts index 3612073bc31cd4c1f5d6cbb00318521e9a61bd8a..390207cf5e8ad4c96d33fbcbc8b9d137492c7746 100644 --- a/src/environments/environment.prod.ts +++ b/src/environments/environment.prod.ts @@ -1,3 +1,20 @@ +const backendBaseUrl = "https://cpcdpvcu.bhoomee.org"; +const apiUrl = `${backendBaseUrl}/api`; export const environment = { - production: true + production: false, + auth0Settings: { + domain: "dev-x39z62vm.us.auth0.com", + clientId: "jN2jYbC5bPdFaquIZGsxJNxkZe42KCDl", + callBackUrl: "http://localhost:4200", + logoutUrl: "http://localhost:4200", + }, + apiUrl: apiUrl, + registerUrl: `${apiUrl}/register`, + loginUrl: `${apiUrl}/login`, + logoutUrl: `${apiUrl}/logout`, + userUrl: `${apiUrl}/user`, + cqcqUrl: `${apiUrl}/cpcq`, + profileUrl: `${apiUrl}/profile`, + preSurveyUrl: `${apiUrl}/preSurvey`, + postSurveyUrl: `${apiUrl}/postSurvey`, }; diff --git a/src/environments/environment.ts b/src/environments/environment.ts index 7b4f817adb754769ca126a939d48ac4b0850489d..ca4dca90abaa4f2b89ae91568af1e71e429f4af3 100644 --- a/src/environments/environment.ts +++ b/src/environments/environment.ts @@ -1,16 +1,22 @@ -// This file can be replaced during build by using the `fileReplacements` array. -// `ng build --prod` replaces `environment.ts` with `environment.prod.ts`. -// The list of file replacements can be found in `angular.json`. - +// const backendBaseUrl = "http://127.0.0.1:8000"; +// const backendBaseUrl = "https://cpcdpvcu.bhoomee.org"; +const backendBaseUrl = "http://ec2-3-17-75-18.us-east-2.compute.amazonaws.com"; +const apiUrl = `${backendBaseUrl}/api`; export const environment = { - production: false + production: false, + auth0Settings: { + domain: "dev-x39z62vm.us.auth0.com", + clientId: "jN2jYbC5bPdFaquIZGsxJNxkZe42KCDl", + callBackUrl: "http://localhost:4200", + logoutUrl: "http://localhost:4200", + }, + apiUrl: apiUrl, + registerUrl: `${apiUrl}/register`, + loginUrl: `${apiUrl}/login`, + logoutUrl: `${apiUrl}/logout`, + userUrl: `${apiUrl}/user`, + cqcqUrl: `${apiUrl}/cpcq`, + profileUrl: `${apiUrl}/profile`, + preSurveyUrl: `${apiUrl}/preSurvey`, + postSurveyUrl: `${apiUrl}/postSurvey`, }; - -/* - * For easier debugging in development mode, you can import the following file - * to ignore zone related error stack frames such as `zone.run`, `zoneDelegate.invokeTask`. - * - * This import should be commented out in production mode because it will have a negative impact - * on performance if an error is thrown. - */ -// import 'zone.js/dist/zone-error'; // Included with Angular CLI. diff --git a/src/index.html b/src/index.html index 61b1e05b3ce22e172ce939e4411c0e55d5fb66e7..f2dce80b28df1626ac7437c127a77bec2fff946d 100644 --- a/src/index.html +++ b/src/index.html @@ -1,39 +1,29 @@ -<!doctype html> +<!DOCTYPE html> <html lang="en"> - -<head> - <meta charset="utf-8"> + <head> + <meta charset="utf-8" /> <title>CPCDP</title> - <base href="/"> - <meta name="viewport" content="width=device-width, initial-scale=1"> - <link rel="icon" type="image/x-icon" href="favicon.ico"> - <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet"> - <link rel="preconnect" href="https://fonts.gstatic.com"> - <link href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&display=swap" rel="stylesheet"> - <link rel="preconnect" href="https://fonts.gstatic.com"> - <link href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&family=Lemonada:wght@300&family=Playfair+Display:wght@600&display=swap" rel="stylesheet"> - <link rel="preconnect" href="https://fonts.gstatic.com"> - <link rel="preconnect" href="https://fonts.gstatic.com"> - <link href="https://fonts.googleapis.com/css2?family=Newsreader:wght@300;400;500&display=swap" rel="stylesheet"> - <!-- Required meta tags --> - <!-- <meta charset="utf-8"> - <meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no"> - <link href="https://fonts.googleapis.com/css?family=Roboto:300,400&display=swap" rel="stylesheet"> - - <link rel="stylesheet" href="fonts/icomoon/style.css"> - - <link rel="stylesheet" href="css/owl.carousel.min.css"> + <base href="/" /> + <meta name="viewport" content="width=device-width, initial-scale=1" /> + <link rel="icon" type="image/x-icon" href="favicon.ico" /> + <link href="https://fonts.googleapis.com/icon?family=Material+Icons" rel="stylesheet" /> + <link rel="preconnect" href="https://fonts.gstatic.com" /> + <link + href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&display=swap" + rel="stylesheet" + /> + <link rel="preconnect" href="https://fonts.gstatic.com" /> + <link + href="https://fonts.googleapis.com/css2?family=Big+Shoulders+Display:wght@700&family=Lemonada:wght@300&family=Playfair+Display:wght@600&display=swap" + rel="stylesheet" + /> + <link rel="preconnect" href="https://fonts.gstatic.com" /> + <link rel="preconnect" href="https://fonts.gstatic.com" /> + <link href="https://fonts.googleapis.com/css2?family=Newsreader:wght@300;400;500&display=swap" rel="stylesheet" /> + </head> - <!-- Bootstrap CSS --> - <!-- <link rel="stylesheet" href="css/bootstrap.min.css"> --> - - <!-- Style --> - <!-- <link rel="stylesheet" href="css/style.css"> --> -</head> - -<body> + <body> <script src="https://unpkg.com/wavesurfer.js"></script> <app-root></app-root> -</body> - -</html> \ No newline at end of file + </body> +</html> diff --git a/src/polyfills.ts b/src/polyfills.ts index 03711e5d92cb7d7cd21262d6cc863b41c05092e9..576bf9d7f7e26525a2c23b42d5cee0f44031df73 100644 --- a/src/polyfills.ts +++ b/src/polyfills.ts @@ -1,3 +1,7 @@ +/*************************************************************************************************** + * Load `$localize` onto the global scope - used if i18n tags appear in Angular templates. + */ +import '@angular/localize/init'; /** * This file includes polyfills needed by Angular and is loaded before the app. * You can add your own extra polyfills to this file. @@ -18,16 +22,6 @@ * BROWSER POLYFILLS */ -/** IE10 and IE11 requires the following for NgClass support on SVG elements */ -// import 'classlist.js'; // Run `npm install --save classlist.js`. - -/** - * Web Animations `@angular/platform-browser/animations` - * Only required if AnimationBuilder is used within the application and using IE/Edge or Safari. - * Standard animation support in Angular DOES NOT require any polyfills (as of Angular 6.0). - */ -// import 'web-animations-js'; // Run `npm install --save web-animations-js`. - /** * By default, zone.js will patch all possible macroTask and DomEvents * user can disable parts of macroTask/DomEvents patch by setting following flags diff --git a/src/services/cpcq.service.ts b/src/services/cpcq.service.ts deleted file mode 100644 index c8a9016805fc755081439e107e65c347c68edf7e..0000000000000000000000000000000000000000 --- a/src/services/cpcq.service.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http' -import {Config} from '../config/Config'; - -@Injectable({ - providedIn: 'root' -}) -export class CPCQService { - baseUri = Config.apiUrl; - cpcqUrl = Config.cqcqUrl; - - constructor(private http: HttpClient) {} - - attitudeData(){ - return this.http.get(`${this.baseUri}`+'attitude/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - empathyData(){ - return this.http.get(`${this.baseUri}`+'empathy/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - policyData(){ - return this.http.get(`${this.baseUri}`+'policy/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - professionalismData(){ - return this.http.get(`${this.baseUri}`+'professionalism/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - teachingData(){ - return this.http.get(`${this.baseUri}`+'teaching/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - changeCPCQStatus(){ - return this.http.post(`${this.cpcqUrl}`+'/',{"choices" : "Finished All Forms"},{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}); - } - - getCPCQStatus(){ - return this.http.get(`${this.cpcqUrl}`,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}); - } - - postFormData(data){ - return this.http.post(`${this.baseUri}`+'responses/',data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}); - } - - postFeedbackForm(data){ - return this.http.post(`${this.baseUri}`+'finalFeedback/',data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}); - } - - getFormData(){ - return this.http.get(`${this.baseUri}`+'responses/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - getResponsesData(){ - return this.http.get(`${this.baseUri}`+'responses_all/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - - } - - postUnpacking(data){ - return this.http.post(`${this.baseUri}`+'cpcq_response/',data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}); - } - - getScoreInfo() { - - - return this.http.get(`${this.baseUri}`+'cpcq_response/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - getScoreVisualization() { - return this.http.get(`${this.baseUri}`+'graphs/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - patchStatus(data){ - - return this.http.patch(`${this.baseUri}status/?value=${data}`,{},{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - -} diff --git a/src/services/firstForm.service.ts b/src/services/firstForm.service.ts deleted file mode 100644 index ebeea8c854bea2bccbd5ac61d6bacc83b814ce1b..0000000000000000000000000000000000000000 --- a/src/services/firstForm.service.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http' -import {Config} from '../config/Config'; - -@Injectable({ - providedIn: 'root' -}) -export class FirstForm { - baseUri = Config.loginUrl; - responseUrl = Config.loginUrl; - - constructor(private http: HttpClient) {} - - firstForm(){ - return this.http.get(`${this.baseUri}`, { - headers: { - "Content-Type": "application/json", - "authorization": 'Token ' + localStorage.getItem("user") - } - }) - } - - submitResponse(data){ - return this.http.post(`${this.responseUrl}`,data,{ - headers: { - "Content-Type": "application/json", - "authorization": 'Token ' + localStorage.getItem("user") - } - }); - } -} diff --git a/src/services/login.sevice.ts b/src/services/login.sevice.ts deleted file mode 100644 index f64a0f58e8e0974261e4039720116ec1f9a2bacb..0000000000000000000000000000000000000000 --- a/src/services/login.sevice.ts +++ /dev/null @@ -1,61 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http' -import {Config} from '../config/Config'; - -@Injectable({ - providedIn: 'root' -}) -export class Login { - loginUrl = Config.loginUrl; - registerUrl = Config.registerUrl; - logoutUrl = Config.logoutUrl; - baseUrl = Config.apiUrl; - - constructor(private http: HttpClient) {} - - login(data){ - return this.http.post(`${this.loginUrl}`,data,{headers: { - "Content-Type": "application/json" - }}) - } - - forgotpassword(data){ - return this.http.patch(`${this.baseUrl}`+'password_change/',data,{headers: { - "Content-Type": "application/json" - }}) - } - - register(data){ - - return this.http.post(`${this.registerUrl}`,data,{headers: { - "Content-Type": "application/json" - }}) - } - - changePassword(data){ - - return this.http.patch(`${this.baseUrl}`+"password_change/",data,{headers: { - "Content-Type": "application/json", - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - logout(){ - return this.http.post(`${this.logoutUrl}`,{},{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - checkStatus() { - return this.http.get(`${this.baseUrl}`+'status/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - patchStatus(data){ - return this.http.patch(`${this.baseUrl}` +'status/',data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - -} diff --git a/src/services/mainGame.service.ts b/src/services/mainGame.service.ts deleted file mode 100644 index 65d167550dd30c713281f951a39d7f91afb3901f..0000000000000000000000000000000000000000 --- a/src/services/mainGame.service.ts +++ /dev/null @@ -1,17 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http' -import {Config} from '../config/Config'; - -@Injectable({ - providedIn: 'root' -}) -export class MainGame { - baseUri = Config.loginUrl; - - constructor(private http: HttpClient) {} - - mainGame(data){ - return this.http.post(`${this.baseUri}`, data) - } - -} diff --git a/src/services/preSurvey.service.ts b/src/services/preSurvey.service.ts deleted file mode 100644 index ffc35584b5f7ac2fc461f37a4342878e7c470c0e..0000000000000000000000000000000000000000 --- a/src/services/preSurvey.service.ts +++ /dev/null @@ -1,71 +0,0 @@ -import { Injectable } from '@angular/core'; -import { HttpClient, HttpErrorResponse } from '@angular/common/http' -import {Config} from '../config/Config'; - -@Injectable({ - providedIn: 'root' -}) -export class PreSurveyService { - baseUrl = Config.apiUrl; - preSurveys = Config.preSurveyUrl; - profileUrl = Config.profileUrl; - userUrl = Config.userUrl; - postSurveyUrl = Config.postSurveyUrl - - constructor(private http: HttpClient) {} - submitForm(data){ - return this.http.post(`${this.preSurveys}`,data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - postProfile(data){ - return this.http.patch(`${this.profileUrl}`,data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - getPreSurveyAnswer(){ - return this.http.get(`${this.preSurveys}`,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - profileData(){ - return this.http.get(`${this.profileUrl}`,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - userData(){ - return this.http.get(`${this.userUrl}`,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - submitPostSurvey(data){ - return this.http.post(`${this.postSurveyUrl}`,data,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - - } - - getFormData() { - return this.http.get(`${this.userUrl}`,{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - getFormQuestions() { - return this.http.get(`${this.baseUrl}`+'presurvey_questions/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - getPostSurveyFormQuestions() { - return this.http.get(`${this.baseUrl}`+'postsurvey_questions/',{headers: { - "Authorization":"Token " + localStorage.getItem("user") - }}) - } - - -} diff --git a/src/test.ts b/src/test.ts index 50193eb0f283fa7064c483c2d85a07c2190cceb5..fa95211129155a619c87cc96181f32350d286bb6 100644 --- a/src/test.ts +++ b/src/test.ts @@ -17,7 +17,9 @@ declare const require: { // First, initialize the Angular testing environment. getTestBed().initTestEnvironment( BrowserDynamicTestingModule, - platformBrowserDynamicTesting() + platformBrowserDynamicTesting(), { + teardown: { destroyAfterEach: false } +} ); // Then we find all the tests. const context = require.context('./', true, /\.spec\.ts$/); diff --git a/tsconfig.json b/tsconfig.json index 8c4ef3bbae3a0708a4c9cc0c7ad0518b82ef651a..29a3fc446265cb6b8e46bd7c3310f3cbe104e59f 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -1,23 +1,23 @@ { - "compileOnSave": false, - "compilerOptions": { - "baseUrl": "./", - "outDir": "./dist/out-tsc", - "sourceMap": true, - "declaration": false, - "downlevelIteration": true, - "experimentalDecorators": true, - "module": "esnext", - "moduleResolution": "node", - "importHelpers": true, - "target": "es2015", - "lib": [ - "es2018", - "dom" - ] - }, - "angularCompilerOptions": { - "fullTemplateTypeCheck": true, - "strictInjectionParameters": true - } + "compileOnSave": false, + "compilerOptions": { + "baseUrl": "./", + "outDir": "./dist/out-tsc", + "sourceMap": true, + "declaration": false, + "downlevelIteration": true, + "experimentalDecorators": true, + "module": "es2020", + "moduleResolution": "node", + "importHelpers": true, + "target": "es2020", + "lib": ["es2018", "dom"], + "paths": { + "src/*": ["src/*"] + } + }, + "angularCompilerOptions": { + "fullTemplateTypeCheck": true, + "strictInjectionParameters": true + } } diff --git a/tslint.json b/tslint.json index c8d70f15200546102f7f9f7192ec8290d9bb6d0a..6ccb655da19958b4ac77176d2a59cef7d2582de1 100644 --- a/tslint.json +++ b/tslint.json @@ -1,13 +1,21 @@ { "extends": "tslint:recommended", "rules": { + "align": { + "options": [ + "parameters", + "statements" + ] + }, "array-type": false, "arrow-parens": false, + "arrow-return-shorthand": true, "deprecation": { "severity": "warning" }, "component-class-suffix": true, "contextual-lifecycle": true, + "curly": true, "directive-class-suffix": true, "directive-selector": [ true, @@ -21,10 +29,17 @@ "app", "kebab-case" ], + "eofline": true, "import-blacklist": [ true, "rxjs/Rx" ], + "import-spacing": true, + "indent": { + "options": [ + "spaces" + ] + }, "interface-name": false, "max-classes-per-file": false, "max-line-length": [ @@ -79,11 +94,60 @@ "no-output-native": true, "no-output-on-prefix": true, "no-output-rename": true, + "semicolon": { + "options": [ + "always" + ] + }, + "space-before-function-paren": { + "options": { + "anonymous": "never", + "asyncArrow": "always", + "constructor": "never", + "method": "never", + "named": "never" + } + }, "no-outputs-metadata-property": true, "template-banana-in-box": true, "template-no-negated-async": true, + "typedef-whitespace": { + "options": [ + { + "call-signature": "nospace", + "index-signature": "nospace", + "parameter": "nospace", + "property-declaration": "nospace", + "variable-declaration": "nospace" + }, + { + "call-signature": "onespace", + "index-signature": "onespace", + "parameter": "onespace", + "property-declaration": "onespace", + "variable-declaration": "onespace" + } + ] + }, "use-lifecycle-interface": true, - "use-pipe-transform-interface": true + "use-pipe-transform-interface": true, + "variable-name": { + "options": [ + "ban-keywords", + "check-format", + "allow-pascal-case" + ] + }, + "whitespace": { + "options": [ + "check-branch", + "check-decl", + "check-operator", + "check-separator", + "check-type", + "check-typecast" + ] + } }, "rulesDirectory": [ "codelyzer"