Merge branch 'develop'
This commit is contained in:
		
						commit
						ad9e6a4ec5
					
				
					 24 changed files with 463 additions and 799 deletions
				
			
		
							
								
								
									
										1
									
								
								.vscode/extensions.json
									
										
									
									
										vendored
									
									
								
							
							
						
						
									
										1
									
								
								.vscode/extensions.json
									
										
									
									
										vendored
									
									
								
							|  | @ -2,7 +2,6 @@ | |||
| 	"recommendations": [ | ||||
| 		"editorconfig.editorconfig", | ||||
| 		"eg2.vscode-npm-script", | ||||
| 		"ms-vscode.typescript-javascript-grammar", | ||||
| 		"dbaeumer.vscode-eslint", | ||||
| 		"johnsoncodehk.volar", | ||||
| 		"sysoev.language-stylus" | ||||
|  |  | |||
|  | @ -7,6 +7,14 @@ | |||
| 
 | ||||
| --> | ||||
| 
 | ||||
| ## 12.100.0 (2021/12/17) | ||||
| 
 | ||||
| ### Improvements | ||||
| - クライアント: モバイルでの各種メニュー、リアクションピッカーの表示を改善 | ||||
| 
 | ||||
| ### Bugfixes | ||||
| - クライアント: 一部のコンポーネントが裏に隠れるのを修正 | ||||
| 
 | ||||
| ## 12.99.3 (2021/12/14) | ||||
| ### Bugfixes | ||||
| - クライアント: オートコンプリートがダイアログの裏に隠れる問題を修正 | ||||
|  |  | |||
|  | @ -106,7 +106,7 @@ clickToShow: "クリックして表示" | |||
| sensitive: "閲覧注意" | ||||
| add: "追加" | ||||
| reaction: "リアクション" | ||||
| reactionSettingDescription: "リアクションピッカーに表示するリアクションを設定します。" | ||||
| reactionSetting: "ピッカーに表示するリアクション" | ||||
| reactionSettingDescription2: "ドラッグして並び替え、クリックして削除、+を押して追加します。" | ||||
| rememberNoteVisibility: "公開範囲を記憶する" | ||||
| attachCancel: "添付取り消し" | ||||
|  | @ -815,6 +815,7 @@ voteConfirm: "「{choice}」に投票しますか?" | |||
| hide: "隠す" | ||||
| leaveGroup: "グループから抜ける" | ||||
| leaveGroupConfirm: "「{name}」から抜けますか?" | ||||
| useDrawerReactionPickerForMobile: "モバイルデバイスのときドロワーで表示" | ||||
| 
 | ||||
| _emailUnavailable: | ||||
|   used: "既に使用されています" | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| { | ||||
| 	"name": "misskey", | ||||
| 	"version": "12.99.3", | ||||
| 	"version": "12.100.0", | ||||
| 	"codename": "indigo", | ||||
| 	"repository": { | ||||
| 		"type": "git", | ||||
|  |  | |||
|  | @ -170,7 +170,7 @@ | |||
| 		"strict-event-emitter-types": "2.0.0", | ||||
| 		"stringz": "2.1.0", | ||||
| 		"style-loader": "3.3.1", | ||||
| 		"summaly": "2.4.1", | ||||
| 		"summaly": "2.5.0", | ||||
| 		"syslog-pro": "1.0.0", | ||||
| 		"systeminformation": "5.9.9", | ||||
| 		"throttle-debounce": "3.0.1", | ||||
|  |  | |||
|  | @ -188,6 +188,11 @@ | |||
|     node-fetch "^2.6.1" | ||||
|     yaml-ast-parser "0.0.43" | ||||
| 
 | ||||
| "@sindresorhus/is@^3.0.0": | ||||
|   version "3.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-3.1.2.tgz#548650de521b344e3781fbdb0ece4aa6f729afb8" | ||||
|   integrity sha512-JiX9vxoKMmu8Y3Zr2RVathBL1Cdu4Nt4MuNWemt1Nc06A0RAin9c5FArkhGsyMBWfCu4zj+9b+GxtjAnE4qqLQ== | ||||
| 
 | ||||
| "@sindresorhus/is@^4.0.0": | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/@sindresorhus/is/-/is-4.0.0.tgz#2ff674e9611b45b528896d820d3d7a812de2f0e4" | ||||
|  | @ -314,13 +319,6 @@ | |||
|   dependencies: | ||||
|     cbor "*" | ||||
| 
 | ||||
| "@types/cheerio@0.22.18": | ||||
|   version "0.22.18" | ||||
|   resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.18.tgz#19018dceae691509901e339d63edf1e935978fe6" | ||||
|   integrity sha512-Fq7R3fINAPSdUEhOyjG4iVxgHrOnqDJbY0/BUuiN0pvD/rfmZWekVZnv+vcs8TtpA2XF50uv50LaE4EnpEL/Hw== | ||||
|   dependencies: | ||||
|     "@types/node" "*" | ||||
| 
 | ||||
| "@types/color-name@^1.1.1": | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0" | ||||
|  | @ -738,11 +736,6 @@ | |||
|   dependencies: | ||||
|     "@types/node" "*" | ||||
| 
 | ||||
| "@types/rsvp@^4.0.4": | ||||
|   version "4.0.4" | ||||
|   resolved "https://registry.yarnpkg.com/@types/rsvp/-/rsvp-4.0.4.tgz#55e93e7054027f1ad4b4ebc1e60e59eb091e2d32" | ||||
|   integrity sha512-J3Ol++HCC7/hwZhanDvggFYU/GtxHxE/e7cGRWxR04BF7Tt3TqJZ84BkzQgDxmX0uu8IagiyfmfoUlBACh2Ilg== | ||||
| 
 | ||||
| "@types/sanitize-html@2.5.0": | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/@types/sanitize-html/-/sanitize-html-2.5.0.tgz#bfef58fbcf2674b20ffcc23c3506faa68c3a13e3" | ||||
|  | @ -1230,7 +1223,7 @@ ajv-keywords@^3.5.2: | |||
|   resolved "https://registry.yarnpkg.com/ajv-keywords/-/ajv-keywords-3.5.2.tgz#31f29da5ab6e00d1c2d329acf7b5929614d5014d" | ||||
|   integrity sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ== | ||||
| 
 | ||||
| ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5, ajv@^6.5.5: | ||||
| ajv@^6.10.0, ajv@^6.12.4, ajv@^6.12.5: | ||||
|   version "6.12.5" | ||||
|   resolved "https://registry.yarnpkg.com/ajv/-/ajv-6.12.5.tgz#19b0e8bae8f476e5ba666300387775fb1a00a4da" | ||||
|   integrity sha512-lRF8RORchjpKG50/WFf8xmg7sgCLFiYNNnqdKflk63whMQcWR5ngGjiSXkL9bjxy6B2npOK2HSMN49jEBMSkag== | ||||
|  | @ -1290,7 +1283,7 @@ ansi-styles@^4.0.0, ansi-styles@^4.1.0: | |||
|     "@types/color-name" "^1.1.1" | ||||
|     color-convert "^2.0.1" | ||||
| 
 | ||||
| any-promise@^1.0.0, any-promise@^1.1.0: | ||||
| any-promise@^1.0.0: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/any-promise/-/any-promise-1.3.0.tgz#abc6afeedcea52e809cdc0376aed3ce39635d17f" | ||||
|   integrity sha1-q8av7tzqUugJzcA3au0845Y10X8= | ||||
|  | @ -1483,16 +1476,6 @@ aws-sdk@2.1013.0: | |||
|     uuid "3.3.2" | ||||
|     xml2js "0.4.19" | ||||
| 
 | ||||
| aws-sign2@~0.7.0: | ||||
|   version "0.7.0" | ||||
|   resolved "https://registry.yarnpkg.com/aws-sign2/-/aws-sign2-0.7.0.tgz#b46e890934a9591f2d2f6f86d7e6a9f1b3fe76a8" | ||||
|   integrity sha1-tG6JCTSpWR8tL2+G1+ap8bP+dqg= | ||||
| 
 | ||||
| aws4@^1.8.0: | ||||
|   version "1.9.1" | ||||
|   resolved "https://registry.yarnpkg.com/aws4/-/aws4-1.9.1.tgz#7e33d8f7d449b3f673cd72deb9abdc552dbe528e" | ||||
|   integrity sha512-wMHVg2EOHaMRxbzgFJ9gtjOOCrI80OHLG14rxi28XwOW8ux6IiEbRCGGGqCtdAIg4FQCbW20k9RsT4y3gJlFug== | ||||
| 
 | ||||
| axios@^0.19.2: | ||||
|   version "0.19.2" | ||||
|   resolved "https://registry.yarnpkg.com/axios/-/axios-0.19.2.tgz#3ea36c5d8818d0d5f8a8a97a6d36b86cdc00cb27" | ||||
|  | @ -1882,11 +1865,6 @@ canonicalize@^1.0.1: | |||
|   resolved "https://registry.yarnpkg.com/canonicalize/-/canonicalize-1.0.1.tgz#657b4f3fa38a6ecb97a9e5b7b26d7a19cc6e0da9" | ||||
|   integrity sha512-N3cmB3QLhS5TJ5smKFf1w42rJXWe6C1qP01z4dxJiI5v269buii4fLHWETDyf7yEd0azGLNC63VxNMiPd2u0Cg== | ||||
| 
 | ||||
| caseless@~0.12.0: | ||||
|   version "0.12.0" | ||||
|   resolved "https://registry.yarnpkg.com/caseless/-/caseless-0.12.0.tgz#1b681c21ff84033c826543090689420d187151dc" | ||||
|   integrity sha1-G2gcIf+EAzyCZUMJBolCDRhxUdw= | ||||
| 
 | ||||
| cbor@*: | ||||
|   version "7.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/cbor/-/cbor-7.0.5.tgz#ed54cdbc19fa7352bb328d00a5393aa7ce45a10f" | ||||
|  | @ -1964,31 +1942,7 @@ chartjs-plugin-zoom@1.1.1: | |||
|   dependencies: | ||||
|     hammerjs "^2.0.8" | ||||
| 
 | ||||
| cheerio-httpcli@0.8.2: | ||||
|   version "0.8.2" | ||||
|   resolved "https://registry.yarnpkg.com/cheerio-httpcli/-/cheerio-httpcli-0.8.2.tgz#0189bda71c8bd2852de78e154291e2288184fbf2" | ||||
|   integrity sha512-grIzTwQg/nE7Oy6VvL19pf0UlM6wiluy/AOpXfQLVFrSi21F8wnO3dLchtaH2hfMF6jz68ot0/ngyQQVrp2VTw== | ||||
|   dependencies: | ||||
|     "@types/cheerio" "0.22.18" | ||||
|     "@types/rsvp" "^4.0.4" | ||||
|     async "^3.2.0" | ||||
|     cheerio "^0.22.0" | ||||
|     colors "^1.4.0" | ||||
|     foreach "^2.0.5" | ||||
|     he "^1.2.0" | ||||
|     iconv-lite "^0.6.3" | ||||
|     import-fresh "^3.3.0" | ||||
|     jschardet "^3.0.0" | ||||
|     object-assign "^4.1.1" | ||||
|     os-locale "^5.0.0" | ||||
|     prettyjson "^1.2.1" | ||||
|     request "^2.88.2" | ||||
|     rsvp "^4.8.5" | ||||
|     tough-cookie "^2.5.0" | ||||
|     type-of "^2.0.1" | ||||
|     valid-url "^1.0.9" | ||||
| 
 | ||||
| cheerio@^0.22.0: | ||||
| cheerio@0.22.0: | ||||
|   version "0.22.0" | ||||
|   resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e" | ||||
|   integrity sha1-qbqoYKP5tZWmuBsahocxIe06Jp4= | ||||
|  | @ -2169,12 +2123,7 @@ colorette@^1.2.0, colorette@^1.2.1, colorette@^1.2.2: | |||
|   resolved "https://registry.yarnpkg.com/colorette/-/colorette-1.2.2.tgz#cbcc79d5e99caea2dbf10eb3a26fd8b3e6acfa94" | ||||
|   integrity sha512-MKGMzyfeuutC/ZJ1cba9NqcNpfeqMUcYmyF1ZFY6/Cn7CNSAKx6a+s48sqLqyAiZuaP2TcqMhoo+dlwFnVxT9w== | ||||
| 
 | ||||
| colors@^1.1.2, colors@^1.4.0: | ||||
|   version "1.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/colors/-/colors-1.4.0.tgz#c50491479d4c1bdaed2c9ced32cf7c7dc2360f78" | ||||
|   integrity sha512-a+UqTh4kgZg/SlGvfbzDHpgRu7AAQOmmqRHJnxhRZICKFUT91brVhNNt58CMWU9PsBbv3PDCZUHbVxuDiH2mtA== | ||||
| 
 | ||||
| combined-stream@^1.0.6, combined-stream@^1.0.8, combined-stream@~1.0.6: | ||||
| combined-stream@^1.0.8: | ||||
|   version "1.0.8" | ||||
|   resolved "https://registry.yarnpkg.com/combined-stream/-/combined-stream-1.0.8.tgz#c3d45a8b34fd730631a110a8a2520682b31d5a7f" | ||||
|   integrity sha512-FQN4MRfuJeHf7cBbBMJFXhKSDq+2kAArBlmRBvcvFE5BB1HZKXtSFASDhdlz9zOYwxh8lDdnvmMOe/+5cdoEdg== | ||||
|  | @ -2329,7 +2278,7 @@ cross-env@7.0.3: | |||
|   dependencies: | ||||
|     cross-spawn "^7.0.1" | ||||
| 
 | ||||
| cross-spawn@^7.0.0, cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: | ||||
| cross-spawn@^7.0.1, cross-spawn@^7.0.2, cross-spawn@^7.0.3: | ||||
|   version "7.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/cross-spawn/-/cross-spawn-7.0.3.tgz#f73a85b9d5d41d045551c177e2882d4ac85728a6" | ||||
|   integrity sha512-iRDPJKUPVEND7dHPO8rkbOnPpyDygcDFtWjpeWNCgy8WP2rXcxXL8TskReQl6OrB2G7+UJrags1q15Fudc7G6w== | ||||
|  | @ -2535,14 +2484,14 @@ debug@4, debug@4.3.1, debug@^4.0.1, debug@^4.1.0, debug@^4.1.1, debug@^4.3.1: | |||
|   dependencies: | ||||
|     ms "2.1.2" | ||||
| 
 | ||||
| debug@4.3.2, debug@^4.3.2: | ||||
|   version "4.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" | ||||
|   integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== | ||||
| debug@4.3.3: | ||||
|   version "4.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.3.tgz#04266e0b70a98d4462e6e288e38259213332b664" | ||||
|   integrity sha512-/zxw5+vh1Tfv+4Qn7a5nsbcJKPaSvCDhojn6FEl9vupwK2VCSDtEiEtqr8DFtzYFOdz63LBkxec7DYuc2jon6Q== | ||||
|   dependencies: | ||||
|     ms "2.1.2" | ||||
| 
 | ||||
| debug@=3.1.0, debug@~3.1.0: | ||||
| debug@=3.1.0: | ||||
|   version "3.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-3.1.0.tgz#5bb5a0672628b64149566ba16819e61518c67261" | ||||
|   integrity sha512-OX8XqP7/1a9cqkxYw2yXss15f26NKWBpDXQd0/uK/KPqdQhxbPa994hnzjcE2VqQpDslf55723cKPUOGSmMY3g== | ||||
|  | @ -2563,6 +2512,13 @@ debug@^3.2.7: | |||
|   dependencies: | ||||
|     ms "^2.1.1" | ||||
| 
 | ||||
| debug@^4.3.2: | ||||
|   version "4.3.2" | ||||
|   resolved "https://registry.yarnpkg.com/debug/-/debug-4.3.2.tgz#f0a49c18ac8779e31d4a0c6029dfb76873c7428b" | ||||
|   integrity sha512-mOp8wKcvj7XxC78zLgw/ZA+6TSgkoE2C/ienthhRD298T7UNwAg9diBpLRxC0mOezLl4B0xV7M0cCO6P/O0Xhw== | ||||
|   dependencies: | ||||
|     ms "2.1.2" | ||||
| 
 | ||||
| debuglog@^1.0.0: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/debuglog/-/debuglog-1.0.1.tgz#aa24ffb9ac3df9a2351837cfb2d279360cd78492" | ||||
|  | @ -3296,21 +3252,6 @@ execa@6.0.0: | |||
|     signal-exit "^3.0.5" | ||||
|     strip-final-newline "^3.0.0" | ||||
| 
 | ||||
| execa@^4.0.0: | ||||
|   version "4.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/execa/-/execa-4.1.0.tgz#4e5491ad1572f2f17a77d388c6c857135b22847a" | ||||
|   integrity sha512-j5W0//W7f8UxAn8hXVnwG8tLwdiUy4FJLcSupCg6maBYZDpyBvTApK7KyuI4bKj8KOh1r2YH+6ucuYtJv1bTZA== | ||||
|   dependencies: | ||||
|     cross-spawn "^7.0.0" | ||||
|     get-stream "^5.0.0" | ||||
|     human-signals "^1.1.1" | ||||
|     is-stream "^2.0.0" | ||||
|     merge-stream "^2.0.0" | ||||
|     npm-run-path "^4.0.0" | ||||
|     onetime "^5.1.0" | ||||
|     signal-exit "^3.0.2" | ||||
|     strip-final-newline "^2.0.0" | ||||
| 
 | ||||
| exit-on-epipe@~1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/exit-on-epipe/-/exit-on-epipe-1.0.1.tgz#0bdd92e87d5285d267daa8171d0eb06159689692" | ||||
|  | @ -3342,11 +3283,6 @@ extend-shallow@^2.0.1: | |||
|   dependencies: | ||||
|     is-extendable "^0.1.0" | ||||
| 
 | ||||
| extend@~3.0.2: | ||||
|   version "3.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/extend/-/extend-3.0.2.tgz#f8b1136b4071fbd8eb140aff858b1019ec2915fa" | ||||
|   integrity sha512-fjquC59cD7CyW6urNXK0FBufkZcoiGG80wTuPujX590cB5Ttln20E2UB4S/WARVqhXffZl2LNgS+gQdPIIim/g== | ||||
| 
 | ||||
| extsprintf@1.3.0: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/extsprintf/-/extsprintf-1.3.0.tgz#96918440e3041a7a414f8c52e3c574eb3c3e1e05" | ||||
|  | @ -3509,16 +3445,6 @@ follow-redirects@1.5.10: | |||
|   dependencies: | ||||
|     debug "=3.1.0" | ||||
| 
 | ||||
| foreach@^2.0.5: | ||||
|   version "2.0.5" | ||||
|   resolved "https://registry.yarnpkg.com/foreach/-/foreach-2.0.5.tgz#0bee005018aeb260d0a3af3ae658dd0136ec1b99" | ||||
|   integrity sha1-C+4AUBiusmDQo6865ljdATbsG5k= | ||||
| 
 | ||||
| forever-agent@~0.6.1: | ||||
|   version "0.6.1" | ||||
|   resolved "https://registry.yarnpkg.com/forever-agent/-/forever-agent-0.6.1.tgz#fbc71f0c41adeb37f96c577ad1ed42d8fdacca91" | ||||
|   integrity sha1-+8cfDEGt6zf5bFd60e1C2P2sypE= | ||||
| 
 | ||||
| form-data@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/form-data/-/form-data-3.0.0.tgz#31b7e39c85f1355b7139ee0c647cf0de7f83c682" | ||||
|  | @ -3528,15 +3454,6 @@ form-data@^3.0.0: | |||
|     combined-stream "^1.0.8" | ||||
|     mime-types "^2.1.12" | ||||
| 
 | ||||
| form-data@~2.3.2: | ||||
|   version "2.3.3" | ||||
|   resolved "https://registry.yarnpkg.com/form-data/-/form-data-2.3.3.tgz#dcce52c05f644f298c6a7ab936bd724ceffbf3a6" | ||||
|   integrity sha512-1lLKB2Mu3aGP1Q/2eCOx0fNbRMe7XdwktwOruhfqqd0rIJWwN4Dh+E3hrPSlDCXnSR7UtZ1N38rVXm+6+MEhJQ== | ||||
|   dependencies: | ||||
|     asynckit "^0.4.0" | ||||
|     combined-stream "^1.0.6" | ||||
|     mime-types "^2.1.12" | ||||
| 
 | ||||
| fresh@~0.5.2: | ||||
|   version "0.5.2" | ||||
|   resolved "https://registry.yarnpkg.com/fresh/-/fresh-0.5.2.tgz#3d8cadd90d976569fa835ab1f8e4b23a105605a7" | ||||
|  | @ -3623,7 +3540,7 @@ get-port@^5.1.1: | |||
|   resolved "https://registry.yarnpkg.com/get-port/-/get-port-5.1.1.tgz#0469ed07563479de6efb986baf053dcd7d4e3193" | ||||
|   integrity sha512-g/Q1aTSDOxFpchXC4i8ZWvxA1lnPqx/JHqcpIw0/LX9T8x/GBbi6YnlN5nhaKIFkT8oFsscUKgDJYxfwfS6QsQ== | ||||
| 
 | ||||
| get-stream@^5.0.0, get-stream@^5.1.0: | ||||
| get-stream@^5.1.0: | ||||
|   version "5.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/get-stream/-/get-stream-5.2.0.tgz#4966a1795ee5ace65e706c4b7beb71257d6e22d3" | ||||
|   integrity sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA== | ||||
|  | @ -3744,6 +3661,23 @@ globby@^11.0.4: | |||
|     merge2 "^1.3.0" | ||||
|     slash "^3.0.0" | ||||
| 
 | ||||
| got@11.5.1: | ||||
|   version "11.5.1" | ||||
|   resolved "https://registry.yarnpkg.com/got/-/got-11.5.1.tgz#bf098a270fe80b3fb88ffd5a043a59ebb0a391db" | ||||
|   integrity sha512-reQEZcEBMTGnujmQ+Wm97mJs/OK6INtO6HmLI+xt3+9CvnRwWjXutUvb2mqr+Ao4Lu05Rx6+udx9sOQAmExMxA== | ||||
|   dependencies: | ||||
|     "@sindresorhus/is" "^3.0.0" | ||||
|     "@szmarczak/http-timer" "^4.0.5" | ||||
|     "@types/cacheable-request" "^6.0.1" | ||||
|     "@types/responselike" "^1.0.0" | ||||
|     cacheable-lookup "^5.0.3" | ||||
|     cacheable-request "^7.0.1" | ||||
|     decompress-response "^6.0.0" | ||||
|     http2-wrapper "^1.0.0-beta.5.0" | ||||
|     lowercase-keys "^2.0.0" | ||||
|     p-cancelable "^2.0.0" | ||||
|     responselike "^2.0.0" | ||||
| 
 | ||||
| got@11.8.2: | ||||
|   version "11.8.2" | ||||
|   resolved "https://registry.yarnpkg.com/got/-/got-11.8.2.tgz#7abb3959ea28c31f3576f1576c1effce23f33599" | ||||
|  | @ -3786,19 +3720,6 @@ hammerjs@^2.0.8: | |||
|   resolved "https://registry.yarnpkg.com/hammerjs/-/hammerjs-2.0.8.tgz#04ef77862cff2bb79d30f7692095930222bf60f1" | ||||
|   integrity sha1-BO93hiz/K7edMPdpIJWTAiK/YPE= | ||||
| 
 | ||||
| har-schema@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/har-schema/-/har-schema-2.0.0.tgz#a94c2224ebcac04782a0d9035521f24735b7ec92" | ||||
|   integrity sha1-qUwiJOvKwEeCoNkDVSHyRzW37JI= | ||||
| 
 | ||||
| har-validator@~5.1.3: | ||||
|   version "5.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/har-validator/-/har-validator-5.1.3.tgz#1ef89ebd3e4996557675eed9893110dc350fa080" | ||||
|   integrity sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g== | ||||
|   dependencies: | ||||
|     ajv "^6.5.5" | ||||
|     har-schema "^2.0.0" | ||||
| 
 | ||||
| has-bigints@^1.0.1: | ||||
|   version "1.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/has-bigints/-/has-bigints-1.0.1.tgz#64fe6acb020673e3b78db035a5af69aa9d07b113" | ||||
|  | @ -3843,7 +3764,7 @@ has@^1.0.3: | |||
|   dependencies: | ||||
|     function-bind "^1.1.1" | ||||
| 
 | ||||
| he@1.2.0, he@^1.2.0: | ||||
| he@1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/he/-/he-1.2.0.tgz#84ae65fa7eafb165fddb61566ae14baf05664f0f" | ||||
|   integrity sha512-F/1DnUGPopORZi0ni+CvrCgHQ5FyEAHRLSApuYWMmrbSwoN2Mn/7k+Gl38gJnR7yyDZk6WLXwiGod1JOWNDKGw== | ||||
|  | @ -3963,14 +3884,13 @@ http-signature@1.3.5: | |||
|     jsprim "^1.2.2" | ||||
|     sshpk "^1.14.1" | ||||
| 
 | ||||
| http-signature@~1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/http-signature/-/http-signature-1.2.0.tgz#9aecd925114772f3d95b65a60abb8f7c18fbace1" | ||||
|   integrity sha1-muzZJRFHcvPZW2WmCruPfBj7rOE= | ||||
| http2-wrapper@^1.0.0-beta.5.0: | ||||
|   version "1.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/http2-wrapper/-/http2-wrapper-1.0.3.tgz#b8f55e0c1f25d4ebd08b3b0c2c079f9590800b3d" | ||||
|   integrity sha512-V+23sDMr12Wnz7iTcDeJr3O6AIxlnvT/bmaAAAP/Xda35C90p9599p0F1eHR/N1KILWSoWVAiOMFjBBXaXSMxg== | ||||
|   dependencies: | ||||
|     assert-plus "^1.0.0" | ||||
|     jsprim "^1.2.2" | ||||
|     sshpk "^1.7.0" | ||||
|     quick-lru "^5.1.1" | ||||
|     resolve-alpn "^1.0.0" | ||||
| 
 | ||||
| http2-wrapper@^1.0.0-beta.5.2: | ||||
|   version "1.0.0-beta.5.2" | ||||
|  | @ -3995,11 +3915,6 @@ https-proxy-agent@^5.0.0: | |||
|     agent-base "6" | ||||
|     debug "4" | ||||
| 
 | ||||
| human-signals@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-1.1.1.tgz#c5b1cd14f50aeae09ab6c59fe63ba3395fe4dfa3" | ||||
|   integrity sha512-SEQu7vl8KjNL2eoGBLF3+wAjpsNfA9XMlXAYj/3EdaNfAlxKthD1xjEQfGOUhllCGGJVNY34bRr6lPINhNjyZw== | ||||
| 
 | ||||
| human-signals@^3.0.1: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/human-signals/-/human-signals-3.0.1.tgz#c740920859dafa50e5a3222da9d3bf4bb0e5eef5" | ||||
|  | @ -4031,13 +3946,6 @@ iconv-lite@^0.6.2: | |||
|   dependencies: | ||||
|     safer-buffer ">= 2.1.2 < 3.0.0" | ||||
| 
 | ||||
| iconv-lite@^0.6.3: | ||||
|   version "0.6.3" | ||||
|   resolved "https://registry.yarnpkg.com/iconv-lite/-/iconv-lite-0.6.3.tgz#a52f80bf38da1952eb5c681790719871a1a72501" | ||||
|   integrity sha512-4fCk79wshMdzMp2rH06qWrJE4iolqLhCUH+OiuIgU++RB0+94NlDL81atO7GX55uUKueo0txHNtvEyI6D7WdMw== | ||||
|   dependencies: | ||||
|     safer-buffer ">= 2.1.2 < 3.0.0" | ||||
| 
 | ||||
| icss-utils@^5.0.0, icss-utils@^5.1.0: | ||||
|   version "5.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/icss-utils/-/icss-utils-5.1.0.tgz#c6be6858abd013d768e98366ae47e25d5887b1ae" | ||||
|  | @ -4083,14 +3991,6 @@ import-fresh@^3.0.0, import-fresh@^3.2.1: | |||
|     parent-module "^1.0.0" | ||||
|     resolve-from "^4.0.0" | ||||
| 
 | ||||
| import-fresh@^3.3.0: | ||||
|   version "3.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/import-fresh/-/import-fresh-3.3.0.tgz#37162c25fcb9ebaa2e6e53d5b4d88ce17d9e0c2b" | ||||
|   integrity sha512-veYYhQa+D1QBKznvhUHxb8faxlrwUnxseDAbAp457E0wLNio2bOSKnjYDhMj+YiAq61xrMGhQk9iXVk5FzgQMw== | ||||
|   dependencies: | ||||
|     parent-module "^1.0.0" | ||||
|     resolve-from "^4.0.0" | ||||
| 
 | ||||
| imurmurhash@^0.1.4: | ||||
|   version "0.1.4" | ||||
|   resolved "https://registry.yarnpkg.com/imurmurhash/-/imurmurhash-0.1.4.tgz#9218b9b2b928a238b13dc4fb6b6d576f231453ea" | ||||
|  | @ -4158,11 +4058,6 @@ internal-slot@^1.0.3: | |||
|     has "^1.0.3" | ||||
|     side-channel "^1.0.4" | ||||
| 
 | ||||
| invert-kv@^3.0.0: | ||||
|   version "3.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/invert-kv/-/invert-kv-3.0.1.tgz#a93c7a3d4386a1dc8325b97da9bb1620c0282523" | ||||
|   integrity sha512-CYdFeFexxhv/Bcny+Q0BfOV+ltRlJcd4BBZBYFX/O0u4npJrgZtIcjokegtiSMAvlMTJ+Koq0GBCc//3bueQxw== | ||||
| 
 | ||||
| ioredis@^4.27.0: | ||||
|   version "4.27.6" | ||||
|   resolved "https://registry.yarnpkg.com/ioredis/-/ioredis-4.27.6.tgz#a53d427d3fe75fbd10ed7ad150ce00559df8dcf8" | ||||
|  | @ -4418,11 +4313,6 @@ is-shared-array-buffer@^1.0.1: | |||
|   resolved "https://registry.yarnpkg.com/is-shared-array-buffer/-/is-shared-array-buffer-1.0.1.tgz#97b0c85fbdacb59c9c446fe653b82cf2b5b7cfe6" | ||||
|   integrity sha512-IU0NmyknYZN0rChcKhRO1X8LYz5Isj/Fsqh8NJOSf+N/hCOTwy29F32Ik7a+QszE63IdvmwdTPDd6cZ5pg4cwA== | ||||
| 
 | ||||
| is-stream@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-2.0.0.tgz#bde9c32680d6fae04129d6ac9d921ce7815f78e3" | ||||
|   integrity sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw== | ||||
| 
 | ||||
| is-stream@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-stream/-/is-stream-3.0.0.tgz#e6bfd7aa6bef69f4f472ce9bb681e3e57b4319ac" | ||||
|  | @ -4456,7 +4346,7 @@ is-symbol@^1.0.3: | |||
|   dependencies: | ||||
|     has-symbols "^1.0.2" | ||||
| 
 | ||||
| is-typedarray@^1.0.0, is-typedarray@~1.0.0: | ||||
| is-typedarray@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/is-typedarray/-/is-typedarray-1.0.0.tgz#e479c80858df0c1b11ddda6940f96011fcda4a9a" | ||||
|   integrity sha1-5HnICFjfDBsR3dppQPlgEfzaSpo= | ||||
|  | @ -4498,11 +4388,6 @@ isexe@^2.0.0: | |||
|   resolved "https://registry.yarnpkg.com/isexe/-/isexe-2.0.0.tgz#e8fbf374dc556ff8947a10dcb0572d633f2cfa10" | ||||
|   integrity sha1-6PvzdNxVb/iUehDcsFctYz8s+hA= | ||||
| 
 | ||||
| isstream@~0.1.2: | ||||
|   version "0.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/isstream/-/isstream-0.1.2.tgz#47e63f7af55afa6f92e1500e690eb8b8529c099a" | ||||
|   integrity sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo= | ||||
| 
 | ||||
| jest-worker@^26.6.2: | ||||
|   version "26.6.2" | ||||
|   resolved "https://registry.yarnpkg.com/jest-worker/-/jest-worker-26.6.2.tgz#7f72cbc4d643c365e27b9fd775f9d0eaa9c7a8ed" | ||||
|  | @ -4575,7 +4460,7 @@ jsbn@~0.1.0: | |||
|   resolved "https://registry.yarnpkg.com/jsbn/-/jsbn-0.1.1.tgz#a5e654c2e5a2deb5f201d96cefbca80c0ef2f513" | ||||
|   integrity sha1-peZUwuWi3rXyAdls77yoDA7y9RM= | ||||
| 
 | ||||
| jschardet@^3.0.0: | ||||
| jschardet@3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/jschardet/-/jschardet-3.0.0.tgz#898d2332e45ebabbdb6bf2feece9feea9a99e882" | ||||
|   integrity sha512-lJH6tJ77V8Nzd5QWRkFYCLc13a3vADkh3r/Fi8HupZGWk2OVVDfnZP8V/VgQgZ+lzW0kG2UGb5hFgt3V3ndotQ== | ||||
|  | @ -4643,7 +4528,7 @@ json-stable-stringify-without-jsonify@^1.0.1: | |||
|   resolved "https://registry.yarnpkg.com/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz#9db7b59496ad3f3cfef30a75142d2d930ad72651" | ||||
|   integrity sha1-nbe1lJatPzz+8wp1FC0tkwrXJlE= | ||||
| 
 | ||||
| json-stringify-safe@^5.0.1, json-stringify-safe@~5.0.1: | ||||
| json-stringify-safe@^5.0.1: | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/json-stringify-safe/-/json-stringify-safe-5.0.1.tgz#1296a2d58fd45f19a0f6ce01d65701e2c735b6eb" | ||||
|   integrity sha1-Epai1Y/UXxmg9s4B1lcB4sc1tus= | ||||
|  | @ -4773,26 +4658,11 @@ koa-bodyparser@4.3.0: | |||
|     co-body "^6.0.0" | ||||
|     copy-to "^2.0.1" | ||||
| 
 | ||||
| koa-compose@^3.0.0: | ||||
|   version "3.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-3.2.1.tgz#a85ccb40b7d986d8e5a345b3a1ace8eabcf54de7" | ||||
|   integrity sha1-qFzLQLfZhtjlo0Wzoazo6rz1Tec= | ||||
|   dependencies: | ||||
|     any-promise "^1.1.0" | ||||
| 
 | ||||
| koa-compose@^4.1.0: | ||||
|   version "4.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/koa-compose/-/koa-compose-4.1.0.tgz#507306b9371901db41121c812e923d0d67d3e877" | ||||
|   integrity sha512-8ODW8TrDuMYvXRwra/Kh7/rJo9BtOfPc6qO8eAfC80CnCvSjSl0bkRM24X6/XBBEyj0v1nRUQ1LyOy3dbqOWXw== | ||||
| 
 | ||||
| koa-convert@^1.2.0: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-1.2.0.tgz#da40875df49de0539098d1700b50820cebcd21d0" | ||||
|   integrity sha1-2kCHXfSd4FOQmNFwC1CCDOvNIdA= | ||||
|   dependencies: | ||||
|     co "^4.6.0" | ||||
|     koa-compose "^3.0.0" | ||||
| 
 | ||||
| koa-convert@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/koa-convert/-/koa-convert-2.0.0.tgz#86a0c44d81d40551bae22fee6709904573eea4f5" | ||||
|  | @ -4877,35 +4747,6 @@ koa-views@7.0.2: | |||
|     pretty "^2.0.0" | ||||
|     resolve-path "^1.4.0" | ||||
| 
 | ||||
| koa@2.13.1: | ||||
|   version "2.13.1" | ||||
|   resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.1.tgz#6275172875b27bcfe1d454356a5b6b9f5a9b1051" | ||||
|   integrity sha512-Lb2Dloc72auj5vK4X4qqL7B5jyDPQaZucc9sR/71byg7ryoD1NCaCm63CShk9ID9quQvDEi1bGR/iGjCG7As3w== | ||||
|   dependencies: | ||||
|     accepts "^1.3.5" | ||||
|     cache-content-type "^1.0.0" | ||||
|     content-disposition "~0.5.2" | ||||
|     content-type "^1.0.4" | ||||
|     cookies "~0.8.0" | ||||
|     debug "~3.1.0" | ||||
|     delegates "^1.0.0" | ||||
|     depd "^2.0.0" | ||||
|     destroy "^1.0.4" | ||||
|     encodeurl "^1.0.2" | ||||
|     escape-html "^1.0.3" | ||||
|     fresh "~0.5.2" | ||||
|     http-assert "^1.3.0" | ||||
|     http-errors "^1.6.3" | ||||
|     is-generator-function "^1.0.7" | ||||
|     koa-compose "^4.1.0" | ||||
|     koa-convert "^1.2.0" | ||||
|     on-finished "^2.3.0" | ||||
|     only "~0.0.2" | ||||
|     parseurl "^1.3.2" | ||||
|     statuses "^1.5.0" | ||||
|     type-is "^1.6.16" | ||||
|     vary "^1.1.2" | ||||
| 
 | ||||
| koa@2.13.4: | ||||
|   version "2.13.4" | ||||
|   resolved "https://registry.yarnpkg.com/koa/-/koa-2.13.4.tgz#ee5b0cb39e0b8069c38d115139c774833d32462e" | ||||
|  | @ -4960,13 +4801,6 @@ lazystream@^1.0.0: | |||
|   dependencies: | ||||
|     readable-stream "^2.0.5" | ||||
| 
 | ||||
| lcid@^3.0.0: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/lcid/-/lcid-3.1.1.tgz#9030ec479a058fc36b5e8243ebaac8b6ac582fd0" | ||||
|   integrity sha512-M6T051+5QCGLBQb8id3hdvIW8+zeFV2FyBGFS9IEK5H9Wt4MueD4bW1eWikpHgZp+5xR3l5c8pZUkQsIA0BFZg== | ||||
|   dependencies: | ||||
|     invert-kv "^3.0.0" | ||||
| 
 | ||||
| levn@^0.4.1: | ||||
|   version "0.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/levn/-/levn-0.4.1.tgz#ae4562c007473b932a6200d403268dd2fffc6ade" | ||||
|  | @ -5193,13 +5027,6 @@ make-fetch-happen@^8.0.14: | |||
|     socks-proxy-agent "^5.0.0" | ||||
|     ssri "^8.0.0" | ||||
| 
 | ||||
| map-age-cleaner@^0.1.3: | ||||
|   version "0.1.3" | ||||
|   resolved "https://registry.yarnpkg.com/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz#7d583a7306434c055fe474b0f45078e6e1b4b92a" | ||||
|   integrity sha512-bJzx6nMoP6PDLPBFmg7+xRKeFZvFboMrGlxmNj9ClvX53KrmvM5bXFXEWjbz4cz1AFn+jWJ9z/DJSz7hrs0w3w== | ||||
|   dependencies: | ||||
|     p-defer "^1.0.0" | ||||
| 
 | ||||
| mdn-data@2.0.14: | ||||
|   version "2.0.14" | ||||
|   resolved "https://registry.yarnpkg.com/mdn-data/-/mdn-data-2.0.14.tgz#7113fc4281917d63ce29b43446f701e68c25ba50" | ||||
|  | @ -5210,15 +5037,6 @@ media-typer@0.3.0: | |||
|   resolved "https://registry.yarnpkg.com/media-typer/-/media-typer-0.3.0.tgz#8710d7af0aa626f8fffa1ce00168545263255748" | ||||
|   integrity sha1-hxDXrwqmJvj/+hzgAWhUUmMlV0g= | ||||
| 
 | ||||
| mem@^5.0.0: | ||||
|   version "5.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/mem/-/mem-5.1.1.tgz#7059b67bf9ac2c924c9f1cff7155a064394adfb3" | ||||
|   integrity sha512-qvwipnozMohxLXG1pOqoLiZKNkC4r4qqRucSoDwXowsNGDSULiqFTRUF05vcZWnwJSG22qTsynQhxbaMtnX9gw== | ||||
|   dependencies: | ||||
|     map-age-cleaner "^0.1.3" | ||||
|     mimic-fn "^2.1.0" | ||||
|     p-is-promise "^2.1.0" | ||||
| 
 | ||||
| merge-stream@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/merge-stream/-/merge-stream-2.0.0.tgz#52823629a14dd00c9770fb6ad47dc6310f2c1f60" | ||||
|  | @ -5284,18 +5102,13 @@ mime-types@2.1.34: | |||
|   dependencies: | ||||
|     mime-db "1.51.0" | ||||
| 
 | ||||
| mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.19, mime-types@~2.1.24: | ||||
| mime-types@^2.1.12, mime-types@^2.1.18, mime-types@^2.1.27, mime-types@~2.1.24: | ||||
|   version "2.1.27" | ||||
|   resolved "https://registry.yarnpkg.com/mime-types/-/mime-types-2.1.27.tgz#47949f98e279ea53119f5722e0f34e529bec009f" | ||||
|   integrity sha512-JIhqnCasI9yD+SsmkquHBxTSEuZdQX5BuQnS2Vc7puQQQ+8yiP5AY5uWhpdv4YL4VM5c6iliiYWPgJ/nJQLp7w== | ||||
|   dependencies: | ||||
|     mime-db "1.44.0" | ||||
| 
 | ||||
| mimic-fn@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-2.1.0.tgz#7ed2c2ccccaf84d3ffcb7a69b57711fc2083401b" | ||||
|   integrity sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg== | ||||
| 
 | ||||
| mimic-fn@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/mimic-fn/-/mimic-fn-4.0.0.tgz#60a90550d5cb0b239cca65d893b1a53b29871ecc" | ||||
|  | @ -5690,13 +5503,6 @@ normalize-url@^6.0.1: | |||
|   resolved "https://registry.yarnpkg.com/normalize-url/-/normalize-url-6.1.0.tgz#40d0885b535deffe3f3147bec877d05fe4c5668a" | ||||
|   integrity sha512-DlL+XwOy3NxAQ8xuC0okPgK46iuVNAK01YN7RueYBqqFeGsBjV9XmCAzAdgt+667bCl5kPh9EqKKDwnaPG1I7A== | ||||
| 
 | ||||
| npm-run-path@^4.0.0: | ||||
|   version "4.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-4.0.1.tgz#b7ecd1e5ed53da8e37a55e1c2269e0b97ed748ea" | ||||
|   integrity sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw== | ||||
|   dependencies: | ||||
|     path-key "^3.0.0" | ||||
| 
 | ||||
| npm-run-path@^5.0.1: | ||||
|   version "5.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/npm-run-path/-/npm-run-path-5.0.1.tgz#748dd68ed7de377bb1f7132c7dafe657be5ab400" | ||||
|  | @ -5738,11 +5544,6 @@ nwsapi@^2.2.0: | |||
|   resolved "https://registry.yarnpkg.com/nwsapi/-/nwsapi-2.2.0.tgz#204879a9e3d068ff2a55139c2c772780681a38b7" | ||||
|   integrity sha512-h2AatdwYH+JHiZpv7pt/gSX1XoRGb7L/qSIeuqA6GwYoF9w1vP1cw42TO0aI2pNyshRK5893hNSl+1//vHK7hQ== | ||||
| 
 | ||||
| oauth-sign@~0.9.0: | ||||
|   version "0.9.0" | ||||
|   resolved "https://registry.yarnpkg.com/oauth-sign/-/oauth-sign-0.9.0.tgz#47a7b016baa68b5fa0ecf3dee08a85c679ac6455" | ||||
|   integrity sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ== | ||||
| 
 | ||||
| oauth@0.9.15: | ||||
|   version "0.9.15" | ||||
|   resolved "https://registry.yarnpkg.com/oauth/-/oauth-0.9.15.tgz#bd1fefaf686c96b75475aed5196412ff60cfb9c1" | ||||
|  | @ -5824,13 +5625,6 @@ once@^1.3.0, once@^1.3.1, once@^1.4.0: | |||
|   dependencies: | ||||
|     wrappy "1" | ||||
| 
 | ||||
| onetime@^5.1.0: | ||||
|   version "5.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-5.1.2.tgz#d0e96ebb56b07476df1dd9c4806e5237985ca45e" | ||||
|   integrity sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg== | ||||
|   dependencies: | ||||
|     mimic-fn "^2.1.0" | ||||
| 
 | ||||
| onetime@^6.0.0: | ||||
|   version "6.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/onetime/-/onetime-6.0.0.tgz#7c24c18ed1fd2e9bca4bd26806a33613c77d34b4" | ||||
|  | @ -5877,15 +5671,6 @@ os-homedir@^1.0.0: | |||
|   resolved "https://registry.yarnpkg.com/os-homedir/-/os-homedir-1.0.2.tgz#ffbc4988336e0e833de0c168c7ef152121aa7fb3" | ||||
|   integrity sha1-/7xJiDNuDoM94MFox+8VISGqf7M= | ||||
| 
 | ||||
| os-locale@^5.0.0: | ||||
|   version "5.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/os-locale/-/os-locale-5.0.0.tgz#6d26c1d95b6597c5d5317bf5fba37eccec3672e0" | ||||
|   integrity sha512-tqZcNEDAIZKBEPnHPlVDvKrp7NzgLi7jRmhKiUoa2NUmhl13FtkAGLUVR+ZsYvApBQdBfYm43A4tXXQ4IrYLBA== | ||||
|   dependencies: | ||||
|     execa "^4.0.0" | ||||
|     lcid "^3.0.0" | ||||
|     mem "^5.0.0" | ||||
| 
 | ||||
| os-tmpdir@^1.0.0: | ||||
|   version "1.0.2" | ||||
|   resolved "https://registry.yarnpkg.com/os-tmpdir/-/os-tmpdir-1.0.2.tgz#bbe67406c79aa85c5cfec766fe5734555dfa1274" | ||||
|  | @ -5909,21 +5694,11 @@ p-cancelable@^2.0.0: | |||
|   resolved "https://registry.yarnpkg.com/p-cancelable/-/p-cancelable-2.0.0.tgz#4a3740f5bdaf5ed5d7c3e34882c6fb5d6b266a6e" | ||||
|   integrity sha512-wvPXDmbMmu2ksjkB4Z3nZWTSkJEb9lqVdMaCKpZUGJG9TMiNp9XcbG3fn9fPKjem04fJMJnXoyFPk2FmgiaiNg== | ||||
| 
 | ||||
| p-defer@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/p-defer/-/p-defer-1.0.0.tgz#9f6eb182f6c9aa8cd743004a7d4f96b196b0fb0c" | ||||
|   integrity sha1-n26xgvbJqozXQwBKfU+WsZaw+ww= | ||||
| 
 | ||||
| p-finally@^1.0.0: | ||||
|   version "1.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/p-finally/-/p-finally-1.0.0.tgz#3fbcfb15b899a44123b34b6dcc18b724336a2cae" | ||||
|   integrity sha1-P7z7FbiZpEEjs0ttzBi3JDNqLK4= | ||||
| 
 | ||||
| p-is-promise@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/p-is-promise/-/p-is-promise-2.1.0.tgz#918cebaea248a62cf7ffab8e3bca8c5f882fc42e" | ||||
|   integrity sha512-Y3W0wlRPK8ZMRbNq97l4M5otioeA5lm1z7bkNkxCka8HSPjR0xRWmpCmc9utiaLP9Jb1eD8BgeIxTW4AIF45Pg== | ||||
| 
 | ||||
| p-limit@^1.1.0: | ||||
|   version "1.3.0" | ||||
|   resolved "https://registry.yarnpkg.com/p-limit/-/p-limit-1.3.0.tgz#b86bd5f0c25690911c7590fcbfc2010d54b3ccb8" | ||||
|  | @ -6066,7 +5841,7 @@ path-is-absolute@1.0.1, path-is-absolute@^1.0.0: | |||
|   resolved "https://registry.yarnpkg.com/path-is-absolute/-/path-is-absolute-1.0.1.tgz#174b9268735534ffbc7ace6bf53a5a9e1b5c5f5f" | ||||
|   integrity sha1-F0uSaHNVNP+8es5r9TpanhtcX18= | ||||
| 
 | ||||
| path-key@^3.0.0, path-key@^3.1.0: | ||||
| path-key@^3.1.0: | ||||
|   version "3.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/path-key/-/path-key-3.1.1.tgz#581f6ade658cbba65a0d3380de7753295054f375" | ||||
|   integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q== | ||||
|  | @ -6096,11 +5871,6 @@ peek-readable@^4.0.1: | |||
|   resolved "https://registry.yarnpkg.com/peek-readable/-/peek-readable-4.0.1.tgz#9a045f291db254111c3412c1ce4fec27ddd4d202" | ||||
|   integrity sha512-7qmhptnR0WMSpxT5rMHG9bW/mYSR1uqaPFj2MHvT+y/aOUu6msJijpKt5SkTDKySwg65OWG2JwTMBlgcbwMHrQ== | ||||
| 
 | ||||
| performance-now@^2.1.0: | ||||
|   version "2.1.0" | ||||
|   resolved "https://registry.yarnpkg.com/performance-now/-/performance-now-2.1.0.tgz#6309f4e0e5fa913ec1c69307ae364b4b377c9e7b" | ||||
|   integrity sha1-Ywn04OX6kT7BxpMHrjZLSzd8nns= | ||||
| 
 | ||||
| pg-connection-string@^2.5.0: | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/pg-connection-string/-/pg-connection-string-2.5.0.tgz#538cadd0f7e603fc09a12590f3b8a452c2c0cf34" | ||||
|  | @ -6529,14 +6299,6 @@ pretty@^2.0.0: | |||
|     extend-shallow "^2.0.1" | ||||
|     js-beautify "^1.6.12" | ||||
| 
 | ||||
| prettyjson@^1.2.1: | ||||
|   version "1.2.1" | ||||
|   resolved "https://registry.yarnpkg.com/prettyjson/-/prettyjson-1.2.1.tgz#fcffab41d19cab4dfae5e575e64246619b12d289" | ||||
|   integrity sha1-/P+rQdGcq0365eV15kJGYZsS0ok= | ||||
|   dependencies: | ||||
|     colors "^1.1.2" | ||||
|     minimist "^1.2.0" | ||||
| 
 | ||||
| printj@~1.1.0: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/printj/-/printj-1.1.2.tgz#d90deb2975a8b9f600fb3a1c94e3f4c53c78a222" | ||||
|  | @ -6620,7 +6382,7 @@ pseudomap@^1.0.2: | |||
|   resolved "https://registry.yarnpkg.com/pseudomap/-/pseudomap-1.0.2.tgz#f052a28da70e618917ef0a8ac34c1ae5a68286b3" | ||||
|   integrity sha1-8FKijacOYYkX7wqKw0wa5aaChrM= | ||||
| 
 | ||||
| psl@^1.1.28, psl@^1.1.33: | ||||
| psl@^1.1.33: | ||||
|   version "1.8.0" | ||||
|   resolved "https://registry.yarnpkg.com/psl/-/psl-1.8.0.tgz#9326f8bcfb013adcc005fdff056acce020e51c24" | ||||
|   integrity sha512-RIdOzyoavK+hA18OGGWDqUTsCLhtA7IcZ/6NCs4fFJaHBDab+pDDmDIByWFRQJq2Cd7r1OoQxBGKOaztq+hjIQ== | ||||
|  | @ -6778,11 +6540,6 @@ qs@^6.4.0, qs@^6.5.2: | |||
|   resolved "https://registry.yarnpkg.com/qs/-/qs-6.9.3.tgz#bfadcd296c2d549f1dffa560619132c977f5008e" | ||||
|   integrity sha512-EbZYNarm6138UKKq46tdx08Yo/q9ZhFoAXAI1meAFd2GtbRDhbZY2WQSICskT0c5q99aFzLG1D4nvTk9tqfXIw== | ||||
| 
 | ||||
| qs@~6.5.2: | ||||
|   version "6.5.2" | ||||
|   resolved "https://registry.yarnpkg.com/qs/-/qs-6.5.2.tgz#cb3ae806e8740444584ef154ce8ee98d403f3e36" | ||||
|   integrity sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA== | ||||
| 
 | ||||
| querystring@0.2.0: | ||||
|   version "0.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/querystring/-/querystring-0.2.0.tgz#b209849203bb25df820da756e747005878521620" | ||||
|  | @ -6966,22 +6723,6 @@ rename@1.0.4: | |||
|   dependencies: | ||||
|     debug "^2.5.2" | ||||
| 
 | ||||
| request-promise-core@1.1.4: | ||||
|   version "1.1.4" | ||||
|   resolved "https://registry.yarnpkg.com/request-promise-core/-/request-promise-core-1.1.4.tgz#3eedd4223208d419867b78ce815167d10593a22f" | ||||
|   integrity sha512-TTbAfBBRdWD7aNNOoVOBH4pN/KigV6LyapYNNlAPA8JwbovRti1E88m3sYAwsLi5ryhPKsE9APwnjFTgdUjTpw== | ||||
|   dependencies: | ||||
|     lodash "^4.17.19" | ||||
| 
 | ||||
| request-promise-native@1.0.9: | ||||
|   version "1.0.9" | ||||
|   resolved "https://registry.yarnpkg.com/request-promise-native/-/request-promise-native-1.0.9.tgz#e407120526a5efdc9a39b28a5679bf47b9d9dc28" | ||||
|   integrity sha512-wcW+sIUiWnKgNY0dqCpOZkUbF/I+YPi+f09JZIDa39Ec+q82CpSYniDp+ISgTTbKmnpJWASeJBPZmoxH84wt3g== | ||||
|   dependencies: | ||||
|     request-promise-core "1.1.4" | ||||
|     stealthy-require "^1.1.1" | ||||
|     tough-cookie "^2.3.3" | ||||
| 
 | ||||
| request-stats@3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/request-stats/-/request-stats-3.0.0.tgz#769155dc8974d78d4a1cb87bbf14eaab985afe25" | ||||
|  | @ -6990,32 +6731,6 @@ request-stats@3.0.0: | |||
|     http-headers "^3.0.1" | ||||
|     once "^1.4.0" | ||||
| 
 | ||||
| request@2.88.2, request@^2.88.2: | ||||
|   version "2.88.2" | ||||
|   resolved "https://registry.yarnpkg.com/request/-/request-2.88.2.tgz#d73c918731cb5a87da047e207234146f664d12b3" | ||||
|   integrity sha512-MsvtOrfG9ZcrOwAW+Qi+F6HbD0CWXEh9ou77uOb7FM2WPhwT7smM833PzanhJLsgXjN89Ir6V2PczXNnMpwKhw== | ||||
|   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" | ||||
| 
 | ||||
| require-all@3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/require-all/-/require-all-3.0.0.tgz#473d49704be310115ce124f77383b1ebd8671312" | ||||
|  | @ -7102,11 +6817,6 @@ rndstr@1.0.0: | |||
|     rangestr "0.0.1" | ||||
|     seedrandom "2.4.2" | ||||
| 
 | ||||
| rsvp@^4.8.5: | ||||
|   version "4.8.5" | ||||
|   resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.5.tgz#c8f155311d167f68f21e168df71ec5b083113734" | ||||
|   integrity sha512-nfMOlASu9OnRJo1mbEk2cz0D56a1MBNrJ7orjRZQG10XDyuvwksKbuXNp6qa+kbn839HwjwhBzhFmdsaEAfauA== | ||||
| 
 | ||||
| run-parallel@^1.1.9: | ||||
|   version "1.1.9" | ||||
|   resolved "https://registry.yarnpkg.com/run-parallel/-/run-parallel-1.1.9.tgz#c9dd3a7cf9f4b2c4b6244e173a6ed866e61dd679" | ||||
|  | @ -7132,7 +6842,7 @@ safe-buffer@5.1.2, safe-buffer@~5.1.0, safe-buffer@~5.1.1: | |||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.1.2.tgz#991ec69d296e0313747d59bdfd2b745c35f8828d" | ||||
|   integrity sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g== | ||||
| 
 | ||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@^5.1.2, safe-buffer@~5.2.0: | ||||
| safe-buffer@^5.0.1, safe-buffer@^5.1.0, safe-buffer@~5.2.0: | ||||
|   version "5.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/safe-buffer/-/safe-buffer-5.2.0.tgz#b74daec49b1148f88c64b68d49b1e815c1f2f519" | ||||
|   integrity sha512-fZEwUGbVl7kouZs1jCdMLdt95hdIv0ZeHg6L7qPeciMZhZ+/gdesW4wgTARkrFWEpspjEATAzUGPG8N2jJiwbg== | ||||
|  | @ -7294,7 +7004,7 @@ sigmund@^1.0.1: | |||
|   resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590" | ||||
|   integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA= | ||||
| 
 | ||||
| signal-exit@^3.0.0, signal-exit@^3.0.2: | ||||
| signal-exit@^3.0.0: | ||||
|   version "3.0.3" | ||||
|   resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c" | ||||
|   integrity sha512-VUJ49FC8U1OxwZLxIbTTrDvLnf/6TDgxZcK8wxR8zs13xpx7xbG60ndBlhNrFi2EMuFRoeDoJO7wthSLq42EjA== | ||||
|  | @ -7404,7 +7114,7 @@ sprintf-js@~1.0.2: | |||
|   resolved "https://registry.yarnpkg.com/sprintf-js/-/sprintf-js-1.0.3.tgz#04e6926f662895354f3dd015203633b857297e2c" | ||||
|   integrity sha1-BOaSb2YolTVPPdAVIDYzuFcpfiw= | ||||
| 
 | ||||
| sshpk@^1.14.1, sshpk@^1.7.0: | ||||
| sshpk@^1.14.1: | ||||
|   version "1.16.1" | ||||
|   resolved "https://registry.yarnpkg.com/sshpk/-/sshpk-1.16.1.tgz#fb661c0bef29b39db40769ee39fa70093d6f6877" | ||||
|   integrity sha512-HXXqVUq7+pcKeLqqZj6mHFUMvXtOJt1uoUx09pFW6011inTMxqI8BA8PM95myrIyyKwdnzjdFjLiE6KBPVtJIg== | ||||
|  | @ -7441,11 +7151,6 @@ standard-as-callback@^2.1.0: | |||
|   resolved "https://registry.yarnpkg.com/statuses/-/statuses-1.5.0.tgz#161c7dac177659fd9811f43771fa99381478628c" | ||||
|   integrity sha1-Fhx9rBd2Wf2YEfQ3cfqZOBR4Yow= | ||||
| 
 | ||||
| stealthy-require@^1.1.1: | ||||
|   version "1.1.1" | ||||
|   resolved "https://registry.yarnpkg.com/stealthy-require/-/stealthy-require-1.1.1.tgz#35b09875b4ff49f26a777e509b3090a3226bf24b" | ||||
|   integrity sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks= | ||||
| 
 | ||||
| stream-parser@~0.3.1: | ||||
|   version "0.3.1" | ||||
|   resolved "https://registry.yarnpkg.com/stream-parser/-/stream-parser-0.3.1.tgz#1618548694420021a1182ff0af1911c129761773" | ||||
|  | @ -7614,11 +7319,6 @@ strip-bom@^3.0.0: | |||
|   resolved "https://registry.yarnpkg.com/strip-bom/-/strip-bom-3.0.0.tgz#2334c18e9c759f7bdd56fdef7e9ae3d588e68ed3" | ||||
|   integrity sha1-IzTBjpx1n3vdVv3vfprj1YjmjtM= | ||||
| 
 | ||||
| strip-final-newline@^2.0.0: | ||||
|   version "2.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-2.0.0.tgz#89b852fb2fcbe936f6f4b3187afb0a12c1ab58ad" | ||||
|   integrity sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA== | ||||
| 
 | ||||
| strip-final-newline@^3.0.0: | ||||
|   version "3.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/strip-final-newline/-/strip-final-newline-3.0.0.tgz#52894c313fbff318835280aed60ff71ebf12b8fd" | ||||
|  | @ -7655,18 +7355,19 @@ stylehacks@^5.0.1: | |||
|     browserslist "^4.16.0" | ||||
|     postcss-selector-parser "^6.0.4" | ||||
| 
 | ||||
| summaly@2.4.1: | ||||
|   version "2.4.1" | ||||
|   resolved "https://registry.yarnpkg.com/summaly/-/summaly-2.4.1.tgz#d2a8fa6bad10c1651eb0b849aab3009e87216a3d" | ||||
|   integrity sha512-1gETEQXqK5RD7yIGgdGeTwGL1uh+uj14u99atzNLNmvsxwdtZbPvDHZBPXkAW0cqsd8teoBJln5Dh1QeAhvGIg== | ||||
| summaly@2.5.0: | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/summaly/-/summaly-2.5.0.tgz#ec5af6e84857efcb6c844d896e83569e64a923ea" | ||||
|   integrity sha512-IzvO2s7yj/PUyH42qWjVjSPpIiPlgTRWGh33t4cIZKOqPQJ2INo7e83hXhHFr4hXTb3JRcIdCuM1ELjlrujiUQ== | ||||
|   dependencies: | ||||
|     cheerio-httpcli "0.8.2" | ||||
|     debug "4.3.2" | ||||
|     cheerio "0.22.0" | ||||
|     debug "4.3.3" | ||||
|     escape-regexp "0.0.1" | ||||
|     got "11.5.1" | ||||
|     html-entities "2.3.2" | ||||
|     koa "2.13.1" | ||||
|     request "2.88.2" | ||||
|     request-promise-native "1.0.9" | ||||
|     jschardet "3.0.0" | ||||
|     koa "2.13.4" | ||||
|     private-ip "2.3.3" | ||||
|     require-all "3.0.0" | ||||
|     trace-redirect "1.0.6" | ||||
| 
 | ||||
|  | @ -7889,14 +7590,6 @@ token-types@^4.1.1: | |||
|     "@tokenizer/token" "^0.3.0" | ||||
|     ieee754 "^1.2.1" | ||||
| 
 | ||||
| tough-cookie@^2.3.3, tough-cookie@^2.5.0, tough-cookie@~2.5.0: | ||||
|   version "2.5.0" | ||||
|   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-2.5.0.tgz#cd9fb2a0aa1d5a12b473bd9fb96fa3dcff65ade2" | ||||
|   integrity sha512-nlLsUzgm1kfLXSXfRZMc1KLAugd4hqJHDTvc2hDIwS3mZAfMEuMbc03SujMF+GEcpaX/qboeycw6iO8JwVv2+g== | ||||
|   dependencies: | ||||
|     psl "^1.1.28" | ||||
|     punycode "^2.1.1" | ||||
| 
 | ||||
| tough-cookie@^4.0.0: | ||||
|   version "4.0.0" | ||||
|   resolved "https://registry.yarnpkg.com/tough-cookie/-/tough-cookie-4.0.0.tgz#d822234eeca882f991f0f908824ad2622ddbece4" | ||||
|  | @ -8055,11 +7748,6 @@ type-is@^1.6.14, type-is@^1.6.16, type-is@^1.6.4: | |||
|     media-typer "0.3.0" | ||||
|     mime-types "~2.1.24" | ||||
| 
 | ||||
| type-of@^2.0.1: | ||||
|   version "2.0.1" | ||||
|   resolved "https://registry.yarnpkg.com/type-of/-/type-of-2.0.1.tgz#e72a1741896568e9f628378d816d6912f7f23972" | ||||
|   integrity sha1-5yoXQYllaOn2KDeNgW1pEvfyOXI= | ||||
| 
 | ||||
| type@^1.0.1: | ||||
|   version "1.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/type/-/type-1.2.0.tgz#848dd7698dafa3e54a6c479e759c4bc3f18847a0" | ||||
|  | @ -8223,21 +7911,11 @@ uuid@8.3.2, uuid@^8.3.0: | |||
|   resolved "https://registry.yarnpkg.com/uuid/-/uuid-8.3.2.tgz#80d5b5ced271bb9af6c445f21a1a04c606cefbe2" | ||||
|   integrity sha512-+NYs2QeMWy+GWFOEm9xnn6HCDp0l7QBD7ml8zLUmJ+93Q5NF0NocErnwkTkXVFNiX3/fpC6afS8Dhb/gz7R7eg== | ||||
| 
 | ||||
| uuid@^3.3.2: | ||||
|   version "3.4.0" | ||||
|   resolved "https://registry.yarnpkg.com/uuid/-/uuid-3.4.0.tgz#b23e4358afa8a202fe7a100af1f5f883f02007ee" | ||||
|   integrity sha512-HjSDRw6gZE5JMggctHBcjVak08+KEVhSIiDzFnT9S9aegmp85S/bReBVTb4QTFaRNptJ9kuYaNhnbNEOkbKb/A== | ||||
| 
 | ||||
| v8-compile-cache@^2.0.3: | ||||
|   version "2.2.0" | ||||
|   resolved "https://registry.yarnpkg.com/v8-compile-cache/-/v8-compile-cache-2.2.0.tgz#9471efa3ef9128d2f7c6a7ca39c4dd6b5055b132" | ||||
|   integrity sha512-gTpR5XQNKFwOd4clxfnhaqvfqMpqEwr4tOtCyz4MtYZX2JYhfr1JvBFKdS+7K/9rfpZR3VLX+YWBbKoxCgS43Q== | ||||
| 
 | ||||
| valid-url@^1.0.9: | ||||
|   version "1.0.9" | ||||
|   resolved "https://registry.yarnpkg.com/valid-url/-/valid-url-1.0.9.tgz#1c14479b40f1397a75782f115e4086447433a200" | ||||
|   integrity sha1-HBRHm0DxOXp1eC8RXkCGRHQzogA= | ||||
| 
 | ||||
| vary@^1.1.2: | ||||
|   version "1.1.2" | ||||
|   resolved "https://registry.yarnpkg.com/vary/-/vary-1.1.2.tgz#2299f02c6ded30d4a5961b0b9f74524a18f634fc" | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <MkModal ref="modal" :front="true" @click="done(true)" @closed="$emit('closed')"> | ||||
| <MkModal ref="modal" :prefer-type="'dialog'" :front="true" @click="done(true)" @closed="$emit('closed')"> | ||||
| 	<div class="mk-dialog"> | ||||
| 		<div v-if="icon" class="icon"> | ||||
| 			<i :class="icon"></i> | ||||
|  |  | |||
|  | @ -1,17 +1,17 @@ | |||
| <template> | ||||
| <MkPopup ref="popup" v-slot="{ point, close }" :manual-showing="manualShowing" :src="src" :front="true" @click="close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> | ||||
| 	<MkEmojiPicker ref="picker" class="ryghynhb _popup _shadow" :class="{ pointer: point === 'top' }" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" @chosen="chosen"/> | ||||
| </MkPopup> | ||||
| <MkModal ref="modal" v-slot="{ type, maxHeight }" :prefer-type="asReactionPicker && $store.state.reactionPickerUseDrawerForMobile === false ? 'popup' : 'auto'" :transparent-bg="true" :manual-showing="manualShowing" :src="src" :front="true" @click="$refs.modal.close()" @opening="opening" @close="$emit('close')" @closed="$emit('closed')"> | ||||
| 	<MkEmojiPicker ref="picker" class="ryghynhb _popup _shadow" :class="{ drawer: type === 'drawer' }" :show-pinned="showPinned" :as-reaction-picker="asReactionPicker" :as-drawer="type === 'drawer'" :max-height="maxHeight" @chosen="chosen"/> | ||||
| </MkModal> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent, markRaw } from 'vue'; | ||||
| import MkPopup from '@/components/ui/popup.vue'; | ||||
| import MkModal from '@/components/ui/modal.vue'; | ||||
| import MkEmojiPicker from '@/components/emoji-picker.vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
| 	components: { | ||||
| 		MkPopup, | ||||
| 		MkModal, | ||||
| 		MkEmojiPicker, | ||||
| 	}, | ||||
| 
 | ||||
|  | @ -44,7 +44,7 @@ export default defineComponent({ | |||
| 	methods: { | ||||
| 		chosen(emoji: any) { | ||||
| 			this.$emit('done', emoji); | ||||
| 			this.$refs.popup.close(); | ||||
| 			this.$refs.modal.close(); | ||||
| 		}, | ||||
| 
 | ||||
| 		opening() { | ||||
|  | @ -57,20 +57,10 @@ export default defineComponent({ | |||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| .ryghynhb { | ||||
| 	&.pointer { | ||||
| 		&:before { | ||||
| 			--size: 8px; | ||||
| 			content: ''; | ||||
| 			display: block; | ||||
| 			position: absolute; | ||||
| 			top: calc(0px - (var(--size) * 2)); | ||||
| 			left: 0; | ||||
| 			right: 0; | ||||
| 			width: 0; | ||||
| 			margin: auto; | ||||
| 			border: solid var(--size) transparent; | ||||
| 			border-bottom-color: var(--popup); | ||||
| 		} | ||||
| 	&.drawer { | ||||
| 		border-radius: 24px; | ||||
| 		border-bottom-right-radius: 0; | ||||
| 		border-bottom-left-radius: 0; | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <div class="omfetrab" :class="['w' + width, 'h' + height, { big }]"> | ||||
| <div class="omfetrab" :class="['w' + width, 'h' + height, { big, asDrawer }]" :style="{ maxHeight: maxHeight ? maxHeight + 'px' : null }"> | ||||
| 	<input ref="search" v-model.trim="q" class="search" data-prevent-emoji-insert :class="{ filled: q != null && q != '' }" :placeholder="$ts.search" @paste.stop="paste" @keyup.enter="done()"> | ||||
| 	<div ref="emojis" class="emojis"> | ||||
| 		<section class="result"> | ||||
|  | @ -92,9 +92,17 @@ export default defineComponent({ | |||
| 	props: { | ||||
| 		showPinned: { | ||||
| 			required: false, | ||||
| 			default: true | ||||
| 			default: true, | ||||
| 		}, | ||||
| 		asReactionPicker: { | ||||
| 			required: false, | ||||
| 		}, | ||||
| 		maxHeight: { | ||||
| 			type: Number, | ||||
| 			required: false, | ||||
| 		}, | ||||
| 		asDrawer: { | ||||
| 			type: Boolean, | ||||
| 			required: false | ||||
| 		}, | ||||
| 	}, | ||||
|  | @ -353,26 +361,60 @@ export default defineComponent({ | |||
| 
 | ||||
| 	&.w1 { | ||||
| 		width: calc((var(--eachSize) * 5) + (#{$pad} * 2)); | ||||
| 		--columns: 1fr 1fr 1fr 1fr 1fr; | ||||
| 	} | ||||
| 
 | ||||
| 	&.w2 { | ||||
| 		width: calc((var(--eachSize) * 6) + (#{$pad} * 2)); | ||||
| 		--columns: 1fr 1fr 1fr 1fr 1fr 1fr; | ||||
| 	} | ||||
| 
 | ||||
| 	&.w3 { | ||||
| 		width: calc((var(--eachSize) * 7) + (#{$pad} * 2)); | ||||
| 		--columns: 1fr 1fr 1fr 1fr 1fr 1fr 1fr; | ||||
| 	} | ||||
| 
 | ||||
| 	&.h1 { | ||||
| 		--height: calc((var(--eachSize) * 4) + (#{$pad} * 2)); | ||||
| 		height: calc((var(--eachSize) * 4) + (#{$pad} * 2)); | ||||
| 	} | ||||
| 
 | ||||
| 	&.h2 { | ||||
| 		--height: calc((var(--eachSize) * 6) + (#{$pad} * 2)); | ||||
| 		height: calc((var(--eachSize) * 6) + (#{$pad} * 2)); | ||||
| 	} | ||||
| 
 | ||||
| 	&.h3 { | ||||
| 		--height: calc((var(--eachSize) * 8) + (#{$pad} * 2)); | ||||
| 		height: calc((var(--eachSize) * 8) + (#{$pad} * 2)); | ||||
| 	} | ||||
| 
 | ||||
| 	&.asDrawer { | ||||
| 		width: 100% !important; | ||||
| 
 | ||||
| 		> .emojis { | ||||
| 			::v-deep(section) { | ||||
| 				> header { | ||||
| 					height: 32px; | ||||
| 					line-height: 32px; | ||||
| 					padding: 0 12px; | ||||
| 					font-size: 15px; | ||||
| 				} | ||||
| 
 | ||||
| 				> div { | ||||
| 					display: grid; | ||||
| 					grid-template-columns: var(--columns); | ||||
| 
 | ||||
| 					> button { | ||||
| 						aspect-ratio: 1 / 1; | ||||
| 						width: auto; | ||||
| 						height: auto; | ||||
| 						min-width: 0; | ||||
| 
 | ||||
| 						> * { | ||||
| 							font-size: 30px; | ||||
| 						} | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	> .search { | ||||
|  | @ -409,7 +451,7 @@ export default defineComponent({ | |||
| 	} | ||||
| 
 | ||||
| 	> .emojis { | ||||
| 		height: var(--height); | ||||
| 		height: 100%; | ||||
| 		overflow-y: auto; | ||||
| 		overflow-x: hidden; | ||||
| 
 | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <MkModal ref="modal" @click="$refs.modal.close()" @closed="$emit('closed')"> | ||||
| <MkModal ref="modal" :prefer-type="'dialog'" @click="$refs.modal.close()" @closed="$emit('closed')"> | ||||
| 	<div class="szkkfdyq _popup"> | ||||
| 		<div class="main"> | ||||
| 			<template v-for="item in items"> | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <MkModal ref="modal" :position="'top'" @click="$refs.modal.close()" @closed="$emit('closed')"> | ||||
| <MkModal ref="modal" :prefer-type="'dialog:top'" @click="$refs.modal.close()" @closed="$emit('closed')"> | ||||
| 	<MkPostForm v-bind="$attrs" @posted="$refs.modal.close()" @cancel="$refs.modal.close()" @esc="$refs.modal.close()"/> | ||||
| </MkModal> | ||||
| </template> | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <div class="mk-toast"> | ||||
| <div class="mk-toast" style="{ zIndex }"> | ||||
| 	<transition name="notification-slide" appear @after-leave="$emit('closed')"> | ||||
| 		<XNotification v-if="showing" :notification="notification" class="notification _acrylic"/> | ||||
| 	</transition> | ||||
|  | @ -9,6 +9,7 @@ | |||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import XNotification from './notification.vue'; | ||||
| import * as os from '@/os'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
| 	components: { | ||||
|  | @ -23,7 +24,8 @@ export default defineComponent({ | |||
| 	emits: ['closed'], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			showing: true | ||||
| 			showing: true, | ||||
| 			zIndex: os.claimZIndex(true), | ||||
| 		}; | ||||
| 	}, | ||||
| 	mounted() { | ||||
|  | @ -45,7 +47,6 @@ export default defineComponent({ | |||
| 
 | ||||
| .mk-toast { | ||||
| 	position: fixed; | ||||
| 	z-index: 10000; | ||||
| 	left: 0; | ||||
| 	width: 250px; | ||||
| 	top: 32px; | ||||
|  |  | |||
|  | @ -1,8 +1,8 @@ | |||
| <template> | ||||
| <div ref="items" v-hotkey="keymap" | ||||
| 	class="rrevdjwt" | ||||
| 	:class="{ center: align === 'center' }" | ||||
| 	:style="{ width: width ? width + 'px' : null, maxHeight: maxHeight ? maxHeight + 'px' : null }" | ||||
| 	:class="{ center: align === 'center', asDrawer }" | ||||
| 	:style="{ width: (width && !asDrawer) ? width + 'px' : null, maxHeight: maxHeight ? maxHeight + 'px' : null }" | ||||
| 	@contextmenu.self="e => e.preventDefault()" | ||||
| > | ||||
| 	<template v-for="(item, i) in items2"> | ||||
|  | @ -56,6 +56,10 @@ export default defineComponent({ | |||
| 			type: Boolean, | ||||
| 			required: false | ||||
| 		}, | ||||
| 		asDrawer: { | ||||
| 			type: Boolean, | ||||
| 			required: false | ||||
| 		}, | ||||
| 		align: { | ||||
| 			type: String, | ||||
| 			requried: false | ||||
|  | @ -279,5 +283,29 @@ export default defineComponent({ | |||
| 		height: 1px; | ||||
| 		background: var(--divider); | ||||
| 	} | ||||
| 
 | ||||
| 	&.asDrawer { | ||||
| 		padding: 12px 0; | ||||
| 		width: 100%; | ||||
| 
 | ||||
| 		> .item { | ||||
| 			font-size: 1em; | ||||
| 			padding: 12px 24px; | ||||
| 
 | ||||
| 			&:before { | ||||
| 				width: calc(100% - 24px); | ||||
| 				border-radius: 12px; | ||||
| 			} | ||||
| 
 | ||||
| 			> i { | ||||
| 				margin-right: 14px; | ||||
| 				width: 24px; | ||||
| 			} | ||||
| 		} | ||||
| 
 | ||||
| 		> .divider { | ||||
| 			margin: 12px 0; | ||||
| 		} | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <MkModal ref="modal" @click="$emit('click')" @closed="$emit('closed')"> | ||||
| <MkModal ref="modal" :prefer-type="'dialog'" @click="$emit('click')" @closed="$emit('closed')"> | ||||
| 	<div class="ebkgoccj _window _narrow_" :style="{ width: `${width}px`, height: scroll ? (height ? `${height}px` : null) : (height ? `min(${height}px, 100%)` : '100%') }" @keydown="onKeydown"> | ||||
| 		<div class="header"> | ||||
| 			<button v-if="withOkButton" class="_button" @click="$emit('close')"><i class="fas fa-times"></i></button> | ||||
|  |  | |||
|  | @ -1,17 +1,18 @@ | |||
| <template> | ||||
| <transition :name="$store.state.animation ? popup ? 'modal-popup' : 'modal' : ''" :duration="$store.state.animation ? popup ? 500 : 300 : 0" appear @after-leave="onClosed" @enter="$emit('opening')" @after-enter="childRendered"> | ||||
| 	<div v-show="manualShowing != null ? manualShowing : showing" v-hotkey.global="keymap" class="qzhlnise" :style="{ pointerEvents: (manualShowing != null ? manualShowing : showing) ? 'auto' : 'none', '--transformOrigin': transformOrigin }"> | ||||
| 		<div class="bg _modalBg" :style="{ zIndex }" @click="onBgClick" @contextmenu.prevent.stop="() => {}"></div> | ||||
| 		<div ref="content" class="content" :class="{ popup, fixed, top: position === 'top' }" :style="{ zIndex }" @click.self="onBgClick"> | ||||
| 			<slot></slot> | ||||
| <transition :name="$store.state.animation ? (type === 'drawer') ? 'modal-drawer' : (type === 'popup') ? 'modal-popup' : 'modal' : ''" :duration="$store.state.animation ? 200 : 0" appear @after-leave="$emit('closed')" @enter="$emit('opening')" @after-enter="childRendered"> | ||||
| 	<div v-show="manualShowing != null ? manualShowing : showing" v-hotkey.global="keymap" class="qzhlnise" :class="{ drawer: type === 'drawer', dialog: type === 'dialog' || type === 'dialog:top', popup: type === 'popup' }" :style="{ zIndex, pointerEvents: (manualShowing != null ? manualShowing : showing) ? 'auto' : 'none', '--transformOrigin': transformOrigin }"> | ||||
| 		<div class="bg _modalBg" :class="{ transparent: transparentBg && (type === 'popup') }" :style="{ zIndex }" @click="onBgClick" @contextmenu.prevent.stop="() => {}"></div> | ||||
| 		<div ref="content" class="content" :class="{ fixed, top: type === 'dialog:top' }" :style="{ zIndex }" @click.self="onBgClick"> | ||||
| 			<slot :max-height="maxHeight" :type="type"></slot> | ||||
| 		</div> | ||||
| 	</div> | ||||
| </transition> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import { defineComponent, nextTick, onMounted, computed, PropType, ref, watch } from 'vue'; | ||||
| import * as os from '@/os'; | ||||
| import { isTouchUsing } from '@/scripts/touch'; | ||||
| 
 | ||||
| function getFixedContainer(el: Element | null): Element | null { | ||||
| 	if (el == null || el.tagName === 'BODY') return null; | ||||
|  | @ -27,6 +28,7 @@ export default defineComponent({ | |||
| 	provide: { | ||||
| 		modal: true | ||||
| 	}, | ||||
| 
 | ||||
| 	props: { | ||||
| 		manualShowing: { | ||||
| 			type: Boolean, | ||||
|  | @ -38,61 +40,86 @@ export default defineComponent({ | |||
| 			required: false | ||||
| 		}, | ||||
| 		src: { | ||||
| 			type: Object as PropType<HTMLElement>, | ||||
| 			required: false, | ||||
| 			default: null, | ||||
| 		}, | ||||
| 		position: { | ||||
| 			required: false | ||||
| 		preferType: { | ||||
| 			required: false, | ||||
| 			type: String, | ||||
| 			default: 'auto', | ||||
| 		}, | ||||
| 		front: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: false, | ||||
| 		} | ||||
| 	}, | ||||
| 	emits: ['opening', 'click', 'esc', 'close', 'closed'], | ||||
| 	data() { | ||||
| 		return { | ||||
| 			zIndex: os.claimZIndex(this.front), | ||||
| 			showing: true, | ||||
| 			fixed: false, | ||||
| 			transformOrigin: 'center', | ||||
| 			contentClicking: false, | ||||
| 		}; | ||||
| 	}, | ||||
| 	computed: { | ||||
| 		keymap(): any { | ||||
| 			return { | ||||
| 				'esc': () => this.$emit('esc'), | ||||
| 			}; | ||||
| 		}, | ||||
| 		popup(): boolean { | ||||
| 			return this.src != null; | ||||
| 		} | ||||
| 		noOverlap: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: true, | ||||
| 		}, | ||||
| 		transparentBg: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 	}, | ||||
| 	mounted() { | ||||
| 		this.$watch('src', () => { | ||||
| 			this.fixed = getFixedContainer(this.src) != null; | ||||
| 			this.$nextTick(() => { | ||||
| 				this.align(); | ||||
| 			}); | ||||
| 		}, { immediate: true }); | ||||
| 
 | ||||
| 		this.$nextTick(() => { | ||||
| 			const popover = this.$refs.content as any; | ||||
| 			new ResizeObserver((entries, observer) => { | ||||
| 				this.align(); | ||||
| 			}).observe(popover); | ||||
| 	emits: ['opening', 'click', 'esc', 'close', 'closed'], | ||||
| 
 | ||||
| 	setup(props, context) { | ||||
| 		const maxHeight = ref<number>(); | ||||
| 		const fixed = ref(false); | ||||
| 		const transformOrigin = ref('center'); | ||||
| 		const showing = ref(true); | ||||
| 		const content = ref<HTMLElement>(); | ||||
| 		const zIndex = os.claimZIndex(props.front); | ||||
| 		const type = computed(() => { | ||||
| 			if (props.preferType === 'auto') { | ||||
| 				if (isTouchUsing && window.innerWidth < 500 && window.innerHeight < 1000) { | ||||
| 					return 'drawer'; | ||||
| 				} else { | ||||
| 					return props.src != null ? 'popup' : 'dialog'; | ||||
| 				} | ||||
| 			} else { | ||||
| 				return props.preferType; | ||||
| 			} | ||||
| 		}); | ||||
| 	}, | ||||
| 	methods: { | ||||
| 		align() { | ||||
| 			if (!this.popup) return; | ||||
| 		 | ||||
| 		let contentClicking = false; | ||||
| 
 | ||||
| 			const popover = this.$refs.content as any; | ||||
| 		const close = () => { | ||||
| 			// eslint-disable-next-line vue/no-mutating-props | ||||
| 			if (props.src) props.src.style.pointerEvents = 'auto'; | ||||
| 			showing.value = false; | ||||
| 			context.emit('close'); | ||||
| 		}; | ||||
| 
 | ||||
| 		const onBgClick = () => { | ||||
| 			if (contentClicking) return; | ||||
| 			context.emit('click'); | ||||
| 		}; | ||||
| 
 | ||||
| 		if (type.value === 'drawer') { | ||||
| 			maxHeight.value = window.innerHeight - 100; | ||||
| 		} | ||||
| 
 | ||||
| 		const keymap = { | ||||
| 			'esc': () => context.emit('esc'), | ||||
| 		}; | ||||
| 
 | ||||
| 		const MARGIN = 16; | ||||
| 
 | ||||
| 		const align = () => { | ||||
| 			if (props.src == null) return; | ||||
| 			if (type.value === 'drawer') return; | ||||
| 
 | ||||
| 			const popover = content.value!; | ||||
| 
 | ||||
| 			if (popover == null) return; | ||||
| 
 | ||||
| 			const rect = this.src.getBoundingClientRect(); | ||||
| 			const rect = props.src.getBoundingClientRect(); | ||||
| 			 | ||||
| 			const width = popover.offsetWidth; | ||||
| 			const height = popover.offsetHeight; | ||||
|  | @ -100,102 +127,143 @@ export default defineComponent({ | |||
| 			let left; | ||||
| 			let top; | ||||
| 
 | ||||
| 			if (this.srcCenter) { | ||||
| 				const x = rect.left + (this.fixed ? 0 : window.pageXOffset) + (this.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (this.fixed ? 0 : window.pageYOffset) + (this.src.offsetHeight / 2); | ||||
| 			if (props.srcCenter) { | ||||
| 				const x = rect.left + (fixed.value ? 0 : window.pageXOffset) + (props.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (fixed.value ? 0 : window.pageYOffset) + (props.src.offsetHeight / 2); | ||||
| 				left = (x - (width / 2)); | ||||
| 				top = (y - (height / 2)); | ||||
| 			} else { | ||||
| 				const x = rect.left + (this.fixed ? 0 : window.pageXOffset) + (this.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (this.fixed ? 0 : window.pageYOffset) + this.src.offsetHeight; | ||||
| 				const x = rect.left + (fixed.value ? 0 : window.pageXOffset) + (props.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (fixed.value ? 0 : window.pageYOffset) + props.src.offsetHeight; | ||||
| 				left = (x - (width / 2)); | ||||
| 				top = y; | ||||
| 			} | ||||
| 
 | ||||
| 			if (this.fixed) { | ||||
| 			if (fixed.value) { | ||||
| 				// 画面から横にはみ出る場合 | ||||
| 				if (left + width > window.innerWidth) { | ||||
| 					left = window.innerWidth - width; | ||||
| 				} | ||||
| 
 | ||||
| 				if (top + height > window.innerHeight) { | ||||
| 					top = window.innerHeight - height; | ||||
| 				// 画面から縦にはみ出る場合 | ||||
| 				if (top + height > (window.innerHeight - MARGIN)) { | ||||
| 					if (props.noOverlap) { | ||||
| 						const underSpace = (window.innerHeight - MARGIN) - top; | ||||
| 						const upperSpace = (rect.top - MARGIN); | ||||
| 						if (underSpace >= (upperSpace / 3)) { | ||||
| 							maxHeight.value =  underSpace; | ||||
| 						} else { | ||||
| 							maxHeight.value =  upperSpace; | ||||
| 							top = (upperSpace + MARGIN) - height; | ||||
| 						} | ||||
| 					} else { | ||||
| 						top = (window.innerHeight - MARGIN) - height; | ||||
| 					} | ||||
| 				} | ||||
| 			} else { | ||||
| 				// 画面から横にはみ出る場合 | ||||
| 				if (left + width - window.pageXOffset > window.innerWidth) { | ||||
| 					left = window.innerWidth - width + window.pageXOffset - 1; | ||||
| 				} | ||||
| 
 | ||||
| 				if (top + height - window.pageYOffset > window.innerHeight) { | ||||
| 					top = window.innerHeight - height + window.pageYOffset - 1; | ||||
| 				// 画面から縦にはみ出る場合 | ||||
| 				if (top + height - window.pageYOffset > (window.innerHeight - MARGIN)) { | ||||
| 					if (props.noOverlap) { | ||||
| 						const underSpace = (window.innerHeight - MARGIN) - (top - window.pageYOffset); | ||||
| 						const upperSpace = (rect.top - MARGIN); | ||||
| 						if (underSpace >= (upperSpace / 3)) { | ||||
| 							maxHeight.value =  underSpace; | ||||
| 						} else { | ||||
| 							maxHeight.value =  upperSpace; | ||||
| 							top = window.pageYOffset + ((upperSpace + MARGIN) - height); | ||||
| 						} | ||||
| 					} else { | ||||
| 						top = (window.innerHeight - MARGIN) - height + window.pageYOffset - 1; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			if (top < 0) { | ||||
| 				top = 0; | ||||
| 				top = MARGIN; | ||||
| 			} | ||||
| 
 | ||||
| 			if (left < 0) { | ||||
| 				left = 0; | ||||
| 			} | ||||
| 
 | ||||
| 			if (top > rect.top + (this.fixed ? 0 : window.pageYOffset)) { | ||||
| 				this.transformOrigin = 'center top'; | ||||
| 			if (top > rect.top + (fixed.value ? 0 : window.pageYOffset)) { | ||||
| 				transformOrigin.value = 'center top'; | ||||
| 			} else if ((top + height) <= rect.top + (fixed.value ? 0 : window.pageYOffset)) { | ||||
| 				transformOrigin.value = 'center bottom'; | ||||
| 			} else { | ||||
| 				this.transformOrigin = 'center'; | ||||
| 				transformOrigin.value = 'center'; | ||||
| 			} | ||||
| 
 | ||||
| 			popover.style.left = left + 'px'; | ||||
| 			popover.style.top = top + 'px'; | ||||
| 		}, | ||||
| 		}; | ||||
| 
 | ||||
| 		childRendered() { | ||||
| 		const childRendered = () => { | ||||
| 			// モーダルコンテンツにマウスボタンが押され、コンテンツ外でマウスボタンが離されたときにモーダルバックグラウンドクリックと判定させないためにマウスイベントを監視しフラグ管理する | ||||
| 			const content = this.$refs.content.children[0]; | ||||
| 			content.addEventListener('mousedown', e => { | ||||
| 				this.contentClicking = true; | ||||
| 			const el = content.value!.children[0]; | ||||
| 			el.addEventListener('mousedown', e => { | ||||
| 				contentClicking = true; | ||||
| 				window.addEventListener('mouseup', e => { | ||||
| 					// click イベントより先に mouseup イベントが発生するかもしれないのでちょっと待つ | ||||
| 					setTimeout(() => { | ||||
| 						this.contentClicking = false; | ||||
| 						contentClicking = false; | ||||
| 					}, 100); | ||||
| 				}, { passive: true, once: true }); | ||||
| 			}, { passive: true }); | ||||
| 		}, | ||||
| 		}; | ||||
| 
 | ||||
| 		close() { | ||||
| 			this.showing = false; | ||||
| 			this.$emit('close'); | ||||
| 		}, | ||||
| 		onMounted(() => { | ||||
| 			watch(() => props.src, async () => { | ||||
| 				if (props.src) { | ||||
| 					// eslint-disable-next-line vue/no-mutating-props | ||||
| 					props.src.style.pointerEvents = 'none'; | ||||
| 				} | ||||
| 				fixed.value = (type.value === 'drawer') || (getFixedContainer(props.src) != null); | ||||
| 
 | ||||
| 		onBgClick() { | ||||
| 			if (this.contentClicking) return; | ||||
| 			this.$emit('click'); | ||||
| 		}, | ||||
| 				await nextTick() | ||||
| 				 | ||||
| 				align(); | ||||
| 			}, { immediate: true, }); | ||||
| 
 | ||||
| 		onClosed() { | ||||
| 			this.$emit('closed'); | ||||
| 		} | ||||
| 	} | ||||
| 			nextTick(() => { | ||||
| 				const popover = content.value; | ||||
| 				new ResizeObserver((entries, observer) => { | ||||
| 					align(); | ||||
| 				}).observe(popover!); | ||||
| 			}); | ||||
| 		}); | ||||
| 
 | ||||
| 		return { | ||||
| 			showing, | ||||
| 			type, | ||||
| 			fixed, | ||||
| 			content, | ||||
| 			transformOrigin, | ||||
| 			maxHeight, | ||||
| 			close, | ||||
| 			zIndex, | ||||
| 			keymap, | ||||
| 			onBgClick, | ||||
| 			childRendered, | ||||
| 		}; | ||||
| 	}, | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss"> | ||||
| .modal-popup-enter-active, .modal-popup-leave-active, | ||||
| .modal-enter-from, .modal-leave-to { | ||||
| 	> .content { | ||||
| 		transform-origin: var(--transformOrigin); | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| .modal-enter-active, .modal-leave-active { | ||||
| 	> .bg { | ||||
| 		transition: opacity 0.3s !important; | ||||
| 		transition: opacity 0.2s !important; | ||||
| 	} | ||||
| 
 | ||||
| 	> .content { | ||||
| 		transition: opacity 0.3s, transform 0.3s !important; | ||||
| 		transform-origin: var(--transformOrigin); | ||||
| 		transition: opacity 0.2s, transform 0.2s !important; | ||||
| 	} | ||||
| } | ||||
| .modal-enter-from, .modal-leave-to { | ||||
|  | @ -206,17 +274,19 @@ export default defineComponent({ | |||
| 	> .content { | ||||
| 		pointer-events: none; | ||||
| 		opacity: 0; | ||||
| 		transform-origin: var(--transformOrigin); | ||||
| 		transform: scale(0.9); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .modal-popup-enter-active, .modal-popup-leave-active { | ||||
| 	> .bg { | ||||
| 		transition: opacity 0.3s !important; | ||||
| 		transition: opacity 0.2s !important; | ||||
| 	} | ||||
| 
 | ||||
| 	> .content { | ||||
| 		transition: opacity 0.5s cubic-bezier(0.16, 1, 0.3, 1), transform 0.5s cubic-bezier(0.16, 1, 0.3, 1) !important; | ||||
| 		transform-origin: var(--transformOrigin); | ||||
| 		transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1), transform 0.2s cubic-bezier(0, 0, 0.2, 1) !important; | ||||
| 	} | ||||
| } | ||||
| .modal-popup-enter-from, .modal-popup-leave-to { | ||||
|  | @ -227,48 +297,112 @@ export default defineComponent({ | |||
| 	> .content { | ||||
| 		pointer-events: none; | ||||
| 		opacity: 0; | ||||
| 		transform-origin: var(--transformOrigin); | ||||
| 		transform: scale(0.9); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .modal-drawer-enter-active { | ||||
| 	> .bg { | ||||
| 		transition: opacity 0.2s !important; | ||||
| 	} | ||||
| 
 | ||||
| 	> .content { | ||||
| 		transition: transform 0.2s cubic-bezier(0,.5,0,1) !important; | ||||
| 	} | ||||
| } | ||||
| .modal-drawer-leave-active { | ||||
| 	> .bg { | ||||
| 		transition: opacity 0.2s !important; | ||||
| 	} | ||||
| 
 | ||||
| 	> .content { | ||||
| 		transition: transform 0.2s cubic-bezier(0,.5,0,1) !important; | ||||
| 	} | ||||
| } | ||||
| .modal-drawer-enter-from, .modal-drawer-leave-to { | ||||
| 	> .bg { | ||||
| 		opacity: 0; | ||||
| 	} | ||||
| 
 | ||||
| 	> .content { | ||||
| 		pointer-events: none; | ||||
| 		transform: translateY(100%); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| .qzhlnise { | ||||
| 	> .content:not(.popup) { | ||||
| 		position: fixed; | ||||
| 		top: 0; | ||||
| 		bottom: 0; | ||||
| 		left: 0; | ||||
| 		right: 0; | ||||
| 		margin: auto; | ||||
| 		padding: 32px; | ||||
| 		// TODO: mask-imageはiOSだとやたら重い。なんとかしたい | ||||
| 		-webkit-mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 32px, rgba(0,0,0,1) calc(100% - 32px), rgba(0,0,0,0) 100%); | ||||
| 		mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 32px, rgba(0,0,0,1) calc(100% - 32px), rgba(0,0,0,0) 100%); | ||||
| 		overflow: auto; | ||||
| 		display: flex; | ||||
| 
 | ||||
| 		@media (max-width: 500px) { | ||||
| 			padding: 16px; | ||||
| 			-webkit-mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 16px, rgba(0,0,0,1) calc(100% - 16px), rgba(0,0,0,0) 100%); | ||||
| 			mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 16px, rgba(0,0,0,1) calc(100% - 16px), rgba(0,0,0,0) 100%); | ||||
| 	> .bg { | ||||
| 		&.transparent { | ||||
| 			background: transparent; | ||||
| 			-webkit-backdrop-filter: none; | ||||
| 			backdrop-filter: none; | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 		> ::v-deep(*) { | ||||
| 	&.dialog { | ||||
| 		> .content { | ||||
| 			position: fixed; | ||||
| 			top: 0; | ||||
| 			bottom: 0; | ||||
| 			left: 0; | ||||
| 			right: 0; | ||||
| 			margin: auto; | ||||
| 		} | ||||
| 			padding: 32px; | ||||
| 			// TODO: mask-imageはiOSだとやたら重い。なんとかしたい | ||||
| 			-webkit-mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 32px, rgba(0,0,0,1) calc(100% - 32px), rgba(0,0,0,0) 100%); | ||||
| 			mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 32px, rgba(0,0,0,1) calc(100% - 32px), rgba(0,0,0,0) 100%); | ||||
| 			overflow: auto; | ||||
| 			display: flex; | ||||
| 
 | ||||
| 			@media (max-width: 500px) { | ||||
| 				padding: 16px; | ||||
| 				-webkit-mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 16px, rgba(0,0,0,1) calc(100% - 16px), rgba(0,0,0,0) 100%); | ||||
| 				mask-image: linear-gradient(0deg, rgba(0,0,0,0) 0%, rgba(0,0,0,1) 16px, rgba(0,0,0,1) calc(100% - 16px), rgba(0,0,0,0) 100%); | ||||
| 			} | ||||
| 
 | ||||
| 		&.top { | ||||
| 			> ::v-deep(*) { | ||||
| 				margin-top: 0; | ||||
| 				margin: auto; | ||||
| 			} | ||||
| 
 | ||||
| 			&.top { | ||||
| 				> ::v-deep(*) { | ||||
| 					margin-top: 0; | ||||
| 				} | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	> .content.popup { | ||||
| 		position: absolute; | ||||
| 	&.popup { | ||||
| 		> .content { | ||||
| 			position: absolute; | ||||
| 
 | ||||
| 		&.fixed { | ||||
| 			position: fixed; | ||||
| 			&.fixed { | ||||
| 				position: fixed; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| 	&.drawer { | ||||
| 		position: fixed; | ||||
| 		top: 0; | ||||
| 		left: 0; | ||||
| 		width: 100%; | ||||
| 		height: 100%; | ||||
| 		overflow: clip; | ||||
| 
 | ||||
| 		> .content { | ||||
| 			position: fixed; | ||||
| 			bottom: 0; | ||||
| 			left: 0; | ||||
| 			right: 0; | ||||
| 			margin: auto; | ||||
| 
 | ||||
| 			> ::v-deep(*) { | ||||
| 				margin: auto; | ||||
| 			} | ||||
| 		} | ||||
| 	} | ||||
| 
 | ||||
| } | ||||
| </style> | ||||
|  |  | |||
|  | @ -1,17 +1,17 @@ | |||
| <template> | ||||
| <MkPopup ref="popup" v-slot="{ maxHeight, close }" :src="src" @closed="$emit('closed')"> | ||||
| 	<MkMenu :items="items" :align="align" :width="width" :max-height="maxHeight" class="_popup _shadow" @close="close()"/> | ||||
| </MkPopup> | ||||
| <MkModal ref="modal" v-slot="{ type, maxHeight }" :src="src" :transparent-bg="true" @click="$refs.modal.close()" @closed="$emit('closed')"> | ||||
| 	<MkMenu :items="items" :align="align" :width="width" :max-height="maxHeight" :as-drawer="type === 'drawer'" class="sfhdhdhq _popup _shadow" :class="{ drawer: type === 'drawer' }" @close="$refs.modal.close()"/> | ||||
| </MkModal> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent } from 'vue'; | ||||
| import MkPopup from './popup.vue'; | ||||
| import MkModal from './modal.vue'; | ||||
| import MkMenu from './menu.vue'; | ||||
| 
 | ||||
| export default defineComponent({ | ||||
| 	components: { | ||||
| 		MkPopup, | ||||
| 		MkModal, | ||||
| 		MkMenu, | ||||
| 	}, | ||||
| 
 | ||||
|  | @ -40,3 +40,13 @@ export default defineComponent({ | |||
| 	emits: ['close', 'closed'], | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| .sfhdhdhq { | ||||
| 	&.drawer { | ||||
| 		border-radius: 24px; | ||||
| 		border-bottom-right-radius: 0; | ||||
| 		border-bottom-left-radius: 0; | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
|  |  | |||
|  | @ -1,237 +0,0 @@ | |||
| <template> | ||||
| <transition :name="$store.state.animation ? 'popup-menu' : ''" appear @after-leave="$emit('closed')" @enter="$emit('opening')"> | ||||
| 	<div v-show="manualShowing != null ? manualShowing : showing" ref="content" class="ccczpooj" :class="{ fixed, top: position === 'top' }" :style="{ zIndex, pointerEvents: (manualShowing != null ? manualShowing : showing) ? 'auto' : 'none', '--transformOrigin': transformOrigin }"> | ||||
| 		<slot :max-height="maxHeight" :close="close"></slot> | ||||
| 	</div> | ||||
| </transition> | ||||
| </template> | ||||
| 
 | ||||
| <script lang="ts"> | ||||
| import { defineComponent, nextTick, onMounted, onUnmounted, PropType, ref, watch } from 'vue'; | ||||
| import * as os from '@/os'; | ||||
| 
 | ||||
| function getFixedContainer(el: Element | null | undefined): Element | null { | ||||
| 	if (el == null || el.tagName === 'BODY') return null; | ||||
| 	const position = window.getComputedStyle(el).getPropertyValue('position'); | ||||
| 	if (position === 'fixed') { | ||||
| 		return el; | ||||
| 	} else { | ||||
| 		return getFixedContainer(el.parentElement); | ||||
| 	} | ||||
| } | ||||
| 
 | ||||
| export default defineComponent({ | ||||
| 	props: { | ||||
| 		manualShowing: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: null, | ||||
| 		}, | ||||
| 		srcCenter: { | ||||
| 			type: Boolean, | ||||
| 			required: false | ||||
| 		}, | ||||
| 		src: { | ||||
| 			type: Object as PropType<HTMLElement>, | ||||
| 			required: false, | ||||
| 		}, | ||||
| 		position: { | ||||
| 			required: false | ||||
| 		}, | ||||
| 		front: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: false, | ||||
| 		}, | ||||
| 		noOverlap: { | ||||
| 			type: Boolean, | ||||
| 			required: false, | ||||
| 			default: true, | ||||
| 		}, | ||||
| 	}, | ||||
| 
 | ||||
| 	emits: ['opening', 'click', 'esc', 'close', 'closed'], | ||||
| 
 | ||||
| 	setup(props, context) { | ||||
| 		const maxHeight = ref<number>(); | ||||
| 		const fixed = ref(false); | ||||
| 		const transformOrigin = ref('center'); | ||||
| 		const showing = ref(true); | ||||
| 		const content = ref<HTMLElement>(); | ||||
| 		const zIndex = os.claimZIndex(props.front); | ||||
| 
 | ||||
| 		const close = () => { | ||||
| 			// eslint-disable-next-line vue/no-mutating-props | ||||
| 			if (props.src) props.src.style.pointerEvents = 'auto'; | ||||
| 			showing.value = false; | ||||
| 			context.emit('close'); | ||||
| 		}; | ||||
| 
 | ||||
| 		const MARGIN = 16; | ||||
| 
 | ||||
| 		const align = () => { | ||||
| 			if (props.src == null) return; | ||||
| 
 | ||||
| 			const popover = content.value!; | ||||
| 
 | ||||
| 			if (popover == null) return; | ||||
| 
 | ||||
| 			const rect = props.src.getBoundingClientRect(); | ||||
| 			 | ||||
| 			const width = popover.offsetWidth; | ||||
| 			const height = popover.offsetHeight; | ||||
| 
 | ||||
| 			let left; | ||||
| 			let top; | ||||
| 
 | ||||
| 			if (props.srcCenter) { | ||||
| 				const x = rect.left + (fixed.value ? 0 : window.pageXOffset) + (props.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (fixed.value ? 0 : window.pageYOffset) + (props.src.offsetHeight / 2); | ||||
| 				left = (x - (width / 2)); | ||||
| 				top = (y - (height / 2)); | ||||
| 			} else { | ||||
| 				const x = rect.left + (fixed.value ? 0 : window.pageXOffset) + (props.src.offsetWidth / 2); | ||||
| 				const y = rect.top + (fixed.value ? 0 : window.pageYOffset) + props.src.offsetHeight; | ||||
| 				left = (x - (width / 2)); | ||||
| 				top = y; | ||||
| 			} | ||||
| 
 | ||||
| 			if (fixed.value) { | ||||
| 				// 画面から横にはみ出る場合 | ||||
| 				if (left + width > window.innerWidth) { | ||||
| 					left = window.innerWidth - width; | ||||
| 				} | ||||
| 
 | ||||
| 				// 画面から縦にはみ出る場合 | ||||
| 				if (top + height > (window.innerHeight - MARGIN)) { | ||||
| 					if (props.noOverlap) { | ||||
| 						const underSpace = (window.innerHeight - MARGIN) - top; | ||||
| 						const upperSpace = (rect.top - MARGIN); | ||||
| 						if (underSpace >= (upperSpace / 3)) { | ||||
| 							maxHeight.value =  underSpace; | ||||
| 						} else { | ||||
| 							maxHeight.value =  upperSpace; | ||||
| 							top = (upperSpace + MARGIN) - height; | ||||
| 						} | ||||
| 					} else { | ||||
| 						top = (window.innerHeight - MARGIN) - height; | ||||
| 					} | ||||
| 				} | ||||
| 			} else { | ||||
| 				// 画面から横にはみ出る場合 | ||||
| 				if (left + width - window.pageXOffset > window.innerWidth) { | ||||
| 					left = window.innerWidth - width + window.pageXOffset - 1; | ||||
| 				} | ||||
| 
 | ||||
| 				// 画面から縦にはみ出る場合 | ||||
| 				if (top + height - window.pageYOffset > (window.innerHeight - MARGIN)) { | ||||
| 					if (props.noOverlap) { | ||||
| 						const underSpace = (window.innerHeight - MARGIN) - (top - window.pageYOffset); | ||||
| 						const upperSpace = (rect.top - MARGIN); | ||||
| 						if (underSpace >= (upperSpace / 3)) { | ||||
| 							maxHeight.value =  underSpace; | ||||
| 						} else { | ||||
| 							maxHeight.value =  upperSpace; | ||||
| 							top = window.pageYOffset + ((upperSpace + MARGIN) - height); | ||||
| 						} | ||||
| 					} else { | ||||
| 						top = (window.innerHeight - MARGIN) - height + window.pageYOffset - 1; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 
 | ||||
| 			if (top < 0) { | ||||
| 				top = MARGIN; | ||||
| 			} | ||||
| 
 | ||||
| 			if (left < 0) { | ||||
| 				left = 0; | ||||
| 			} | ||||
| 
 | ||||
| 			if (top > rect.top + (fixed.value ? 0 : window.pageYOffset)) { | ||||
| 				transformOrigin.value = 'center top'; | ||||
| 			} else if ((top + height) <= rect.top + (fixed.value ? 0 : window.pageYOffset)) { | ||||
| 				transformOrigin.value = 'center bottom'; | ||||
| 			} else { | ||||
| 				transformOrigin.value = 'center'; | ||||
| 			} | ||||
| 
 | ||||
| 			popover.style.left = left + 'px'; | ||||
| 			popover.style.top = top + 'px'; | ||||
| 		}; | ||||
| 
 | ||||
| 		const onDocumentClick = (ev: MouseEvent) => { | ||||
| 			const flyoutElement = content.value; | ||||
| 			let targetElement = ev.target; | ||||
| 			do { | ||||
| 				if (targetElement === flyoutElement) { | ||||
| 					return; | ||||
| 				} | ||||
| 				targetElement = targetElement.parentNode; | ||||
| 			} while (targetElement); | ||||
| 			close(); | ||||
| 		}; | ||||
| 
 | ||||
| 		onMounted(() => { | ||||
| 			watch(() => props.src, async () => { | ||||
| 				if (props.src) { | ||||
| 					// eslint-disable-next-line vue/no-mutating-props | ||||
| 					props.src.style.pointerEvents = 'none'; | ||||
| 				} | ||||
| 				fixed.value = getFixedContainer(props.src) != null; | ||||
| 
 | ||||
| 				await nextTick() | ||||
| 				 | ||||
| 				align(); | ||||
| 			}, { immediate: true, }); | ||||
| 
 | ||||
| 			nextTick(() => { | ||||
| 				const popover = content.value; | ||||
| 				new ResizeObserver((entries, observer) => { | ||||
| 					align(); | ||||
| 				}).observe(popover!); | ||||
| 			}); | ||||
| 
 | ||||
| 			document.addEventListener('mousedown', onDocumentClick, { passive: true }); | ||||
| 
 | ||||
| 			onUnmounted(() => { | ||||
| 				document.removeEventListener('mousedown', onDocumentClick); | ||||
| 			}); | ||||
| 		}); | ||||
| 
 | ||||
| 		return { | ||||
| 			showing, | ||||
| 			fixed, | ||||
| 			content, | ||||
| 			transformOrigin, | ||||
| 			maxHeight, | ||||
| 			close, | ||||
| 			zIndex, | ||||
| 		}; | ||||
| 	}, | ||||
| }); | ||||
| </script> | ||||
| 
 | ||||
| <style lang="scss" scoped> | ||||
| .popup-menu-enter-active { | ||||
| 	transform-origin: var(--transformOrigin); | ||||
| 	transition: opacity 0.2s cubic-bezier(0, 0, 0.2, 1), transform 0.2s cubic-bezier(0, 0, 0.2, 1) !important; | ||||
| } | ||||
| .popup-menu-leave-active { | ||||
| 	transform-origin: var(--transformOrigin); | ||||
| 	transition: opacity 0.2s cubic-bezier(0.4, 0, 1, 1), transform 0.2s cubic-bezier(0.4, 0, 1, 1) !important; | ||||
| } | ||||
| .popup-menu-enter-from, .popup-menu-leave-to { | ||||
| 	pointer-events: none; | ||||
| 	opacity: 0; | ||||
| 	transform: scale(0.9); | ||||
| } | ||||
| 
 | ||||
| .ccczpooj { | ||||
| 	position: absolute; | ||||
| 
 | ||||
| 	&.fixed { | ||||
| 		position: fixed; | ||||
| 	} | ||||
| } | ||||
| </style> | ||||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <div class="fgmtyycl" :style="{ top: top + 'px', left: left + 'px' }"> | ||||
| <div class="fgmtyycl" :style="{ zIndex, top: top + 'px', left: left + 'px' }"> | ||||
| 	<transition name="zoom" @after-leave="$emit('closed')"> | ||||
| 		<MkUrlPreview v-if="showing" class="_popup _shadow" :url="url"/> | ||||
| 	</transition> | ||||
|  | @ -35,6 +35,7 @@ export default defineComponent({ | |||
| 			u: null, | ||||
| 			top: 0, | ||||
| 			left: 0, | ||||
| 			zIndex: os.claimZIndex(), | ||||
| 		}; | ||||
| 	}, | ||||
| 
 | ||||
|  | @ -52,7 +53,6 @@ export default defineComponent({ | |||
| <style lang="scss" scoped> | ||||
| .fgmtyycl { | ||||
| 	position: absolute; | ||||
| 	z-index: 11000; | ||||
| 	width: 500px; | ||||
| 	max-width: calc(90vw - 12px); | ||||
| 	pointer-events: none; | ||||
|  |  | |||
|  | @ -1,6 +1,6 @@ | |||
| <template> | ||||
| <transition name="popup" appear @after-leave="$emit('closed')"> | ||||
| 	<div v-if="showing" class="fxxzrfni _popup _shadow" :style="{ top: top + 'px', left: left + 'px' }" @mouseover="() => { $emit('mouseover'); }" @mouseleave="() => { $emit('mouseleave'); }"> | ||||
| 	<div v-if="showing" class="fxxzrfni _popup _shadow" :style="{ zIndex, top: top + 'px', left: left + 'px' }" @mouseover="() => { $emit('mouseover'); }" @mouseleave="() => { $emit('mouseleave'); }"> | ||||
| 		<div v-if="fetched" class="info"> | ||||
| 			<div class="banner" :style="user.bannerUrl ? `background-image: url(${user.bannerUrl})` : ''"></div> | ||||
| 			<MkAvatar class="avatar" :user="user" :disable-preview="true" :show-indicator="true"/> | ||||
|  | @ -65,6 +65,7 @@ export default defineComponent({ | |||
| 			fetched: false, | ||||
| 			top: 0, | ||||
| 			left: 0, | ||||
| 			zIndex: os.claimZIndex(), | ||||
| 		}; | ||||
| 	}, | ||||
| 
 | ||||
|  | @ -109,7 +110,6 @@ export default defineComponent({ | |||
| 
 | ||||
| .fxxzrfni { | ||||
| 	position: absolute; | ||||
| 	z-index: 11000; | ||||
| 	width: 300px; | ||||
| 	overflow: hidden; | ||||
| 	transform-origin: center top; | ||||
|  |  | |||
|  | @ -2,7 +2,7 @@ | |||
| <div class="mk-group-page"> | ||||
| 	<transition name="zoom" mode="out-in"> | ||||
| 		<div v-if="group" class="_section"> | ||||
| 			<div class="_content"> | ||||
| 			<div class="_content" style="display: flex; gap: var(--margin); flex-wrap: wrap;"> | ||||
| 				<MkButton inline @click="invite()">{{ $ts.invite }}</MkButton> | ||||
| 				<MkButton inline @click="renameGroup()">{{ $ts.rename }}</MkButton> | ||||
| 				<MkButton inline @click="transfer()">{{ $ts.transfer }}</MkButton> | ||||
|  |  | |||
|  | @ -29,11 +29,14 @@ | |||
| 		<option :value="2">{{ $ts.medium }}</option> | ||||
| 		<option :value="3">{{ $ts.large }}</option> | ||||
| 	</FormRadios> | ||||
| 
 | ||||
| 	<FormSwitch v-model="reactionPickerUseDrawerForMobile" class="_formBlock">{{ $ts.useDrawerReactionPickerForMobile }}</FormSwitch> | ||||
| 
 | ||||
| 	<FormSection> | ||||
| 		<FormButton @click="preview"><i class="fas fa-eye"></i> {{ $ts.preview }}</FormButton> | ||||
| 	</FormSection> | ||||
| 	<FormSection> | ||||
| 		<FormButton danger @click="setDefault"><i class="fas fa-undo"></i> {{ $ts.default }}</FormButton> | ||||
| 		<div style="display: flex; gap: var(--margin); flex-wrap: wrap;"> | ||||
| 			<FormButton inline @click="preview"><i class="fas fa-eye"></i> {{ $ts.preview }}</FormButton> | ||||
| 			<FormButton inline danger @click="setDefault"><i class="fas fa-undo"></i> {{ $ts.default }}</FormButton> | ||||
| 		</div> | ||||
| 	</FormSection> | ||||
| </div> | ||||
| </template> | ||||
|  | @ -46,6 +49,7 @@ import FormRadios from '@/components/form/radios.vue'; | |||
| import FromSlot from '@/components/form/slot.vue'; | ||||
| import FormButton from '@/components/ui/button.vue'; | ||||
| import FormSection from '@/components/form/section.vue'; | ||||
| import FormSwitch from '@/components/form/switch.vue'; | ||||
| import * as os from '@/os'; | ||||
| import { defaultStore } from '@/store'; | ||||
| import * as symbols from '@/symbols'; | ||||
|  | @ -57,6 +61,7 @@ export default defineComponent({ | |||
| 		FromSlot, | ||||
| 		FormRadios, | ||||
| 		FormSection, | ||||
| 		FormSwitch, | ||||
| 		XDraggable, | ||||
| 	}, | ||||
| 
 | ||||
|  | @ -80,6 +85,7 @@ export default defineComponent({ | |||
| 	computed: { | ||||
| 		reactionPickerWidth: defaultStore.makeGetterSetter('reactionPickerWidth'), | ||||
| 		reactionPickerHeight: defaultStore.makeGetterSetter('reactionPickerHeight'), | ||||
| 		reactionPickerUseDrawerForMobile: defaultStore.makeGetterSetter('reactionPickerUseDrawerForMobile'), | ||||
| 	}, | ||||
| 
 | ||||
| 	watch: { | ||||
|  |  | |||
|  | @ -178,6 +178,10 @@ export const defaultStore = markRaw(new Storage('base', { | |||
| 		where: 'device', | ||||
| 		default: 1 | ||||
| 	}, | ||||
| 	reactionPickerUseDrawerForMobile: { | ||||
| 		where: 'device', | ||||
| 		default: true, | ||||
| 	}, | ||||
| 	recentlyUsedEmojis: { | ||||
| 		where: 'device', | ||||
| 		default: [] as string[] | ||||
|  |  | |||
|  | @ -346,7 +346,7 @@ hr { | |||
| ._popup { | ||||
| 	background: var(--popup); | ||||
| 	border-radius: var(--radius); | ||||
| 	contain: contain; | ||||
| 	contain: content; | ||||
| } | ||||
| 
 | ||||
| // TODO: 廃止 | ||||
|  |  | |||
|  | @ -1,5 +1,5 @@ | |||
| <template> | ||||
| <div class="mk-uploader _acrylic"> | ||||
| <div class="mk-uploader _acrylic" :style="{ zIndex }"> | ||||
| 	<ol v-if="uploads.length > 0"> | ||||
| 		<li v-for="ctx in uploads" :key="ctx.id"> | ||||
| 			<div class="img" :style="{ backgroundImage: `url(${ ctx.img })` }"></div> | ||||
|  | @ -25,6 +25,7 @@ export default defineComponent({ | |||
| 	data() { | ||||
| 		return { | ||||
| 			uploads: os.uploads, | ||||
| 			zIndex: os.claimZIndex(true), | ||||
| 		}; | ||||
| 	}, | ||||
| }); | ||||
|  | @ -33,7 +34,6 @@ export default defineComponent({ | |||
| <style lang="scss" scoped> | ||||
| .mk-uploader { | ||||
| 	position: fixed; | ||||
| 	z-index: 10000; | ||||
| 	right: 16px; | ||||
| 	width: 260px; | ||||
| 	top: 32px; | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue