Compare commits

..
1071 Commits
Author SHA1 Message Date
zramsay db0b0b0301 add lcn testnet 2 2024-10-30 16:54:13 -04:00
dboreham fe96cd224c Merge pull request 'Change page title' (#3) from dboreham/change-page-title into master
Reviewed-on: #3
2024-08-21 01:49:01 +00:00
dboreham d4a07b8c83 Change page title 2024-08-20 19:47:08 -06:00
dboreham 46da12df36 Merge pull request 'Basic re-skin' (#2) from dboreham/basic-re-skin into master
Reviewed-on: #2
2024-08-20 23:51:59 +00:00
dboreham c3f93d42ca Add missing file 2024-08-20 17:51:13 -06:00
dboreham bbc30e04af Some simple re-skinning changes 2024-08-20 17:39:10 -06:00
dboreham bc8d91c183 Merge pull request 'Reduce block polling interval' (#1) from dboreham/fix-missing-blocks into master
Reviewed-on: #1
2024-08-20 17:29:16 +00:00
dboreham 91e4b32b9e Reduce block polling interval 2024-08-20 11:26:08 -06:00
liangping 00cb9e5f42 update ad lib 2024-07-27 20:38:53 +08:00
liangping 1ab0834920 fix typo 2024-07-16 11:18:19 +08:00
liangping 5b7cee4df8 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-07-16 11:12:38 +08:00
liangping d02eecc963 update sponsers 2024-07-16 11:12:33 +08:00
ping 1f5e3ca06d Merge pull request #579 from dboreham/add-hostname-doc
Add note on hostname behavior
2024-07-16 10:07:40 +08:00
dboreham d8c0e9786f Add note on hostname behavior 2024-07-15 14:56:14 -06:00
ping b798635cba Merge pull request #575 from jasonsopko/master
Update index.vue
2024-07-03 07:37:12 +08:00
Jason Sopko 507b999b77 Update index.vue
Fixed typo
2024-07-02 08:03:31 -04:00
ping 57ad32e37a Merge pull request #574 from amimart/fix/staking-apr-formula
fix(staking): correct APR computation formula
2024-06-20 07:52:17 +08:00
Arnaud Mimart 738fc55182 fix(staking): correct APR computation formula 2024-06-19 12:31:42 +02:00
ping a2ecc7ceae Merge pull request #573 from omahs/patch-2
Fix typos
2024-06-16 15:11:47 +08:00
omahs a850809952 fix typo 2024-06-16 07:00:22 +02:00
omahs d45fb91328 fix typos 2024-06-16 06:59:55 +02:00
liangping 01958fb73b fix wallet 2024-06-16 08:56:29 +08:00
liangping 9d882785f4 update wallet connect 2024-06-16 08:48:48 +08:00
ping 76953ca789 Merge pull request #572 from showzyl/feat/wallet
feat: add side
2024-06-16 08:09:13 +08:00
ping 4b6930b040 Delete chains/mainnet/side.json 2024-06-16 08:08:29 +08:00
showlizi 51aaf66068 fix: route unisat 2024-06-14 18:03:36 +08:00
showlizi d0c4278f84 feat: add side 2024-06-14 17:26:14 +08:00
liangping 6756c41676 apply update 2024-06-11 17:14:35 +08:00
liangping 8ce2cfaa9f update UI 2024-06-06 08:58:15 +08:00
liangping 2ee1d398d1 update config checker 2024-06-05 12:17:23 +08:00
liangping 09d4291499 remove endpoint check 2024-06-05 08:43:46 +08:00
liangping c6016ea047 show one faucet in menu 2024-06-01 17:23:30 +08:00
liangping 0ae8de3846 improve ad update 2024-06-01 17:09:01 +08:00
liangping c935c6eb69 Show blockchain logo 2024-06-01 14:45:23 +08:00
liangping 036df51d6e add faucet feature 2024-06-01 11:23:12 +08:00
ping a6691efb01 Merge pull request #567 from shidiqmuh0/master
Fix Missing @cosmjs/amino
2024-05-27 15:01:07 +08:00
shidiq 7603d77137 Update axelar.json 2024-05-27 12:22:40 +07:00
shidiq ba6407fbb4 Create axelar.json 2024-05-26 20:35:08 +07:00
shidiq b053a460e0 Update package.json 2024-05-26 20:34:22 +07:00
liangping ce64016085 upgrade cosmjs version 2024-05-12 12:47:21 +08:00
ping b416755f02 Merge pull request #565 from freak12techno/format-validator-events-tokens
Format validator events tokens
2024-05-03 07:33:04 +08:00
Sergey 0ac6ef2c66 Format validator events tokens 2024-05-01 15:39:15 +03:00
liangping 19e2e5875a removed error config 2024-04-28 09:26:41 +08:00
liangping 7f8503edd2 improve tolerance of config 2024-04-28 09:25:03 +08:00
liangping ca29dbba7d fixed issues 2024-04-28 09:17:48 +08:00
liangping 683c569f31 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-04-28 09:00:53 +08:00
liangping 0a552e78de re-enable ad 2024-04-28 09:00:18 +08:00
ping e2c526e12f Merge pull request #563 from eCoxvague/master
crossfi testnet forpeaky
2024-04-22 14:26:59 +08:00
eCox 56d4072022 Add files via upload 2024-04-21 20:49:10 +03:00
eCox 4b1f6c7082 Add files via upload 2024-04-21 20:48:45 +03:00
liangping 21feb03ece remove ad 2024-04-20 17:18:58 +08:00
liangping 603d7ce227 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-04-16 09:54:29 +08:00
liangping 7b964b67f2 fix api changed 2024-04-16 09:54:21 +08:00
ping 8ab5d41de0 Merge pull request #559 from ToTheMars2/patch-2
Correct upgrade time for proposals
2024-04-11 03:58:17 +08:00
ToTheMars2 838c74dbce correct upgrade time for proposals
I think it will be a more dynamic option)
2024-04-02 14:59:12 +03:00
liangping 5fed99b1ab add background 2024-03-31 19:39:50 +08:00
liangping 5ffa213b14 add block chart 2024-03-31 19:39:40 +08:00
liangping 87197797a9 add bg color for table header 2024-03-29 10:48:50 +08:00
liangping 903e3cbae9 show empty instead of 0 2024-03-27 19:53:59 +08:00
liangping 4a375f58d0 optimized block loading 2024-03-27 15:42:53 +08:00
liangping 727a53177e improve fetch 2024-03-27 12:26:51 +08:00
liangping a491f162d7 improve block fetch 2024-03-27 10:38:31 +08:00
liangping 43563056a2 fixed issue 2024-03-26 12:43:17 +08:00
liangping 0b8d4dc987 improve update performance 2024-03-26 11:53:33 +08:00
liangping 86a5e9c0da add google analytics setting 2024-03-24 12:11:43 +08:00
liangping cf30712e0e remove margin 2024-03-24 11:56:14 +08:00
liangping 3e8423eed9 update 2024-03-24 11:49:07 +08:00
liangping 443132458d adjust position 2024-03-24 11:41:37 +08:00
liangping be8da6d86c improve layout 2024-03-24 11:21:08 +08:00
liangping a56271f370 improve wasm contract 2024-03-24 10:13:12 +08:00
liangping 7958877354 improve tx hash 2024-03-23 17:26:02 +08:00
liangping b0ca5ead26 add tx 2024-03-23 16:55:14 +08:00
liangping 790a0147e4 improve uptime and ad 2024-03-23 13:37:05 +08:00
liangping b74ab21bc8 improve mobile ad 2024-03-23 12:12:23 +08:00
liangping fc20f3e460 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-03-23 11:29:15 +08:00
liangping 562dfb4046 add ad 2024-03-23 11:29:07 +08:00
ping 86241fa4ea Merge pull request #556 from 0xhsy/update-verification
btn disable bug fix
2024-03-21 15:52:07 +08:00
0xhsy 8039de1763 btn disable bug fix 2024-03-21 10:16:34 +09:00
BitcoinVM 5a385a8e9e improve uptime 2024-03-04 14:41:46 +08:00
BitcoinVM 5c341e9306 update active validator set 2024-02-26 09:37:47 +08:00
BitcoinVM d0b42899a4 improve loading 2024-02-24 15:04:37 +08:00
BitcoinVM 4b326f0259 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-02-23 20:21:42 +08:00
BitcoinVM c937b54202 only show int value for changes 2024-02-23 20:21:35 +08:00
BitcoinVM 47607e7416 support UpdateParamsMsg 2024-02-23 20:21:12 +08:00
ping a8274de598 Merge pull request #544 from zenodeapp/master
Fixes 24h changes formatting
2024-02-22 10:37:09 +08:00
ZENODE def7de5a63 Reverted useDashboard.ts 2024-02-20 20:16:08 +01:00
ZENODE 4835781d29 Reviewed #544, made the logic in useFormatter instead 2024-02-20 20:14:44 +01:00
ZENODE dc1c4a5ca1 Fixes adding exponent for chains without coingecko_ids 2024-02-19 07:33:54 +01:00
ping 23d43543cb Merge pull request #542 from freak12techno/fix-ibc-fetch-from-registry
Fix IBC fetch from registry
2024-02-09 11:23:44 +08:00
Techno Freak 2567aea4be Fix IBC fetch from registry 2024-02-07 02:13:29 +03:00
BitcoinVM 6d0b250bf1 fixed 2024-02-04 12:35:22 +08:00
BitcoinVM 6ea43afb41 fixed type error 2024-02-04 12:32:55 +08:00
BitcoinVM f7f4a0fb5a return 0 if no change 2024-02-04 12:28:55 +08:00
ping 3aec1c5a6e Merge pull request #528 from freak12techno/add-consensus-prefix-to-config
feat: add consensus prefix to config
2024-02-04 12:21:47 +08:00
ping 7cb56fac0b Merge pull request #541 from freak12techno/add-tendermint-voting-power-coefficient
Add tendermint voting power coefficient
2024-02-04 12:19:55 +08:00
Techno Freak a792c379a5 Calculate 24h changes diff correctly 2024-02-03 18:31:44 +03:00
BitcoinVM a14c04059c change status of verify 2024-02-03 10:52:02 +08:00
ping a728dea229 Merge pull request #540 from ivivanov/master
update nolus gov endpoints
2024-02-03 09:24:29 +08:00
ivivanov 729c36cc6f update nolus gov endpoints 2024-02-02 15:48:57 +02:00
BitcoinVM 036801fe90 update trigger condition 2024-02-02 13:20:12 +08:00
BitcoinVM 4ebf7f75b6 remove console.log 2024-02-02 13:15:16 +08:00
BitcoinVM 92219fad55 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-02-02 13:07:28 +08:00
BitcoinVM e19b309980 improvment 2024-02-02 13:06:00 +08:00
BitcoinVM bd080281a7 calculate 24h time window on block time 2024-02-02 12:57:17 +08:00
ping 15c86909d0 Merge pull request #538 from sxlmnwb/master
feat: libs: add Promise.resolve in `getGovProposalTally`
2024-01-31 20:45:01 +08:00
Salman Wahib 4e0606b8ab feat: libs: add Promise.resolve in getGovProposalTally
In the getGovProposalTally method, added `Promise.resolve` to the adapter function to ensure it returns a Promise.
This resolves the TypeScript error related to the return type mismatch.

Signed-off-by: Salman Wahib <sxlmnwb@nodex.one>
2024-01-31 12:03:48 +00:00
ping 4c53591e85 Merge pull request #534 from ivivanov/master
add chain specific getMintInflation func
2024-01-31 12:33:38 +08:00
BitcoinVM 7b4379c902 add packet detail types 2024-01-31 10:27:18 +08:00
BitcoinVM aad4c8ea72 Merge branch 'master' of https://github.com/ping-pub/explorer 2024-01-31 10:26:30 +08:00
BitcoinVM f1fb43b935 decode ibc packet 2024-01-31 10:26:21 +08:00
ivivanov 9a496f89e9 refator custom clients to use async adaptor 2024-01-30 12:11:11 +02:00
ivivanov 9c660d8da2 add chain specific inflation calc 2024-01-30 12:00:17 +02:00
ping f35fb44856 Merge pull request #537 from freak12techno/fix-commission-rate-rounding
Fix commission rate formatting
2024-01-30 14:37:37 +08:00
ping db2d963d06 Merge branch 'master' into fix-commission-rate-rounding 2024-01-30 14:37:22 +08:00
BitcoinVM 0ca5a14eb8 tofix 2024-01-30 03:14:14 +01:00
Techno Freak 9e34c476c4 Fix commission rate formatting 2024-01-29 17:30:00 +03:00
BitcoinVM 38d741ffee add wasm schema and code viewer 2024-01-29 17:36:41 +08:00
liangping 026c2d2840 update widget version update 2024-01-26 10:25:02 +08:00
liangping fc57e87f2d improve 24hours loading 2024-01-21 12:08:48 +08:00
Techno Freak 836b21d7d2 feat: add consensus prefix to config 2024-01-19 16:16:24 +03:00
liangping 30826a0ed6 remove pagination 2024-01-11 16:09:43 +08:00
liangping d620c7e43a remove pagination since the api does not support 2024-01-11 16:04:59 +08:00
liangping 895e611c39 custom adaptar 2024-01-11 14:36:20 +08:00
liangping ef39c448cb add optional adaptar 2024-01-11 13:55:25 +08:00
liangping 73f36c64b4 add client 2024-01-11 13:43:18 +08:00
liangping 1354abdb5d update policy 2024-01-07 14:43:15 +08:00
liangping fb32ff8597 add referer policy 2024-01-07 14:39:24 +08:00
liangping baf1813d1c update osmosis client 2024-01-01 10:22:02 +08:00
liangping 7662350921 change condition 2023-12-28 14:23:00 +08:00
liangping ad1055d191 adjust frequency 2023-12-28 12:58:05 +08:00
liangping 1b10c1cb3f remove unused import 2023-12-28 12:35:25 +08:00
liangping f4dda3c1f3 trigger update signing info 2023-12-28 12:32:46 +08:00
liangping 5ecba3b283 support metadata 2023-12-26 21:04:32 +08:00
liangping 2094c2c48d fix issue 2023-12-26 15:54:14 +08:00
liangping 3a3ffd5e36 overhidden address 2023-12-26 15:44:48 +08:00
liangping 13f80bf0d6 Improve UI 2023-12-26 15:44:27 +08:00
liangping 2a60e6fef9 using dynamic sdk version 2023-12-26 13:51:17 +08:00
liangping 84e26e26ad improve incompatible events display 2023-12-26 09:18:04 +08:00
liangping 6a4d1952ed Rename title 2023-12-25 17:46:52 +08:00
liangping 4518d7d108 improve compatibility 2023-12-25 17:13:04 +08:00
liangping 5d1b0fba9b add type check 2023-12-25 15:02:40 +08:00
liangping 0e57913204 add power event 2023-12-25 14:55:47 +08:00
liangping 6cccb25964 fix error 2023-12-25 09:27:52 +08:00
liangping 6faf69c6f9 update evmos gov api 2023-12-25 09:22:04 +08:00
liangping 5d1b1672c7 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-12-25 09:08:20 +08:00
liangping fe659f8f61 dynmic update sdk version 2023-12-25 09:08:15 +08:00
liangping b22b13ae3f update featured 2023-12-24 07:39:00 +08:00
liangping a5eb20d979 fix undefined error 2023-12-24 07:37:18 +08:00
liangping 4fa1391e01 update featured blockchains 2023-12-20 18:52:10 +08:00
liangping ff027ff9d0 fix filter issue 2023-12-20 18:47:31 +08:00
liangping 6d4ae71b87 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-12-20 17:18:33 +08:00
liangping ef6a2aa9c7 fix filter issue 2023-12-20 17:18:15 +08:00
ping 586fb2ecf1 Merge pull request #522 from 0xhsy/update-verification
Update verification
2023-12-18 16:08:32 +08:00
현수영 0e61813efd add btn disable & update description to verification page 2023-12-18 16:32:26 +09:00
현수영 0a0b78c14e update welldone studio logo 2023-12-18 15:15:08 +09:00
liangping 1c9c0a6656 add custom apr 2023-12-16 19:52:27 +08:00
liangping 1870f7b4cb add osmosis extension 2023-12-16 19:30:08 +08:00
liangping 9233a4e8ef support external for api 2023-12-16 19:13:31 +08:00
liangping bfedae38f1 apply chain id in url 2023-12-15 17:41:22 +08:00
liangping b5a889a205 add logo 2023-12-15 16:59:31 +08:00
liangping 10d95e9d0b add verification 2023-12-15 16:13:56 +08:00
liangping 64460a686c update import 2023-12-14 08:43:11 +08:00
liangping 53641d8101 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-12-14 08:39:55 +08:00
liangping 2f8321dba8 add verificaion 2023-12-14 08:39:46 +08:00
liangping ce9f5c076c fix error 2023-12-13 08:54:37 +08:00
liangping f7e88d0825 change cdn 2023-12-13 08:51:04 +08:00
ping 489971021e Merge pull request #519 from zenodeapp/master
Search bar case sensitivity fix and lowercased chainName
2023-12-05 14:57:37 +08:00
zenodeapp a1a5ca6ca4 Leftover cleanup 2023-12-04 12:13:02 +01:00
zenodeapp 2982f8e727 Made search include chainName and simplified the url fix 2023-12-04 12:10:45 +01:00
zenodeapp b01588c94d chainName is now considered lowercased, fixing address bar capitalization 2023-12-03 20:43:31 +01:00
zenodeapp fe79a2ab11 Fixed searching in all chains (case insensitive + pretty name) 2023-12-03 20:40:50 +01:00
liangping 4555bb9424 hide if featured list is empty 2023-12-03 09:50:37 +08:00
liangping 5e36425f00 sort featured blockchain 2023-12-03 09:46:22 +08:00
liangping 9784de5516 add injective to featured 2023-12-02 08:29:02 +08:00
ping 1aee5ac969 Merge pull request #517 from zenodeapp/master
Optimized avatars and added avatar auto-fixer when cache is old.
2023-12-02 08:19:05 +08:00
liangping 55eee21b51 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-12-02 08:13:33 +08:00
liangping eb169a8deb add featured blockchains 2023-12-02 08:13:01 +08:00
zenodeapp ccf63cd413 Made everything a bit more consistent. 2023-12-01 16:43:06 +01:00
zenodeapp 5737bc6a33 Fixed no avatar bug and styling of question mark fixed. 2023-12-01 15:03:53 +01:00
zenodeapp 727979bf20 Optimized avatars and added avatar auto-fixer when cache is old. 2023-12-01 14:26:49 +01:00
ping aa17be0839 Update FUNDING.yml 2023-11-28 18:26:45 +08:00
liangping 8ae5f18e4c Merge branch 'master' of https://github.com/ping-pub/explorer 2023-11-28 10:14:32 +08:00
liangping 7b8c2463d1 dynamic load state sync block 2023-11-28 10:14:26 +08:00
liangping 61203d348b only support base64 2023-11-15 15:30:51 +08:00
liangping 8a45680a8e improve received 2023-11-15 15:11:02 +08:00
liangping ca59e3d586 filter spam 2023-11-15 14:46:37 +08:00
liangping cb756ea204 improve amount display 2023-11-13 20:48:27 +08:00
liangping df31f53b46 remove console 2023-11-13 14:44:18 +08:00
liangping 68cfb5e553 add type definition 2023-11-13 13:43:05 +08:00
liangping 7b82ec2b59 add received asset list 2023-11-13 13:38:22 +08:00
liangping d811714165 add error message 2023-11-11 14:25:30 +08:00
liangping ce7abefa84 random pick endpoints 2023-11-10 15:34:06 +08:00
liangping 586f819d41 update status color 2023-11-10 15:33:48 +08:00
liangping 180e4b9f2b move wasm client out of wasm store 2023-11-10 14:23:43 +08:00
liangping f91b26abba use json view instead of grid view 2023-11-10 13:57:06 +08:00
liangping e8f788de06 improve json view style 2023-11-10 13:30:53 +08:00
liangping 40e5d34389 improve compatible 2023-11-02 09:33:48 +08:00
liangping 1318670d6d only use address for account track 2023-11-01 09:00:54 +08:00
liangping 7618ea9ffd re-order formating flow 2023-10-30 09:21:27 +08:00
liangping 3ffcc90dd2 fix: small number of commission & rewards 2023-10-30 09:19:34 +08:00
liangping 36c73ec5ee add unbonding staking 2023-10-28 09:51:09 +08:00
liangping 75f2c5b40c add unbonding validators 2023-10-28 09:30:33 +08:00
liangping f4732ec594 change the field name 2023-10-28 09:04:47 +08:00
liangping 21ff37aac1 load origin value for param change proposal 2023-10-28 08:21:02 +08:00
ping 7e03e3b32d Merge pull request #506 from sxlmnwb/master
endpoint: improvement connectivity on dropdown
2023-09-22 08:51:17 +08:00
Salman Wahib 487472c05a endpoint: improvement connectivity on dropdown
Signed-off-by: Salman Wahib <hello@sxlmnwb.xyz>
2023-09-21 22:10:17 +00:00
liangping 42009219a7 endpoint switch improvement 2023-09-20 10:12:57 +08:00
liangping bae700f822 add osmosis in config 2023-09-20 10:12:26 +08:00
liangping a2979a75ef Disable Delegations 2023-09-18 13:23:25 +08:00
liangping 74024f825c Disable performance 2023-09-18 13:20:28 +08:00
liangping 14119034c4 add delegations 2023-09-14 20:07:04 +08:00
liangping fbbeb21803 replace json viewer 2023-09-14 11:49:56 +08:00
liangping 7643ebce55 get chain-id 2023-09-13 17:19:59 +08:00
liangping b0ebf40312 add suggest chain 2023-09-13 17:09:31 +08:00
liangping 74834783fa fix build error 2023-09-11 13:06:20 +08:00
liangping ecfd56ec0b improve ibc denom 2023-09-11 13:00:17 +08:00
liangping a208831cf9 add ibc denom cache 2023-09-11 12:27:17 +08:00
liangping e1ab30afab remove logos 2023-09-09 09:50:23 +08:00
ping 4a2e1b8a42 Merge pull request #503 from sxlmnwb/master
regex: enable consensus dumpurl on old code
2023-09-09 09:48:26 +08:00
Salman Wahib 4945f697ce regex: enable consensus dumpurl on old code
Bug: #diff-ee4466aa0d1c641d7ae40ff1d8569a2bb414a9301ba3a2ac16e8c7cb879ea03d
Effects of rpc.value
500: Cannot read properties of undefined (reading 'validators')

- update packages to latest versions

Change-Id: 1e3eb6c56e

Signed-off-by: Salman Wahib <hello@sxlmnwb.xyz>
2023-09-09 01:36:23 +00:00
ping d9a07b2782 Update README.md 2023-09-09 09:29:31 +08:00
liangping 6453f463a3 update 2023-09-09 09:28:23 +08:00
liangping d0208d2403 remove config 2023-09-09 09:24:15 +08:00
liangping 965e9f7a67 disable deploy CI/CD on this repo 2023-09-09 09:04:11 +08:00
liangping a4502edf99 add nft draft 2023-09-09 07:50:41 +08:00
liangping 5e9feabb41 update chihuahua config 2023-09-07 20:32:30 +08:00
liangping 6b145e13d3 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-09-07 09:06:47 +08:00
liangping a9b9ff0aa4 add leap & metamask logo 2023-09-07 09:06:27 +08:00
ping 07f4e4b281 Merge pull request #501 from Xiphiar/trivium-endpoints
Add Trivium API and RPC endpoints
2023-09-05 06:47:53 +08:00
Xiphiar 242a5b08ed add dyson endpoints 2023-09-04 15:21:55 -04:00
Xiphiar 0718bf8dd4 add archway endpoints 2023-09-04 15:20:48 -04:00
Xiphiar 6c114d00cc Update secret testnet trivium endpoints 2023-09-04 15:01:45 -04:00
ping 0cad05edf6 Merge pull request #500 from george-aj/master
Fix typo
2023-09-02 08:35:11 +08:00
george-aj 6e8ca7fc12 Fix typo 2023-09-01 16:57:10 -05:00
liangping c91a611364 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-09-01 11:40:58 +08:00
liangping 1e3eb6c56e Loaded Rotated Keys for consumer chain 2023-09-01 11:40:51 +08:00
ping b28f216e3c Merge pull request #499 from george-aj/master
Add Temporal Testnet
2023-09-01 07:59:59 +08:00
george-aj f1679256f2 Add Temporal Testnet 2023-08-31 11:43:59 -05:00
liangping 62a2d8f927 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-08-31 15:19:01 +08:00
liangping 2b955281e3 feat: migrate, update admin, clear admin 2023-08-31 15:18:13 +08:00
ping f7191afb03 Update README.md 2023-08-30 11:50:08 +08:00
ping 51846df957 Update README.md
update metadata tutoris
2023-08-30 11:47:04 +08:00
ping 103db90f24 Merge pull request #498 from dckc/patch-3
fix(agoric): RUN->IST
2023-08-30 11:31:03 +08:00
Dan Connolly 1a03a241ee fix(agoric): RUN->IST
The Agoric RUN token was renamed to IST.
2023-08-29 18:22:10 -05:00
ping 1eb1606cde Merge pull request #497 from nodexcapital/master
Add Dymension Testnet Explorer
2023-08-26 09:58:47 +08:00
ping 7ec753469d Delete .gitpod.yml 2023-08-26 09:58:20 +08:00
NodeX Emperor f4b72b9d06 Add Dymension Testnet Explorer 2023-08-25 02:18:30 +00:00
ping 642cb3bdf5 Merge pull request #496 from mingi3442/typing_error_issue
typing error in readme regitstry -> registry
2023-08-25 09:03:35 +08:00
Lee MinGi a7716f6533 typing error in readme regitstry -> registry 2023-08-24 18:15:50 +09:00
liangping 268509d87e remove hidden of top validators 2023-08-24 16:14:27 +08:00
liangping 48adbf4395 add query by creator 2023-08-24 15:33:06 +08:00
liangping 909fed3aa6 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-08-24 14:39:31 +08:00
liangping d7fd252afa fix pagination issue 2023-08-24 14:39:19 +08:00
liangping b64ada1c95 update side testnet 2023-08-24 14:39:04 +08:00
ping 45b1c2d1c3 Merge pull request #495 from ithfay/master
change sdk version
2023-08-24 09:05:22 +08:00
ithfay 6f2fda712f Merge branch 'ping-pub:master' into master 2023-08-23 21:27:59 +08:00
mengjay710@gmail.com f863c782be change sdk version 2023-08-23 21:26:07 +08:00
mengjay710@gmail.com b0b27f235d change sdk version 2023-08-23 21:22:46 +08:00
ping cb6e4c636d Merge pull request #494 from Reecepbcups/reece/update-juno
juno: Update SDK version
2023-08-21 14:10:59 +08:00
Reece Williams 34128fcf42 Update SDK ver + add Reece RPC/REST 2023-08-19 10:41:42 -05:00
liangping 5158263f04 add testnet 2023-08-17 09:33:35 +08:00
liangping 01a524bf9f update side testnet 2023-08-17 08:11:31 +08:00
liangping b5104bde4d Merge branch 'master' of https://github.com/ping-pub/explorer 2023-08-16 09:08:15 +08:00
liangping 3e406d3643 add pagination for my sent txs 2023-08-16 09:08:09 +08:00
ping 41e85d0e39 Merge pull request #492 from hexskrt/master
mun blockchain update to ping.pub
2023-08-15 09:34:27 +08:00
hexskrt 235f3f62a9 Update mun.json 2023-08-15 08:09:43 +07:00
hexskrt 241eaa1ca8 add mun blockchain mainnet 2023-08-15 08:07:49 +07:00
hexskrt f1d824d76c add mun blockchain mainnet 2023-08-15 08:07:17 +07:00
ping 8673091f7f Merge pull request #491 from kioqq/master-1
Update HAQQ Endpoints
2023-08-14 18:41:38 +08:00
Evgeniy Abramov 661a513f8b Update HAQQ endpoints 2023-08-14 14:32:20 +04:00
ping f5bc952cd0 Merge pull request #490 from Kamikaza731/master
PICA token added on coingecko
2023-08-12 19:49:18 +08:00
NM 008c0d6480 PICA token on coingecko 2023-08-12 12:33:23 +02:00
liangping 3c88e474f2 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-08-10 15:54:02 +08:00
liangping ba3d7a26a7 show more columns 2023-08-10 15:53:02 +08:00
ping 05d65da35e Merge pull request #489 from xlightwaverx/master
Add installation instructions back
2023-08-10 09:14:24 +08:00
Budd Grant 388941d7c8 Update installation.md 2023-08-09 19:10:25 -04:00
xlightwaverx adcd896ec3 Added working prereqs for Node using NVM 2023-08-09 23:01:56 +00:00
xlightwaverx 9a9da5657e Added installation instructions back 2023-08-09 22:23:18 +00:00
liangping 4f9b2803ac improve uptime bar 2023-08-09 09:52:39 +08:00
liangping e42c39106d fixed query issue 2023-08-08 19:28:02 +08:00
liangping e1684b2d77 imp: block gap is too small on small screen. 2023-08-08 17:34:31 +08:00
liangping 2e71900f76 feat: add txs view for wasm contracts 2023-08-07 11:20:18 +08:00
liangping 86457a9a63 use int instead of enum 2023-08-07 09:46:51 +08:00
ping ea57af0dc1 Merge pull request #485 from ithfay/master
add conscious
2023-07-26 14:30:18 +08:00
mengjay710@gmail.com d9c828ba12 update 2023-07-25 22:41:38 +08:00
ping a8e99f1ba2 Merge pull request #484 from dpdanpittman/master
update qwoyn logo filename
2023-07-25 05:27:35 +08:00
Daniel Pittman 6b64664d2a update qwoyn logo filename 2023-07-24 12:11:07 -06:00
liangping 76371d4d5d Merge branch 'master' of https://github.com/ping-pub/explorer 2023-07-23 13:31:15 +08:00
liangping 76b1636e79 update stride to consummer chain 2023-07-23 13:31:10 +08:00
mengjay710@gmail.com 9caf789a85 add conscious 2023-07-21 16:43:32 +08:00
ping ce0a27b477 Merge pull request #472 from lufa23/add_archway
Add archway
2023-07-19 18:57:55 +08:00
ping 17f2c24607 Merge pull request #478 from encrypt3dw4lrus/qom-testnet
added qom testnet json and png logo
2023-07-19 18:57:08 +08:00
ping 51125efd85 Merge pull request #482 from ech-world/patch-3
Update echelon.json
2023-07-19 09:15:57 +08:00
ech-world 2aa636393a Update echelon.json
echelon joker => added
ech.world nodes will be shutdown => removed
2023-07-17 22:04:24 +03:00
ping 6ee9d72032 Merge pull request #481 from sxlmnwb/master
set up default endpoint fix blank on add chains to keplr
2023-07-17 08:53:13 +08:00
Salman WahibandMarutyan Samvel 9c108bc88c chains: fix terp blank add to keplr
add default rpc/api terp use itrocket

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: Marutyan Samvel <48280694+itrocket-team@users.noreply.github.com>
2023-07-17 04:10:38 +07:00
Salman WahibandPolkachu Intern 0cc4f06c8f chains: fix kujira blank add to keplr
default rpc/api kujira use polkachu

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: Polkachu Intern <hello@polkachu.com>
2023-07-17 03:44:18 +07:00
ping 74043aee82 Merge pull request #480 from behumble/typofix
fix: typo (infalation -> inflation)
2023-07-16 09:13:48 +08:00
Alan Goo a5f29feb0d fix: typo (infalation -> inflation) 2023-07-15 23:03:16 +09:00
encrypt3dW4lrus 75ae9a2045 added qom testnet json and png logo 2023-07-11 22:36:41 +01:00
liangping bcdab16c38 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-07-11 10:23:16 +08:00
liangping 65c9f8c69a improve votes 2023-07-11 10:23:09 +08:00
ping 51c15a352d Merge pull request #476 from sxlmnwb/master
add i18n id and cn for proposal status on proposal page
2023-07-11 09:40:37 +08:00
Salman WahibandTechno Freak 60fbce2a4d feat: add i18n id and cn equate commit 73a0786
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: Techno Freak <freak12techno@gmail.com>
2023-07-10 02:46:23 +07:00
ping ae38647480 Merge pull request #475 from freak12techno/add-i18n-for-proposal-status
feat: add i18n for proposal status on proposal page
2023-07-09 08:16:32 +08:00
Techno Freak 73a0786ce3 feat: add i18n for proposal status on proposal page 2023-07-08 13:48:31 +03:00
ping bc6a81e3b5 Merge pull request #474 from webbushka/master
update provenance blockchain brand
2023-07-08 09:46:19 +08:00
AJ Webb 6620319113 update provenance blockchain brand 2023-07-07 08:37:44 -10:00
lufa23 af9a26ccf6 added logo and rpc port 2023-07-06 11:51:57 +02:00
lufa23 949efe2d01 added logo 2023-07-06 11:51:42 +02:00
ping e99a41b821 Merge pull request #471 from nodestake/ping-PR
Add qwoyn rpc/api by NodeStake
2023-07-06 15:51:29 +08:00
NodeStake 03bc5969ad Update qwoyn.json
Add rpc/api by NodeStake
2023-07-06 15:27:25 +08:00
ping d82695f576 Merge pull request #470 from lufa23/add_archway
Add archway
2023-07-06 08:19:47 +08:00
lufa23 473d7d1954 added archway testnet 2023-07-05 19:23:46 +02:00
lufa23 e7ddbc2bfd added archway mainnet 2023-07-05 19:23:32 +02:00
ping 7fc7bca906 Merge pull request #466 from fadeev/zetachain-update
fix: update endpoints for ZetaChain
2023-07-01 07:08:52 +08:00
ping 78fe37bf68 Merge pull request #468 from josietyleung/patch-2
Update centauri.json
2023-07-01 07:07:48 +08:00
Josie Leung 87d7358900 Update centauri.json 2023-06-30 21:04:45 +08:00
Denis Fadeev 8727573714 fix: remove NodeJumper 2023-06-30 14:50:40 +04:00
ping fddf3e4614 Merge pull request #464 from hexskrt/patch-1
add: empower chain mainnet
2023-06-30 18:46:40 +08:00
ping 96bd17bdec Merge pull request #465 from fadeev/zetachain
Added ZetaChain Athens 3 testnet
2023-06-30 18:45:46 +08:00
Denis Fadeev e6e3886498 Added ZetaChain Athens 3 testnet 2023-06-30 11:13:09 +04:00
hexskrt 7434f66466 add: empower chain mainnet 2023-06-30 13:38:16 +07:00
ping edbd29c115 Merge pull request #463 from MasterPi-2124/patch-4
Add Notional API
2023-06-30 07:33:29 +08:00
Master Pi 602e2e9c91 Add Notional API 2023-06-29 20:09:15 +07:00
ping 6b7b0d0969 Merge pull request #461 from gjermundgaraba/fix-text-proposal-0-46-47
Fix new text proposal (no messages) for 0.46+
2023-06-28 08:18:29 +08:00
ping fa39ea60d0 Merge pull request #462 from dpdanpittman/master
add qwoyn network
2023-06-28 08:15:55 +08:00
Daniel Pittman 8a73ba8efd add qwoyn network 2023-06-27 15:59:44 -06:00
Gjermund Garaba ab416e4215 Fix new text proposal (no messages) for 0.46+ 2023-06-27 20:41:13 +02:00
ping 8f77758fe9 Merge pull request #460 from SecretSaturn/master
Update Secret API and RPC endpoints
2023-06-27 05:28:24 +08:00
h3rt 3d749aed39 Update Secret API and RPC endpoints 2023-06-26 23:21:02 +02:00
liangping 108d4ce9a1 hidden 2023-06-26 17:02:30 +08:00
liangping 70fcf8e0d4 remove console 2023-06-26 16:55:00 +08:00
liangping 2e413133c2 improve gov v1 2023-06-26 16:54:23 +08:00
ping 7b4d2b04e8 Merge pull request #458 from persistenceOne/persistence-testnet2
persistence test-core-2 details
2023-06-23 22:40:22 +08:00
mkRuby009 1edf75bb65 persistence test-core-2 details 2023-06-23 12:50:21 +04:00
ping c2a668f198 Merge pull request #457 from KosmosKahn/patch-1
Update lumenx.json
2023-06-23 13:11:36 +08:00
ping c8e5f7c3cb Merge pull request #456 from sxlmnwb/master
routerlink route account delegation to validator
2023-06-23 13:10:39 +08:00
Kahn 6ef6eb75bb Update lumenx.json 2023-06-22 13:31:20 -03:00
Salman Wahib 5708b0d169 security_contact: href: v-if delete useless ?
Author: Salman Wahib <hello@sxlmnwb.xyz>
2023-06-22 23:16:23 +07:00
Salman Wahib 10b06cb474 routerlink: route account delegation to validator
- add href in security_contact

Author: Salman Wahib <hello@sxlmnwb.xyz>
2023-06-22 23:07:06 +07:00
ping 0034f16ade Merge pull request #455 from sxlmnwb/master
il8n add indonesian translation
2023-06-22 07:22:03 +08:00
Salman Wahib a572ab5100 il8n: add indonesian translation
Author: Salman Wahib <hello@sxlmnwb.xyz>
2023-06-22 02:13:59 +07:00
ping 9c3895ac1b Merge pull request #454 from josietyleung/patch-1
Update naming
2023-06-21 22:49:16 +08:00
Josie Leung d0bfdde30e Update centauri.json 2023-06-21 11:47:15 +01:00
liangping bdcd1675b1 add chinese translation 2023-06-21 18:40:09 +08:00
Josie Leung 1e908557bd Update centauri.json 2023-06-21 11:39:45 +01:00
Josie Leung 3ad9bff475 Update and rename composable.json to centauri.json 2023-06-21 11:38:51 +01:00
Josie Leung 4a07f3c72b Update and rename banksy.json to centauri.json 2023-06-21 11:37:22 +01:00
ping bc525a3dd9 Merge pull request #453 from sxlmnwb/master
i18n update add en in ping-pub/explorer #2
2023-06-21 16:41:58 +08:00
Salman Wahib f224a3f4e8 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-21 15:29:39 +07:00
Salman Wahibandliangping 38b73d0a1d i18n: update add en src/modules/[chain]/
placeholder="" not changes

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 15:27:42 +07:00
Salman Wahibandliangping 45af5623b9 i18n: update add en src/modules/[chain]/widget/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 14:43:42 +07:00
Salman Wahibandliangping 3acd2381b3 i18n: update add en src/modules/[chain]/uptime/
placeholder="" not changes

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 14:30:26 +07:00
Salman Wahibandliangping a4fa86fc63 i18n: update add en src/modules/[chain]/tx/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 12:30:41 +07:00
Salman Wahibandliangping 687faf0e3b i18n: update add en src/modules/[chain]/statesync/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 12:14:58 +07:00
liangping 66f603266c fix page number 2023-06-21 12:54:42 +08:00
liangping c6e53ac6df add txs 2023-06-21 12:35:13 +08:00
liangping 0384c9aba4 add ibc transactions 2023-06-21 12:23:07 +08:00
Salman Wahibandliangping 3b12487dc3 i18n: update add en src/modules/[chain]/staking/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 11:18:34 +07:00
liangping c3cc70bd1f add to fix 2023-06-21 09:52:28 +08:00
liangping 50f76ec414 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-21 09:47:45 +08:00
liangping a8c1bb7939 add reverse 2023-06-21 09:47:38 +08:00
ping 79dbdf7b6d Merge pull request #451 from sxlmnwb/master
i18n update add en in ping-pub/explorer #1
2023-06-21 09:46:07 +08:00
Salman Wahib 7ad04e2c68 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-21 02:07:45 +07:00
Salman Wahibandliangping 0f4b487f7b i18n: update add en src/modules/[chain]/ibc/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 02:03:29 +07:00
Salman Wahibandliangping cf3c2b7a85 i18n: update add en src/modules/[chain]/gov/
const processList = computed(() => ); > not changes

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 01:30:39 +07:00
Salman Wahibandliangping 665ea0c17b i18n: update add en src/modules/[chain]/cosmwasm/
const radioContent = [}; > not changes

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 01:08:00 +07:00
Salman Wahibandliangping 488a9c2d37 i18n: update add en src/modules/[chain]/consensus/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 00:35:27 +07:00
Salman Wahibandliangping 5b4d4718c2 i18n: update add en src/modules/[chain]/block/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-21 00:04:29 +07:00
liangping 965bb883f5 format decimals 2023-06-20 19:45:49 +08:00
liangping 1ee46ad93b clean code 2023-06-20 07:56:10 +08:00
liangping 31011738d4 add readme for config 2023-06-20 07:53:51 +08:00
liangping b3b080b22c replace \r 2023-06-20 07:19:51 +08:00
Salman Wahibandliangping 4257406286 i18n: update add en src/modules/[chain]/account/
Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-20 01:53:00 +07:00
liangping 5b7b4ec10b limit moniker 2023-06-19 23:08:36 +08:00
liangping 650c809016 improve UI 2023-06-19 22:38:49 +08:00
sxlmnwbandliangping aa13bc88cb i18n: update add en src/pages/
- modified src/layouts/components/DefaultLayout.vue

    - ecosystem > not enable
        - favorite
        - all_blockchains

Author: Salman Wahib <hello@sxlmnwb.xyz>
Co-authored-by: liangping <18786721@qq.com>
2023-06-19 21:34:44 +07:00
ping abdb5d819c Merge pull request #449 from FunctionX/master
Add fxcore network
2023-06-19 21:37:20 +08:00
ping e72168acff Merge pull request #448 from nodestake/ping-PR
Add some chains RPC/API by NodeStake
2023-06-19 21:36:32 +08:00
liangping 32b37f16c7 add version compatible implementation 2023-06-19 21:33:50 +08:00
zakir 06a570f0cb Add fxcore network 2023-06-19 14:25:09 +08:00
NodeStake 7005ed93fc Update uptick.json 2023-06-19 13:37:04 +08:00
NodeStake e82aacd9a7 Update whitewhale.json 2023-06-19 13:36:48 +08:00
NodeStake d0a2039401 Update terp.json 2023-06-19 13:35:37 +08:00
NodeStake 0120be7b0e Update tenet.json 2023-06-19 13:34:54 +08:00
NodeStake 8061cd831e Update quasar.json 2023-06-19 13:34:22 +08:00
NodeStake 0b3853aa60 Update nois.json 2023-06-19 13:32:53 +08:00
NodeStake f2a99112bd Update neutron.json 2023-06-19 13:32:21 +08:00
NodeStake cba3c8babf Update migaloo.json 2023-06-19 13:31:56 +08:00
NodeStake d58e799aab Update kyve.json 2023-06-19 13:31:16 +08:00
NodeStake 83fbcaa22b Update humans.json 2023-06-19 13:30:47 +08:00
NodeStake 6b2c4a0436 Update haqq.json 2023-06-19 13:30:19 +08:00
NodeStake 83158644a8 Update gitopia.json 2023-06-19 13:29:16 +08:00
NodeStake 8e814e6451 Update composable.json 2023-06-19 13:28:17 +08:00
NodeStake 6b728033cc Update chain4energy.json 2023-06-19 13:27:31 +08:00
NodeStake e3f882272e Update aura.json 2023-06-19 13:26:10 +08:00
NodeStake f416d27bc6 Update 8ball.json 2023-06-19 13:24:57 +08:00
liangping f69546d44f improve logo 2023-06-19 08:18:15 +08:00
liangping 30ffac1b93 small improvement 2023-06-19 07:43:47 +08:00
liangping f563264600 imp: add parameters on staking page 2023-06-18 17:56:22 +08:00
ping adc2ff55b0 Merge pull request #444 from Golden-Ratio-Staking/master
Add GRS Chihuahua and Comdex Endpoints
2023-06-18 12:12:09 +08:00
ping d45e57330c Merge pull request #445 from zreohup/patch-1
Update hermit.json
2023-06-18 12:11:23 +08:00
liangping f73b0d37a4 fix colors 2023-06-18 10:04:45 +08:00
liangping 25790a449c save user's currency 2023-06-18 08:55:29 +08:00
liangping ef30700313 adding currency. 2023-06-18 08:38:26 +08:00
Go_map 194a2484b7 Update hermit.json
Update the information on hermit.json. The error in filling in the original API link resulted in the hermit network not being able to read the information correctly on the Ping.Pub Dashboard. Please correct it now. For example: https://rpc.hermit.network:1317/cosmos/base/tendermint/v1beta1/node_info Can correctly obtain chain information instead of being blank.
2023-06-17 22:41:50 +08:00
Golden Ratio Staking ee5dc77fd2 Update comdex.json 2023-06-17 09:55:24 -04:00
Golden Ratio Staking 3c7a20fadf Update chihuahua.json 2023-06-17 09:54:25 -04:00
liangping 751e2f662c add hover 2023-06-17 20:24:51 +08:00
liangping 3b2c658340 sort txs 2023-06-17 20:18:57 +08:00
liangping 2f7d2c4ff5 add small improvement 2023-06-17 20:00:52 +08:00
liangping 258aa89130 improve importing address 2023-06-17 19:49:08 +08:00
liangping add9109789 fix type check 2023-06-17 14:02:44 +08:00
liangping a1635675d3 add padding to wallet bar 2023-06-17 13:27:12 +08:00
liangping b9d3585f5a adjust left 2023-06-17 13:14:43 +08:00
liangping 90a596514a improve position 2023-06-17 12:54:37 +08:00
liangping fcae66aed9 improve IBC 2023-06-17 12:07:30 +08:00
liangping e525065ea4 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-17 10:35:16 +08:00
liangping 6ad65bec5f improve IBC features 2023-06-17 10:35:06 +08:00
ping 75437e0270 Merge pull request #442 from Golden-Ratio-Staking/master
Add Golden Ratio RPC/REST Endpoints
2023-06-17 09:24:28 +08:00
ping 34ec312361 Merge pull request #443 from zreohup/master
Add Hermit Network info
2023-06-17 09:23:39 +08:00
Go_map 5444565d83 Add files via upload
Add Hermit Network logo
2023-06-17 02:39:18 +08:00
Go_map fbc03651df Add files via upload
Add Hermit Network information
2023-06-17 02:38:35 +08:00
Golden Ratio Staking 211e3a48e0 Update kujira.json 2023-06-16 13:33:23 -04:00
Golden Ratio Staking 62d94003e4 Update juno.json 2023-06-16 13:32:49 -04:00
Golden Ratio Staking 5d6f2f180f Update injective.json 2023-06-16 13:32:14 -04:00
Golden Ratio Staking c82b823e92 Update evmos.json 2023-06-16 13:31:20 -04:00
Golden Ratio Staking e96461f7f1 add golden ratio endpoints to cosmos 2023-06-16 13:29:57 -04:00
liangping a648f8de5a add funds 2023-06-16 21:50:30 +08:00
liangping 6dc3af51e6 adjust width 2023-06-16 17:42:54 +08:00
liangping ef2f40be94 add string[] and space wrap 2023-06-16 17:07:37 +08:00
liangping 1b575fd921 remove unused code 2023-06-16 13:15:45 +08:00
liangping 4f5c3b648b update keys reading 2023-06-16 13:12:34 +08:00
liangping 12dbaee973 fix: wrong ids 2023-06-16 11:51:25 +08:00
liangping b06d3aadc3 move decimals 2023-06-16 11:40:21 +08:00
liangping 4d910b1875 improve display 2023-06-16 11:32:03 +08:00
liangping b4ab097c18 add portfolio 2023-06-16 11:15:37 +08:00
liangping 0d8485b54c Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-16 08:21:36 +08:00
liangping ed92ffe837 improve portfolio 2023-06-16 08:21:29 +08:00
ping 47c8236239 Merge pull request #441 from qubelabsio/patch-1
fix wrong endpoints
2023-06-16 06:09:02 +08:00
liangping 4b831a590b adjust modal size 2023-06-15 19:59:04 +08:00
liangping adcf8a5e56 use smaller logo 2023-06-15 19:47:08 +08:00
liangping 3843652459 adjust popup position 2023-06-15 19:27:08 +08:00
liangping 1e85c04852 improve layout 2023-06-15 19:06:44 +08:00
liangping 2e0d075587 imp: count down 2023-06-15 18:56:57 +08:00
liangping f12c16bb9b imp: improve UI for dynamic components 2023-06-15 18:47:44 +08:00
liangping 4a98482eeb add price calculator and fix color of buy 2023-06-15 15:59:31 +08:00
liangping 78d2d8b36e resolve the duplicaated the loading class 2023-06-15 14:28:03 +08:00
Rok 8f0790cfce fix wrong endpoints 2023-06-15 08:26:35 +02:00
liangping e9b4afd7fa improve background color 2023-06-15 12:05:35 +08:00
liangping 4fdafa3131 update redesign layout 2023-06-15 11:06:30 +08:00
liangping 18ce47b823 fix imcompatible 2023-06-15 09:23:14 +08:00
liangping e770103c75 upgrade UI component 2023-06-15 09:09:47 +08:00
liangping dbbe245cbc fix: null addresses 2023-06-15 06:23:11 +08:00
liangping b8b53d2fe9 remove console 2023-06-15 06:22:54 +08:00
liangping be758e92b9 add 2023-06-14 20:17:51 +08:00
liangping f4d1665861 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-14 19:45:36 +08:00
liangping 22244f4e0a improved mobile UI 2023-06-14 19:45:24 +08:00
ping 5e2e35c168 Merge pull request #438 from ech-world/patch-2
Remove non-working servers from echelon.json, add Mind Heart Soul servers
2023-06-14 18:17:33 +08:00
ping 5fa1b5c909 Merge pull request #440 from fl-y/master
add banksy testnet to ping.pub
2023-06-14 18:16:56 +08:00
ping fb29e42200 Merge pull request #437 from haqq-network/haqq_mainnet
add Haqq mainnet + update icons
2023-06-14 18:16:15 +08:00
ping da11fb7813 Merge pull request #439 from qubelabsio/master
Add Axelar Testnet
2023-06-14 18:15:25 +08:00
liangping 6a72567342 improve account and client 2023-06-14 18:00:48 +08:00
liangping 4a494738f9 implement custom api for evmos 2023-06-14 12:25:57 +08:00
liangping 98e4c3d1c2 add animation 2023-06-14 09:32:55 +08:00
liangping 3d20aee8eb add format converter 2023-06-14 06:37:33 +08:00
Rok f20005802e remove id's 2023-06-13 19:23:17 +02:00
Joon 697f19351c fix links 2023-06-13 12:57:53 -03:00
Joon bc23f73f59 add banksy testnet 2023-06-13 12:55:23 -03:00
liangping 6437369d84 hidden 2023-06-13 20:20:07 +08:00
liangping 63f86a5b6a feat: add future blocks 2023-06-13 20:18:24 +08:00
liangping e92630e943 add blocks 2023-06-13 19:12:39 +08:00
Rok 3ffcdbe9c5 fix assets 2023-06-13 10:09:13 +02:00
Rok 5afcd064d5 Update axelar.json 2023-06-13 09:47:54 +02:00
Rok afaa5a0c94 Add Axelar Testnet 2023-06-13 09:45:54 +02:00
liangping ff621bd67c imp: show duration text 2023-06-13 15:41:34 +08:00
liangping 436a5cc3a1 add empty content for tx list 2023-06-13 13:30:26 +08:00
liangping 7ab2c8121c imp: improve UI 2023-06-13 10:35:25 +08:00
liangping b5bdf6ec12 imp: disable delegate for top 1/3 validators 2023-06-13 09:03:30 +08:00
liangping c5b88d73c2 Fix: trust color 2023-06-13 08:18:37 +08:00
ech-world 221ebcaa62 Update echelon.json 2023-06-12 21:45:27 +03:00
Evgeniy Abramov d85fa6153a feat: add haqq mainnet + update icons 2023-06-12 19:15:49 +04:00
liangping a42eb4fae7 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-12 18:31:12 +08:00
liangping 5c00c67f74 imp: dark color 2023-06-12 18:22:23 +08:00
ping 32c5d6cbff Merge pull request #436 from alisaweb3/v3-single
Chart show
2023-06-12 17:17:21 +08:00
Alisa | Side.one b7224b5387 fix: merge conflicts 2023-06-12 17:11:10 +08:00
Alisa | Side.one 517a5413b0 feat: ping-widget change citation 2023-06-12 17:04:14 +08:00
liangping b03bbfd860 feat: add name resovle 2023-06-12 15:50:09 +08:00
Alisa | Side.one d960db4840 feat: chart show 2023-06-12 15:15:48 +08:00
liangping 724ba72a71 imp: improve dynamic components 2023-06-12 14:59:24 +08:00
Alisa eff43c87b1 Merge pull request #21 from ping-pub/master
merge
2023-06-12 11:04:12 +08:00
liangping 8ec5a9822a format total value 2023-06-12 10:33:47 +08:00
liangping 8f9e490124 imp: adjust the layout. 2023-06-12 10:33:26 +08:00
liangping 910f65c6d7 edit endpoint 2023-06-11 20:07:55 +08:00
liangping 2eb15af856 remove badge border 2023-06-11 17:36:37 +08:00
liangping aa919fbbed roll back 2023-06-11 08:42:04 +08:00
liangping a92e726cfb add neutron endpoint 2023-06-10 21:03:27 +08:00
liangping 78425e33a2 remove unused code 2023-06-10 20:56:01 +08:00
liangping 06e9f51ae9 update widget version to v0.0.40 2023-06-10 20:27:35 +08:00
liangping 082da1276f add endpoints 2023-06-10 12:39:07 +08:00
liangping e6067b9488 test black theme color 2023-06-10 10:51:25 +08:00
liangping c07be3d8fb optimize default chain 2023-06-10 09:29:38 +08:00
liangping 2cc8ae4de3 Merge branch 'master' of https://github.com/ping-pub/explorer 2023-06-10 08:09:10 +08:00
liangping 2131e7f9f4 add supply and widget module 2023-06-10 08:08:09 +08:00
ping e7211c7732 Merge pull request #435 from alisaweb3/v3-single
The timer is cleared uniformly, Interface error interrupt request
2023-06-09 20:32:35 +08:00
ping c539ddab64 Merge pull request #430 from okp4/fix/bech32-detection
Improve bech32 regex
2023-06-09 20:31:42 +08:00
Alisa | Side.one 116be4db63 feat: Interface error interrupt request 2023-06-09 20:26:39 +08:00
Alisa | Side.one 5e03afec0a feat: The timer is cleared uniformly 2023-06-09 20:19:57 +08:00
liangping a2b53a6f0c hidden accounts 2023-06-09 18:38:44 +08:00
liangping 551816e0ed add accounts and supply 2023-06-09 18:32:25 +08:00
ccamel 9c643dc409 fix: improve bech32 regex (to support all prefixes) 2023-06-09 09:39:05 +02:00
ping 32e8c26d04 Merge pull request #434 from alisaweb3/v3-single
Light-theme navbar text color
2023-06-09 14:31:48 +08:00
Alisa | Side.one b1f5684638 feat: light-theme navbar text color 2023-06-09 14:24:04 +08:00
Alisa 6cf09daf0f Merge pull request #20 from ping-pub/master
merge
2023-06-09 14:05:40 +08:00
liangping 013cc64702 improve svg and background 2023-06-09 13:47:25 +08:00
liangping 2cbf6a3ac9 add theme_colors 2023-06-09 12:09:13 +08:00
liangping eaf28a6fd5 set theme colors 2023-06-09 12:01:51 +08:00
ping 92b08fa35f Merge pull request #432 from nodexcapital/nodexcapital-patch-1
Add Router Logo
2023-06-09 11:18:16 +08:00
ping 1b8bc7597f Merge pull request #433 from nodexcapital/nodexcapital-patch-2
Add Router Testnet
2023-06-09 11:18:01 +08:00
ping bd85eb16be Merge pull request #431 from alisaweb3/v3-single
Set theme-color ,Consensus color, Voting show in h5
2023-06-09 11:14:37 +08:00
Alisa 8dc462c15e Merge pull request #19 from ping-pub/master
merge
2023-06-09 11:07:40 +08:00
Alisa | Side.one 631dbc5a99 fix: remove wallet change 2023-06-09 11:06:58 +08:00
liangping 2b467a663e fix: no wallet connected issue 2023-06-09 10:38:30 +08:00
liangping 6c78fc688e fix: params are not sync 2023-06-09 08:38:16 +08:00
NodeX Emperor ceb1b5a9aa Create router.json 2023-06-09 03:03:53 +07:00
NodeX Emperor 67bb1a4711 Add files via upload 2023-06-09 03:01:31 +07:00
Alisa | Side.one 659b17c388 fix: wallet connected update 2023-06-09 00:48:27 +08:00
Alisa | Side.one 2d47ac734b feat: remove test code 2023-06-09 00:07:21 +08:00
Alisa | Side.one 3a118a5393 feat: fix consensus color 2023-06-09 00:00:14 +08:00
Alisa | Side.one a8f7278b9a feat: process status 2023-06-08 21:43:34 +08:00
Alisa | Side.one a56003ec65 feat: color convert 2023-06-08 21:16:43 +08:00
liangping e9500382fa show blockchain numbers 2023-06-08 20:51:14 +08:00
liangping 45a2912c7f fix tailwind css 2023-06-08 20:47:17 +08:00
Alisa bbdb0bc845 Merge pull request #18 from ping-pub/master
merge
2023-06-08 17:22:19 +08:00
Alisa | Side.one d822430d6a feat: toggle chain set theme-color 2023-06-08 17:20:34 +08:00
liangping 9039952fea imp: improve layout on small screen 2023-06-08 14:16:50 +08:00
liangping 760596e02f link on logo 2023-06-08 12:38:33 +08:00
liangping b8d10fa373 fix nav issue 2023-06-08 11:39:38 +08:00
liangping a336be1833 replace build only with build 2023-06-08 10:03:24 +08:00
liangping a25dde89f5 fix all build checks 2023-06-08 10:02:47 +08:00
ping e2782c1e00 Merge pull request #428 from alisaweb3/v3-single
Btn style, Add route
2023-06-08 07:25:27 +08:00
liangping 4186a1a65b integrate metamask 2023-06-07 22:05:58 +08:00
Alisa | Side.one 7fe56465b5 feat: add route 2023-06-07 22:00:29 +08:00
Alisa | Side.one d0914aca8c feat: btn style 2023-06-07 16:28:07 +08:00
Alisa | Side.one c6eba9d325 feat:block btn style 2023-06-06 22:04:33 +08:00
ping a743f9cc9e Merge pull request #426 from alisaweb3/v3-single
Add Consensus Page(hidden), Voting Btn, Account Fetch Data, Search Modal
2023-06-06 21:45:47 +08:00
Alisa | Side.one 51142eddd7 fix: Fix style packaging weight problem 2023-06-06 21:42:59 +08:00
Alisa | Side.one e0d95bf8a1 feat: hidden consensus route 2023-06-06 21:20:39 +08:00
Alisa | Side.one f0e4f34206 feat: onMounted get data 2023-06-06 21:20:00 +08:00
Alisa | Side.one 08d252954e feat: reset value 2023-06-06 20:57:24 +08:00
Alisa | Side.one 99a24fbc8a feat: null value judgment 2023-06-06 20:54:03 +08:00
Alisa | Side.one 03d502ccd4 feat: close modal 2023-06-06 20:06:26 +08:00
Alisa | Side.one 24501beea4 feat: add search modal 2023-06-06 20:02:35 +08:00
Alisa | Side.one 63a1ea8555 feat: consensus no data 2023-06-06 20:02:21 +08:00
Alisa | Side.one 8d8a1503ed feat: error toast 2023-06-06 16:18:03 +08:00
Alisa | Side.one be7394665b feat: remove console.log 2023-06-06 16:13:48 +08:00
ping 7628cdb91e Merge pull request #425 from hexskrt/master
Update composable.json
2023-06-06 15:26:43 +08:00
Alisa | Side.one 490e8995b9 feat: badge add background color 2023-06-06 15:11:27 +08:00
hexskrt c0c93da0c5 Update composable.json 2023-06-06 14:07:38 +07:00
ping af715e7ef7 Merge pull request #424 from hexskrt/master
add: composable to ping.pub
2023-06-06 14:32:49 +08:00
Alisa | Side.one f510f88977 feat: badge add style 2023-06-06 14:18:09 +08:00
Alisa | Side.one 46494d890f feat: show correct name 2023-06-06 14:15:25 +08:00
Alisa | Side.one 004d4a81c0 feat: add showName function 2023-06-06 13:58:56 +08:00
Alisa | Side.one adde93859b feat: consensus data handle 2023-06-06 13:39:33 +08:00
hexskrt 709fcaf637 Update composable.json 2023-06-06 12:35:46 +07:00
hexskrt d2631dc67b add: composable.json 2023-06-06 12:34:36 +07:00
hexskrt 338c6a0604 add: composable finance 2023-06-06 12:33:03 +07:00
ping 27de9a3bbb Merge pull request #423 from StakeTake/master
Update version for Noria
2023-06-06 08:46:26 +08:00
Stake-Take dc9bfa0b4a Update version for Noria 2023-06-05 19:32:25 +03:00
Alisa | Side.one b648b47cdd feat: add function and styles 2023-06-06 00:22:55 +08:00
Alisa | Side.one 31434f96f3 feat: add function 2023-06-05 19:10:03 +08:00
Alisa | Side.one 98f1696a5d feat: add tips 2023-06-05 16:56:47 +08:00
Alisa | Side.one 0bf0ebb059 feat: add sign btn 2023-06-05 16:37:06 +08:00
Alisa | Side.one 1fb696e6c6 feat: add i18n 2023-06-05 16:30:29 +08:00
Alisa | Side.one 9adf179b7b feat: add consensus page 2023-06-05 16:30:08 +08:00
ping 634b6d5206 Merge pull request #420 from ngovietanh21/update-pagination-contract-list-of-code
Fix not pagination at page Contract List of Code
2023-06-05 16:24:24 +08:00
ngovietanh21 8daa0f802f Fix not pagination at page Contract List of Code 2023-06-05 13:27:51 +07:00
Alisa | Side.one a4b2fd2e23 feat: gov vote 2023-06-05 11:19:52 +08:00
ping b9b9c27841 Merge pull request #418 from StakeTake/master
add Noria testnet
2023-06-05 09:21:05 +08:00
Alisa 57657fe627 Merge pull request #17 from ping-pub/master
merge
2023-06-05 09:20:08 +08:00
liangping f52475f4dd add metamask logo 2023-06-05 09:06:21 +08:00
Stake-Take b5cd90c05b Add files via upload 2023-06-05 02:14:51 +03:00
Stake-Take 77b05ec1ad add Noria testnet 2023-06-05 02:14:24 +03:00
liangping dc03ea938c limit size 2023-06-03 08:31:07 +08:00
liangping 583c6988bd improve validator 2023-06-03 08:30:27 +08:00
ping a38eb1bc49 Merge pull request #416 from moonstash/patch-1
Update secret.json
2023-06-03 07:24:16 +08:00
ping 352992ccb5 Merge pull request #417 from alisaweb3/v3-single
Staking: url copy, add font weigh, overflow,btn position style change
2023-06-03 07:23:34 +08:00
Alisa 53f2c0d134 Merge pull request #16 from ping-pub/master
merge
2023-06-02 13:54:27 +08:00
Alisa | Side.one 5955f061a7 feat: style add padding 2023-06-02 13:53:06 +08:00
Alisa | Side.one e66ebe4a2e feat: h5 style 2023-06-02 13:45:09 +08:00
Alisa | Side.one 5c1e308634 feat: add copy,font weight 2023-06-02 12:41:47 +08:00
moonstash 65e5e3f13c Update secret.json
change from spartanapi.dev to secret.express
2023-06-01 12:38:34 -05:00
liangping 4806f49139 debug wasm 2023-06-01 22:02:26 +08:00
liangping f37ad96a6b update widget 2023-06-01 21:39:13 +08:00
liangping 3156dd5de6 add event callback 2023-06-01 17:02:27 +08:00
ping 1fa6ca43bc Merge pull request #414 from alisaweb3/v3-single
Footer remove fixed, Wallet all show, html and body add style
2023-05-31 15:59:58 +08:00
Alisa | Side.one d801255101 feat: footer add height 2023-05-31 15:58:39 +08:00
Alisa | Side.one 9c282d4c64 feat: remove unused style 2023-05-31 15:51:27 +08:00
Alisa | Side.one 36bdfd09eb feat: footer style,wallet show 2023-05-31 15:48:14 +08:00
liangping 157fbdf88e Merge remote-tracking branch 'origin/master' 2023-05-31 14:32:28 +08:00
liangping 0d10aa8db4 impove UI 2023-05-31 14:31:47 +08:00
liangping 53e81448c5 update osmosis endpoint 2023-05-31 14:31:34 +08:00
ping 2fc8fef5f6 Merge pull request #413 from alisaweb3/v3-single
Footer: Packaging style conflicts
2023-05-31 14:23:46 +08:00
ping 4cb5aa6df6 Merge pull request #411 from uptSmart/master
add the uptick chain mainnet config
2023-05-31 14:22:57 +08:00
uptSmart ccc99b740f update the logo link in config file 2023-05-31 03:46:30 +00:00
Alisa | Side.one ec3d9603c4 feat: footer hidden 2023-05-31 10:53:39 +08:00
Alisa | Side.one 1464b83256 fix: footer hidden 2023-05-31 10:43:55 +08:00
ping 8f3dc7d264 Merge pull request #412 from alisaweb3/v3-single
Wallet show, Page min-height
2023-05-31 06:31:08 +08:00
ping b2a9829f99 Merge pull request #410 from StakeTake/master
add rpc, api for quicksilver testnet, mainnet
2023-05-30 18:44:57 +08:00
uptSmart c135556ccf add the uptick chain mainnet config 2023-05-30 09:23:55 +00:00
liangping 7fe8a96050 improve IBC 2023-05-30 16:51:40 +08:00
Stake-Take beadad65a7 add Stake-Take rpc, api for quicksilver testnet 2023-05-30 09:55:41 +03:00
Stake-Take 2f8329cd23 add Stake-Take rpc,api for quicksilver mainnet 2023-05-30 09:53:09 +03:00
liangping 8bce70c582 Merge remote-tracking branch 'origin/master' 2023-05-30 13:43:01 +08:00
liangping bb26e3a22a Fix: Query contract 2023-05-30 13:42:11 +08:00
Alisa | Side.one da259fd683 feat: page add min-height 2023-05-30 11:14:32 +08:00
Alisa | Side.one 48780f31ef feat: h5 hidden disconnect 2023-05-30 10:46:41 +08:00
ping e2e990c3ea Merge pull request #409 from StakeTake/master
add Humans mainnet
2023-05-30 09:00:46 +08:00
ping 60744cf7e9 Merge pull request #408 from alisaweb3/v3-single
H5 styles: Footer fixed, Uptime flex, overflow, Wallet show, account
2023-05-30 08:59:11 +08:00
Stake-Take 41153d3d29 add testnet Humans 2023-05-29 21:43:43 +03:00
Stake-Take 421ffbd552 add coingecko 2023-05-29 21:42:32 +03:00
Stake-Take f009a387a4 Add files via upload 2023-05-29 18:55:11 +03:00
Stake-Take 8ba2d505e9 Create humans.json 2023-05-29 18:54:25 +03:00
Alisa | Side.one 42e4664744 feat: footer fixed 2023-05-29 21:34:05 +08:00
Alisa | Side.one 29809b5dee feat: style reback 2023-05-29 21:17:48 +08:00
Alisa | Side.one a57e8e62f6 feat: h5 style 2023-05-29 18:04:07 +08:00
Alisa | Side.one ee27d61e1e feat: account overflow 2023-05-29 18:03:55 +08:00
Alisa | Side.one 16335bd081 feat: show H5 wallet 2023-05-29 18:03:09 +08:00
Alisa | Side.one deba817806 feat: account value 2023-05-29 16:31:10 +08:00
Alisa | Side.one ebe53472be feat: footer sticky 2023-05-29 14:58:25 +08:00
Alisa | Side.one 354fdd962c feat: h5 style 2023-05-29 14:25:45 +08:00
Alisa | Side.one fdf5e07db6 Merge pull request #15 from ping-pub/master
merge
2023-05-29 13:54:46 +08:00
ping cfb4707c0a Merge pull request #407 from PantheaEU/master
Update shentu, lum & desmos
2023-05-29 07:15:49 +08:00
liangping cb1f375bbf update widget 2023-05-28 22:50:06 +08:00
liangping a4b7216096 add suggest chain 2023-05-28 20:57:03 +08:00
Jarnek d296561872 Update desmos.json 2023-05-28 14:33:48 +02:00
Jarnek c74bdf5205 Update lum.json 2023-05-28 14:30:07 +02:00
Jarnek ea005ab944 Update shentu.json 2023-05-28 14:25:54 +02:00
liangping 8e6d1430de Merge remote-tracking branch 'origin/master' 2023-05-28 16:58:06 +08:00
ping 6b1941db08 Merge pull request #406 from alisaweb3/v3-single
feat: sidebar style, input search, table hight
2023-05-28 16:52:09 +08:00
ping 51ecaecb8b Merge pull request #405 from hexskrt/master
fix base
2023-05-28 16:51:06 +08:00
liangping a91339bbeb improve UX 2023-05-28 16:49:21 +08:00
Alisa | Side.one 5026f5e6be feat: sidebar style, input search, table hight 2023-05-28 16:37:37 +08:00
hexskrt 33aa2e5f04 fix base 2023-05-28 14:19:12 +07:00
ping 317ca32a1f Merge pull request #403 from hexskrt/master
add: terpnetwork to explorer
2023-05-28 15:12:26 +08:00
ping 171e1ad415 Merge pull request #404 from alisaweb3/v3-single
Remove vuetify, process style value, wiget loading fixed
2023-05-28 15:11:18 +08:00
Alisa | Side.one 5876ca7343 Merge remote-tracking branch 'upstream/master' into v3-single 2023-05-28 14:51:12 +08:00
liangping 3d41046b1c improve wallet accounts 2023-05-28 13:24:59 +08:00
liangping 568dc508ad account page 2023-05-28 11:15:49 +08:00
liangping d08e6bb237 improve account page 2023-05-28 11:15:29 +08:00
Alisa | Side.one f10e4983b4 feat: input border 2023-05-28 09:35:08 +08:00
Alisa | Side.one 2f93b4c10c feat: chart theme switch 2023-05-28 09:19:39 +08:00
Alisa | Side.one b10578e680 feat: use btn-primary 2023-05-28 08:59:23 +08:00
Alisa | Side.one 3d0171d96b fix: loading relative start-0 2023-05-28 08:51:07 +08:00
liangping f3ffc3a3a8 imp: UI improve 2023-05-28 06:45:37 +08:00
hexskrt e81a458fb9 Merge branch 'ping-pub:master' into master 2023-05-28 04:27:12 +07:00
Alisa a32fc5d3bf feat: !bg-primary 2023-05-28 03:05:55 +08:00
Alisa a7f207c220 feat: uptime 2023-05-28 02:53:58 +08:00
Alisa | side.one 68c4956d2c feat: border radius 2023-05-28 02:40:06 +08:00
Alisa | Side.one 455be157d3 feat: process item 2023-05-28 02:38:29 +08:00
Alisa | side.one ee75361cef feat: theme default 2023-05-28 02:34:40 +08:00
Alisa | side.one 3404262af7 feat: theme default dark 2023-05-28 02:33:24 +08:00
Alisa | side.one a323bce8c9 feat: clear dependencies 2023-05-28 02:15:10 +08:00
Alisa | side.one 5e687f0aa0 Delete NavBarNotifications.vue 2023-05-28 01:40:08 +08:00
Alisa | side.one 3c9749e207 feat: clear vuetify 2023-05-28 01:38:02 +08:00
Alisa | side.one 36fe08ec9f feat: remove vuetify 2023-05-28 01:36:42 +08:00
Alisa | side.one bfbe241ff4 feat: charts 2023-05-28 01:27:34 +08:00
Alisa | side.one 06574f2f2c feat: style 2023-05-28 00:45:38 +08:00
Alisa | side.one 393b2da55b feat: style uptime 2023-05-28 00:30:53 +08:00
Alisa | Side.one 26e2563c99 feat: table style 2023-05-27 23:53:19 +08:00
Alisa | side.one 9567e08c9a Update DefaultLayout.vue 2023-05-27 23:52:28 +08:00
Alisa | side.one f7f9ea8082 feat: sidebar 2023-05-27 23:47:10 +08:00
Alisa | Side.one 2da0b9ef14 feat: d-flex => flex 2023-05-27 23:37:59 +08:00
Alisa | side.one 8bcfafbeb6 Merge remote-tracking branch 'upstream/master' into v3-rmvuetify 2023-05-27 22:43:44 +08:00
Alisa 1a2d0cdffb feat: rm vuetify 2023-05-27 22:39:43 +08:00
liangping e557ad0401 add ledger logo 2023-05-27 22:09:22 +08:00
liangping b17b5cedeb update widget 2023-05-27 21:27:38 +08:00
liangping 270cd1bdba improve 2023-05-27 17:31:40 +08:00
liangping bd841633b1 improve UI 2023-05-27 14:08:28 +08:00
liangping f23cb8b440 load pagination votes 2023-05-27 14:08:01 +08:00
liangping 880999ff9b imp: use uppercases 2023-05-27 13:38:59 +08:00
liangping e109a0454f imp: widget upgrade 2023-05-27 13:38:10 +08:00
hexskrt 47ad4b184c add: terp-network 2023-05-26 22:57:29 +07:00
hexskrt cfd36ad82b Add files via upload 2023-05-26 22:56:48 +07:00
ping 76d914c733 Merge pull request #402 from ertemann/master
fix nolus image extension
2023-05-26 23:45:40 +08:00
ping e48f1f2157 Merge pull request #401 from LavenderFive/master
Add more detail Tenet and additional LCD
2023-05-26 23:44:40 +08:00
Ertemann 638839b1be fix nolus image extension 2023-05-26 14:16:28 +02:00
Ertemann 6720197391 Merge branch 'ping-pub:master' into master 2023-05-26 14:09:11 +02:00
Ertemann 186fea5840 add coingecko id and LCD Tenet 2023-05-26 14:08:28 +02:00
ping d5691153b1 Merge pull request #399 from LavenderFive/master
[WIP] Add Tenet chain
2023-05-26 18:40:33 +08:00
ping 213ae6a3ea Merge pull request #400 from ertemann/master
Add nolus to Ping.pub explorer
2023-05-26 18:39:14 +08:00
Ertemann a83c3d2d00 Update tenet.json 2023-05-26 11:42:59 +02:00
Ertemann 703d1df068 Update tenet.json 2023-05-26 11:16:44 +02:00
Ertemann d16791c3de fix API urls 2023-05-26 11:13:09 +02:00
Ertemann 0f44ccd451 Create nolus.json 2023-05-26 11:10:57 +02:00
Ertemann f5432b5d06 re-upload tenet logo 2023-05-26 10:51:33 +02:00
Ertemann e9c72405dd Delete tenet_original.webp 2023-05-26 10:50:55 +02:00
Ertemann dfe6eaad5f add nolus logo image 2023-05-26 10:48:53 +02:00
Ertemann de532ce68f Create tenet.json 2023-05-26 10:17:19 +02:00
Ertemann 672f495a32 Add Tenet logo 2023-05-26 10:00:03 +02:00
ping 4d05e8ebf2 Merge pull request #398 from alisaweb3/v3-single
Fix: switch chain network, NavBarWallet Warning
2023-05-26 15:19:06 +08:00
Alisa 9e738d3277 fix: NavBarWallet Warning 2023-05-26 15:16:29 +08:00
Alisa | Side.one 6a9823893c fix: chain network switch 2023-05-26 15:05:20 +08:00
liangping f693684222 修改浏览器接口 2023-05-26 14:24:05 +08:00
liangping b4c60a5860 update widget 2023-05-26 12:07:02 +08:00
liangping 4b246c9ebe update readme 2023-05-26 10:31:46 +08:00
liangping f3b5435630 Merge remote-tracking branch 'origin/master' 2023-05-26 10:12:55 +08:00
ping a42aeb73f6 Merge pull request #397 from quasar-finance/add_quasar_testnet
Add new quasar testnet
2023-05-26 08:08:50 +08:00
liangping 8b514d85c6 add wasm inter operation 2023-05-26 08:05:29 +08:00
liangping 48d81f16c7 change default view 2023-05-26 08:04:40 +08:00
Pablo 9b15fd7287 Add new quasar testnet 2023-05-25 15:08:51 +02:00
liangping afb05e08c0 add suggest chain to keplr 2023-05-25 10:00:38 +08:00
ping 02202fd426 Merge pull request #395 from AutoStake-com/patch-1
Update and rename omniflix.json to omniflixhub.json
2023-05-24 16:45:12 +08:00
AutoStake d2b057a2da Update and rename omniflix.json to omniflixhub.json
omniflixhub is the canonical name in the chain-registry
2023-05-24 06:06:12 +01:00
liangping 9cd9ce3baf change config for cosmos and irisnet 2023-05-23 21:39:47 +08:00
liangping 7bf1f61ad3 update dependency 2023-05-23 21:05:08 +08:00
liangping 68be97006f adjust fetch frequency 2023-05-23 21:04:33 +08:00
liangping 3e88113a3a update widget 2023-05-23 21:02:54 +08:00
liangping 59ca049900 Merge remote-tracking branch 'origin/master' 2023-05-23 07:29:16 +08:00
liangping 3d2dee9303 fix add accounts 2023-05-22 18:53:15 +08:00
liangping 8878f28e67 update change coin type 2023-05-22 18:52:21 +08:00
liangping 262dad4769 improve UI 2023-05-22 18:01:39 +08:00
ping ce44baebae Merge pull request #394 from sybilsingleton/master
Add Dyson Protocol mainnet
2023-05-22 17:24:30 +08:00
sybilsingleton 4c3b034182 Add dyson-protocol.json 2023-05-22 12:10:36 +04:00
liangping b13e470ea2 remove debug info 2023-05-22 15:33:02 +08:00
liangping 9d2961085a show validator names 2023-05-22 15:21:42 +08:00
liangping 1cfc49e9a9 improve UI for mobile 2023-05-22 14:52:47 +08:00
liangping e6eb61021d ignore .idea 2023-05-22 14:52:24 +08:00
liangping 22713c0d06 add hd-path param 2023-05-22 11:30:27 +08:00
liangping 27dc94a383 reduce block fetch fequency 2023-05-22 11:10:19 +08:00
liangping c8727d62af Merge remote-tracking branch 'origin/master' 2023-05-22 10:47:49 +08:00
liangping dacb170492 update widget version 2023-05-22 10:46:13 +08:00
ping dce0733a4f Merge pull request #393 from sxlmnwb/patch-1
add chain4energy testnet
2023-05-22 10:44:34 +08:00
Salman Wahib b312bf12a6 chains: add chain4energy testnet
Signed-off-by: Salman Wahib <sxlmnwb.dev@gmail.com>
2023-05-22 03:54:19 +07:00
liangping 93663c8708 clean testnets 2023-05-21 20:23:38 +08:00
liangping 94ba4b1668 fix connect wallet issue 2023-05-21 19:07:30 +08:00
liangping 03abd9c75a rename tx.ts 2023-05-21 18:20:49 +08:00
liangping a07fd54cb3 update 2023-05-21 17:52:38 +08:00
liangping 473e5b4db7 add hover 2023-05-21 17:40:53 +08:00
liangping 8945c1d703 add paginations 2023-05-21 17:38:02 +08:00
liangping 4b70b90cc1 show vote button 2023-05-21 13:47:24 +08:00
liangping 0a4d8bad06 add pagination 2023-05-21 13:41:57 +08:00
liangping 5b897002a5 hidden connect wallet in small screen 2023-05-21 07:08:51 +08:00
liangping b2824eddcb improve UI 2023-05-21 07:02:49 +08:00
liangping 022e0d3437 fix loading issue 2023-05-20 21:36:32 +08:00
liangping adb34f2992 improve uptime 2023-05-20 21:09:27 +08:00
liangping 655f0f43c1 update colors and grid 2023-05-20 20:11:06 +08:00
ping 55886d5f00 Merge pull request #390 from sxlmnwb/master
add primary color in TxsElement
2023-05-20 19:23:33 +08:00
liangping 7b77cc2c18 rename 2023-05-20 18:15:33 +08:00
liangping 349813929b fix endpoint switch error 2023-05-20 18:06:22 +08:00
Salman Wahib b68d415873 update: add primary color in TxsElement
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-05-20 08:37:35 +00:00
liangping ef3599e9ca fix events 2023-05-20 16:04:54 +08:00
ping 85f8ef1db5 Merge pull request #389 from alisaweb3/v3-single
fix: button color
2023-05-20 15:06:57 +08:00
Alisa | Side.one c3af73c028 feat: update ping-widget@0.0.16 2023-05-20 15:06:10 +08:00
Alisa | Side.one 33e1503eac fix: button color 2023-05-20 14:19:59 +08:00
ping 8173e68452 Merge pull request #388 from alisaweb3/v3-single
style force and wallet hidden
2023-05-20 14:16:34 +08:00
Alisa | Side.one 0ce8d81c9f feat: wallet 2023-05-20 13:49:39 +08:00
Alisa | Side.one 579acc64b1 feat: wallet hidden 2023-05-20 13:42:48 +08:00
Alisa | Side.one 9be8a49097 feat: add important style 2023-05-20 13:36:05 +08:00
ping e8f82e6d23 Merge pull request #387 from alisaweb3/v3-single
fix: force block
2023-05-20 13:12:58 +08:00
Alisa | Side.one 53292e1308 Merge remote-tracking branch 'upstream/master' into v3-single 2023-05-20 13:10:34 +08:00
Alisa | Side.one 3ac4bd977b fix: force block 2023-05-20 13:07:21 +08:00
liangping 56e488f6a4 fix build error 2023-05-20 12:23:53 +08:00
liangping 5aecf49daf update config 2023-05-20 12:23:27 +08:00
liangping fa9e8295bd update deploy action 2023-05-20 11:58:36 +08:00
ping e4210a5aca Create LICENSE 2023-05-20 11:48:15 +08:00
liangping 4232cdfff0 fix wrap 2023-05-20 11:40:08 +08:00
liangping 536d9d0ec0 sync mainnet config 2023-05-20 11:35:09 +08:00
liangping 0c33923dec Update Readme 2023-05-20 11:23:15 +08:00
liangping 437359deff add github action 2023-05-20 11:20:07 +08:00
liangping 25497e97ad improve index and connect wallet 2023-05-20 10:57:56 +08:00
liangping 93d7f0b229 improve uptime and blocks 2023-05-20 09:53:01 +08:00
liangping 32014f4a24 improve UX & adding links 2023-05-20 08:07:36 +08:00
liangping 1577e0a8ed add widget 2023-05-19 10:02:39 +08:00
liangping be6cd1af7c improve ui 2023-05-18 21:20:19 +08:00
liangping 0122fe89f6 update neutron logo 2023-05-18 21:19:56 +08:00
liangping 0c1ad4463b update neutron config 2023-05-18 21:19:38 +08:00
liangping 1e414d5c68 improve tx dialog 2023-05-18 12:38:17 +08:00
ping 99f9c60b34 Merge pull request #383 from sxlmnwb/v3-single
add routerlink to transaction
2023-05-18 06:46:41 +08:00
ping 9baa8d4705 Merge pull request #382 from alisaweb3/v3-single
Update ProposalListItem
2023-05-18 06:45:48 +08:00
Alisa | Side.one b36786c1ee feat: ping-widget update version 2023-05-17 23:16:20 +08:00
Alisa | Side.one 6daf0d8085 feat: remove await 2023-05-17 23:14:43 +08:00
Alisa | Side.one 9f18b65a9d feat: remove debug params 2023-05-17 20:11:32 +08:00
liangping 1632db87e2 rename costomise 2023-05-17 08:34:03 +08:00
liangping fc707e0475 fix: logo loading 2023-05-17 08:33:44 +08:00
Salman Wahib 8cfad17080 update: rollback tx_response.code to span
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-05-16 23:25:52 +00:00
Alisa | Side.one 6b05b1ae7f feat: dashboard add link 2023-05-17 00:24:17 +08:00
Alisa | Side.one 45a7d04748 feat: add teleport 2023-05-17 00:02:59 +08:00
Alisa | Side.one ea4fed9b4f feat: progress voter status add 2023-05-16 23:42:02 +08:00
Alisa | Side.one bbd408393a feat: delegrations rewards 2023-05-16 23:33:33 +08:00
Alisa | Side.one abfb0d8c44 feat: Contract 2023-05-16 23:15:23 +08:00
liangping 1c44a04cd4 fix error 2023-05-16 22:42:05 +08:00
Alisa | Side.one add8a3466b Merge pull request #14 from ping-pub/v3-single
V3 single
2023-05-16 20:52:22 +08:00
liangping db7b1a65fc hidden badge 2023-05-16 20:19:31 +08:00
liangping 1114b8e0f4 add title 2023-05-16 20:13:21 +08:00
liangping 6653ce791c add overall 2023-05-16 20:07:26 +08:00
liangping 9f1d093128 hidden vote by states 2023-05-16 18:20:31 +08:00
Alisa | Side.one 0f615df024 Update index.vue 2023-05-16 18:19:07 +08:00
Alisa | Side.one fa1758b5ba feat: send 2023-05-16 18:18:46 +08:00
liangping 8f793d295a load less proposals 2023-05-16 18:18:09 +08:00
liangping 88303be9cd add parameter to enable vote button 2023-05-16 18:17:47 +08:00
Salman Wahib fb028faeb1 update: add routerlink to transaction
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-05-16 09:48:41 +00:00
liangping 8f1561dd74 add uptime overview 2023-05-16 16:19:22 +08:00
Alisa | Side.one aa10275ee0 feat: contracts modal 2023-05-16 12:31:53 +08:00
Alisa | Side.one 5ae158db84 Update ProposalListItem.vue 2023-05-16 09:11:56 +08:00
Alisa | Side.one b5574d6179 Update ProposalListItem.vue 2023-05-16 09:11:27 +08:00
ping c35b07ee49 Merge pull request #381 from alisaweb3/v3-single
wallet state, process,ibc,dashboard
2023-05-16 06:59:18 +08:00
Alisa | Side.one 1f27a4cc30 feat: process add simple Description 2023-05-16 01:26:31 +08:00
Alisa | Side.one 2dbdca5161 feat: page receive 2023-05-16 00:53:29 +08:00
Alisa | Side.one e8f2e03925 feat: wallet connect state 2023-05-16 00:29:53 +08:00
Alisa | Side.one d148bbe3b1 feat: Dashboard Delegations List 2023-05-16 00:19:50 +08:00
Alisa | Side.one 4c5ba81494 feat: proposal item 2023-05-15 23:44:24 +08:00
Alisa | Side.one 8be8ee5746 feat: proposal item 2023-05-15 23:42:45 +08:00
Alisa | Side.one a478949bdd feat: proposal item 2023-05-15 22:53:38 +08:00
Alisa | Side.one a22da6878d feat: proposal process 2023-05-15 20:52:24 +08:00
Alisa | Side.one c476da8eef feat: ibc code style 2023-05-15 19:10:29 +08:00
Alisa | Side.one ff335d4f0b feat: ibc style 2023-05-15 18:50:11 +08:00
liangping aef6e5f0e3 update endpoint stratigy 2023-05-15 18:43:26 +08:00
Alisa | Side.one f5ac321b8b feat: wallet dropdown 2023-05-15 18:28:55 +08:00
Alisa | Side.one f50e1c12bf feat: ibc 2023-05-15 18:09:17 +08:00
Alisa | Side.one dade4c49b8 feat: sidebar icon 2023-05-15 17:47:34 +08:00
liangping 77cb720bc7 improve UI 2023-05-15 16:05:39 +08:00
ping b7dfc04f5e Merge pull request #380 from alisaweb3/v3-single
Timeline, Wallet Drapdown,Validator Detail,Governance Progress
2023-05-15 14:07:19 +08:00
liangping e38001e5fe add basic portfolio 2023-05-15 14:06:46 +08:00
Alisa | Side.one b3531c8207 feat: contract detail 2023-05-15 12:56:58 +08:00
Alisa | Side.one c4bf34598f feat: merge 2023-05-15 12:37:30 +08:00
liangping d956fdd9c7 finish accounts 2023-05-15 12:29:10 +08:00
Alisa | Side.one 8e8a3614c1 feat: validator 2023-05-15 09:56:33 +08:00
Alisa | Side.one ccf0d755df feat: address 2023-05-15 09:36:48 +08:00
Alisa | Side.one 8ae0e88925 feat: table th relative 2023-05-15 09:17:20 +08:00
Alisa | Side.one 19d05319cb feat: governance item progress 2023-05-15 00:40:12 +08:00
Alisa | Side.one ba4ec2abf2 feat: timeline 2023-05-15 00:08:59 +08:00
Alisa | Side.one 1e1472e0d5 feat: nav bar wallet address 2023-05-14 23:24:20 +08:00
Alisa | Side.one e5ad564826 feat: page load on no network 2023-05-14 16:26:18 +08:00
liangping ef747b2e22 fix gov proposal loading issue 2023-05-14 14:24:07 +08:00
liangping f48c9b8a79 update client 2023-05-14 14:23:49 +08:00
Alisa | Side.one d18639204c feat: merge 2023-05-14 14:22:32 +08:00
Alisa | Side.one 0e0a593303 feat: sidebar open default 2023-05-14 13:48:43 +08:00
Alisa | Side.one d073629eee feat: sticky 2023-05-14 13:22:32 +08:00
Alisa | Side.one 1bc8b488ad feat: foooter hidden 2023-05-14 13:21:41 +08:00
Alisa | Side.one da1c6e38ab feat: hidden footer 2023-05-14 13:19:28 +08:00
Alisa | Side.one 58b086b744 Merge pull request #13 from ping-pub/v3-single
atomatically load latest
2023-05-14 13:15:50 +08:00
liangping b195e72554 add wallet 2023-05-14 13:15:43 +08:00
Alisa | Side.one d0919e919a feat: uptime layout 2023-05-14 10:17:38 +08:00
Alisa | Side.one e34e01e664 feat: ping-widget@0.0.7 2023-05-14 10:10:31 +08:00
liangping eb79884c07 atomatically load latest 2023-05-14 09:23:18 +08:00
Alisa | Side.one b63bfcf645 feat: address style refactor 2023-05-13 21:41:58 +08:00
Alisa | Side.one 7ca6782e99 Merge pull request #12 from ping-pub/v3-single
V3 single
2023-05-13 21:02:00 +08:00
ping e7a21a9db9 Merge pull request #379 from alisaweb3/v3-single
UI refactor: Uptime, Staking,Dashboard,Validator Detail,Tx
2023-05-13 07:40:57 +08:00
Alisa | Side.one 6f32a8db16 feat: address 2023-05-13 07:03:42 +08:00
Alisa | Side.one 869d716323 feat: account ui refactor 2023-05-13 00:31:02 +08:00
Alisa | Side.one ad4ad7bdee feat: uptime tooltip refactor 2023-05-12 22:03:06 +08:00
Alisa | Side.one 2d4720bc9b feat: chain profile 2023-05-12 21:49:14 +08:00
Alisa | Side.one d5b71cf5f2 feat: Card 2023-05-12 21:47:43 +08:00
Alisa | Side.one 19fbeb8ffd feat: CardStatics 2023-05-12 21:42:22 +08:00
Alisa | Side.one 53481bad37 feat: account vchip ui refactor 2023-05-12 21:26:36 +08:00
Alisa | Side.one d984bac2d4 feat: layout 2023-05-12 21:18:42 +08:00
Alisa | Side.one efee84d0ea feat: NavFooter 2023-05-12 21:14:09 +08:00
Alisa | Side.one 42329764dd feat: navbar lang 2023-05-12 21:06:29 +08:00
Alisa | Side.one 08c2b60454 Merge branch 'v3-single' of https://github.com/alisaweb3/explorer into v3-single 2023-05-12 21:00:44 +08:00
Alisa | Side.one c02c39cd0f feat: tx page ui refactor 2023-05-12 20:58:22 +08:00
Alisa | Side.one 4db126c076 feat: contracts 2023-05-12 20:37:01 +08:00
Alisa | Side.one e7fd304aa9 feat: statesync 2023-05-12 20:33:51 +08:00
Alisa | Side.one f6d07b7515 feat: staking validatore commission rate 2023-05-12 18:29:34 +08:00
Alisa | Side.one 1c038b465f feat: validator commission 2023-05-12 17:31:28 +08:00
Alisa | Side.one 78543b0fe1 feat: staking rewards 2023-05-12 13:48:23 +08:00
Alisa | Side.one ae2a16a42b feat: staking table 2023-05-12 13:32:56 +08:00
Alisa | Side.one 4ebc325b88 feat: staking 2023-05-12 13:07:23 +08:00
Alisa | Side.one 24f2969e6e feat: Uptime 2023-05-12 10:28:09 +08:00
ping 69ef2b1da7 Merge pull request #378 from alisaweb3/v3-single
UI refactor: Default Layout, Sidebar,Chain Profile
2023-05-12 08:22:54 +08:00
Alisa | Side.one 5f2f06068c Merge 2023-05-12 02:01:14 +08:00
Alisa | Side.one ef741848bf feat: logo 2023-05-12 01:58:17 +08:00
Alisa | Side.one a5affa079a feat: sidebar style 2023-05-12 01:39:33 +08:00
Alisa | Side.one bfa3936dbb feat: side bar style 2023-05-12 01:05:40 +08:00
Alisa | Side.one 358a2c4848 feat: side bar 2023-05-11 18:48:57 +08:00
Alisa | Side.one 7d26cd3f4a feat: DefaultLayout && Chain Profile 2023-05-11 18:33:01 +08:00
Alisa | Side.one 7139b76606 feat: clear bg-base-content 2023-05-11 17:22:15 +08:00
Alisa | Side.one 1d045b3cd4 feat: wallet 2023-05-11 12:26:41 +08:00
liangping e5857b4a1a integrate tx dialog 2023-05-11 11:03:50 +08:00
ping 009ae1c5e6 Merge pull request #377 from alisaweb3/v3-single
UI refactor: Editor,Staking,Statesync, Connect wallet, Image lazy load
2023-05-11 07:37:31 +08:00
Alisa | Side.one e386988bdc feat: add vue image lazyload 2023-05-11 01:53:59 +08:00
Alisa | Side.one 8e1e243111 fix: dashboard.loadingPrices() cause endless loop 2023-05-11 01:48:27 +08:00
Alisa | Side.one 39f5cf5337 merge 2023-05-11 01:45:05 +08:00
Alisa | Side.one 65c5620348 feat: ping-widget install git 2023-05-11 01:32:59 +08:00
Alisa | Side.one a08f467857 fix: ping-connect-wallet display hierarchy problem 2023-05-11 01:18:30 +08:00
Alisa | Side.one ec32cd3105 feat: statesync page ui refactor 2023-05-11 01:02:43 +08:00
Alisa | Side.one 3db8b87cb2 Merge branch 'v3-single' of https://github.com/alisaweb3/explorer into v3-single 2023-05-11 00:55:59 +08:00
Alisa | Side.one 6b36d29048 feat: build new version dist 2023-05-11 00:55:56 +08:00
Alisa | Side.one 52bcb61299 feat: staking ui retactor 2023-05-11 00:52:52 +08:00
liangping ee89e438c0 add 24h changes 2023-05-10 20:04:23 +08:00
liangping d2c82499c0 add order on menu 2023-05-10 18:39:39 +08:00
liangping df359ca684 add price load 2023-05-10 16:19:22 +08:00
liangping 2885415630 fix rewards amount 2023-05-10 13:33:59 +08:00
Alisa | Side.one e419bd1e34 fix: this.connectedWallet.cosmosAddress undefined 2023-05-10 13:23:00 +08:00
Alisa | Side.one 3b3cd95e69 feat: ping-widget use github url 2023-05-10 13:20:10 +08:00
Alisa | Side.one 7a494e7b59 feat: staking page UI refactor 2023-05-10 13:15:12 +08:00
Alisa | Side.one 270c8f5093 Merge pull request #11 from ping-pub/v3-single
merge
2023-05-10 13:13:34 +08:00
liangping c37c4cbc8d add asset panel 2023-05-10 13:04:57 +08:00
Alisa | Side.one 7dbabf3e12 fix: editor text style 2023-05-10 12:20:42 +08:00
liangping e011ec0691 add basic framework 2023-05-10 11:12:06 +08:00
ping 88e36d554d Merge pull request #376 from alisaweb3/v3-single
UI refactor: Dashboard, Block, IBC Improve
2023-05-10 08:31:46 +08:00
Alisa | Side.one 52b3cfa5fb feat: add ping-widget@0.0.4 2023-05-10 00:35:51 +08:00
Alisa | Side.one af457a3a95 fix: block error 2023-05-10 00:30:33 +08:00
Alisa | Side.one 22987636a8 feat: dashboard exchange list 2023-05-10 00:26:47 +08:00
Alisa | Side.one b57db735ed feat: button style refactor 2023-05-09 22:01:12 +08:00
Alisa | Side.one f0189342ec fix: recover show market name 2023-05-09 20:37:09 +08:00
Alisa | Side.one ae62528803 Merge pull request #10 from ping-pub/v3-single
V3 single
2023-05-09 10:34:51 +08:00
ping 5c35cecc58 Merge pull request #374 from alisaweb3/v3-single
UI refactor: DynamicComponent,ObjectHorizontalElement,Cosmwasm,Dashboard
2023-05-09 08:00:39 +08:00
Alisa | Side.one 96501e15f9 feat: Dashboard Coin Info 2023-05-08 23:50:20 +08:00
Alisa | Side.one d196c35dc8 feat: contracts UI refactor 2023-05-08 23:33:32 +08:00
Alisa | Side.one 4ea1402840 feat: Dashboard Active Proposals 2023-05-08 22:17:02 +08:00
Alisa | Side.one 78678bf064 feat: cosmwasm UI refactor 2023-05-08 21:44:49 +08:00
Alisa | Side.one fd221916cf feat: dashboard tab UI refactor 2023-05-07 10:08:28 +08:00
Alisa | Side.one 8774bcdf72 feat: ObjectHorizontalElement tab UI refactor 2023-05-07 09:32:23 +08:00
Alisa | Side.one a64c28c6ee feat: dashboard 2023-05-07 09:31:07 +08:00
Alisa | Side.one a632220b67 Merge branch 'v3-single' of https://github.com/alisaweb3/explorer into v3-single 2023-05-07 09:08:00 +08:00
Alisa | Side.one b1f3afba3e feat: DynamicComponent UI refactot 2023-05-07 09:07:33 +08:00
ping c88ff8806e Merge pull request #373 from alisaweb3/v3-single
UI refactor: blocks,IBC,Governance
2023-05-07 08:57:02 +08:00
Alisa | Side.one 2589253952 feat: navbar menu 2023-05-07 08:54:30 +08:00
alisa 60767b499b feat: vite@4.3.5 2023-05-07 08:37:24 +08:00
Alisa | Side.one da13d37284 feat: alert UI refactor 2023-05-07 08:07:19 +08:00
Alisa | Side.one dd78fe1218 Update [proposal_id].vue 2023-05-06 23:16:31 +08:00
Alisa | Side.one a410be210a Update newFooter.vue 2023-05-06 23:09:23 +08:00
Alisa | Side.one 0a4cac85f3 feat: info color 2023-05-06 23:05:10 +08:00
Alisa | Side.one 5c3118116f feat: format code 2023-05-06 22:56:04 +08:00
Alisa | Side.one b17d6fd6bf feat: table overflow 2023-05-06 17:35:54 +08:00
Alisa | Side.one ed43d109f0 feat: Ibc UI refactor 2023-05-06 17:22:10 +08:00
Alisa | Side.one ebf2b61528 feat: block page table and card UI refactor 2023-05-06 17:11:08 +08:00
ping 8da4118f31 Merge pull request #372 from alisaweb3/v3-single
UI Refactor: language switch, theme toggle,governance,block,staking
2023-05-06 15:58:55 +08:00
Alisa | Side.one 95ff1caed1 feat: governance card refactor 2023-05-06 15:48:50 +08:00
Alisa | Side.one 4328b9e86e feat: governance detail 2023-05-06 15:34:46 +08:00
Alisa | Side.one 6b0a1d042e feat: progress refactor 2023-05-06 15:00:22 +08:00
Alisa | Side.one 53e6f7dde5 feat: governance card 2023-05-06 12:23:37 +08:00
Alisa | Side.one 852a8e6c1b Merge pull request #9 from ping-pub/v3-single
V3 single
2023-05-06 10:49:12 +08:00
Alisa | Side.one 52c6b20aca feat: governance detail card rewrite 2023-05-05 16:50:57 +08:00
Alisa | Side.one af4eafc3b1 feat: theme toggle component removal 2023-05-05 15:13:42 +08:00
Alisa | Side.one 02cc6ee176 fix: language switch 2023-05-05 15:13:14 +08:00
Alisa | Side.one 0540ae3b96 feat: change language revert 2023-05-05 13:03:04 +08:00
Alisa | Side.one b385ab7307 fix: layout one div 2023-05-05 09:09:04 +08:00
Alisa | Side.one 728d8bf02d feat: staking tabs 2023-05-05 09:06:18 +08:00
Alisa | Side.one 3f42e542f5 feat: block ui 2023-05-05 09:01:31 +08:00
Alisa | Side.one 45eb49175c feat: governance tabs 2023-05-05 08:49:33 +08:00
Alisa | Side.one 51c173e82d feat: bg-base-100 bg-base-cotent 2023-05-05 08:37:12 +08:00
liangping 7a5368cd69 Merge remote-tracking branch 'origin/v3-single' into v3-single
# Conflicts:
#	yarn.lock
2023-05-05 07:39:39 +08:00
liangping 58b79c9b03 add ibc feature 2023-05-05 07:37:45 +08:00
ping 6c2676fe9f Merge pull request #371 from alisaweb3/v3-single
Dashboard UI Refactor
2023-05-05 07:35:43 +08:00
Alisa | Side.one d39b4caf16 feat: i18n ui 2023-05-05 00:58:45 +08:00
alisa 1f6cee1d2d feat: favorite localstorage 2023-05-05 00:28:27 +08:00
alisa 7bda8be6f5 feat: dashboard chain summary 2023-05-05 00:20:38 +08:00
alisa aac687cd0d feat: dashboard layout 2023-05-04 23:46:20 +08:00
Alisa | Side.one dbddd6beb6 feat: daisyui theme toggle 2023-05-04 23:38:36 +08:00
alisa b6a4b9e362 feat: dashboard title 2023-05-04 23:25:35 +08:00
Alisa | Side.one cb0f841152 feat: add plugin theme change 2023-05-04 23:24:07 +08:00
alisa a2c0ed0f24 feat: foot ui change 2023-05-04 22:45:43 +08:00
alisa 2ee5efbb89 feat: add daisyui 2023-05-04 15:36:42 +08:00
Alisa | Side.one 02a7bc5f56 Merge pull request #8 from ping-pub/v3-single
V3 single
2023-05-04 10:41:30 +08:00
liangping 8876a12aef filter community pool 2023-05-04 07:30:12 +08:00
liangping 2f240f34bf UX improvement 2023-05-04 07:19:19 +08:00
liangping 411d1a829e add any of addresses 2023-05-03 20:30:03 +08:00
liangping 413458a1f7 add pin 2023-05-03 20:29:50 +08:00
liangping 777ba4d5d0 wellformat permission 2023-05-03 18:00:18 +08:00
liangping 8fb6a952de decode contract states 2023-05-03 17:54:31 +08:00
liangping 43d4faa396 remove injective wallet 2023-05-03 15:24:13 +08:00
liangping 011f40e871 add contract detail and query 2023-05-03 15:22:57 +08:00
liangping 8a3e297099 Remove Wallet Component 2023-05-03 14:03:29 +08:00
liangping 19f5f21ab6 Merge remote-tracking branch 'origin/v3-single' into v3-single 2023-05-03 13:57:50 +08:00
liangping b65c684fc5 add state-sync and cosmwasm 2023-05-03 13:54:27 +08:00
Alisa | Side.one 1506f0a2be Merge pull request #7 from ping-pub/v3-single
V3 single
2023-05-03 05:17:57 +08:00
ping f7e63f2703 Merge pull request #369 from sxlmnwb/v3-single
add router link uptime consensus to validator
2023-05-02 10:31:28 +08:00
Alisa | Side.one 0a73ee0365 Merge pull request #6 from ping-pub/v3-single
V3 single
2023-05-01 21:50:04 +08:00
liangpingandSalman Wahib bb3103e749 update: add router link uptime consensus to validator
Author: liangping <18786721@qq.com>
Co-authored-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-04-30 17:13:36 +00:00
liangping 2935cb00f5 add Wallet Dialog 2023-04-30 11:47:39 +08:00
liangping fbc5d0f298 Merge branch 'v3-single' of https://github.com/ping-pub/explorer into v3-single 2023-04-30 10:11:52 +08:00
liangping 6cf2b85c02 Merge branch 'v3-single' of https://github.com/ping-pub/explorer into v3-single 2023-04-30 10:11:35 +08:00
liangping 8775298123 add live check 2023-04-30 10:11:23 +08:00
ping 5fdb5eb2bc Merge pull request #368 from alisaweb3/v3-single
uptime style change
2023-04-30 10:10:28 +08:00
alisa ce597f91e6 fix: style change 2023-04-29 23:53:46 +08:00
Alisa | Side.one b6e0e6c3a3 Merge pull request #5 from ping-pub/v3-single
V3 single
2023-04-29 19:11:16 +08:00
liangping 3188e500f0 reduce line height 2023-04-29 18:26:26 +08:00
liangping be8ca28c56 Finish uptime 2023-04-29 18:21:42 +08:00
liangping 58d8cd034a Merge branch 'v3-single' of https://github.com/ping-pub/explorer into v3-single 2023-04-29 08:48:17 +08:00
ping cc0dfe9b2d Merge pull request #366 from alisaweb3/v3-single
percent conversion and uptimes page
2023-04-29 08:46:54 +08:00
Alisa | Side.one 0ab0bbf8c7 Merge pull request #4 from ping-pub/v3-single
Merge pull request #365 from alisaweb3/v3-single
2023-04-28 22:54:27 +08:00
alisa a71ef3a17b feat: add uptime tabs 2023-04-28 22:51:33 +08:00
alisa 4c2f3f0f8d fix: number to percent 2023-04-28 22:00:15 +08:00
liangping f73f2a8840 Merge branch 'v3-single' of https://github.com/ping-pub/explorer into v3-single 2023-04-28 08:42:04 +08:00
ping 016f022e27 Merge pull request #365 from alisaweb3/v3-single
Parameters Page: data docking, perfect page content, mobile adaptation
2023-04-28 08:40:08 +08:00
liangping 21ea873fe1 fix: null error of formating 2023-04-28 08:39:26 +08:00
alisa e6cf8e3bf0 feat: new uptime page 2023-04-28 00:10:25 +08:00
Alisa | Side.one 8b13edcb17 Merge pull request #3 from ping-pub/v3-single
V3 single Merge
2023-04-27 23:55:53 +08:00
alisa ce9787b2f9 feat: Parameters Application Version and Node Information 2023-04-27 23:54:24 +08:00
alisa 68e2b4a29e feat: remove files 2023-04-27 22:44:35 +08:00
alisa b4eca8f597 feat: Parameters Page style change 2023-04-27 22:43:30 +08:00
alisa be885dde89 feat: tab pill 2023-04-27 19:41:06 +08:00
alisa bc66c57eba Space mt-5 2023-04-27 19:02:37 +08:00
alisa a0104d5fee Parameters Mobile 2023-04-27 19:00:44 +08:00
alisa 881e64b3ff rounded 2023-04-27 18:52:48 +08:00
ping 44e968a932 Merge pull request #363 from alisaweb3/v3-single
Parameters page
2023-04-27 17:54:07 +08:00
ping 26d846a78c Merge pull request #364 from sxlmnwb/v3-single
bump new icon validator and make simple string value
2023-04-27 17:53:29 +08:00
alisa 987f76b7d4 feat: add node Info and application version 2023-04-27 15:34:39 +08:00
alisa 248f4411e3 feat: add governance params 2023-04-27 14:24:31 +08:00
alisa 921536983d feat: add Slashing andDistribution Param 2023-04-27 14:05:45 +08:00
Salman Wahib bbb28de0d4 update: make a same result txs check to validator page
- router link height in account

Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-04-26 18:00:46 +00:00
Salman Wahib 75f3665aa0 update: make simple status bonded and jailed like old style
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-04-26 17:54:14 +00:00
Salman Wahib 5e43bd5cf5 update: bump new icon validator page
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-04-26 17:48:27 +00:00
alisa 881ab4260c fix: remove packages 2023-04-27 00:43:14 +08:00
alisa bb15783fdb fix: system theme 2023-04-27 00:42:45 +08:00
alisa 062d8b81b5 feat: Interface data processing 2023-04-27 00:18:50 +08:00
alisa e1c62c086f feat: component extraction 2023-04-27 00:18:13 +08:00
alisa 51f95e187f feat: add interface request and html dom 2023-04-26 21:05:20 +08:00
alisa b0b7066e10 feat: add parameters page store 2023-04-26 20:30:21 +08:00
alisa b2a2523210 fix: data compatible processing 2023-04-26 20:29:24 +08:00
alisa a94e3be787 feat: add param menu 2023-04-26 14:24:48 +08:00
Alisa | Side.one 7be0c4c8a1 Merge pull request #2 from ping-pub/v3-single
Merge pull request #362 from alisaweb3/v3-single
2023-04-26 10:54:48 +08:00
ping 85f6e48c50 Merge pull request #362 from alisaweb3/v3-single
Governance Data Improve
2023-04-25 22:40:30 +08:00
alisa 9fa425df53 feat: format code 2023-04-25 21:57:52 +08:00
alisa b8b5602194 feat: add Parameters Page 2023-04-25 21:45:44 +08:00
alisa a3a869d9c1 feat: tailwindcss dark mode color 2023-04-25 21:45:33 +08:00
alisa e88fff9e3d feat: code prettierrc 2023-04-25 21:08:32 +08:00
alisa 674810d513 feat: dashboard Dashboard Community Pool Content exceeds 2023-04-25 21:02:58 +08:00
alisa 6bbe2b2c61 feat: float alignment 2023-04-25 18:27:46 +08:00
Alisa | Side.one beef1e1c26 Merge pull request #1 from ping-pub/v3-single
V3 single
2023-04-25 16:30:24 +08:00
alisa a65754e5b8 fix: add onMounted 2023-04-25 16:08:42 +08:00
alisa b8eea61013 fix: type declaration supplement 2023-04-25 15:30:16 +08:00
alisa aa7c910f4b fix: Governance Tally no data 2023-04-25 15:25:02 +08:00
ping f73bfc9d8c Merge pull request #361 from sxlmnwb/v3-single
bumped into primary colors and created router link
2023-04-25 14:53:14 +08:00
alisa 2ab68a62e3 feat: Governance status color 2023-04-25 14:52:55 +08:00
alisa df5e8afb14 fix: Governance Voting onmounted no data 2023-04-25 13:01:04 +08:00
Salman Wahib 4c3b2cdc77 update: add router link accounts to validator and height
Signed-off-by: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
2023-04-25 03:49:22 +00:00
Salman Wahibandalisa d73002a973 update: bumped into primary colors ping-pub
Author: Salman Wahib <sxlmnwb@sxlzptprjkt.xyz>
Co-authored-by: alisa <alisa@side.one>
2023-04-25 02:10:59 +00:00
ping 8d14f342d6 Merge pull request #360 from alisaweb3/v3-single
Improved Governance List Style
2023-04-25 08:54:49 +08:00
alisa d50f8ded10 fix: overflow auto 2023-04-25 01:14:30 +08:00
alisa f3fd01828a feat: light mode 2023-04-25 01:12:32 +08:00
alisa 0618897761 feat: add npm run dev 2023-04-25 01:05:00 +08:00
alisa ab0fb2252e feat: add darkMode 2023-04-25 01:02:59 +08:00
alisa 9ff69c68cd feature: proposal item dark theme 2023-04-25 00:44:57 +08:00
alisa 581a3b0e33 feature: governance list 2023-04-25 00:37:16 +08:00
alisa dec4b82f75 feature: add tailwindcss 2023-04-24 23:12:08 +08:00
alisa c45c94f36b fix: clear yarn-error.log 2023-04-24 23:02:06 +08:00
alisa a540958e11 feat: update vite@4.3.1 2023-04-24 14:38:07 +08:00
alisa 845a746c99 fix: update package.json and add missing dependencies 2023-04-24 12:35:19 +08:00
liangping 5f7339c04b add accounts 2023-04-21 16:08:31 +08:00
liangping fc8aab6ce0 add account details 2023-04-20 18:44:25 +08:00
liangping d6d56ba7c0 improve validator and proposal 2023-04-19 12:05:19 +08:00
liangping d3a7c6f176 add gov 2023-04-07 10:11:48 +08:00
liangping 8c31935432 add modules name 2023-04-06 09:48:59 +08:00
liangping 70351f3833 finish tx detail 2023-04-06 08:17:40 +08:00
liangping 8e3c9eea0c return types 2023-04-05 10:45:49 +08:00
liangping 727f8ea026 finish all return type 2023-04-05 10:39:21 +08:00
liangping 20099d88d8 implemented client 2023-04-04 17:16:58 +08:00
liangping c30a652465 clean code 2023-04-04 12:48:39 +08:00
liangping c89bdd06b4 implement request registry 2023-04-03 19:47:56 +08:00
liangping 7f477bcd9f add factory for request 2023-04-03 17:08:36 +08:00
liangping 671050f5f2 use simple repo 2023-04-03 17:08:02 +08:00
liangping 52de377644 rpc endpoint version 2023-03-27 09:59:27 +08:00
liangping d02c0c646e change to rpc endpoint 2023-03-10 14:58:53 +08:00
liangping 91aea18f61 finish home 2023-03-06 20:59:32 +08:00
liangping e880c4b324 add local config 2023-03-05 20:38:59 +08:00
liangping 09add7334e add client extension support 2023-03-02 13:21:24 +08:00
liangping e60d7b5cf5 add balance cache 2023-02-17 09:34:49 +08:00
liangping 65b2cc6451 add a sample of bank. 2023-02-16 10:51:37 +08:00
liangping e6f32d6716 add i18n for index, improve chain profile 2023-02-14 09:58:28 +08:00
liangping f2d088a42b add i18n 2023-02-13 18:59:58 +08:00
liangping cfa8d07045 finish home page 2023-02-12 20:09:10 +08:00
liangping ed266f5d2c improve framework 2023-02-11 09:04:36 +08:00
liangping caa020f367 refactor project 2023-02-10 10:42:05 +08:00
ping 59a7034e5c Merge pull request #317 from dreamhubone/v3
add theme
2023-02-06 22:34:54 +08:00
yidingmax 967e807243 add theme 2023-02-06 22:21:46 +08:00
liangping 6f769bac0e add scss 2023-02-06 13:43:00 +08:00
liangping 98c009d4fb initial project 2023-02-06 12:34:02 +08:00
790 changed files with 24309 additions and 96332 deletions
-4
View File
@@ -1,4 +0,0 @@
dist
dev/assets/vendor
node_modules
src/node_modules
-2
View File
@@ -1,2 +0,0 @@
> 1%
last 2 versions
-21
View File
@@ -1,21 +0,0 @@
module.exports = {
root: true,
env: {
node: true,
},
extends: ['plugin:vue/recommended', '@vue/airbnb'],
parserOptions: {
parser: 'babel-eslint',
},
rules: {
'no-console': process.env.NODE_ENV === 'production' ? 'error' : 'off',
'no-debugger': process.env.NODE_ENV === 'production' ? 'error' : 'off',
semi: ['error', 'never'],
'max-len': 'off',
'linebreak-style': 'off',
camelcase: ['error', { properties: 'never', ignoreDestructuring: true, ignoreImports: true }],
'arrow-parens': ['error', 'as-needed'],
'vue/multiline-html-element-content-newline': 'off',
},
}
+5
View File
@@ -0,0 +1,5 @@
# These are supported funding model platforms
github: ping-pub
issuehunt: ping-pub # Replace with a single IssueHunt username
+21
View File
@@ -0,0 +1,21 @@
name: Config Checker
on:
# push:
# branches: [ master ]
pull_request:
# branches: [ master ]
paths:
- 'chains/mainnet/**'
- 'chains/testnet/**'
jobs:
deploy:
name: Check Blockchain Config
runs-on: ubuntu-latest
steps:
- name: Git Checkout Latest
uses: actions/checkout@v3
- name: Check Chain Configs
uses: ping-pub/ping-dashboard-config-checker@v1.0
+51
View File
@@ -0,0 +1,51 @@
name: docker
on:
push:
branches:
- 'master-backup'
jobs:
docker:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v2
# -
# name: Set up QEMU
# uses: docker/setup-qemu-action@v1
# -
# name: Set up Docker Buildx
# uses: docker/setup-buildx-action@v1
- name: Install
run: yarn install
- name: Build
run: yarn run vue-cli-service build
- name: Login to DockerHub
uses: docker/login-action@v1
with:
username: ${{ secrets.DOCKERHUB_USERNAME }}
password: ${{ secrets.DOCKERHUB_TOKEN }}
- name: Docker meta
id: meta
uses: docker/metadata-action@v3
with:
# list of Docker images to use as base name for tags
images: |
yaoling/wallet
# generate Docker tags based on the following events/attributes
tags: |
type=sha
type=schedule
type=ref,event=branch
type=ref,event=pr
type=semver,pattern={{version}}
type=semver,pattern={{major}}.{{minor}}
type=semver,pattern={{major}}
- name: Build and push
uses: docker/build-push-action@v2
with:
context: .
push: ${{ github.event_name != 'pull_request' }}
tags: ${{ steps.meta.outputs.tags }}
labels: ${{ steps.meta.outputs.labels }}
@@ -0,0 +1,28 @@
name: Deploy to ping.pub
on:
push:
branches: [ master2 ]
# pull_request:
# branches: [ master ]
jobs:
deploy:
name: Ping deploy
runs-on: mainnet
steps:
- name: Environment
run: export NODE_OPTIONS="--max_old_space_size=4096"
- name: Git Checkout Latest
uses: actions/checkout@v3
- name: Install
run: yarn install --ignore-engines
- name: Build
run: yarn build
- name: Deploy
run: cp -rf ./dist/* /var/www/html/
@@ -1,17 +1,19 @@
name: Ping Deploy
name: Testnet Deploy
on:
push:
branches: [ v2 ]
branches: [ testnet ]
pull_request:
branches: [ v2 ]
branches: [ testnet ]
jobs:
deploy:
name: Ping deploy
runs-on: self-hosted
runs-on: testnet
steps:
- name: print
run: echo ${GITHUB_REF#refs/heads/}
- name: Git Checkout Latest
uses: actions/checkout@v2
+5 -29
View File
@@ -1,29 +1,5 @@
.DS_Store
node_modules
/dist
# local env files
.env.local
.env.*.local
# Log files
npm-debug.log*
yarn-debug.log*
yarn-error.log*
# Editor directories and files
.idea
.vscode/*
*.suo
*.ntvs*
*.njsproj
*.sln
*.sw?
!.vscode/*.code-snippets
# script
/vuexy-scripts
# Docs
/docs/.temp
node_modules/
**/.vscode
yarn-error.log
dist
.idea
+9
View File
@@ -0,0 +1,9 @@
{
"tabWidth": 2,
"singleQuote": true,
"semi": true,
"endOfLine": "auto",
"bracketSpacing": true,
"TrailingCooma": true,
"arrowParens": "always"
}
+339
View File
@@ -0,0 +1,339 @@
GNU GENERAL PUBLIC LICENSE
Version 2, June 1991
Copyright (C) 1989, 1991 Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
Preamble
The licenses for most software are designed to take away your
freedom to share and change it. By contrast, the GNU General Public
License is intended to guarantee your freedom to share and change free
software--to make sure the software is free for all its users. This
General Public License applies to most of the Free Software
Foundation's software and to any other program whose authors commit to
using it. (Some other Free Software Foundation software is covered by
the GNU Lesser General Public License instead.) You can apply it to
your programs, too.
When we speak of free software, we are referring to freedom, not
price. Our General Public Licenses are designed to make sure that you
have the freedom to distribute copies of free software (and charge for
this service if you wish), that you receive source code or can get it
if you want it, that you can change the software or use pieces of it
in new free programs; and that you know you can do these things.
To protect your rights, we need to make restrictions that forbid
anyone to deny you these rights or to ask you to surrender the rights.
These restrictions translate to certain responsibilities for you if you
distribute copies of the software, or if you modify it.
For example, if you distribute copies of such a program, whether
gratis or for a fee, you must give the recipients all the rights that
you have. You must make sure that they, too, receive or can get the
source code. And you must show them these terms so they know their
rights.
We protect your rights with two steps: (1) copyright the software, and
(2) offer you this license which gives you legal permission to copy,
distribute and/or modify the software.
Also, for each author's protection and ours, we want to make certain
that everyone understands that there is no warranty for this free
software. If the software is modified by someone else and passed on, we
want its recipients to know that what they have is not the original, so
that any problems introduced by others will not reflect on the original
authors' reputations.
Finally, any free program is threatened constantly by software
patents. We wish to avoid the danger that redistributors of a free
program will individually obtain patent licenses, in effect making the
program proprietary. To prevent this, we have made it clear that any
patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
0. This License applies to any program or other work which contains
a notice placed by the copyright holder saying it may be distributed
under the terms of this General Public License. The "Program", below,
refers to any such program or work, and a "work based on the Program"
means either the Program or any derivative work under copyright law:
that is to say, a work containing the Program or a portion of it,
either verbatim or with modifications and/or translated into another
language. (Hereinafter, translation is included without limitation in
the term "modification".) Each licensee is addressed as "you".
Activities other than copying, distribution and modification are not
covered by this License; they are outside its scope. The act of
running the Program is not restricted, and the output from the Program
is covered only if its contents constitute a work based on the
Program (independent of having been made by running the Program).
Whether that is true depends on what the Program does.
1. You may copy and distribute verbatim copies of the Program's
source code as you receive it, in any medium, provided that you
conspicuously and appropriately publish on each copy an appropriate
copyright notice and disclaimer of warranty; keep intact all the
notices that refer to this License and to the absence of any warranty;
and give any other recipients of the Program a copy of this License
along with the Program.
You may charge a fee for the physical act of transferring a copy, and
you may at your option offer warranty protection in exchange for a fee.
2. You may modify your copy or copies of the Program or any portion
of it, thus forming a work based on the Program, and copy and
distribute such modifications or work under the terms of Section 1
above, provided that you also meet all of these conditions:
a) You must cause the modified files to carry prominent notices
stating that you changed the files and the date of any change.
b) You must cause any work that you distribute or publish, that in
whole or in part contains or is derived from the Program or any
part thereof, to be licensed as a whole at no charge to all third
parties under the terms of this License.
c) If the modified program normally reads commands interactively
when run, you must cause it, when started running for such
interactive use in the most ordinary way, to print or display an
announcement including an appropriate copyright notice and a
notice that there is no warranty (or else, saying that you provide
a warranty) and that users may redistribute the program under
these conditions, and telling the user how to view a copy of this
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
themselves, then this License, and its terms, do not apply to those
sections when you distribute them as separate works. But when you
distribute the same sections as part of a whole which is a work based
on the Program, the distribution of the whole must be on the terms of
this License, whose permissions for other licensees extend to the
entire whole, and thus to each and every part regardless of who wrote it.
Thus, it is not the intent of this section to claim rights or contest
your rights to work written entirely by you; rather, the intent is to
exercise the right to control the distribution of derivative or
collective works based on the Program.
In addition, mere aggregation of another work not based on the Program
with the Program (or with a work based on the Program) on a volume of
a storage or distribution medium does not bring the other work under
the scope of this License.
3. You may copy and distribute the Program (or a work based on it,
under Section 2) in object code or executable form under the terms of
Sections 1 and 2 above provided that you also do one of the following:
a) Accompany it with the complete corresponding machine-readable
source code, which must be distributed under the terms of Sections
1 and 2 above on a medium customarily used for software interchange; or,
b) Accompany it with a written offer, valid for at least three
years, to give any third party, for a charge no more than your
cost of physically performing source distribution, a complete
machine-readable copy of the corresponding source code, to be
distributed under the terms of Sections 1 and 2 above on a medium
customarily used for software interchange; or,
c) Accompany it with the information you received as to the offer
to distribute corresponding source code. (This alternative is
allowed only for noncommercial distribution and only if you
received the program in object code or executable form with such
an offer, in accord with Subsection b above.)
The source code for a work means the preferred form of the work for
making modifications to it. For an executable work, complete source
code means all the source code for all modules it contains, plus any
associated interface definition files, plus the scripts used to
control compilation and installation of the executable. However, as a
special exception, the source code distributed need not include
anything that is normally distributed (in either source or binary
form) with the major components (compiler, kernel, and so on) of the
operating system on which the executable runs, unless that component
itself accompanies the executable.
If distribution of executable or object code is made by offering
access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
void, and will automatically terminate your rights under this License.
However, parties who have received copies, or rights, from you under
this License will not have their licenses terminated so long as such
parties remain in full compliance.
5. You are not required to accept this License, since you have not
signed it. However, nothing else grants you permission to modify or
distribute the Program or its derivative works. These actions are
prohibited by law if you do not accept this License. Therefore, by
modifying or distributing the Program (or any work based on the
Program), you indicate your acceptance of this License to do so, and
all its terms and conditions for copying, distributing or modifying
the Program or works based on it.
6. Each time you redistribute the Program (or any work based on the
Program), the recipient automatically receives a license from the
original licensor to copy, distribute or modify the Program subject to
these terms and conditions. You may not impose any further
restrictions on the recipients' exercise of the rights granted herein.
You are not responsible for enforcing compliance by third parties to
this License.
7. If, as a consequence of a court judgment or allegation of patent
infringement or for any other reason (not limited to patent issues),
conditions are imposed on you (whether by court order, agreement or
otherwise) that contradict the conditions of this License, they do not
excuse you from the conditions of this License. If you cannot
distribute so as to satisfy simultaneously your obligations under this
License and any other pertinent obligations, then as a consequence you
may not distribute the Program at all. For example, if a patent
license would not permit royalty-free redistribution of the Program by
all those who receive copies directly or indirectly through you, then
the only way you could satisfy both it and this License would be to
refrain entirely from distribution of the Program.
If any portion of this section is held invalid or unenforceable under
any particular circumstance, the balance of the section is intended to
apply and the section as a whole is intended to apply in other
circumstances.
It is not the purpose of this section to induce you to infringe any
patents or other property right claims or to contest validity of any
such claims; this section has the sole purpose of protecting the
integrity of the free software distribution system, which is
implemented by public license practices. Many people have made
generous contributions to the wide range of software distributed
through that system in reliance on consistent application of that
system; it is up to the author/donor to decide if he or she is willing
to distribute software through any other system and a licensee cannot
impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
may add an explicit geographical distribution limitation excluding
those countries, so that distribution is permitted only in or among
countries not thus excluded. In such case, this License incorporates
the limitation as if written in the body of this License.
9. The Free Software Foundation may publish revised and/or new versions
of the General Public License from time to time. Such new versions will
be similar in spirit to the present version, but may differ in detail to
address new problems or concerns.
Each version is given a distinguishing version number. If the Program
specifies a version number of this License which applies to it and "any
later version", you have the option of following the terms and conditions
either of that version or of any later version published by the Free
Software Foundation. If the Program does not specify a version number of
this License, you may choose any version ever published by the Free Software
Foundation.
10. If you wish to incorporate parts of the Program into other free
programs whose distribution conditions are different, write to the author
to ask for permission. For software which is copyrighted by the Free
Software Foundation, write to the Free Software Foundation; we sometimes
make exceptions for this. Our decision will be guided by the two goals
of preserving the free status of all derivatives of our free software and
of promoting the sharing and reuse of software generally.
NO WARRANTY
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
REPAIR OR CORRECTION.
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest
possible use to the public, the best way to achieve this is to make it
free software which everyone can redistribute and change under these terms.
To do so, attach the following notices to the program. It is safest
to attach them to the start of each source file to most effectively
convey the exclusion of warranty; and each file should have at least
the "copyright" line and a pointer to where the full notice is found.
<one line to give the program's name and a brief idea of what it does.>
Copyright (C) <year> <name of author>
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License along
with this program; if not, write to the Free Software Foundation, Inc.,
51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
Also add information on how to contact you by electronic and paper mail.
If the program is interactive, make it output a short notice like this
when it starts in an interactive mode:
Gnomovision version 69, Copyright (C) year name of author
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
This is free software, and you are welcome to redistribute it
under certain conditions; type `show c' for details.
The hypothetical commands `show w' and `show c' should show the appropriate
parts of the General Public License. Of course, the commands you use may
be called something other than `show w' and `show c'; they could even be
mouse-clicks or menu items--whatever suits your program.
You should also get your employer (if you work as a programmer) or your
school, if any, to sign a "copyright disclaimer" for the program, if
necessary. Here is a sample; alter the names:
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
`Gnomovision' (which makes passes at compilers) written by James Hacker.
<signature of Ty Coon>, 1 April 1989
Ty Coon, President of Vice
This General Public License does not permit incorporating your program into
proprietary programs. If your program is a subroutine library, you may
consider it more useful to permit linking proprietary applications with the
library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License.
+44 -59
View File
@@ -1,71 +1,56 @@
# Ping Explorer
<div align="center">
Look is a light explorer for Cosmos-based Blockchains. https://ping.pub .
![Ping Wallet](./public/logo.svg)
## What is the difference between Look and other explorers?
<h1>Ping Dashboard</h1>
Look is designed to explore blockchain data as real as possible, therefore there is no cache, no analysis. Look does not cache/save blockchain data on its server. Look only fetch data from Cosmos full node via LCD/RPC endpoints. We call it "Light Explorer".
**Ping Dashboard is not only an explorer but also a wallet and more ... 🛠**
## Do you want Look to explore your blockchain?
[![version](https://img.shields.io/github/tag/ping-pub/explorer.svg)](https://github.com/ping-pub/explorer/releases/latest)
[![GitHub](https://img.shields.io/github/license/ping-pub/explorer.svg)](https://github.com/ping-pub/explorer/blob/master/LICENSE)
[![Twitter URL](https://img.shields.io/twitter/url/https/twitter.com/bukotsunikki.svg?style=social&label=Follow%20%40ping_pub)](https://twitter.com/ping_pub)
[![https://discord.gg/CmjYVSr6GW](https://img.shields.io/badge/discord-join-7289DA.svg?logo=discord&longCache=true&style=flat)](https://discord.gg/CmjYVSr6GW)
If you want Look to explore your blockchain, pull a request [here](https://github.com/liangping/look/issues), We will explore your chains as soon as possibe. And the most important thing is that Look is free for all public cosmos-based blockchains.
## Why LOOK explorer use official/trusted third party public LCD/rpc server?
</div>
`Ping Dashboard` is a light explorer for Cosmos-based Blockchains. https://ping.pub .
## What sets Ping Dashboard apart from other explorers?
**Ping Dashboard** stands out by providing a real-time exploration of blockchain data without relying on caching or pre-processing. It exclusively fetches data from the Cosmos full node via LCD/RPC endpoints, ensuring a truly authentic experience. This approach is referred to as the "Light Explorer."
## Are you interested in listing your blockchain on https://ping.pub?
To make this repository clean, please submit your request to https://github.com/ping-pub/ping.pub.git
## Why does Ping Dashboard rely on official/trusted third-party public LCD/RPC servers?
There are two primary reasons for this choice:
- Trust: In a decentralized system, it is crucial to avoid relying solely on a single entity. By utilizing official/trusted third-party public LCD/RPC servers, Ping Dashboard ensures that the data is sourced from a network of trusted participants.
- Limited Resources: As Ping Dashboard plans to list hundreds of Cosmos-based blockchains in the future, it is impractical for the Ping team to operate validators or full nodes for all of them. Leveraging trusted third-party servers allows for more efficient resource allocation.
## Donation
Your donation will help us make better products. Thanks in advance.
- Address for ERC20: USDC, USDT, ETH
```
0x88BFec573Dd3E4b7d2E6BfD4D0D6B11F843F8aa1
```
#### Donations from project
- Point Network: 1000USDC and $1000 worth of POINT
- Bitsong: 50k BTSG
- IRISnet: 100k IRIS
## Hire us
You can hire us by submitting an issue and fund the issue on [IssueHunter](https://issuehunt.io/r/ping-pub/explorer)
We have two considerations: 1, Trust, In decentralize system, everything controled by one single team/orgnization could be risks. So we decided to co-build LOOK explorer with the community. 2. Look explorer will explose handreds and thousands cosmos-based blockchains in the future, it's impossible for our team to run validators or fullnodes for all of those chains.
## Contributors
Developers: @liangping @dingyiming
Data providers: [full list](https://github.com/ping-pub/look/blob/master/hosts.json)
* irisnet.org,
* nylira.net,
* kava.io
*If you don't want to provide data services for LOOK exporer, let us know.*
## Blockchains on LOOK explorer:
* https://ping.pub/cosmos
* https://ping.pub/iris
* https://ping.pub/akash
* https://ping.pub/kava
# LOOK 浏览器
Look是一个轻浏览器,免费为所有的基于Cosmos-SDK开发的区块链提供浏览服务
## Look 和其他区块链浏览器有什么不同?
Look的设计理念是尽可能的保持数据的真实性,所以,他不会在服务器端缓存或者保存任何数据,也不会增加任何分析处理。它仅仅通过LCD/RPC来获取他所需要的所有数据。因此我们叫它“轻浏览器”。
## 你希望Look来浏览你的区块链吗?
如果你需要Look来浏览你的区块链,请在[这里](https://github.com/liangping/look/issues) 提交申请,我们会尽快开通。而且是免费的。
## 为什么LOOK要使用官方或者可信赖的第三方的LCD/RPC服务器?
我们主要是基于以下两个考虑:1,可信,在去中心化的系统里,任何有一个由单个团队或者实体控制的事情都是有风险的,所以我们选择和社区一起来共建LOOK浏览器。2,LOOK浏览器计划在未来支持成百上千条区块链,因此对我们团队来说,不可能为所有这些链去提供一个验证人节点或者全节点。
## 项目贡献者
开发者: @liangping @dingyiming
数据服务方: [列表](https://github.com/ping-pub/look/blob/master/hosts.json)
* irisnet.org,
* nylira.net,
* 01node.com,
* kava.io
*如果你觉得我们滥用了你的服务器资源,请告知我们。*
## LOOK explorer 上的区块链:
* https://ping.pub/cosmos
* https://ping.pub/iris
* https://ping.pub/akash
* https://ping.pub/kava
# Contact Us
Email18786721#qq.com
+606
View File
@@ -0,0 +1,606 @@
// Generated by 'unplugin-auto-import'
export {}
declare global {
const EffectScope: typeof import('vue')['EffectScope']
const acceptHMRUpdate: typeof import('pinia')['acceptHMRUpdate']
const asyncComputed: typeof import('@vueuse/core')['asyncComputed']
const autoResetRef: typeof import('@vueuse/core')['autoResetRef']
const computed: typeof import('vue')['computed']
const computedAsync: typeof import('@vueuse/core')['computedAsync']
const computedEager: typeof import('@vueuse/core')['computedEager']
const computedInject: typeof import('@vueuse/core')['computedInject']
const computedWithControl: typeof import('@vueuse/core')['computedWithControl']
const controlledComputed: typeof import('@vueuse/core')['controlledComputed']
const controlledRef: typeof import('@vueuse/core')['controlledRef']
const createApp: typeof import('vue')['createApp']
const createEventHook: typeof import('@vueuse/core')['createEventHook']
const createGenericProjection: typeof import('@vueuse/math')['createGenericProjection']
const createGlobalState: typeof import('@vueuse/core')['createGlobalState']
const createInjectionState: typeof import('@vueuse/core')['createInjectionState']
const createPinia: typeof import('pinia')['createPinia']
const createProjection: typeof import('@vueuse/math')['createProjection']
const createReactiveFn: typeof import('@vueuse/core')['createReactiveFn']
const createSharedComposable: typeof import('@vueuse/core')['createSharedComposable']
const createUnrefFn: typeof import('@vueuse/core')['createUnrefFn']
const customRef: typeof import('vue')['customRef']
const debouncedRef: typeof import('@vueuse/core')['debouncedRef']
const debouncedWatch: typeof import('@vueuse/core')['debouncedWatch']
const defineAsyncComponent: typeof import('vue')['defineAsyncComponent']
const defineComponent: typeof import('vue')['defineComponent']
const defineStore: typeof import('pinia')['defineStore']
const eagerComputed: typeof import('@vueuse/core')['eagerComputed']
const effectScope: typeof import('vue')['effectScope']
const extendRef: typeof import('@vueuse/core')['extendRef']
const getActivePinia: typeof import('pinia')['getActivePinia']
const getCurrentInstance: typeof import('vue')['getCurrentInstance']
const getCurrentScope: typeof import('vue')['getCurrentScope']
const h: typeof import('vue')['h']
const ignorableWatch: typeof import('@vueuse/core')['ignorableWatch']
const inject: typeof import('vue')['inject']
const isDefined: typeof import('@vueuse/core')['isDefined']
const isProxy: typeof import('vue')['isProxy']
const isReactive: typeof import('vue')['isReactive']
const isReadonly: typeof import('vue')['isReadonly']
const isRef: typeof import('vue')['isRef']
const logicAnd: typeof import('@vueuse/math')['logicAnd']
const logicNot: typeof import('@vueuse/math')['logicNot']
const logicOr: typeof import('@vueuse/math')['logicOr']
const makeDestructurable: typeof import('@vueuse/core')['makeDestructurable']
const mapActions: typeof import('pinia')['mapActions']
const mapGetters: typeof import('pinia')['mapGetters']
const mapState: typeof import('pinia')['mapState']
const mapStores: typeof import('pinia')['mapStores']
const mapWritableState: typeof import('pinia')['mapWritableState']
const markRaw: typeof import('vue')['markRaw']
const nextTick: typeof import('vue')['nextTick']
const onActivated: typeof import('vue')['onActivated']
const onBeforeMount: typeof import('vue')['onBeforeMount']
const onBeforeRouteLeave: typeof import('vue-router')['onBeforeRouteLeave']
const onBeforeRouteUpdate: typeof import('vue-router')['onBeforeRouteUpdate']
const onBeforeUnmount: typeof import('vue')['onBeforeUnmount']
const onBeforeUpdate: typeof import('vue')['onBeforeUpdate']
const onClickOutside: typeof import('@vueuse/core')['onClickOutside']
const onDeactivated: typeof import('vue')['onDeactivated']
const onErrorCaptured: typeof import('vue')['onErrorCaptured']
const onKeyStroke: typeof import('@vueuse/core')['onKeyStroke']
const onLongPress: typeof import('@vueuse/core')['onLongPress']
const onMounted: typeof import('vue')['onMounted']
const onRenderTracked: typeof import('vue')['onRenderTracked']
const onRenderTriggered: typeof import('vue')['onRenderTriggered']
const onScopeDispose: typeof import('vue')['onScopeDispose']
const onServerPrefetch: typeof import('vue')['onServerPrefetch']
const onStartTyping: typeof import('@vueuse/core')['onStartTyping']
const onUnmounted: typeof import('vue')['onUnmounted']
const onUpdated: typeof import('vue')['onUpdated']
const pausableWatch: typeof import('@vueuse/core')['pausableWatch']
const provide: typeof import('vue')['provide']
const reactify: typeof import('@vueuse/core')['reactify']
const reactifyObject: typeof import('@vueuse/core')['reactifyObject']
const reactive: typeof import('vue')['reactive']
const reactiveComputed: typeof import('@vueuse/core')['reactiveComputed']
const reactiveOmit: typeof import('@vueuse/core')['reactiveOmit']
const reactivePick: typeof import('@vueuse/core')['reactivePick']
const readonly: typeof import('vue')['readonly']
const ref: typeof import('vue')['ref']
const refAutoReset: typeof import('@vueuse/core')['refAutoReset']
const refDebounced: typeof import('@vueuse/core')['refDebounced']
const refDefault: typeof import('@vueuse/core')['refDefault']
const refThrottled: typeof import('@vueuse/core')['refThrottled']
const refWithControl: typeof import('@vueuse/core')['refWithControl']
const resolveComponent: typeof import('vue')['resolveComponent']
const resolveDirective: typeof import('vue')['resolveDirective']
const resolveRef: typeof import('@vueuse/core')['resolveRef']
const resolveUnref: typeof import('@vueuse/core')['resolveUnref']
const setActivePinia: typeof import('pinia')['setActivePinia']
const setMapStoreSuffix: typeof import('pinia')['setMapStoreSuffix']
const shallowReactive: typeof import('vue')['shallowReactive']
const shallowReadonly: typeof import('vue')['shallowReadonly']
const shallowRef: typeof import('vue')['shallowRef']
const storeToRefs: typeof import('pinia')['storeToRefs']
const syncRef: typeof import('@vueuse/core')['syncRef']
const syncRefs: typeof import('@vueuse/core')['syncRefs']
const templateRef: typeof import('@vueuse/core')['templateRef']
const throttledRef: typeof import('@vueuse/core')['throttledRef']
const throttledWatch: typeof import('@vueuse/core')['throttledWatch']
const toRaw: typeof import('vue')['toRaw']
const toReactive: typeof import('@vueuse/core')['toReactive']
const toRef: typeof import('vue')['toRef']
const toRefs: typeof import('vue')['toRefs']
const triggerRef: typeof import('vue')['triggerRef']
const tryOnBeforeMount: typeof import('@vueuse/core')['tryOnBeforeMount']
const tryOnBeforeUnmount: typeof import('@vueuse/core')['tryOnBeforeUnmount']
const tryOnMounted: typeof import('@vueuse/core')['tryOnMounted']
const tryOnScopeDispose: typeof import('@vueuse/core')['tryOnScopeDispose']
const tryOnUnmounted: typeof import('@vueuse/core')['tryOnUnmounted']
const unref: typeof import('vue')['unref']
const unrefElement: typeof import('@vueuse/core')['unrefElement']
const until: typeof import('@vueuse/core')['until']
const useAbs: typeof import('@vueuse/math')['useAbs']
const useActiveElement: typeof import('@vueuse/core')['useActiveElement']
const useArrayEvery: typeof import('@vueuse/core')['useArrayEvery']
const useArrayFilter: typeof import('@vueuse/core')['useArrayFilter']
const useArrayFind: typeof import('@vueuse/core')['useArrayFind']
const useArrayFindIndex: typeof import('@vueuse/core')['useArrayFindIndex']
const useArrayFindLast: typeof import('@vueuse/core')['useArrayFindLast']
const useArrayJoin: typeof import('@vueuse/core')['useArrayJoin']
const useArrayMap: typeof import('@vueuse/core')['useArrayMap']
const useArrayReduce: typeof import('@vueuse/core')['useArrayReduce']
const useArraySome: typeof import('@vueuse/core')['useArraySome']
const useArrayUnique: typeof import('@vueuse/core')['useArrayUnique']
const useAsyncQueue: typeof import('@vueuse/core')['useAsyncQueue']
const useAsyncState: typeof import('@vueuse/core')['useAsyncState']
const useAttrs: typeof import('vue')['useAttrs']
const useAverage: typeof import('@vueuse/math')['useAverage']
const useBase64: typeof import('@vueuse/core')['useBase64']
const useBattery: typeof import('@vueuse/core')['useBattery']
const useBluetooth: typeof import('@vueuse/core')['useBluetooth']
const useBreakpoints: typeof import('@vueuse/core')['useBreakpoints']
const useBroadcastChannel: typeof import('@vueuse/core')['useBroadcastChannel']
const useBrowserLocation: typeof import('@vueuse/core')['useBrowserLocation']
const useCached: typeof import('@vueuse/core')['useCached']
const useCeil: typeof import('@vueuse/math')['useCeil']
const useClamp: typeof import('@vueuse/math')['useClamp']
const useClipboard: typeof import('@vueuse/core')['useClipboard']
const useCloned: typeof import('@vueuse/core')['useCloned']
const useColorMode: typeof import('@vueuse/core')['useColorMode']
const useConfirmDialog: typeof import('@vueuse/core')['useConfirmDialog']
const useCounter: typeof import('@vueuse/core')['useCounter']
const useCssModule: typeof import('vue')['useCssModule']
const useCssVar: typeof import('@vueuse/core')['useCssVar']
const useCssVars: typeof import('vue')['useCssVars']
const useCurrentElement: typeof import('@vueuse/core')['useCurrentElement']
const useCycleList: typeof import('@vueuse/core')['useCycleList']
const useDark: typeof import('@vueuse/core')['useDark']
const useDateFormat: typeof import('@vueuse/core')['useDateFormat']
const useDebounce: typeof import('@vueuse/core')['useDebounce']
const useDebounceFn: typeof import('@vueuse/core')['useDebounceFn']
const useDebouncedRefHistory: typeof import('@vueuse/core')['useDebouncedRefHistory']
const useDeviceMotion: typeof import('@vueuse/core')['useDeviceMotion']
const useDeviceOrientation: typeof import('@vueuse/core')['useDeviceOrientation']
const useDevicePixelRatio: typeof import('@vueuse/core')['useDevicePixelRatio']
const useDevicesList: typeof import('@vueuse/core')['useDevicesList']
const useDisplayMedia: typeof import('@vueuse/core')['useDisplayMedia']
const useDocumentVisibility: typeof import('@vueuse/core')['useDocumentVisibility']
const useDraggable: typeof import('@vueuse/core')['useDraggable']
const useDropZone: typeof import('@vueuse/core')['useDropZone']
const useElementBounding: typeof import('@vueuse/core')['useElementBounding']
const useElementByPoint: typeof import('@vueuse/core')['useElementByPoint']
const useElementHover: typeof import('@vueuse/core')['useElementHover']
const useElementSize: typeof import('@vueuse/core')['useElementSize']
const useElementVisibility: typeof import('@vueuse/core')['useElementVisibility']
const useEventBus: typeof import('@vueuse/core')['useEventBus']
const useEventListener: typeof import('@vueuse/core')['useEventListener']
const useEventSource: typeof import('@vueuse/core')['useEventSource']
const useEyeDropper: typeof import('@vueuse/core')['useEyeDropper']
const useFavicon: typeof import('@vueuse/core')['useFavicon']
const useFetch: typeof import('@vueuse/core')['useFetch']
const useFileDialog: typeof import('@vueuse/core')['useFileDialog']
const useFileSystemAccess: typeof import('@vueuse/core')['useFileSystemAccess']
const useFloor: typeof import('@vueuse/math')['useFloor']
const useFocus: typeof import('@vueuse/core')['useFocus']
const useFocusWithin: typeof import('@vueuse/core')['useFocusWithin']
const useFps: typeof import('@vueuse/core')['useFps']
const useFullscreen: typeof import('@vueuse/core')['useFullscreen']
const useGamepad: typeof import('@vueuse/core')['useGamepad']
const useGeolocation: typeof import('@vueuse/core')['useGeolocation']
const useI18n: typeof import('vue-i18n')['useI18n']
const useIdle: typeof import('@vueuse/core')['useIdle']
const useImage: typeof import('@vueuse/core')['useImage']
const useInfiniteScroll: typeof import('@vueuse/core')['useInfiniteScroll']
const useIntersectionObserver: typeof import('@vueuse/core')['useIntersectionObserver']
const useInterval: typeof import('@vueuse/core')['useInterval']
const useIntervalFn: typeof import('@vueuse/core')['useIntervalFn']
const useKeyModifier: typeof import('@vueuse/core')['useKeyModifier']
const useLastChanged: typeof import('@vueuse/core')['useLastChanged']
const useLink: typeof import('vue-router')['useLink']
const useLocalStorage: typeof import('@vueuse/core')['useLocalStorage']
const useMagicKeys: typeof import('@vueuse/core')['useMagicKeys']
const useManualRefHistory: typeof import('@vueuse/core')['useManualRefHistory']
const useMath: typeof import('@vueuse/math')['useMath']
const useMax: typeof import('@vueuse/math')['useMax']
const useMediaControls: typeof import('@vueuse/core')['useMediaControls']
const useMediaQuery: typeof import('@vueuse/core')['useMediaQuery']
const useMemoize: typeof import('@vueuse/core')['useMemoize']
const useMemory: typeof import('@vueuse/core')['useMemory']
const useMin: typeof import('@vueuse/math')['useMin']
const useMounted: typeof import('@vueuse/core')['useMounted']
const useMouse: typeof import('@vueuse/core')['useMouse']
const useMouseInElement: typeof import('@vueuse/core')['useMouseInElement']
const useMousePressed: typeof import('@vueuse/core')['useMousePressed']
const useMutationObserver: typeof import('@vueuse/core')['useMutationObserver']
const useNavigatorLanguage: typeof import('@vueuse/core')['useNavigatorLanguage']
const useNetwork: typeof import('@vueuse/core')['useNetwork']
const useNow: typeof import('@vueuse/core')['useNow']
const useObjectUrl: typeof import('@vueuse/core')['useObjectUrl']
const useOffsetPagination: typeof import('@vueuse/core')['useOffsetPagination']
const useOnline: typeof import('@vueuse/core')['useOnline']
const usePageLeave: typeof import('@vueuse/core')['usePageLeave']
const useParallax: typeof import('@vueuse/core')['useParallax']
const usePermission: typeof import('@vueuse/core')['usePermission']
const usePointer: typeof import('@vueuse/core')['usePointer']
const usePointerLock: typeof import('@vueuse/core')['usePointerLock']
const usePointerSwipe: typeof import('@vueuse/core')['usePointerSwipe']
const usePrecision: typeof import('@vueuse/math')['usePrecision']
const usePreferredColorScheme: typeof import('@vueuse/core')['usePreferredColorScheme']
const usePreferredContrast: typeof import('@vueuse/core')['usePreferredContrast']
const usePreferredDark: typeof import('@vueuse/core')['usePreferredDark']
const usePreferredLanguages: typeof import('@vueuse/core')['usePreferredLanguages']
const usePreferredReducedMotion: typeof import('@vueuse/core')['usePreferredReducedMotion']
const usePrevious: typeof import('@vueuse/core')['usePrevious']
const useProjection: typeof import('@vueuse/math')['useProjection']
const useRafFn: typeof import('@vueuse/core')['useRafFn']
const useRefHistory: typeof import('@vueuse/core')['useRefHistory']
const useResizeObserver: typeof import('@vueuse/core')['useResizeObserver']
const useRound: typeof import('@vueuse/math')['useRound']
const useRoute: typeof import('vue-router')['useRoute']
const useRouter: typeof import('vue-router')['useRouter']
const useScreenOrientation: typeof import('@vueuse/core')['useScreenOrientation']
const useScreenSafeArea: typeof import('@vueuse/core')['useScreenSafeArea']
const useScriptTag: typeof import('@vueuse/core')['useScriptTag']
const useScroll: typeof import('@vueuse/core')['useScroll']
const useScrollLock: typeof import('@vueuse/core')['useScrollLock']
const useSessionStorage: typeof import('@vueuse/core')['useSessionStorage']
const useShare: typeof import('@vueuse/core')['useShare']
const useSlots: typeof import('vue')['useSlots']
const useSorted: typeof import('@vueuse/core')['useSorted']
const useSpeechRecognition: typeof import('@vueuse/core')['useSpeechRecognition']
const useSpeechSynthesis: typeof import('@vueuse/core')['useSpeechSynthesis']
const useStepper: typeof import('@vueuse/core')['useStepper']
const useStorage: typeof import('@vueuse/core')['useStorage']
const useStorageAsync: typeof import('@vueuse/core')['useStorageAsync']
const useStyleTag: typeof import('@vueuse/core')['useStyleTag']
const useSum: typeof import('@vueuse/math')['useSum']
const useSupported: typeof import('@vueuse/core')['useSupported']
const useSwipe: typeof import('@vueuse/core')['useSwipe']
const useTemplateRefsList: typeof import('@vueuse/core')['useTemplateRefsList']
const useTextDirection: typeof import('@vueuse/core')['useTextDirection']
const useTextSelection: typeof import('@vueuse/core')['useTextSelection']
const useTextareaAutosize: typeof import('@vueuse/core')['useTextareaAutosize']
const useThrottle: typeof import('@vueuse/core')['useThrottle']
const useThrottleFn: typeof import('@vueuse/core')['useThrottleFn']
const useThrottledRefHistory: typeof import('@vueuse/core')['useThrottledRefHistory']
const useTimeAgo: typeof import('@vueuse/core')['useTimeAgo']
const useTimeout: typeof import('@vueuse/core')['useTimeout']
const useTimeoutFn: typeof import('@vueuse/core')['useTimeoutFn']
const useTimeoutPoll: typeof import('@vueuse/core')['useTimeoutPoll']
const useTimestamp: typeof import('@vueuse/core')['useTimestamp']
const useTitle: typeof import('@vueuse/core')['useTitle']
const useToFixed: typeof import('@vueuse/math')['useToFixed']
const useToNumber: typeof import('@vueuse/core')['useToNumber']
const useToString: typeof import('@vueuse/core')['useToString']
const useToggle: typeof import('@vueuse/core')['useToggle']
const useTransition: typeof import('@vueuse/core')['useTransition']
const useTrunc: typeof import('@vueuse/math')['useTrunc']
const useUrlSearchParams: typeof import('@vueuse/core')['useUrlSearchParams']
const useUserMedia: typeof import('@vueuse/core')['useUserMedia']
const useVModel: typeof import('@vueuse/core')['useVModel']
const useVModels: typeof import('@vueuse/core')['useVModels']
const useVibrate: typeof import('@vueuse/core')['useVibrate']
const useVirtualList: typeof import('@vueuse/core')['useVirtualList']
const useWakeLock: typeof import('@vueuse/core')['useWakeLock']
const useWebNotification: typeof import('@vueuse/core')['useWebNotification']
const useWebSocket: typeof import('@vueuse/core')['useWebSocket']
const useWebWorker: typeof import('@vueuse/core')['useWebWorker']
const useWebWorkerFn: typeof import('@vueuse/core')['useWebWorkerFn']
const useWindowFocus: typeof import('@vueuse/core')['useWindowFocus']
const useWindowScroll: typeof import('@vueuse/core')['useWindowScroll']
const useWindowSize: typeof import('@vueuse/core')['useWindowSize']
const watch: typeof import('vue')['watch']
const watchArray: typeof import('@vueuse/core')['watchArray']
const watchAtMost: typeof import('@vueuse/core')['watchAtMost']
const watchDebounced: typeof import('@vueuse/core')['watchDebounced']
const watchEffect: typeof import('vue')['watchEffect']
const watchIgnorable: typeof import('@vueuse/core')['watchIgnorable']
const watchOnce: typeof import('@vueuse/core')['watchOnce']
const watchPausable: typeof import('@vueuse/core')['watchPausable']
const watchPostEffect: typeof import('vue')['watchPostEffect']
const watchSyncEffect: typeof import('vue')['watchSyncEffect']
const watchThrottled: typeof import('@vueuse/core')['watchThrottled']
const watchTriggerable: typeof import('@vueuse/core')['watchTriggerable']
const watchWithFilter: typeof import('@vueuse/core')['watchWithFilter']
const whenever: typeof import('@vueuse/core')['whenever']
}
// for vue template auto import
import { UnwrapRef } from 'vue'
declare module 'vue' {
interface ComponentCustomProperties {
readonly EffectScope: UnwrapRef<typeof import('vue')['EffectScope']>
readonly acceptHMRUpdate: UnwrapRef<typeof import('pinia')['acceptHMRUpdate']>
readonly asyncComputed: UnwrapRef<typeof import('@vueuse/core')['asyncComputed']>
readonly autoResetRef: UnwrapRef<typeof import('@vueuse/core')['autoResetRef']>
readonly computed: UnwrapRef<typeof import('vue')['computed']>
readonly computedAsync: UnwrapRef<typeof import('@vueuse/core')['computedAsync']>
readonly computedEager: UnwrapRef<typeof import('@vueuse/core')['computedEager']>
readonly computedInject: UnwrapRef<typeof import('@vueuse/core')['computedInject']>
readonly computedWithControl: UnwrapRef<typeof import('@vueuse/core')['computedWithControl']>
readonly controlledComputed: UnwrapRef<typeof import('@vueuse/core')['controlledComputed']>
readonly controlledRef: UnwrapRef<typeof import('@vueuse/core')['controlledRef']>
readonly createApp: UnwrapRef<typeof import('vue')['createApp']>
readonly createEventHook: UnwrapRef<typeof import('@vueuse/core')['createEventHook']>
readonly createGenericProjection: UnwrapRef<typeof import('@vueuse/math')['createGenericProjection']>
readonly createGlobalState: UnwrapRef<typeof import('@vueuse/core')['createGlobalState']>
readonly createInjectionState: UnwrapRef<typeof import('@vueuse/core')['createInjectionState']>
readonly createPinia: UnwrapRef<typeof import('pinia')['createPinia']>
readonly createProjection: UnwrapRef<typeof import('@vueuse/math')['createProjection']>
readonly createReactiveFn: UnwrapRef<typeof import('@vueuse/core')['createReactiveFn']>
readonly createSharedComposable: UnwrapRef<typeof import('@vueuse/core')['createSharedComposable']>
readonly createUnrefFn: UnwrapRef<typeof import('@vueuse/core')['createUnrefFn']>
readonly customRef: UnwrapRef<typeof import('vue')['customRef']>
readonly debouncedRef: UnwrapRef<typeof import('@vueuse/core')['debouncedRef']>
readonly debouncedWatch: UnwrapRef<typeof import('@vueuse/core')['debouncedWatch']>
readonly defineAsyncComponent: UnwrapRef<typeof import('vue')['defineAsyncComponent']>
readonly defineComponent: UnwrapRef<typeof import('vue')['defineComponent']>
readonly defineStore: UnwrapRef<typeof import('pinia')['defineStore']>
readonly eagerComputed: UnwrapRef<typeof import('@vueuse/core')['eagerComputed']>
readonly effectScope: UnwrapRef<typeof import('vue')['effectScope']>
readonly extendRef: UnwrapRef<typeof import('@vueuse/core')['extendRef']>
readonly getActivePinia: UnwrapRef<typeof import('pinia')['getActivePinia']>
readonly getCurrentInstance: UnwrapRef<typeof import('vue')['getCurrentInstance']>
readonly getCurrentScope: UnwrapRef<typeof import('vue')['getCurrentScope']>
readonly h: UnwrapRef<typeof import('vue')['h']>
readonly ignorableWatch: UnwrapRef<typeof import('@vueuse/core')['ignorableWatch']>
readonly inject: UnwrapRef<typeof import('vue')['inject']>
readonly isDefined: UnwrapRef<typeof import('@vueuse/core')['isDefined']>
readonly isProxy: UnwrapRef<typeof import('vue')['isProxy']>
readonly isReactive: UnwrapRef<typeof import('vue')['isReactive']>
readonly isReadonly: UnwrapRef<typeof import('vue')['isReadonly']>
readonly isRef: UnwrapRef<typeof import('vue')['isRef']>
readonly logicAnd: UnwrapRef<typeof import('@vueuse/math')['logicAnd']>
readonly logicNot: UnwrapRef<typeof import('@vueuse/math')['logicNot']>
readonly logicOr: UnwrapRef<typeof import('@vueuse/math')['logicOr']>
readonly makeDestructurable: UnwrapRef<typeof import('@vueuse/core')['makeDestructurable']>
readonly mapActions: UnwrapRef<typeof import('pinia')['mapActions']>
readonly mapGetters: UnwrapRef<typeof import('pinia')['mapGetters']>
readonly mapState: UnwrapRef<typeof import('pinia')['mapState']>
readonly mapStores: UnwrapRef<typeof import('pinia')['mapStores']>
readonly mapWritableState: UnwrapRef<typeof import('pinia')['mapWritableState']>
readonly markRaw: UnwrapRef<typeof import('vue')['markRaw']>
readonly nextTick: UnwrapRef<typeof import('vue')['nextTick']>
readonly onActivated: UnwrapRef<typeof import('vue')['onActivated']>
readonly onBeforeMount: UnwrapRef<typeof import('vue')['onBeforeMount']>
readonly onBeforeRouteLeave: UnwrapRef<typeof import('vue-router')['onBeforeRouteLeave']>
readonly onBeforeRouteUpdate: UnwrapRef<typeof import('vue-router')['onBeforeRouteUpdate']>
readonly onBeforeUnmount: UnwrapRef<typeof import('vue')['onBeforeUnmount']>
readonly onBeforeUpdate: UnwrapRef<typeof import('vue')['onBeforeUpdate']>
readonly onClickOutside: UnwrapRef<typeof import('@vueuse/core')['onClickOutside']>
readonly onDeactivated: UnwrapRef<typeof import('vue')['onDeactivated']>
readonly onErrorCaptured: UnwrapRef<typeof import('vue')['onErrorCaptured']>
readonly onKeyStroke: UnwrapRef<typeof import('@vueuse/core')['onKeyStroke']>
readonly onLongPress: UnwrapRef<typeof import('@vueuse/core')['onLongPress']>
readonly onMounted: UnwrapRef<typeof import('vue')['onMounted']>
readonly onRenderTracked: UnwrapRef<typeof import('vue')['onRenderTracked']>
readonly onRenderTriggered: UnwrapRef<typeof import('vue')['onRenderTriggered']>
readonly onScopeDispose: UnwrapRef<typeof import('vue')['onScopeDispose']>
readonly onServerPrefetch: UnwrapRef<typeof import('vue')['onServerPrefetch']>
readonly onStartTyping: UnwrapRef<typeof import('@vueuse/core')['onStartTyping']>
readonly onUnmounted: UnwrapRef<typeof import('vue')['onUnmounted']>
readonly onUpdated: UnwrapRef<typeof import('vue')['onUpdated']>
readonly pausableWatch: UnwrapRef<typeof import('@vueuse/core')['pausableWatch']>
readonly provide: UnwrapRef<typeof import('vue')['provide']>
readonly reactify: UnwrapRef<typeof import('@vueuse/core')['reactify']>
readonly reactifyObject: UnwrapRef<typeof import('@vueuse/core')['reactifyObject']>
readonly reactive: UnwrapRef<typeof import('vue')['reactive']>
readonly reactiveComputed: UnwrapRef<typeof import('@vueuse/core')['reactiveComputed']>
readonly reactiveOmit: UnwrapRef<typeof import('@vueuse/core')['reactiveOmit']>
readonly reactivePick: UnwrapRef<typeof import('@vueuse/core')['reactivePick']>
readonly readonly: UnwrapRef<typeof import('vue')['readonly']>
readonly ref: UnwrapRef<typeof import('vue')['ref']>
readonly refAutoReset: UnwrapRef<typeof import('@vueuse/core')['refAutoReset']>
readonly refDebounced: UnwrapRef<typeof import('@vueuse/core')['refDebounced']>
readonly refDefault: UnwrapRef<typeof import('@vueuse/core')['refDefault']>
readonly refThrottled: UnwrapRef<typeof import('@vueuse/core')['refThrottled']>
readonly refWithControl: UnwrapRef<typeof import('@vueuse/core')['refWithControl']>
readonly resolveComponent: UnwrapRef<typeof import('vue')['resolveComponent']>
readonly resolveDirective: UnwrapRef<typeof import('vue')['resolveDirective']>
readonly resolveRef: UnwrapRef<typeof import('@vueuse/core')['resolveRef']>
readonly resolveUnref: UnwrapRef<typeof import('@vueuse/core')['resolveUnref']>
readonly setActivePinia: UnwrapRef<typeof import('pinia')['setActivePinia']>
readonly setMapStoreSuffix: UnwrapRef<typeof import('pinia')['setMapStoreSuffix']>
readonly shallowReactive: UnwrapRef<typeof import('vue')['shallowReactive']>
readonly shallowReadonly: UnwrapRef<typeof import('vue')['shallowReadonly']>
readonly shallowRef: UnwrapRef<typeof import('vue')['shallowRef']>
readonly storeToRefs: UnwrapRef<typeof import('pinia')['storeToRefs']>
readonly syncRef: UnwrapRef<typeof import('@vueuse/core')['syncRef']>
readonly syncRefs: UnwrapRef<typeof import('@vueuse/core')['syncRefs']>
readonly templateRef: UnwrapRef<typeof import('@vueuse/core')['templateRef']>
readonly throttledRef: UnwrapRef<typeof import('@vueuse/core')['throttledRef']>
readonly throttledWatch: UnwrapRef<typeof import('@vueuse/core')['throttledWatch']>
readonly toRaw: UnwrapRef<typeof import('vue')['toRaw']>
readonly toReactive: UnwrapRef<typeof import('@vueuse/core')['toReactive']>
readonly toRef: UnwrapRef<typeof import('vue')['toRef']>
readonly toRefs: UnwrapRef<typeof import('vue')['toRefs']>
readonly triggerRef: UnwrapRef<typeof import('vue')['triggerRef']>
readonly tryOnBeforeMount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeMount']>
readonly tryOnBeforeUnmount: UnwrapRef<typeof import('@vueuse/core')['tryOnBeforeUnmount']>
readonly tryOnMounted: UnwrapRef<typeof import('@vueuse/core')['tryOnMounted']>
readonly tryOnScopeDispose: UnwrapRef<typeof import('@vueuse/core')['tryOnScopeDispose']>
readonly tryOnUnmounted: UnwrapRef<typeof import('@vueuse/core')['tryOnUnmounted']>
readonly unref: UnwrapRef<typeof import('vue')['unref']>
readonly unrefElement: UnwrapRef<typeof import('@vueuse/core')['unrefElement']>
readonly until: UnwrapRef<typeof import('@vueuse/core')['until']>
readonly useAbs: UnwrapRef<typeof import('@vueuse/math')['useAbs']>
readonly useActiveElement: UnwrapRef<typeof import('@vueuse/core')['useActiveElement']>
readonly useArrayEvery: UnwrapRef<typeof import('@vueuse/core')['useArrayEvery']>
readonly useArrayFilter: UnwrapRef<typeof import('@vueuse/core')['useArrayFilter']>
readonly useArrayFind: UnwrapRef<typeof import('@vueuse/core')['useArrayFind']>
readonly useArrayFindIndex: UnwrapRef<typeof import('@vueuse/core')['useArrayFindIndex']>
readonly useArrayFindLast: UnwrapRef<typeof import('@vueuse/core')['useArrayFindLast']>
readonly useArrayJoin: UnwrapRef<typeof import('@vueuse/core')['useArrayJoin']>
readonly useArrayMap: UnwrapRef<typeof import('@vueuse/core')['useArrayMap']>
readonly useArrayReduce: UnwrapRef<typeof import('@vueuse/core')['useArrayReduce']>
readonly useArraySome: UnwrapRef<typeof import('@vueuse/core')['useArraySome']>
readonly useArrayUnique: UnwrapRef<typeof import('@vueuse/core')['useArrayUnique']>
readonly useAsyncQueue: UnwrapRef<typeof import('@vueuse/core')['useAsyncQueue']>
readonly useAsyncState: UnwrapRef<typeof import('@vueuse/core')['useAsyncState']>
readonly useAttrs: UnwrapRef<typeof import('vue')['useAttrs']>
readonly useAverage: UnwrapRef<typeof import('@vueuse/math')['useAverage']>
readonly useBase64: UnwrapRef<typeof import('@vueuse/core')['useBase64']>
readonly useBattery: UnwrapRef<typeof import('@vueuse/core')['useBattery']>
readonly useBluetooth: UnwrapRef<typeof import('@vueuse/core')['useBluetooth']>
readonly useBreakpoints: UnwrapRef<typeof import('@vueuse/core')['useBreakpoints']>
readonly useBroadcastChannel: UnwrapRef<typeof import('@vueuse/core')['useBroadcastChannel']>
readonly useBrowserLocation: UnwrapRef<typeof import('@vueuse/core')['useBrowserLocation']>
readonly useCached: UnwrapRef<typeof import('@vueuse/core')['useCached']>
readonly useCeil: UnwrapRef<typeof import('@vueuse/math')['useCeil']>
readonly useClamp: UnwrapRef<typeof import('@vueuse/math')['useClamp']>
readonly useClipboard: UnwrapRef<typeof import('@vueuse/core')['useClipboard']>
readonly useCloned: UnwrapRef<typeof import('@vueuse/core')['useCloned']>
readonly useColorMode: UnwrapRef<typeof import('@vueuse/core')['useColorMode']>
readonly useConfirmDialog: UnwrapRef<typeof import('@vueuse/core')['useConfirmDialog']>
readonly useCounter: UnwrapRef<typeof import('@vueuse/core')['useCounter']>
readonly useCssModule: UnwrapRef<typeof import('vue')['useCssModule']>
readonly useCssVar: UnwrapRef<typeof import('@vueuse/core')['useCssVar']>
readonly useCssVars: UnwrapRef<typeof import('vue')['useCssVars']>
readonly useCurrentElement: UnwrapRef<typeof import('@vueuse/core')['useCurrentElement']>
readonly useCycleList: UnwrapRef<typeof import('@vueuse/core')['useCycleList']>
readonly useDark: UnwrapRef<typeof import('@vueuse/core')['useDark']>
readonly useDateFormat: UnwrapRef<typeof import('@vueuse/core')['useDateFormat']>
readonly useDebounce: UnwrapRef<typeof import('@vueuse/core')['useDebounce']>
readonly useDebounceFn: UnwrapRef<typeof import('@vueuse/core')['useDebounceFn']>
readonly useDebouncedRefHistory: UnwrapRef<typeof import('@vueuse/core')['useDebouncedRefHistory']>
readonly useDeviceMotion: UnwrapRef<typeof import('@vueuse/core')['useDeviceMotion']>
readonly useDeviceOrientation: UnwrapRef<typeof import('@vueuse/core')['useDeviceOrientation']>
readonly useDevicePixelRatio: UnwrapRef<typeof import('@vueuse/core')['useDevicePixelRatio']>
readonly useDevicesList: UnwrapRef<typeof import('@vueuse/core')['useDevicesList']>
readonly useDisplayMedia: UnwrapRef<typeof import('@vueuse/core')['useDisplayMedia']>
readonly useDocumentVisibility: UnwrapRef<typeof import('@vueuse/core')['useDocumentVisibility']>
readonly useDraggable: UnwrapRef<typeof import('@vueuse/core')['useDraggable']>
readonly useDropZone: UnwrapRef<typeof import('@vueuse/core')['useDropZone']>
readonly useElementBounding: UnwrapRef<typeof import('@vueuse/core')['useElementBounding']>
readonly useElementByPoint: UnwrapRef<typeof import('@vueuse/core')['useElementByPoint']>
readonly useElementHover: UnwrapRef<typeof import('@vueuse/core')['useElementHover']>
readonly useElementSize: UnwrapRef<typeof import('@vueuse/core')['useElementSize']>
readonly useElementVisibility: UnwrapRef<typeof import('@vueuse/core')['useElementVisibility']>
readonly useEventBus: UnwrapRef<typeof import('@vueuse/core')['useEventBus']>
readonly useEventListener: UnwrapRef<typeof import('@vueuse/core')['useEventListener']>
readonly useEventSource: UnwrapRef<typeof import('@vueuse/core')['useEventSource']>
readonly useEyeDropper: UnwrapRef<typeof import('@vueuse/core')['useEyeDropper']>
readonly useFavicon: UnwrapRef<typeof import('@vueuse/core')['useFavicon']>
readonly useFetch: UnwrapRef<typeof import('@vueuse/core')['useFetch']>
readonly useFileDialog: UnwrapRef<typeof import('@vueuse/core')['useFileDialog']>
readonly useFileSystemAccess: UnwrapRef<typeof import('@vueuse/core')['useFileSystemAccess']>
readonly useFloor: UnwrapRef<typeof import('@vueuse/math')['useFloor']>
readonly useFocus: UnwrapRef<typeof import('@vueuse/core')['useFocus']>
readonly useFocusWithin: UnwrapRef<typeof import('@vueuse/core')['useFocusWithin']>
readonly useFps: UnwrapRef<typeof import('@vueuse/core')['useFps']>
readonly useFullscreen: UnwrapRef<typeof import('@vueuse/core')['useFullscreen']>
readonly useGamepad: UnwrapRef<typeof import('@vueuse/core')['useGamepad']>
readonly useGeolocation: UnwrapRef<typeof import('@vueuse/core')['useGeolocation']>
readonly useI18n: UnwrapRef<typeof import('vue-i18n')['useI18n']>
readonly useIdle: UnwrapRef<typeof import('@vueuse/core')['useIdle']>
readonly useImage: UnwrapRef<typeof import('@vueuse/core')['useImage']>
readonly useInfiniteScroll: UnwrapRef<typeof import('@vueuse/core')['useInfiniteScroll']>
readonly useIntersectionObserver: UnwrapRef<typeof import('@vueuse/core')['useIntersectionObserver']>
readonly useInterval: UnwrapRef<typeof import('@vueuse/core')['useInterval']>
readonly useIntervalFn: UnwrapRef<typeof import('@vueuse/core')['useIntervalFn']>
readonly useKeyModifier: UnwrapRef<typeof import('@vueuse/core')['useKeyModifier']>
readonly useLastChanged: UnwrapRef<typeof import('@vueuse/core')['useLastChanged']>
readonly useLink: UnwrapRef<typeof import('vue-router')['useLink']>
readonly useLocalStorage: UnwrapRef<typeof import('@vueuse/core')['useLocalStorage']>
readonly useMagicKeys: UnwrapRef<typeof import('@vueuse/core')['useMagicKeys']>
readonly useManualRefHistory: UnwrapRef<typeof import('@vueuse/core')['useManualRefHistory']>
readonly useMath: UnwrapRef<typeof import('@vueuse/math')['useMath']>
readonly useMax: UnwrapRef<typeof import('@vueuse/math')['useMax']>
readonly useMediaControls: UnwrapRef<typeof import('@vueuse/core')['useMediaControls']>
readonly useMediaQuery: UnwrapRef<typeof import('@vueuse/core')['useMediaQuery']>
readonly useMemoize: UnwrapRef<typeof import('@vueuse/core')['useMemoize']>
readonly useMemory: UnwrapRef<typeof import('@vueuse/core')['useMemory']>
readonly useMin: UnwrapRef<typeof import('@vueuse/math')['useMin']>
readonly useMounted: UnwrapRef<typeof import('@vueuse/core')['useMounted']>
readonly useMouse: UnwrapRef<typeof import('@vueuse/core')['useMouse']>
readonly useMouseInElement: UnwrapRef<typeof import('@vueuse/core')['useMouseInElement']>
readonly useMousePressed: UnwrapRef<typeof import('@vueuse/core')['useMousePressed']>
readonly useMutationObserver: UnwrapRef<typeof import('@vueuse/core')['useMutationObserver']>
readonly useNavigatorLanguage: UnwrapRef<typeof import('@vueuse/core')['useNavigatorLanguage']>
readonly useNetwork: UnwrapRef<typeof import('@vueuse/core')['useNetwork']>
readonly useNow: UnwrapRef<typeof import('@vueuse/core')['useNow']>
readonly useObjectUrl: UnwrapRef<typeof import('@vueuse/core')['useObjectUrl']>
readonly useOffsetPagination: UnwrapRef<typeof import('@vueuse/core')['useOffsetPagination']>
readonly useOnline: UnwrapRef<typeof import('@vueuse/core')['useOnline']>
readonly usePageLeave: UnwrapRef<typeof import('@vueuse/core')['usePageLeave']>
readonly useParallax: UnwrapRef<typeof import('@vueuse/core')['useParallax']>
readonly usePermission: UnwrapRef<typeof import('@vueuse/core')['usePermission']>
readonly usePointer: UnwrapRef<typeof import('@vueuse/core')['usePointer']>
readonly usePointerLock: UnwrapRef<typeof import('@vueuse/core')['usePointerLock']>
readonly usePointerSwipe: UnwrapRef<typeof import('@vueuse/core')['usePointerSwipe']>
readonly usePrecision: UnwrapRef<typeof import('@vueuse/math')['usePrecision']>
readonly usePreferredColorScheme: UnwrapRef<typeof import('@vueuse/core')['usePreferredColorScheme']>
readonly usePreferredContrast: UnwrapRef<typeof import('@vueuse/core')['usePreferredContrast']>
readonly usePreferredDark: UnwrapRef<typeof import('@vueuse/core')['usePreferredDark']>
readonly usePreferredLanguages: UnwrapRef<typeof import('@vueuse/core')['usePreferredLanguages']>
readonly usePreferredReducedMotion: UnwrapRef<typeof import('@vueuse/core')['usePreferredReducedMotion']>
readonly usePrevious: UnwrapRef<typeof import('@vueuse/core')['usePrevious']>
readonly useProjection: UnwrapRef<typeof import('@vueuse/math')['useProjection']>
readonly useRafFn: UnwrapRef<typeof import('@vueuse/core')['useRafFn']>
readonly useRefHistory: UnwrapRef<typeof import('@vueuse/core')['useRefHistory']>
readonly useResizeObserver: UnwrapRef<typeof import('@vueuse/core')['useResizeObserver']>
readonly useRound: UnwrapRef<typeof import('@vueuse/math')['useRound']>
readonly useRoute: UnwrapRef<typeof import('vue-router')['useRoute']>
readonly useRouter: UnwrapRef<typeof import('vue-router')['useRouter']>
readonly useScreenOrientation: UnwrapRef<typeof import('@vueuse/core')['useScreenOrientation']>
readonly useScreenSafeArea: UnwrapRef<typeof import('@vueuse/core')['useScreenSafeArea']>
readonly useScriptTag: UnwrapRef<typeof import('@vueuse/core')['useScriptTag']>
readonly useScroll: UnwrapRef<typeof import('@vueuse/core')['useScroll']>
readonly useScrollLock: UnwrapRef<typeof import('@vueuse/core')['useScrollLock']>
readonly useSessionStorage: UnwrapRef<typeof import('@vueuse/core')['useSessionStorage']>
readonly useShare: UnwrapRef<typeof import('@vueuse/core')['useShare']>
readonly useSlots: UnwrapRef<typeof import('vue')['useSlots']>
readonly useSorted: UnwrapRef<typeof import('@vueuse/core')['useSorted']>
readonly useSpeechRecognition: UnwrapRef<typeof import('@vueuse/core')['useSpeechRecognition']>
readonly useSpeechSynthesis: UnwrapRef<typeof import('@vueuse/core')['useSpeechSynthesis']>
readonly useStepper: UnwrapRef<typeof import('@vueuse/core')['useStepper']>
readonly useStorage: UnwrapRef<typeof import('@vueuse/core')['useStorage']>
readonly useStorageAsync: UnwrapRef<typeof import('@vueuse/core')['useStorageAsync']>
readonly useStyleTag: UnwrapRef<typeof import('@vueuse/core')['useStyleTag']>
readonly useSum: UnwrapRef<typeof import('@vueuse/math')['useSum']>
readonly useSupported: UnwrapRef<typeof import('@vueuse/core')['useSupported']>
readonly useSwipe: UnwrapRef<typeof import('@vueuse/core')['useSwipe']>
readonly useTemplateRefsList: UnwrapRef<typeof import('@vueuse/core')['useTemplateRefsList']>
readonly useTextDirection: UnwrapRef<typeof import('@vueuse/core')['useTextDirection']>
readonly useTextSelection: UnwrapRef<typeof import('@vueuse/core')['useTextSelection']>
readonly useTextareaAutosize: UnwrapRef<typeof import('@vueuse/core')['useTextareaAutosize']>
readonly useThrottle: UnwrapRef<typeof import('@vueuse/core')['useThrottle']>
readonly useThrottleFn: UnwrapRef<typeof import('@vueuse/core')['useThrottleFn']>
readonly useThrottledRefHistory: UnwrapRef<typeof import('@vueuse/core')['useThrottledRefHistory']>
readonly useTimeAgo: UnwrapRef<typeof import('@vueuse/core')['useTimeAgo']>
readonly useTimeout: UnwrapRef<typeof import('@vueuse/core')['useTimeout']>
readonly useTimeoutFn: UnwrapRef<typeof import('@vueuse/core')['useTimeoutFn']>
readonly useTimeoutPoll: UnwrapRef<typeof import('@vueuse/core')['useTimeoutPoll']>
readonly useTimestamp: UnwrapRef<typeof import('@vueuse/core')['useTimestamp']>
readonly useTitle: UnwrapRef<typeof import('@vueuse/core')['useTitle']>
readonly useToFixed: UnwrapRef<typeof import('@vueuse/math')['useToFixed']>
readonly useToNumber: UnwrapRef<typeof import('@vueuse/core')['useToNumber']>
readonly useToString: UnwrapRef<typeof import('@vueuse/core')['useToString']>
readonly useToggle: UnwrapRef<typeof import('@vueuse/core')['useToggle']>
readonly useTransition: UnwrapRef<typeof import('@vueuse/core')['useTransition']>
readonly useTrunc: UnwrapRef<typeof import('@vueuse/math')['useTrunc']>
readonly useUrlSearchParams: UnwrapRef<typeof import('@vueuse/core')['useUrlSearchParams']>
readonly useUserMedia: UnwrapRef<typeof import('@vueuse/core')['useUserMedia']>
readonly useVModel: UnwrapRef<typeof import('@vueuse/core')['useVModel']>
readonly useVModels: UnwrapRef<typeof import('@vueuse/core')['useVModels']>
readonly useVibrate: UnwrapRef<typeof import('@vueuse/core')['useVibrate']>
readonly useVirtualList: UnwrapRef<typeof import('@vueuse/core')['useVirtualList']>
readonly useWakeLock: UnwrapRef<typeof import('@vueuse/core')['useWakeLock']>
readonly useWebNotification: UnwrapRef<typeof import('@vueuse/core')['useWebNotification']>
readonly useWebSocket: UnwrapRef<typeof import('@vueuse/core')['useWebSocket']>
readonly useWebWorker: UnwrapRef<typeof import('@vueuse/core')['useWebWorker']>
readonly useWebWorkerFn: UnwrapRef<typeof import('@vueuse/core')['useWebWorkerFn']>
readonly useWindowFocus: UnwrapRef<typeof import('@vueuse/core')['useWindowFocus']>
readonly useWindowScroll: UnwrapRef<typeof import('@vueuse/core')['useWindowScroll']>
readonly useWindowSize: UnwrapRef<typeof import('@vueuse/core')['useWindowSize']>
readonly watch: UnwrapRef<typeof import('vue')['watch']>
readonly watchArray: UnwrapRef<typeof import('@vueuse/core')['watchArray']>
readonly watchAtMost: UnwrapRef<typeof import('@vueuse/core')['watchAtMost']>
readonly watchDebounced: UnwrapRef<typeof import('@vueuse/core')['watchDebounced']>
readonly watchEffect: UnwrapRef<typeof import('vue')['watchEffect']>
readonly watchIgnorable: UnwrapRef<typeof import('@vueuse/core')['watchIgnorable']>
readonly watchOnce: UnwrapRef<typeof import('@vueuse/core')['watchOnce']>
readonly watchPausable: UnwrapRef<typeof import('@vueuse/core')['watchPausable']>
readonly watchPostEffect: UnwrapRef<typeof import('vue')['watchPostEffect']>
readonly watchSyncEffect: UnwrapRef<typeof import('vue')['watchSyncEffect']>
readonly watchThrottled: UnwrapRef<typeof import('@vueuse/core')['watchThrottled']>
readonly watchTriggerable: UnwrapRef<typeof import('@vueuse/core')['watchTriggerable']>
readonly watchWithFilter: UnwrapRef<typeof import('@vueuse/core')['watchWithFilter']>
readonly whenever: UnwrapRef<typeof import('@vueuse/core')['whenever']>
}
}
-5
View File
@@ -1,5 +0,0 @@
module.exports = {
presets: [
'@vue/cli-plugin-babel/preset',
],
}
+108
View File
@@ -0,0 +1,108 @@
# Directory Layout
Note: the host name used in the user's browser (displayed in the address bar) to load the explorer app determines which of the chain configuration directories is used.
If the host name contains the substring "testnet" (for example: "https://mytestnetwork.example.com") then chain configuration files in the `testnet` directory (only) are loaded. Conversely if the host name does not contain that substring then chain configuration files in the `mainnet` directory (only) are loaded.
Remember to bear this behavior in mind when selecting a DNS host name for self hosting the explorer.
** if you want to list your blockchain on ping.pub, please submit your configuration on https://github.com/ping-pub/ping.pub.git **
- Submit configs for mainnet, go to https://github.com/ping-pub/explorer/tree/master/chains/mainnet
- Submit configs for testnet, go to https://github.com/ping-pub/explorer/tree/master/chains/testnet, these configs will be enabled when you visit the domain that starts with `testnet.*`, for example `https://testnet.ping.pub`
# Sample of Config
```json
{
"chain_name": "cosmos",
"api": [
{
"address": "https://cosmos.api.ping.pub",
"provider": "Ping"
}
],
"rpc": [
{
"address": "https://cosmos.api.ping.pub",
"provider": "Ping"
}
],
"sdk_version": "0.42.6",
"coin_type": "118",
"min_tx_fee": "800",
"assets": [{
"base": "uatom",
"symbol": "ATOM",
"exponent": "6",
"coingecko_id": "cosmos",
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
}],
"addr_prefix": "cosmos",
"theme_color": "#ce4747",
"logo": "https://dl.airtable.com/.attachments/e54f814bba8c0f9af8a3056020210de0/2d1155fb/cosmos-hub.svg"
}
```
- **chain_name** the name to identify the chain on ping.pub, would be better to use the same one as registry
- **api** the rest api endpoint.(make sure that CORS is enabled: `Allow-Control-Allow-Origin: *`)
- **rpc** the rpc endpoint, make sure that the port is added. rpc endpoint is only used for state sync. it's optional.
- **assets** Native Assets on blockchain.
Endpoint providers will be listed in the "Popular" tab of the staking.
# Token Unit conversion
We have two methods to load token metadata for token unit conversion:
## Loading from a REST endpoint (recommended).
you can define the metadata in the `bank` -> `metadata` section of the blockchain's genesis file. if you don't define, the `[]` will return.
```json
{
"name": "atom",
"description": "The native staking token of the Cosmos Hub.",
"denom_units": [
{
"denom": "uatom",
"exponent": 0,
"aliases": [
"microatom"
],
},
{
"denom": "matom",
"exponent": 3,
"aliases": [
"milliatom"
]
},
{
"denom": "atom",
"exponent": 6,
}
],
"base": "uatom",
"display": "atom",
}
```
you can see more details here:
https://github.com/cosmos/cosmos-sdk/blob/main/docs/architecture/adr-024-coin-metadata.md
## Loading from Cosmos Registry:
https://github.com/cosmos/chain-registry
# Test
please add these check points in comments with your PR, and adding your test result by clicking the checkbox of each line
```
Test Result:
- [ ] Connect wallet, check if address is correct?
- [ ] Transfer
- [ ] Delegate
- [ ] Redelegate
- [ ] Unbond
- [ ] withdraw Validator's Commission
- [ ] withdraw Rewards
```
Test is very important for us and our users.
+23
View File
@@ -0,0 +1,23 @@
{
"chain_name": "laconic-testnet-2",
"registry_name": "laconic-testnet-2",
"api": [
{"provider": "lcn-api", "address": "https://laconicd-sapo.laconic.com/api "}
],
"rpc": [
{"provider": "lcn-rpc", "address": "https://laconicd-sapo.laconic.com"}
],
"sdk_version": "0.50.3",
"coin_type": "118",
"min_tx_fee": "800",
"addr_prefix": "laconic",
"logo": "/logos/cosmos.svg",
"assets": [{
"base": "alnt",
"symbol": "LNT",
"exponent": "18",
"coingecko_id": "cosmos",
"logo": "/logos/cosmos.svg"
}]
}
+11
View File
@@ -0,0 +1,11 @@
{
"chain_name": "crossfi-testnet-1",
"api": ["https://crossfi-testnet-api.forpeaky.xyz"],
"rpc": ["https://crossfi-testnet-rpc.forpeaky.xyz"],
"coingecko": "",
"snapshot_provider": "",
"sdk_version": "0.47.1",
"coin_type": "118",
"min_tx_fee": "500",
"addr_prefix": "crossfi"
}
+13
View File
@@ -0,0 +1,13 @@
// generated by unplugin-vue-components
// We suggest you to commit this file into source control
// Read more: https://github.com/vuejs/core/pull/3399
import '@vue/runtime-core';
export {};
declare module '@vue/runtime-core' {
export interface GlobalComponents {
RouterLink: typeof import('vue-router')['RouterLink'];
RouterView: typeof import('vue-router')['RouterView'];
}
}
Vendored
+3
View File
@@ -0,0 +1,3 @@
/// <reference types="vite/client" />
declare module '@personaxyz/ad-sdk';
+44
View File
@@ -0,0 +1,44 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<link rel="icon" href="/favicon.ico">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Laconic Blockchain Explorer And Web Wallet</title>
<meta name="description" content="Laconic Explorer is a block explorer/web wallet for blockchains built on Cosmos SDK, Cosmoshub, Osmosis, Juno, Evmos, Injective, Canto and 70+ blockchains listed on ping.pub" />
<link rel="stylesheet" type="text/css" href="/loader.css" />
</head>
<body>
<div id="app">
<div id="loading-bg">
<div class="loading-logo">
<img src="/logo.svg" alt="Logo" />
</div>
<div class="pre-loading">
<div class="effect-1 effects"></div>
<div class="effect-2 effects"></div>
<div class="effect-3 effects"></div>
</div>
</div>
</div>
<script type="module" src="/src/main.ts"></script>
<!-- Google tag (gtag.js) -->
<script async src="https://www.googletagmanager.com/gtag/js?id=G-SSBKVF3GMX"></script>
<script>
window.dataLayer = window.dataLayer || [];
function gtag(){dataLayer.push(arguments);}
gtag('js', new Date());
// Set default consent to 'denied' as a placeholder
// Determine actual values based on your own requirements
gtag('consent', 'default', {
'ad_storage': 'denied',
'ad_user_data': 'denied',
'ad_personalization': 'denied',
'analytics_storage': 'denied'
});
gtag('config', 'G-SSBKVF3GMX');
</script>
<script type="module" src="https://cdn.jsdelivr.net/npm/ping-widget@v0.3.8/dist/ping-widget.min.js"></script>
</body>
</html>
+82
View File
@@ -0,0 +1,82 @@
# Prerequisites
1. Node and Yarn - Acquired using Node Version Manager (https://github.com/nvm-sh/nvm)
# Quick Install for Prerequisites
1. Install Node Version Manager
```sh
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.4/install.sh | bash
```
2. Install the latest version of NodeJS
```sh
nvm install node # "node" is an alias for the latest version
```
3. Install the latest version of NPM for Node
```sh
nvm install-latest-npm # get the latest supported npm version on the current node version
```
4. Install Yarn
```sh
npm install --global yarn
```
# Installation:
1. Running with yarn
```sh
yarn --ignore-engines && yarn serve
```
2. Building for web servers, like nginx, apache
```sh
yarn --ignore-engines && yarn build
cp -r ./dist/* <ROOT_OF_WEB_SERVER>
```
3. Running with docker
```sh
./docker.sh
docker run -d -p 8088:80 ping.pub/dashboard
```
# Enable LCD for Ping.pub (do this on the config for your chain)
1. Set `enable = true` in `./config/app.toml`
```
###############################################################################
### API Configuration ###
###############################################################################
[api]
# Enable defines if the API server should be enabled.
enable = true
# Swagger defines if swagger documentation should automatically be registered.
swagger = false
# Address defines the API server to listen on.
address = "tcp://0.0.0.0:1317"
# MaxOpenConnections defines the number of maximum open connections.
max-open-connections = 1000
```
2. add proxy server and enable CORS. NOTE: You must enable https as well.
```
server {
server_name juno.api.ping.pub;
listen 443;
location / {
add_header Access-Control-Allow-Origin *;
add_header Access-Control-Max-Age 3600;
add_header Access-Control-Expose-Headers Content-Length;
proxy_pass http://<HOST>:1317;
}
}
```
3. config your blockchain in [./src/chains]()
-9
View File
@@ -1,9 +0,0 @@
{
"compilerOptions": {
"baseUrl": ".",
"paths": {
"@/*": ["src/*"],
"@core/*": ["src/@core/*"],
}
}
}
-36801
View File
File diff suppressed because it is too large Load Diff
+70 -88
View File
@@ -1,97 +1,79 @@
{
"name": "ping-wallet",
"version": "0.1.0",
"name": "ping.pub",
"version": "3.0.0",
"private": true,
"target": "",
"scripts": {
"serve": "vue-cli-service serve",
"build": "vue-cli-service build",
"lint": "vue-cli-service lint",
"tauri:build": "vue-cli-service tauri:build",
"tauri:serve": "vue-cli-service tauri:serve"
"dev": "vite",
"serve": "vite",
"build": "run-p type-check build-only",
"preview": "vite preview",
"build-only": "vite build",
"type-check": "vue-tsc --noEmit"
},
"dependencies": {
"@casl/ability": "4.1.6",
"@casl/vue": "1.1.1",
"@cosmjs/amino": "^0.25.6",
"@cosmjs/crypto": "^0.25.6",
"@cosmjs/encoding": "^0.25.6",
"@cosmjs/launchpad": "^0.25.6",
"@cosmjs/ledger-amino": "^0.25.6",
"@cosmjs/math": "^0.25.6",
"@cosmjs/proto-signing": "^0.25.6",
"@cosmjs/stargate": "^0.25.6",
"@cosmostation/cosmosjs": "^0.10.6",
"@intlify/vue-i18n-loader": "^2.1.2",
"@ledgerhq/hw-app-cosmos": "^6.3.0",
"@ledgerhq/hw-transport-web-ble": "^6.3.0",
"@ledgerhq/hw-transport-webusb": "^6.3.0",
"@vue/composition-api": "1.0.0-beta.22",
"@vueuse/core": "4.0.0",
"animate.css": "4.1.1",
"apexcharts": "3.24.0",
"axios": "0.21.1",
"axios-mock-adapter": "1.19.0",
"bootstrap": "4.6.0",
"bootstrap-vue": "2.21.1",
"chart.js": "2.9.4",
"compare-versions": "^3.6.0",
"core-js": "3.8.1",
"dayjs": "^1.10.6",
"echarts": "4.8.0",
"leaflet": "1.6.0",
"ledger-cosmos-js": "2.1.8",
"node-fetch": "^2.6.1",
"portal-vue": "2.1.7",
"postcss-rtl": "1.7.3",
"prismjs": "1.25.0",
"swiper": "6.5.1",
"uuid": "8.3.2",
"vee-validate": "3.4.5",
"vue": "2.x",
"vue-apexcharts": "1.6.0",
"vue-autosuggest": "2.2.0",
"vue-awesome-swiper": "4.1.1",
"vue-chartjs": "3.5.0",
"vue-cleave-component": "2.1.3",
"vue-clipboard2": "0.3.1",
"vue-context": "6.0.0",
"vue-echarts": "5.0.0-beta.0",
"vue-feather-icons": "5.1.0",
"vue-flatpickr-component": "8.1.6",
"vue-flex-waterfall": "^1.0.7",
"vue-form-wizard": "0.8.4",
"vue-i18n": "8.22.2",
"vue-loader": "^15.9.6",
"vue-perfect-scrollbar": "0.2.1",
"vue-prism-component": "1.1.1",
"vue-qr": "^2.5.0",
"vue-ripple-directive": "2.0.1",
"vue-router": "3.4.9",
"vue-select": "3.11.2",
"vue-slider-component": "3.2.11",
"vue-sweetalert2": "4.1.1",
"vue-toastification": "1.7.8",
"vue-tour": "1.5.0",
"vue-tree-halower": "1.8.3",
"vue2-leaflet": "2.5.2",
"vuedraggable": "2.24.3",
"vuex": "3.6.0"
"@chenfengyuan/vue-countdown": "2",
"@cosmjs/crypto": "^0.32.3",
"@cosmjs/amino": "^0.32.3",
"@cosmjs/encoding": "^0.32.3",
"@cosmjs/stargate": "^0.32.3",
"@iconify/vue": "^4.1.0",
"@intlify/unplugin-vue-i18n": "^0.8.2",
"@leapwallet/cosmos-snap-provider": "^0.1.20",
"@leapwallet/name-matcha": "^1.1.0",
"@osmonauts/lcd": "^0.8.0",
"@personaxyz/ad-sdk": "0.0.25",
"@ping-pub/chain-registry-client": "^0.0.25",
"@vitejs/plugin-vue-jsx": "^3.0.0",
"@vueuse/core": "^9.12.0",
"@vueuse/integrations": "^10.1.2",
"@vueuse/math": "^9.12.0",
"apexcharts": "^3.37.1",
"autoprefixer": "^10.4.14",
"axios": "^1.3.2",
"buffer": "^6.0.3",
"build": "^0.1.4",
"cross-fetch": "^3.1.5",
"daisyui": "^3.1.0",
"dayjs": "^1.11.7",
"lazy-load-vue3": "^1.3.0",
"long": "^5.2.1",
"md-editor-v3": "^2.8.1",
"numeral": "^2.0.6",
"osmojs": "^14.0.0-rc.0",
"pinia": "^2.0.28",
"postcss": "^8.4.23",
"qrcode": "^1.5.3",
"tailwindcss": "^3.3.1",
"theme-change": "^2.5.0",
"vite-plugin-vue-layouts": "^0.7.0",
"vue": "^3.2.45",
"vue-i18n": "^9.2.2",
"vue-prism-component": "^2.0.0",
"vue-router": "^4.1.6",
"vue3-apexcharts": "^1.4.1",
"vue3-json-viewer": "^2.2.2",
"vue3-perfect-scrollbar": "^1.6.1"
},
"devDependencies": {
"@vue/cli-plugin-babel": "~4.5.9",
"@vue/cli-plugin-eslint": "~4.5.9",
"@vue/cli-plugin-router": "~4.5.9",
"@vue/cli-plugin-vuex": "~4.5.9",
"@vue/cli-service": "~4.5.9",
"@vue/eslint-config-airbnb": "^5.3.0",
"@vuepress/plugin-medium-zoom": "^1.7.1",
"babel-eslint": "^10.0.3",
"eslint": "6.8.0",
"eslint-plugin-import": "^2.22.1",
"eslint-plugin-vue": "6.2.2",
"sass": "1.32.*",
"sass-loader": "^10.1.0",
"vue-cli-plugin-tauri": "~1.0.0-beta.3",
"vue-template-compiler": "2.x"
"@osmonauts/telescope": "^0.88.2",
"@types/marked": "^4.0.8",
"@types/node": "^18.11.12",
"@types/numeral": "^2.0.2",
"@types/semver": "7.5.0",
"@vitejs/plugin-vue": "^4.0.0",
"@vue/tsconfig": "^0.1.3",
"npm-run-all": "^4.1.5",
"prettier": "^2.7.1",
"sass": "^1.58.0",
"shiki": "^1.0.0-beta.0",
"typescript": "~4.9.5",
"unplugin-auto-import": "^0.13.0",
"unplugin-vue-components": "^0.23.0",
"unplugin-vue-define-options": "1.1.4",
"vite": "^4.4.9",
"vite-plugin-pages": "^0.28.0",
"vue-json-viewer": "3",
"vue-tsc": "^1.0.12"
}
}
+4 -3
View File
@@ -1,5 +1,6 @@
const rtl = require('postcss-rtl')
module.exports = {
plugins: [rtl()],
plugins: {
tailwindcss: {},
autoprefixer: {},
},
}
Binary file not shown.

Before

Width:  |  Height:  |  Size: 80 KiB

After

Width:  |  Height:  |  Size: 80 KiB

-38
View File
@@ -1,38 +0,0 @@
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8" />
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
<meta name="viewport" content="width=device-width,initial-scale=1.0,maximum-scale=1" />
<!-- Splash Screen/Loader Styles -->
<link rel="stylesheet" type="text/css" href="<%= BASE_URL %>loader.css" />
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
<link
href="https://fonts.googleapis.com/css2?family=Montserrat:ital,wght@0,300;0,400;0,500;0,600;1,400&display=swap"
rel="stylesheet"
/>
<title>Ping Wallet</title>
</head>
<body>
<noscript>
<strong
>We're sorry but Ping Wallet doesn't work properly without JavaScript enabled. Please
enable it to continue.</strong
>
</noscript>
<div id="loading-bg">
<div class="loading-logo">
<img src="<%= BASE_URL %>logo.svg" alt="Logo" />
</div>
<div class="loading">
<div class="effect-1 effects"></div>
<div class="effect-2 effects"></div>
<div class="effect-3 effects"></div>
</div>
</div>
<div id="app"></div>
<!-- built files will be auto injected -->
</body>
</html>
+42 -56
View File
@@ -1,84 +1,70 @@
body {
margin: 0;
#loading-bg {
background: var(--initial-loader-bg, #fff);
}
#loading-bg {
width: 100%;
height: 100%;
background: #fff;
display: block;
position: absolute;
}
.loading-logo {
position: absolute;
left: calc(50% - 45px);
top: 40%;
}
.loading {
position: absolute;
left: calc(50% - 35px);
top: 50%;
width: 55px;
height: 55px;
border-radius: 50%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
border: 3px solid transparent;
}
.loading .effect-1,
.loading .effect-2 {
position: absolute;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-left: 3px solid rgba(121, 97, 249, 1);
border-radius: 50%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
inset-block-start: 40%;
inset-inline-start: calc(50% - 75px);
}
.loading .effect-1 {
.pre-loading {
position: absolute;
box-sizing: border-box;
border: 3px solid transparent;
block-size: 55px;
border-radius: 50%;
inline-size: 55px;
inset-block-start: calc(40% + 35px);
inset-inline-start: calc(50% - 27.5px);
}
.pre-loading .effect-1,
.pre-loading .effect-2,
.pre-loading .effect-3 {
position: absolute;
box-sizing: border-box;
border: 3px solid transparent;
block-size: 100%;
border-inline-start: 3px solid var(--initial-loader-color, #eee);
border-radius: 50%;
inline-size: 100%;
}
.pre-loading .effect-1 {
animation: rotate 1s ease infinite;
}
.loading .effect-2 {
animation: rotateOpacity 1s ease infinite 0.1s;
}
.loading .effect-3 {
position: absolute;
width: 100%;
height: 100%;
border: 3px solid transparent;
border-left: 3px solid rgba(121, 97, 249, 1);
-webkit-animation: rotateOpacity 1s ease infinite 0.2s;
animation: rotateOpacity 1s ease infinite 0.2s;
border-radius: 50%;
-webkit-box-sizing: border-box;
box-sizing: border-box;
.pre-loading .effect-2 {
animation: rotate-opacity 1s ease infinite 0.1s;
}
.loading .effects {
.pre-loading .effect-3 {
animation: rotate-opacity 1s ease infinite 0.2s;
}
.pre-loading .effects {
transition: all 0.3s ease;
}
@keyframes rotate {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(1turn);
transform: rotate(1turn);
}
}
@keyframes rotateOpacity {
@keyframes rotate-opacity {
0% {
-webkit-transform: rotate(0deg);
transform: rotate(0deg);
opacity: 0.1;
transform: rotate(0deg);
}
100% {
-webkit-transform: rotate(1turn);
transform: rotate(1turn);
opacity: 1;
transform: rotate(1turn);
}
}
BIN
View File
Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.9 KiB

+78 -154
View File
@@ -1,158 +1,82 @@
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
<svg version="1.1" id="Layer_1" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink" x="0px" y="0px" width="150px" height="132px" viewBox="0 0 150 132" enable-background="new 0 0 150 132" xml:space="preserve"> <image id="image0" width="150" height="132" x="0" y="0"
href="data:image/png;base64,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" />
href="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAJYAAACECAMAAABFwSJAAAAABGdBTUEAALGPC/xhBQAAACBjSFJN
AAB6JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAACuFBMVEVmbP////9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9m
bP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP9mbP+Znf+Xm/+Wmv+UmP+T
l/+Rlv+QlP+Ok/+Mkf+LkP+Jjv+Ijf/a2//////S1P+ztv+mqf+coP/l5v/d3v+7vv+ytf+hpP/2
9v/v8P+qrf+prP+nqv+kp/+bn//g4f/u7//Hyf+2uf/9/f++wf+Gi//y8//c3f+sr/+eov/R0/+w
s//U1f/Jy//p6v/6+v/BxP/P0f/Ex/+fo//8/P+5vP/3+P/s7f/m5//09f/o6f+Fiv/f4P/j5P/X
2P+1uP/Dxf/5+f+vsv/i4//Mzv/GyP+tsP+8v//KzP/O0P+ipv/x8v+/wv/r7P+4u//Z2v/V1/+N
hj37AAAAl3RSTlMAAIXd6u7y4Qgo+nu08xhGnQTU/TFrvxDrUY7bByZzsu8VRZUD0/sraLhJjNYl
+Wyw7EPRZg5Ci9Ak+GSu50GGz/cgquj+PInLASFerOQKP4ACzvUcY6I1xFbfPXnM8WGbDOb8L4S9
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" />
</svg>

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 6.3 KiB

+17
View File
@@ -0,0 +1,17 @@
<html>
<head>
<title>Widget Test</title>
<script src="https://unpkg.com/ping-widget@latest/dist/ping-widget.js" type="module" ></script>
</head>
<body>
<div class="p-5">
<div>
<ping-connect-wallet chain-id="kava_2222-10" hd-path="m/44'/118/0'/0/0"/>
</div>
<div>
<label for="PingTokenConvert" class="btn">Buy Kava</label>
<ping-token-convert chain-name="kava" endpoint="https://api.data.kava.io" hd-path="m/44'/118/0'/0/0"/>
</div>
</div>
</body>
</html>
-142
View File
@@ -1,142 +0,0 @@
import { computed, watch } from '@vue/composition-api'
import store from '@/store'
export default function usAppConfig() {
// ------------------------------------------------
// isVerticalMenuCollapsed
// ------------------------------------------------
const isVerticalMenuCollapsed = computed({
get: () => store.state.verticalMenu.isVerticalMenuCollapsed,
set: val => {
store.commit('verticalMenu/UPDATE_VERTICAL_MENU_COLLAPSED', val)
},
})
// ------------------------------------------------
// RTL
// ------------------------------------------------
const isRTL = computed({
get: () => store.state.appConfig.layout.isRTL,
set: val => {
store.commit('appConfig/TOGGLE_RTL', val)
},
})
// ------------------------------------------------
// Skin
// ------------------------------------------------
const skin = computed({
get: () => store.state.appConfig.layout.skin,
set: val => {
store.commit('appConfig/UPDATE_SKIN', val)
},
})
const skinClasses = computed(() => {
if (skin.value === 'bordered') return 'bordered-layout'
if (skin.value === 'semi-dark') return 'semi-dark-layout'
// Do not return any class for dark layout because dark layout updates class in body
// Do not return any class for light layout as that is default layout
return null
})
// ------------------------------------------------
// routerTransition
// ------------------------------------------------
const routerTransition = computed({
get: () => store.state.appConfig.layout.routerTransition,
set: val => {
store.commit('appConfig/UPDATE_ROUTER_TRANSITION', val)
},
})
// *===============================================---*
// *--------- LAYOUT ---------------------------------------*
// *===============================================---*
// ------------------------------------------------
// layoutType
// ------------------------------------------------
const layoutType = computed({
get: () => store.state.appConfig.layout.type,
set: val => {
store.commit('appConfig/UPDATE_LAYOUT_TYPE', val)
},
})
// Reset skin if skin is semi-dark and move to horizontal layout
watch(layoutType, val => {
if (val === 'horizontal' && skin.value === 'semi-dark') skin.value = 'light'
})
// ------------------------------------------------
// Content Width (Full/Boxed)
// ------------------------------------------------
const contentWidth = computed({
get: () => store.state.appConfig.layout.contentWidth,
set: val => {
store.commit('appConfig/UPDATE_CONTENT_WIDTH', val)
},
})
// ------------------------------------------------
// isNavMenuHidden
// ------------------------------------------------
const isNavMenuHidden = computed({
get: () => store.state.appConfig.layout.menu.hidden,
set: val => {
store.commit('appConfig/UPDATE_NAV_MENU_HIDDEN', val)
},
})
// *===============================================---*
// *--------- NAVBAR ---------------------------------------*
// *===============================================---*
const navbarBackgroundColor = computed({
get: () => store.state.appConfig.layout.navbar.backgroundColor,
set: val => {
store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { backgroundColor: val })
},
})
const navbarType = computed({
get: () => store.state.appConfig.layout.navbar.type,
set: val => {
store.commit('appConfig/UPDATE_NAVBAR_CONFIG', { type: val })
},
})
// *===============================================---*
// *--------- FOOTER ---------------------------------------*
// *===============================================---*
const footerType = computed({
get: () => store.state.appConfig.layout.footer.type,
set: val => {
store.commit('appConfig/UPDATE_FOOTER_CONFIG', { type: val })
},
})
return {
isVerticalMenuCollapsed,
isRTL,
skin,
skinClasses,
routerTransition,
// Navbar
navbarBackgroundColor,
navbarType,
// Footer
footerType,
// Layout
layoutType,
contentWidth,
isNavMenuHidden,
}
}
Binary file not shown.
@@ -1,849 +0,0 @@
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN" "http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd" >
<!--
2013-9-30: Created.
-->
<svg>
<metadata>
Created by iconfont
</metadata>
<defs>
<font id="feather" horiz-adv-x="1024" >
<font-face
font-family="feather"
font-weight="500"
font-stretch="normal"
units-per-em="1024"
ascent="896"
descent="-128"
/>
<missing-glyph />
<glyph glyph-name="x" unicode="x" horiz-adv-x="1001"
d="M281 543q-27 -1 -53 -1h-83q-18 0 -36.5 -6t-32.5 -18.5t-23 -32t-9 -45.5v-76h912v41q0 16 -0.5 30t-0.5 18q0 13 -5 29t-17 29.5t-31.5 22.5t-49.5 9h-133v-97h-438v97zM955 310v-52q0 -23 0.5 -52t0.5 -58t-10.5 -47.5t-26 -30t-33 -16t-31.5 -4.5q-14 -1 -29.5 -0.5
t-29.5 0.5h-32l-45 128h-439l-44 -128h-29h-34q-20 0 -45 1q-25 0 -41 9.5t-25.5 23t-13.5 29.5t-4 30v167h911zM163 247q-12 0 -21 -8.5t-9 -21.5t9 -21.5t21 -8.5q13 0 22 8.5t9 21.5t-9 21.5t-22 8.5zM316 123q-8 -26 -14 -48q-5 -19 -10.5 -37t-7.5 -25t-3 -15t1 -14.5
t9.5 -10.5t21.5 -4h37h67h81h80h64h36q23 0 34 12t2 38q-5 13 -9.5 30.5t-9.5 34.5q-5 19 -11 39h-368zM336 498v228q0 11 2.5 23t10 21.5t20.5 15.5t34 6h188q31 0 51.5 -14.5t20.5 -52.5v-227h-327z" />
<glyph glyph-name="alert-octagon" unicode="&#59419;" d="M128 542.976v-317.952L353.024 0h317.952L896 225.024V542.976L670.976 768H353.024L128 542.976zM335.36 853.333333h353.28a42.666667 42.666667 0 0 0 30.165333-12.501333l250.026667-250.026667A42.666667 42.666667 0 0 0 981.333333 560.64v-353.28a42.666667 42.666667 0 0 0-12.501333-30.165333l-250.026667-250.026667a42.666667 42.666667 0 0 0-30.165333-12.501333H335.36a42.666667 42.666667 0 0 0-30.165333 12.501333l-250.026667 250.026667A42.666667 42.666667 0 0 0 42.666667 207.36V560.64a42.666667 42.666667 0 0 0 12.501333 30.165333l250.026667 250.026667A42.666667 42.666667 0 0 0 335.36 853.333333zM512 213.333333m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM469.333333 554.666667v-170.666667a42.666667 42.666667 0 0 1 85.333334 0V554.666667a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="alert-circle" unicode="&#59420;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM469.333333 554.666667v-170.666667a42.666667 42.666667 0 0 1 85.333334 0V554.666667a42.666667 42.666667 0 0 1-85.333334 0zM512 213.333333m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="activity" unicode="&#59421;" d="M424.490667 781.482667c-12.970667 38.912-68.010667 38.912-80.981334 0L225.28 426.666667H85.333333a42.666667 42.666667 0 0 1 0-85.333334h170.666667a42.666667 42.666667 0 0 1 40.490667 29.184L384 633.088l215.509333-646.570667c12.970667-38.912 68.010667-38.912 80.981334 0L798.72 341.333333H938.666667a42.666667 42.666667 0 0 1 0 85.333334h-170.666667a42.666667 42.666667 0 0 1-40.490667-29.184L640 134.912 424.490667 781.482667z" horiz-adv-x="1024" />
<glyph glyph-name="alert-triangle" unicode="&#59422;" d="M402.432 753.237333a128.085333 128.085333 0 0 0 219.136 0L983.296 149.333333A128 128 0 0 0 873.386667-42.666667H150.144a128 128 0 0 0-109.098667 192.597334l361.386667 603.306666zM114.602667 106.666667A42.666667 42.666667 0 0 1 150.613333 42.666667h722.304a42.666667 42.666667 0 0 1 36.821334 63.402666L548.48 709.162667a42.666667 42.666667 0 0 1-72.917333 0.085333L114.602667 106.666667zM512 170.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM469.333333 512v-170.666667a42.666667 42.666667 0 0 1 85.333334 0V512a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="align-center" unicode="&#59423;" d="M768 512H256a42.666667 42.666667 0 1 1 0-85.333333h512a42.666667 42.666667 0 0 1 0 85.333333zM896 682.666667H128a42.666667 42.666667 0 1 1 0-85.333334h768a42.666667 42.666667 0 0 1 0 85.333334zM896 341.333333H128a42.666667 42.666667 0 0 1 0-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333zM768 170.666667H256a42.666667 42.666667 0 0 1 0-85.333334h512a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="airplay" unicode="&#59424;" d="M213.333333 213.333333H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V682.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h682.666666a42.666667 42.666667 0 0 0 42.666667-42.666666v-426.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-42.666666a42.666667 42.666667 0 0 1 0-85.333333h42.666666a128 128 0 0 1 128 128V682.666667a128 128 0 0 1-128 128H170.666667a128 128 0 0 1-128-128v-426.666667a128 128 0 0 1 128-128h42.666666a42.666667 42.666667 0 0 1 0 85.333333zM512 189.354667L389.76 42.666667h244.48L512 189.354667zM725.333333-42.666667H298.666667a42.666667 42.666667 0 0 0-32.768 69.973334l213.333333 256a42.666667 42.666667 0 0 0 65.536 0l213.333333-256A42.666667 42.666667 0 0 0 725.333333-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="align-justify" unicode="&#59425;" d="M896 512H128a42.666667 42.666667 0 1 1 0-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333zM896 682.666667H128a42.666667 42.666667 0 1 1 0-85.333334h768a42.666667 42.666667 0 0 1 0 85.333334zM896 341.333333H128a42.666667 42.666667 0 0 1 0-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333zM896 170.666667H128a42.666667 42.666667 0 0 1 0-85.333334h768a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="align-left" unicode="&#59426;" d="M725.333333 512H128a42.666667 42.666667 0 1 1 0-85.333333h597.333333a42.666667 42.666667 0 0 1 0 85.333333zM896 682.666667H128a42.666667 42.666667 0 1 1 0-85.333334h768a42.666667 42.666667 0 0 1 0 85.333334zM896 341.333333H128a42.666667 42.666667 0 0 1 0-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333zM725.333333 170.666667H128a42.666667 42.666667 0 0 1 0-85.333334h597.333333a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="align-right" unicode="&#59427;" d="M896 512H298.666667a42.666667 42.666667 0 1 1 0-85.333333h597.333333a42.666667 42.666667 0 0 1 0 85.333333zM896 682.666667H128a42.666667 42.666667 0 1 1 0-85.333334h768a42.666667 42.666667 0 0 1 0 85.333334zM896 341.333333H128a42.666667 42.666667 0 0 1 0-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333zM896 170.666667H298.666667a42.666667 42.666667 0 0 1 0-85.333334h597.333333a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-down-left" unicode="&#59428;" d="M737.834667 670.165333l-512-512a42.666667 42.666667 0 0 1 60.330666-60.330666l512 512a42.666667 42.666667 0 1 1-60.330666 60.330666zM298.666667 512a42.666667 42.666667 0 1 1-85.333334 0v-384a42.666667 42.666667 0 0 1 42.666667-42.666667h384a42.666667 42.666667 0 0 1 0 85.333334H298.666667V512z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-down-right" unicode="&#59429;" d="M225.834667 609.834667l512-512a42.666667 42.666667 0 0 1 60.330666 60.330666l-512 512a42.666667 42.666667 0 0 1-60.330666-60.330666zM384 170.666667a42.666667 42.666667 0 0 1 0-85.333334h384a42.666667 42.666667 0 0 1 42.666667 42.666667V512a42.666667 42.666667 0 0 1-85.333334 0v-341.333333H384z" horiz-adv-x="1024" />
<glyph glyph-name="anchor" unicode="&#59430;" d="M554.666667 2.346667000000025A384.170667 384.170667 0 0 1 893.653333 341.33333300000004H810.666667a42.666667 42.666667 0 0 0 0 85.333334h128a42.666667 42.666667 0 0 0 42.666666-42.666667c0-259.2-210.133333-469.333333-469.333333-469.333333S42.666667 124.79999999999995 42.666667 384a42.666667 42.666667 0 0 0 42.666666 42.666667h128a42.666667 42.666667 0 0 0 0-85.333334H130.346667A384.170667 384.170667 0 0 1 469.333333 2.346667000000025V554.666667a42.666667 42.666667 0 0 0 85.333334 0v-552.32zM512 512a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z m0 85.333333a85.333333 85.333333 0 1 1 0 170.666667 85.333333 85.333333 0 0 1 0-170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="aperture" unicode="&#59431;" d="M456.533333-82.09066700000005a469.76 469.76 0 0 0-375.893333 280.917334A467.797333 467.797333 0 0 0 42.666667 384c0 102.954667 33.152 198.186667 89.386666 275.584a42.410667 42.410667 0 0 0 4.650667 6.272 468.608 468.608 0 0 0 424.917333 184.874667 469.76 469.76 0 0 0 381.781334-281.6C967.808 512.426667 981.333333 449.792 981.333333 384a467.2 467.2 0 0 0-89.386666-275.584 42.410667 42.410667 0 0 0-4.650667-6.272 468.608 468.608 0 0 0-424.917333-184.874667 42.410667 42.410667 0 0 0-5.802667 0.64z m-14.72 88.490667L536.661333 170.66666699999996H192.682667a384.213333 384.213333 0 0 1 249.130666-164.266667z m95.317334-5.589333a383.146667 383.146667 0 0 1 266.794666 133.717333L709.12 298.66666699999996 647.68 192.42666699999995a42.666667 42.666667 0 0 0-0.426667-0.725334L537.173333 0.8533330000000205z m122.709333 383.146666L585.941333 512h-147.882666l-73.898667-128 73.898667-128h147.882666l73.898667 128z m86.698667 20.522667l109.952-190.336c25.301333 51.2 39.509333 108.885333 39.509333 169.856 0 44.885333-7.68 87.978667-21.845333 128h-189.696l61.056-105.728a42.624 42.624 0 0 0 1.024-1.792zM149.845333 256h189.696l-61.056 105.728a42.624 42.624 0 0 0-1.024 1.792L167.509333 553.856A382.421333 382.421333 0 0 1 128 384c0-44.885333 7.68-87.978667 21.845333-128z m70.229334 377.472L314.88 469.333333 376.32 575.573333a42.666667 42.666667 0 0 0 0.426667 0.725334L486.826667 767.146667a383.146667 383.146667 0 0 1-266.794667-133.717334z m362.112 128.128L487.338667 597.333333H831.317333a384.213333 384.213333 0 0 1-249.130666 164.266667z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-left" unicode="&#59432;" d="M853.333333 426.666667H170.666667a42.666667 42.666667 0 0 1 0-85.333334h682.666666a42.666667 42.666667 0 0 1 0 85.333334zM456.832 609.834667a42.666667 42.666667 0 1 1-60.330667 60.330666l-256-256a42.666667 42.666667 0 0 1 0-60.330666l256-256a42.666667 42.666667 0 1 1 60.330667 60.330666L230.997333 384l225.834667 225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-right" unicode="&#59433;" d="M170.666667 341.333333h682.666666a42.666667 42.666667 0 0 1 0 85.333334H170.666667a42.666667 42.666667 0 0 1 0-85.333334zM567.168 158.165333a42.666667 42.666667 0 0 1 60.330667-60.330666l256 256a42.666667 42.666667 0 0 1 0 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330667-60.330666L793.002667 384l-225.834667-225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-down" unicode="&#59434;" d="M469.333333 725.333333v-682.666666a42.666667 42.666667 0 0 1 85.333334 0V725.333333a42.666667 42.666667 0 0 1-85.333334 0zM286.165333 328.832a42.666667 42.666667 0 1 1-60.330666-60.330667l256-256a42.666667 42.666667 0 0 1 60.330666 0l256 256a42.666667 42.666667 0 0 1-60.330666 60.330667L512 102.997333l-225.834667 225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-up-left" unicode="&#59435;" d="M798.165333 158.165333l-512 512a42.666667 42.666667 0 0 1-60.330666-60.330666l512-512a42.666667 42.666667 0 0 1 60.330666 60.330666zM640 597.333333a42.666667 42.666667 0 0 1 0 85.333334H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-384a42.666667 42.666667 0 0 1 85.333334 0V597.333333h341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-up-right" unicode="&#59436;" d="M286.165333 97.83466699999997l512 512a42.666667 42.666667 0 1 1-60.330666 60.330666l-512-512a42.666667 42.666667 0 0 1 60.330666-60.330666zM725.333333 256a42.666667 42.666667 0 0 1 85.333334 0V640a42.666667 42.666667 0 0 1-42.666667 42.666667H384a42.666667 42.666667 0 1 1 0-85.333334h341.333333v-341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-up" unicode="&#59437;" d="M554.666667 42.666667V725.333333a42.666667 42.666667 0 0 1-85.333334 0v-682.666666a42.666667 42.666667 0 0 1 85.333334 0zM737.834667 439.168a42.666667 42.666667 0 0 1 60.330666 60.330667l-256 256a42.666667 42.666667 0 0 1-60.330666 0l-256-256a42.666667 42.666667 0 0 1 60.330666-60.330667L512 665.002667l225.834667-225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="award" unicode="&#59438;" d="M304.646221 283.538374a341.323094 341.323094 0 1 0 414.792889 0l48.211887-363.210437a42.665387 42.665387 0 0 0-64.254072-42.238733L512-7.0129100000000335l-191.396925-114.812555a42.665387 42.665387 0 0 0-64.211407 42.196067l48.211887 363.210437z m79.9976-45.651964l-31.99904-241.059435 137.382545 82.429527a42.665387 42.665387 0 0 0 43.945348 0l137.382545-82.429527-31.956374 241.059435A340.384455 340.384455 0 0 0 512 213.35381299999995a340.384455 340.384455 0 0 0-127.356179 24.532597zM512 298.68458599999997a255.99232 255.99232 0 1 1 0 511.984641 255.99232 255.99232 0 0 1 0-511.984641z" horiz-adv-x="1024" />
<glyph glyph-name="bar-chart" unicode="&#59439;" d="M810.666667 725.333333v-682.666666h85.333333V725.333333h-85.333333z m-42.666667 85.333334h170.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-768a42.666667 42.666667 0 0 0-42.666666-42.666667h-170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V768a42.666667 42.666667 0 0 0 42.666667 42.666667zM469.333333 512v-469.333333h85.333334V512h-85.333334z m-42.666666 85.333333h170.666666a42.666667 42.666667 0 0 0 42.666667-42.666666v-554.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-170.666666a42.666667 42.666667 0 0 0-42.666667 42.666667V554.666667a42.666667 42.666667 0 0 0 42.666667 42.666666zM128 42.666667h85.333333v256H128v-256z m-42.666667 341.333333h170.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-341.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667v341.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="at-sign" unicode="&#59440;" d="M725.333333 384v-42.666667a85.333333 85.333333 0 1 1 170.666667 0v42.666667a384 384 0 1 1-150.528-304.896 42.666667 42.666667 0 1 0 51.882667-67.754667A469.333333 469.333333 0 1 0 981.333333 384v-42.666667a170.666667 170.666667 0 0 0-309.76-98.901333A213.333333 213.333333 0 1 0 725.333333 384z m-213.333333-128a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="bar-chart-" unicode="&#59441;" d="M469.333333 725.333333v-682.666666h85.333334V725.333333h-85.333334z m-42.666666 85.333334h170.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-768a42.666667 42.666667 0 0 0-42.666667-42.666667h-170.666666a42.666667 42.666667 0 0 0-42.666667 42.666667V768a42.666667 42.666667 0 0 0 42.666667 42.666667zM810.666667 512v-469.333333h85.333333V512h-85.333333z m-42.666667 85.333333h170.666667a42.666667 42.666667 0 0 0 42.666666-42.666666v-554.666667a42.666667 42.666667 0 0 0-42.666666-42.666667h-170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V554.666667a42.666667 42.666667 0 0 0 42.666667 42.666666zM128 42.666667h85.333333v256H128v-256z m-42.666667 341.333333h170.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-341.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667v341.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="battery-charging" unicode="&#59442;" d="M213.333333 170.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666666V554.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h136.106667a42.666667 42.666667 0 1 1 0 85.333334H128a128 128 0 0 1-128-128v-341.333334a128 128 0 0 1 128-128h85.333333a42.666667 42.666667 0 0 1 0 85.333334zM640 597.333333h85.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-341.333334a42.666667 42.666667 0 0 0-42.666667-42.666666h-136.106666a42.666667 42.666667 0 0 1 0-85.333334H725.333333a128 128 0 0 1 128 128V554.666667a128 128 0 0 1-128 128h-85.333333a42.666667 42.666667 0 0 1 0-85.333334zM1024 341.333333v85.333334a42.666667 42.666667 0 0 1-85.333333 0v-85.333334a42.666667 42.666667 0 0 1 85.333333 0zM348.501333 151.68a42.666667 42.666667 0 0 1 70.997334-47.36l170.666666 256A42.666667 42.666667 0 0 1 554.666667 426.666667H378.410667l126.421333 189.653333a42.666667 42.666667 0 1 1-70.997333 47.36l-170.666667-256A42.666667 42.666667 0 0 1 298.666667 341.333333h176.256l-126.421334-189.653333z" horiz-adv-x="1024" />
<glyph glyph-name="bell-off" unicode="&#59443;" d="M386.503252 734.704171A255.868761 255.868761 0 0 0 768.131509 511.671902v-170.579174a42.644793 42.644793 0 0 1 85.289586 0V511.671902A341.158348 341.158348 0 0 1 344.626065 808.906112a42.644793 42.644793 0 1 1 41.877187-74.201941zM256.393987 298.447934V511.671902a255.911405 255.911405 0 0 0 28.529367 117.742274A42.644793 42.644793 0 1 1 209.058267 668.604741 341.158348 341.158348 0 0 1 171.1044 511.629257V298.447934a85.289587 85.289587 0 0 0-85.289586-85.289586c-56.84551 0-56.84551-85.289587 0-85.289587h639.671901a42.644793 42.644793 0 0 1 0 85.289587H233.579023c14.49923 25.075139 22.814964 54.201532 22.814964 85.289586z m292.756507-277.105867a42.644793 42.644793 0 0 0-73.775492 0 42.644793 42.644793 0 0 1-73.775493-42.815373 127.93438 127.93438 0 0 1 221.326478 0 42.644793 42.644793 0 0 1-73.775493 42.815373zM13.020151 822.68038l938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738 60.299738l-938.185456 938.185456A42.644793 42.644793 0 1 1 13.020151 822.68038z" horiz-adv-x="1024" />
<glyph glyph-name="battery" unicode="&#59444;" d="M85.334187 554.282667v-340.565334c0-23.765333 19.114667-43.050667 42.453333-43.050666h597.76c23.381333 0 42.453333 19.2 42.453333 43.050666V554.24C768.000853 578.048 748.886187 597.333333 725.54752 597.333333H127.78752C104.406187 597.333333 85.334187 578.133333 85.334187 554.282667z m-85.333334 0A128.042667 128.042667 0 0 0 127.78752 682.666667h597.76A128.170667 128.170667 0 0 0 853.334187 554.282667v-340.565334A128.042667 128.042667 0 0 0 725.54752 85.333333H127.78752A128.170667 128.170667 0 0 0 0.000853 213.717333V554.24zM1024.000853 341.333333v85.333334a42.666667 42.666667 0 0 1-85.333333 0v-85.333334a42.666667 42.666667 0 0 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="bluetooth" unicode="&#59445;" d="M554.660072 17.7251l131.648983 131.648983L554.660072 281.023065v-263.297965zM686.309055 618.634876L554.660072 750.283859v-263.297966L686.309055 618.634876z m-439.100123-30.160671a42.660072 42.660072 0 0 0 60.321342 60.321342l469.260794-469.260793a42.660072 42.660072 0 0 0 0-60.321342l-234.630397-234.630397c-26.875845-26.875845-72.820743-7.849453-72.820743 30.160671V853.265273c0 37.967464 45.944898 57.036516 72.820743 30.160671l234.630397-234.630397a42.660072 42.660072 0 0 0 0-60.321342l-469.260794-469.260793a42.660072 42.660072 0 1 0-60.321342 60.321342L554.660072 486.985893v-205.962828L247.208932 588.474205z" horiz-adv-x="1024" />
<glyph glyph-name="bell" unicode="&#59446;" d="M768 298.66666699999996V512A256 256 0 0 1 256 512v-213.333333c0-31.104-8.32-60.245333-22.826667-85.333334h557.653334A169.898667 169.898667 0 0 0 768 298.66666699999996z m170.666667-170.666667H85.333333c-56.874667 0-56.874667 85.333333 0 85.333333a85.333333 85.333333 0 0 1 85.333334 85.333334V512a341.333333 341.333333 0 0 0 682.666666 0v-213.333333a85.333333 85.333333 0 0 1 85.333334-85.333334c56.874667 0 56.874667-85.333333 0-85.333333zM548.906667 21.418667000000028a42.666667 42.666667 0 0 0-73.813334 0 42.666667 42.666667 0 0 1-73.813333-42.837334 128 128 0 0 1 221.44 0 42.666667 42.666667 0 0 1-73.813333 42.837334z" horiz-adv-x="1024" />
<glyph glyph-name="book" unicode="&#59447;" d="M853.333333 853.333333a42.666667 42.666667 0 0 0 42.666667-42.666666v-853.333334a42.666667 42.666667 0 0 0-42.666667-42.666666H277.333333A149.333333 149.333333 0 0 0 128 64v640A149.333333 149.333333 0 0 0 277.333333 853.333333H853.333333z m-42.666666-640V768H277.333333A64 64 0 0 1 213.333333 704v-505.045333A148.736 148.736 0 0 0 277.333333 213.33333300000004H810.666667z m0-85.333333H277.333333a64 64 0 0 1 0-128H810.666667v128z" horiz-adv-x="1024" />
<glyph glyph-name="briefcase" unicode="&#59448;" d="M298.666667 640V682.666667a128 128 0 0 0 128 128h170.666666a128 128 0 0 0 128-128v-42.666667h128.426667A127.914667 127.914667 0 0 0 981.333333 511.744v-426.154667A128.128 128.128 0 0 0 853.76-42.66666699999996H170.24A127.914667 127.914667 0 0 0 42.666667 85.58933300000001V511.744A128.128 128.128 0 0 0 170.24 640H298.666667z m0-85.333333H170.24C147.2 554.666667 128 535.381333 128 511.744v-426.154667A42.581333 42.581333 0 0 1 170.24 42.66666699999996H298.666667V554.666667z m85.333333 0v-512h256V554.666667H384z m341.333333 0v-512h128.426667c23.04 0 42.24 19.285333 42.24 42.922666V511.744A42.581333 42.581333 0 0 1 853.76 554.666667H725.333333zM384 640h256V682.666667a42.666667 42.666667 0 0 1-42.666667 42.666666h-170.666666a42.666667 42.666667 0 0 1-42.666667-42.666666v-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="camera-off" unicode="&#59449;" d="M682.884567 273.415441l328.620778-328.620779a42.644793 42.644793 0 0 0-60.299738-60.299738L878.410944-42.71041300000002H128.459607a127.93438 127.93438 0 0 0-127.93438 127.93438V554.316695a127.93438 127.93438 0 0 0 127.93438 127.93438h24.989849L13.020151 822.68038A42.644793 42.644793 0 1 0 73.319889 882.980118l371.265572-371.265572 1.151409-1.108764 236.038932-236.038932 1.108765-1.151409z m-28.870526-91.686306a213.223967 213.223967 0 0 0-301.157531 301.072241L238.739043 596.961489H128.459607a42.644793 42.644793 0 0 1-42.644793-42.644794v-469.092728a42.644793 42.644793 0 0 1 42.644793-42.644793h664.661751l-139.107317 139.107316z m-60.470317 60.427672L413.326827 422.373704a127.93438 127.93438 0 0 1 180.216897-180.216897z m96.462523 373.781615A42.644793 42.644793 0 0 1 725.486715 596.961489h170.579174a42.644793 42.644793 0 0 0 42.644793-42.644794v-398.302371a42.644793 42.644793 0 0 1 85.289587 0V554.316695a127.93438 127.93438 0 0 1-127.93438 127.93438h-147.764209l-72.624084 108.957448A42.644793 42.644793 0 0 1 640.197128 810.185456H384.328368a42.644793 42.644793 0 1 1 0-85.289587h233.053796l72.624083-108.957447z" horiz-adv-x="1024" />
<glyph glyph-name="calendar" unicode="&#59450;" d="M384 768h256V810.666667a42.666667 42.666667 0 0 0 85.333333 0v-42.666667h85.546667A127.786667 127.786667 0 0 0 938.666667 640.213333v-597.76A127.786667 127.786667 0 0 0 810.88-85.33333300000004H213.12A127.786667 127.786667 0 0 0 85.333333 42.45333300000004V640.213333A127.786667 127.786667 0 0 0 213.12 768H298.666667V810.666667a42.666667 42.666667 0 1 0 85.333333 0v-42.666667z m469.333333-341.333333H170.666667v-384.213334c0-23.466667 18.986667-42.453333 42.453333-42.453333h597.76c23.466667 0 42.453333 18.986667 42.453333 42.453333V426.666667zM384 682.666667v-42.666667a42.666667 42.666667 0 1 0-85.333333 0V682.666667H213.12A42.453333 42.453333 0 0 1 170.666667 640.213333V512h682.666666V640.213333A42.453333 42.453333 0 0 1 810.88 682.666667H725.333333v-42.666667a42.666667 42.666667 0 0 0-85.333333 0V682.666667H384z" horiz-adv-x="1024" />
<glyph glyph-name="bookmark" unicode="&#59451;" d="M768 82.901333V682.666667a42.666667 42.666667 0 0 1-42.666667 42.666666H298.666667a42.666667 42.666667 0 0 1-42.666667-42.666666v-599.765334l231.210667 165.12a42.666667 42.666667 0 0 0 49.578666 0L768 82.944zM238.122667-34.730667A42.666667 42.666667 0 0 0 170.666667 0V682.666667a128 128 0 0 0 128 128h426.666666a128 128 0 0 0 128-128v-682.666667a42.666667 42.666667 0 0 0-67.456-34.730667L512 160.896l-273.877333-195.626667z" horiz-adv-x="1024" />
<glyph glyph-name="box" unicode="&#59452;" d="M568.96 872.362667l341.333333-170.666667A128 128 0 0 0 981.333333 587.093333v-406.613333a128 128 0 0 0-70.954666-114.517333l-341.333334-170.666667a128 128 0 0 0-114.517333 0L113.066667 66.00533299999995A127.872 127.872 0 0 0 42.666667 180.90666699999997V587.093333a128 128 0 0 0 70.954666 114.517334L455.04 872.362667a128 128 0 0 0 113.92 0zM512 474.368l331.050667 165.546667-312.106667 156.032a42.624 42.624 0 0 1-37.845333 0L180.949333 639.9573330000001 512 474.368z m384 96.597333l-341.333333-170.666666v-416.810667l317.653333 158.848A42.666667 42.666667 0 0 1 896 180.48000000000002V570.965333zM469.333333-16.725332999999978v417.024l-341.333333 170.666666v-390.357333c-0.128-16.213333 8.96-31.104 23.338667-38.357333L469.333333-16.725332999999978z" horiz-adv-x="1024" />
<glyph glyph-name="camera" unicode="&#59453;" d="M334.165333 616.32A42.666667 42.666667 0 0 0 298.666667 597.333333H128a42.666667 42.666667 0 0 1-42.666667-42.666666v-469.333334a42.666667 42.666667 0 0 1 42.666667-42.666666h768a42.666667 42.666667 0 0 1 42.666667 42.666666V554.666667a42.666667 42.666667 0 0 1-42.666667 42.666666h-170.666667a42.666667 42.666667 0 0 0-35.498666 18.986667L617.173333 725.333333h-210.346666L334.165333 616.32zM896 682.666667a128 128 0 0 0 128-128v-469.333334a128 128 0 0 0-128-128H128a128 128 0 0 0-128 128V554.666667a128 128 0 0 0 128 128h147.84l72.661333 109.013333A42.666667 42.666667 0 0 0 384 810.666667h256a42.666667 42.666667 0 0 0 35.498667-18.986667L748.16 682.666667H896zM512 128a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="check-circle" unicode="&#59454;" d="M896 423.68V384a384 384 0 1 0-227.712 351.018667 42.666667 42.666667 0 1 1 34.730667 77.909333A469.333333 469.333333 0 1 1 981.333333 384v39.722667a42.666667 42.666667 0 0 1-85.333333 0zM414.165333 456.832a42.666667 42.666667 0 0 1-60.330666-60.330667l128-128a42.666667 42.666667 0 0 1 60.330666 0l469.333334 469.333334a42.666667 42.666667 0 1 1-60.330667 60.330666L512 358.997333l-97.834667 97.834667z" horiz-adv-x="1024" />
<glyph glyph-name="check" unicode="&#59455;" d="M200.832 371.498667a42.666667 42.666667 0 1 1-60.330667-60.330667l213.333334-213.333333a42.666667 42.666667 0 0 1 60.330666 0l469.333334 469.333333a42.666667 42.666667 0 1 1-60.330667 60.330667L384 188.330667l-183.168 183.168z" horiz-adv-x="1024" />
<glyph glyph-name="check-square" unicode="&#59456;" d="M371.498667 456.832a42.666667 42.666667 0 0 1-60.330667-60.330667l128-128a42.666667 42.666667 0 0 1 60.330667 0l469.333333 469.333334a42.666667 42.666667 0 1 1-60.330667 60.330666L469.333333 358.997333l-97.834666 97.834667zM810.666667 384v-298.666667a42.666667 42.666667 0 0 0-42.666667-42.666666H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666666V682.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h469.333333a42.666667 42.666667 0 0 1 0 85.333334H170.666667a128 128 0 0 1-128-128v-597.333334a128 128 0 0 1 128-128h597.333333a128 128 0 0 1 128 128v298.666667a42.666667 42.666667 0 0 1-85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="cast" unicode="&#59457;" d="M76.8 167.253333a170.666667 170.666667 0 0 0 133.12-133.12 42.666667 42.666667 0 0 1 83.626667 17.066667 256 256 0 0 1-199.68 199.68 42.666667 42.666667 0 0 1-17.066667-83.626667z m3.84 172.202667a341.333333 341.333333 0 0 0 301.482667-301.525333 42.666667 42.666667 0 1 1 84.821333 9.472 426.666667 426.666667 0 0 1-376.874667 376.874666 42.666667 42.666667 0 1 1-9.472-84.821333zM128 554.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h682.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-512a42.666667 42.666667 0 0 0-42.666667-42.666667h-256a42.666667 42.666667 0 0 1 0-85.333333h256a128 128 0 0 1 128 128V640a128 128 0 0 1-128 128H170.666667a128 128 0 0 1-128-128v-85.333333a42.666667 42.666667 0 1 1 85.333333 0zM85.333333 42.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="chevron-down" unicode="&#59458;" d="M286.165333 542.165333a42.666667 42.666667 0 0 1-60.330666-60.330666l256-256a42.666667 42.666667 0 0 1 60.330666 0l256 256a42.666667 42.666667 0 1 1-60.330666 60.330666L512 316.330667 286.165333 542.165333z" horiz-adv-x="1024" />
<glyph glyph-name="chevron-left" unicode="&#59459;" d="M670.165333 609.834667a42.666667 42.666667 0 1 1-60.330666 60.330666l-256-256a42.666667 42.666667 0 0 1 0-60.330666l256-256a42.666667 42.666667 0 0 1 60.330666 60.330666L444.330667 384l225.834666 225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="chevron-right" unicode="&#59460;" d="M353.834667 158.165333a42.666667 42.666667 0 0 1 60.330666-60.330666l256 256a42.666667 42.666667 0 0 1 0 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666-60.330666L579.669333 384l-225.834666-225.834667z" horiz-adv-x="1024" />
<glyph glyph-name="chevron-up" unicode="&#59461;" d="M737.834667 225.834667a42.666667 42.666667 0 0 1 60.330666 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666 0l-256-256a42.666667 42.666667 0 0 1 60.330666-60.330666L512 451.669333l225.834667-225.834666z" horiz-adv-x="1024" />
<glyph glyph-name="chevrons-down" unicode="&#59462;" d="M328.832 371.498667a42.666667 42.666667 0 1 1-60.330667-60.330667l213.333334-213.333333a42.666667 42.666667 0 0 1 60.330666 0l213.333334 213.333333a42.666667 42.666667 0 0 1-60.330667 60.330667L512 188.330667l-183.168 183.168zM328.832 670.165333a42.666667 42.666667 0 0 1-60.330667-60.330666l213.333334-213.333334a42.666667 42.666667 0 0 1 60.330666 0l213.333334 213.333334a42.666667 42.666667 0 1 1-60.330667 60.330666L512 486.997333 328.832 670.165333z" horiz-adv-x="1024" />
<glyph glyph-name="chevrons-right" unicode="&#59463;" d="M524.501333 200.832a42.666667 42.666667 0 0 1 60.330667-60.330667l213.333333 213.333334a42.666667 42.666667 0 0 1 0 60.330666l-213.333333 213.333334a42.666667 42.666667 0 0 1-60.330667-60.330667L707.669333 384l-183.168-183.168zM225.834667 200.832a42.666667 42.666667 0 0 1 60.330666-60.330667l213.333334 213.333334a42.666667 42.666667 0 0 1 0 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666-60.330667L409.002667 384l-183.168-183.168z" horiz-adv-x="1024" />
<glyph glyph-name="chevrons-up" unicode="&#59464;" d="M695.168 396.501333a42.666667 42.666667 0 0 1 60.330667 60.330667l-213.333334 213.333333a42.666667 42.666667 0 0 1-60.330666 0l-213.333334-213.333333a42.666667 42.666667 0 0 1 60.330667-60.330667L512 579.669333l183.168-183.168zM512 281.002667l183.168-183.168a42.666667 42.666667 0 0 1 60.330667 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666 0l-213.333334-213.333334a42.666667 42.666667 0 0 1 60.330667-60.330666L512 281.002667z" horiz-adv-x="1024" />
<glyph glyph-name="chevrons-left" unicode="&#59465;" d="M499.498667 567.168a42.666667 42.666667 0 1 1-60.330667 60.330667l-213.333333-213.333334a42.666667 42.666667 0 0 1 0-60.330666l213.333333-213.333334a42.666667 42.666667 0 0 1 60.330667 60.330667L316.330667 384l183.168 183.168zM798.165333 567.168a42.666667 42.666667 0 1 1-60.330666 60.330667l-213.333334-213.333334a42.666667 42.666667 0 0 1 0-60.330666l213.333334-213.333334a42.666667 42.666667 0 0 1 60.330666 60.330667L614.997333 384l183.168 183.168z" horiz-adv-x="1024" />
<glyph glyph-name="circle" unicode="&#59466;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="clipboard" unicode="&#59467;" d="M298.666667 768c0.213333 46.976 38.4 85.333333 85.205333 85.333333h256.256c47.104 0 84.992-37.973333 85.205333-85.333333h42.666667a128 128 0 0 0 128-128v-597.333333a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128V640a128 128 0 0 0 128 128h42.666667z m0-85.333333H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-597.333333a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667h-42.666667c-0.213333-46.976-38.4-85.333333-85.205333-85.333334H383.872A85.248 85.248 0 0 0 298.666667 682.666667z m85.205333 85.333333c0.341333 0 0.128-0.213333 0.128-0.426667v-84.48C384 682.752 384 682.666667 383.914667 682.666667h256.213333C639.786667 682.666667 640 682.88 640 683.093333V767.573333c0 0.298667 0 0.426667 0.085333 0.426667H383.872z" horiz-adv-x="1024" />
<glyph glyph-name="chrome" unicode="&#59468;" d="M462.378667-82.77333299999998a42.410667 42.410667 0 0 0-5.802667 0.682666C223.488-54.65599999999995 42.666667 143.530667 42.666667 384c0 102.954667 33.152 198.186667 89.386666 275.584a42.410667 42.410667 0 0 0 4.650667 6.272A468.608 468.608 0 0 0 512 853.333333a469.418667 469.418667 0 0 0 431.36-284.16c24.448-56.832 37.973333-119.424 37.973333-185.173333 0-259.2-210.133333-469.333333-469.333333-469.333333-16.768 0-33.28 0.853333-49.621333 2.56z m-20.608 89.173333l95.616 165.76a213.333333 213.333333 0 0 0-214.528 113.066667l-155.306667 268.672A382.421333 382.421333 0 0 1 128 384c0-188.074667 135.253333-344.618667 313.770667-377.6z m95.317333-5.589333A384 384 0 0 1 874.154667 512H682.666667c26.794667-35.669333 42.666667-79.957333 42.666666-128 0-41.941333-12.117333-81.066667-33.024-114.090667l-155.221333-269.098666z m82.389333 313.642666l3.2 5.546667c0.554667 0.981333 1.152 1.962667 1.792 2.858667a128 128 0 1 1-226.56 2.986666l3.413334-5.845333c0.554667-0.938667 1.066667-1.92 1.536-2.901333a127.914667 127.914667 0 0 1 216.618666-2.645334zM220.16 633.5146669999999l95.701333-165.589334A213.376 213.376 0 0 0 512 597.333333h319.317333A383.616 383.616 0 0 1 512 768a383.146667 383.146667 0 0 1-291.925333-134.485333z" horiz-adv-x="1024" />
<glyph glyph-name="clock" unicode="&#59469;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM554.666667 640a42.666667 42.666667 0 0 1-85.333334 0v-256a42.666667 42.666667 0 0 1 12.501334-30.165333l128-128a42.666667 42.666667 0 0 1 60.330666 60.330666L554.666667 401.664V640z" horiz-adv-x="1024" />
<glyph glyph-name="cloud-lightning" unicode="&#59470;" d="M384.070136 896a383.99632 383.99632 0 0 1-185.939552-719.9931 42.666258 42.666258 0 0 1 41.300938 74.665951A298.663804 298.663804 0 1 0 673.262031 586.669631a42.666258 42.666258 0 0 1 41.300938-31.999693H768.322453a170.665031 170.665031 0 0 0 34.175673-337.916762 42.666258 42.666258 0 0 1 16.98117-83.625865A255.997547 255.997547 0 0 1 768.279787 640.002453h-22.186454a383.99632 383.99632 0 0 1-362.023197 255.997547zM434.160322-61.644156a42.666258 42.666258 0 0 1 70.996653-47.359546l170.665032 255.997547A42.666258 42.666258 0 0 1 640.32368 213.339875h-176.254311l126.420122 189.651516a42.666258 42.666258 0 1 1-70.996653 47.359546l-170.665031-255.997546A42.666258 42.666258 0 0 1 384.326133 128.00736h176.254311l-126.420122-189.651516z" horiz-adv-x="1024" />
<glyph glyph-name="cloud-drizzle" unicode="&#59471;" d="M298.831787 85.333333v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a42.666667 42.666667 0 0 1-85.333333 0zM298.831787 341.333333v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a42.666667 42.666667 0 0 1-85.333333 0zM640.16512 85.333333v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a42.666667 42.666667 0 0 1-85.333333 0zM640.16512 341.333333v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a42.666667 42.666667 0 0 1-85.333333 0zM469.498453 0v-85.333333a42.666667 42.666667 0 0 1 85.333334 0v85.333333a42.666667 42.666667 0 0 1-85.333334 0zM469.498453 256v-85.333333a42.666667 42.666667 0 0 1 85.333334 0v85.333333a42.666667 42.666667 0 0 1-85.333334 0zM405.498453 895.36A384 384 0 0 1 144.207787 212.053333a42.666667 42.666667 0 0 1 53.248 66.645334A298.666667 298.666667 0 1 0 673.103787 586.666667a42.666667 42.666667 0 0 1 41.301333-32H768.16512a170.666667 170.666667 0 0 0 68.224-326.997334 42.666667 42.666667 0 0 1 34.218667-78.165333A256 256 0 0 1 768.207787 640h-22.229334A384 384 0 0 1 405.498453 895.36z" horiz-adv-x="1024" />
<glyph glyph-name="cloud-rain" unicode="&#59472;" d="M640.16512 341.333333v-341.333333a42.666667 42.666667 0 0 1 85.333333 0v341.333333a42.666667 42.666667 0 0 1-85.333333 0zM298.831787 341.333333v-341.333333a42.666667 42.666667 0 0 1 85.333333 0v341.333333a42.666667 42.666667 0 0 1-85.333333 0zM469.498453 256v-341.333333a42.666667 42.666667 0 0 1 85.333334 0v341.333333a42.666667 42.666667 0 0 1-85.333334 0zM405.498453 895.36A384 384 0 0 1 144.207787 212.053333a42.666667 42.666667 0 0 1 53.248 66.645334A298.666667 298.666667 0 1 0 673.103787 586.666667a42.666667 42.666667 0 0 1 41.301333-32H768.16512a170.666667 170.666667 0 0 0 68.224-326.997334 42.666667 42.666667 0 0 1 34.218667-78.165333A256 256 0 0 1 768.207787 640h-22.229334A384 384 0 0 1 405.498453 895.36z" horiz-adv-x="1024" />
<glyph glyph-name="cloud-off" unicode="&#59473;" d="M420.661732 767.370083a42.474214 42.474214 0 0 1-45.971088-38.721472 42.559504 42.559504 0 0 1 38.508249-46.226956 297.3195 297.3195 0 0 0 261.583163-223.885166 42.431569 42.431569 0 0 1 41.109581-32.154174h53.433926a169.38512 169.38512 0 0 0 141.580714-76.248891 171.389425 171.389425 0 0 0 14.840388-160.813516 42.730083 42.730083 0 0 1 22.516451-55.864679 42.303635 42.303635 0 0 1 55.608811 22.60174 257.062815 257.062815 0 0 1-22.260582 241.198952A254.077679 254.077679 0 0 1 769.240273 511.671902h-21.876779a382.054704 382.054704 0 0 1-326.701762 255.698181zM197.544172 719.607914c-153.308032-85.289587-229.215765-264.568299-184.097573-434.763669 45.160836-170.238015 199.748212-287.681777 374.890379-284.86722h380.988585c29.552842 0 58.849815 5.24531 86.568931 15.352126 22.004713 8.059866 33.348228 32.495333 25.373652 54.62798a42.34628 42.34628 0 0 1-54.329467 25.544231c-18.50784-6.737877-37.996511-10.23475-57.655761-10.23475H387.654662a297.276855 297.276855 0 0 0-292.24477 221.539702 299.153226 299.153226 0 0 0 143.158572 338.130567c20.469501 11.38616 27.93234 37.356839 16.631469 57.954274a42.26099 42.26099 0 0 1-57.655761 16.674115zM13.020151 822.68038l938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738 60.299738l-938.185456 938.185456A42.644793 42.644793 0 1 1 13.020151 822.68038z" horiz-adv-x="1024" />
<glyph glyph-name="codepen" unicode="&#59474;" d="M535.253333 846.421333l426.666667-277.333333A42.666667 42.666667 0 0 0 981.333333 533.333333v-298.666666a42.666667 42.666667 0 0 0-19.413333-35.754667l-426.666667-277.333333a42.666667 42.666667 0 0 0-46.506666 0l-426.666667 277.333333A42.666667 42.666667 0 0 0 42.666667 234.66666699999996v298.666666a42.666667 42.666667 0 0 0 19.413333 35.754667l426.666667 277.333333a42.666667 42.666667 0 0 0 46.506666 0zM469.333333 732.074667L161.621333 531.9680000000001 298.666667 436.096l170.666666 119.466667V732.032z m85.333334 0V555.52l170.666666-119.466667 137.045334 95.914667L554.666667 732.032zM512 286.72L650.922667 384 512 481.28 373.077333 384 512 286.72z m384 29.866667v134.741333L799.744 384 896 316.58666700000003z m-33.621333-80.64L725.333333 331.904l-170.666666-119.466667v-176.469333l307.712 200.021333z m-700.757334 0L469.333333 35.96799999999996v176.469333l-170.666666 119.466667-137.045334-95.914667zM128 316.58666700000003L224.256 384 128 451.413333v-134.826666z" horiz-adv-x="1024" />
<glyph glyph-name="cloud-snow" unicode="&#59475;" d="M405.632 852.693333A384 384 0 0 1 144.298667 169.386667a42.666667 42.666667 0 0 1 53.290666 66.645333A298.666667 298.666667 0 1 0 673.194667 544a42.666667 42.666667 0 0 1 41.301333-32h53.76a170.666667 170.666667 0 0 0 68.266667-326.997333 42.666667 42.666667 0 0 1 34.218666-78.165334A256 256 0 0 1 768.341333 597.333333h-22.272a384 384 0 0 1-340.48 255.36zM682.666667 256m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM512 170.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM341.333333 256m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM341.333333 42.666667m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM512-42.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM682.666667 42.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM682.666667 42.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="compass" unicode="&#59476;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM455.253333 440.746667L398.592 270.506667l170.154667 56.746666 56.746666 170.154667-170.154666-56.746667z m278.144 110.677333l-90.453333-271.36a42.666667 42.666667 0 0 0-27.008-27.008l-271.36-90.453333a42.666667 42.666667 0 0 0-53.973333 53.973333l90.453333 271.36a42.666667 42.666667 0 0 0 27.008 27.008l271.36 90.453333a42.666667 42.666667 0 0 0 53.973333-53.973333z" horiz-adv-x="1024" />
<glyph glyph-name="copy" unicode="&#59477;" d="M426.666667 426.538667v-383.744A42.666667 42.666667 0 0 1 469.461333 0h383.744A42.666667 42.666667 0 0 1 896 42.794667v383.744A42.666667 42.666667 0 0 1 853.205333 469.333333h-383.744A42.666667 42.666667 0 0 1 426.666667 426.538667z m-85.333334 0A128 128 0 0 0 469.461333 554.666667h383.744A128 128 0 0 0 981.333333 426.538667v-383.744A128 128 0 0 0 853.205333-85.333333h-383.744A128 128 0 0 0 341.333333 42.794667v383.744zM213.333333 298.666667H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666666V725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h384a42.666667 42.666667 0 0 0 42.666666-42.666667v-42.666666a42.666667 42.666667 0 0 1 85.333334 0V725.333333a128 128 0 0 1-128 128H170.666667a128 128 0 0 1-128-128v-384a128 128 0 0 1 128-128h42.666666a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="corner-down-right" unicode="&#59478;" d="M609.834667 72.832a42.666667 42.666667 0 0 1 60.330666-60.330667l213.333334 213.333334a42.666667 42.666667 0 0 1 0 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666-60.330667L793.002667 256l-183.168-183.168zM128 725.333333v-298.666666a213.333333 213.333333 0 0 1 213.333333-213.333334h512a42.666667 42.666667 0 0 1 0 85.333334H341.333333a128 128 0 0 0-128 128V725.333333a42.666667 42.666667 0 1 1-85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="corner-down-left" unicode="&#59479;" d="M414.165333 439.168a42.666667 42.666667 0 1 1-60.330666 60.330667l-213.333334-213.333334a42.666667 42.666667 0 0 1 0-60.330666l213.333334-213.333334a42.666667 42.666667 0 1 1 60.330666 60.330667L230.997333 256l183.168 183.168zM810.666667 725.333333v-298.666666a128 128 0 0 0-128-128H170.666667a42.666667 42.666667 0 0 1 0-85.333334h512a213.333333 213.333333 0 0 1 213.333333 213.333334V725.333333a42.666667 42.666667 0 0 1-85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="corner-left-down" unicode="&#59480;" d="M200.832 286.165333a42.666667 42.666667 0 1 1-60.330667-60.330666l213.333334-213.333334a42.666667 42.666667 0 0 1 60.330666 0l213.333334 213.333334a42.666667 42.666667 0 0 1-60.330667 60.330666L384 102.997333l-183.168 183.168zM853.333333 768h-298.666666a213.333333 213.333333 0 0 1-213.333334-213.333333v-512a42.666667 42.666667 0 0 1 85.333334 0V554.666667a128 128 0 0 0 128 128h298.666666a42.666667 42.666667 0 0 1 0 85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="corner-left-up" unicode="&#59481;" d="M567.168 481.834667a42.666667 42.666667 0 1 1 60.330667 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666 0l-213.333334-213.333334a42.666667 42.666667 0 0 1 60.330667-60.330666L384 665.002667l183.168-183.168zM853.333333 85.333333h-298.666666a128 128 0 0 0-128 128V725.333333a42.666667 42.666667 0 1 1-85.333334 0v-512a213.333333 213.333333 0 0 1 213.333334-213.333333h298.666666a42.666667 42.666667 0 0 1 0 85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="corner-up-left" unicode="&#59482;" d="M414.165333 695.168a42.666667 42.666667 0 1 1-60.330666 60.330667l-213.333334-213.333334a42.666667 42.666667 0 0 1 0-60.330666l213.333334-213.333334a42.666667 42.666667 0 1 1 60.330666 60.330667L230.997333 512l183.168 183.168zM896 42.666667v298.666666a213.333333 213.333333 0 0 1-213.333333 213.333334H170.666667a42.666667 42.666667 0 1 1 0-85.333334h512a128 128 0 0 0 128-128v-298.666666a42.666667 42.666667 0 0 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="corner-up-right" unicode="&#59483;" d="M609.834667 328.832a42.666667 42.666667 0 0 1 60.330666-60.330667l213.333334 213.333334a42.666667 42.666667 0 0 1 0 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666-60.330667L793.002667 512l-183.168-183.168zM213.333333 42.666667v298.666666a128 128 0 0 0 128 128h512a42.666667 42.666667 0 0 1 0 85.333334H341.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-298.666666a42.666667 42.666667 0 0 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="corner-right-down" unicode="&#59484;" d="M456.832 286.16533300000003a42.666667 42.666667 0 1 1-60.330667-60.330666l213.333334-213.333334a42.666667 42.666667 0 0 1 60.330666 0l213.333334 213.333334a42.666667 42.666667 0 0 1-60.330667 60.330666L640 102.99733300000003l-183.168 183.168zM170.666667 682.666667h298.666666a128 128 0 0 0 128-128v-512a42.666667 42.666667 0 0 1 85.333334 0V554.666667a213.333333 213.333333 0 0 1-213.333334 213.333333H170.666667a42.666667 42.666667 0 1 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="corner-right-up" unicode="&#59485;" d="M823.168 481.834667a42.666667 42.666667 0 1 1 60.330667 60.330666l-213.333334 213.333334a42.666667 42.666667 0 0 1-60.330666 0l-213.333334-213.333334a42.666667 42.666667 0 1 1 60.330667-60.330666L640 665.002667l183.168-183.168zM170.666667 0h298.666666a213.333333 213.333333 0 0 1 213.333334 213.333333V725.333333a42.666667 42.666667 0 0 1-85.333334 0v-512a128 128 0 0 0-128-128H170.666667a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="cpu" unicode="&#59486;" d="M213.333333 640.256v-512.512c0-23.381333 19.029333-42.410667 42.410667-42.410667h512.512a42.453333 42.453333 0 0 1 42.410667 42.410667V640.256A42.453333 42.453333 0 0 1 768.256 682.666667H255.744A42.453333 42.453333 0 0 1 213.333333 640.256z m-85.333333 0A127.786667 127.786667 0 0 0 255.744 768h512.512A127.786667 127.786667 0 0 0 896 640.256v-512.512A127.786667 127.786667 0 0 0 768.256 0H255.744A127.786667 127.786667 0 0 0 128 127.74400000000003V640.256zM426.666667 298.66666699999996h170.666666v170.666666h-170.666666v-170.666666zM384 554.666667h256a42.666667 42.666667 0 0 0 42.666667-42.666667v-256a42.666667 42.666667 0 0 0-42.666667-42.666667H384a42.666667 42.666667 0 0 0-42.666667 42.666667V512a42.666667 42.666667 0 0 0 42.666667 42.666667zM341.333333 853.333333a42.666667 42.666667 0 1 0 85.333334 0v-128a42.666667 42.666667 0 1 0-85.333334 0V853.333333z m256 0a42.666667 42.666667 0 0 0 85.333334 0v-128a42.666667 42.666667 0 0 0-85.333334 0V853.333333zM341.333333 42.66666699999996a42.666667 42.666667 0 0 0 85.333334 0v-128a42.666667 42.666667 0 0 0-85.333334 0v128z m256 0a42.666667 42.666667 0 0 0 85.333334 0v-128a42.666667 42.666667 0 0 0-85.333334 0v128z m256 426.666666a42.666667 42.666667 0 0 0 0 85.333334h128a42.666667 42.666667 0 0 0 0-85.333334h-128z m0-213.333333a42.666667 42.666667 0 0 0 0 85.333333h128a42.666667 42.666667 0 0 0 0-85.333333h-128zM42.666667 469.333333a42.666667 42.666667 0 1 0 0 85.333334h128a42.666667 42.666667 0 1 0 0-85.333334H42.666667z m0-213.333333a42.666667 42.666667 0 0 0 0 85.333333h128a42.666667 42.666667 0 0 0 0-85.333333H42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="credit-card" unicode="&#59487;" d="M0 640.256A127.616 127.616 0 0 0 127.616 768H896.426667A127.744 127.744 0 0 0 1024 640.256v-512.512A127.616 127.616 0 0 0 896.384 0H127.573333A127.744 127.744 0 0 0 0 127.74400000000003V640.256zM938.666667 512V640.256A42.410667 42.410667 0 0 1 896.384 682.666667H127.573333A42.282667 42.282667 0 0 1 85.333333 640.256V512h853.333334z m0-85.333333H85.333333v-298.922667c0-23.381333 18.986667-42.410667 42.282667-42.410667H896.426667a42.282667 42.282667 0 0 1 42.282666 42.410667V426.666667z" horiz-adv-x="1024" />
<glyph glyph-name="crosshair" unicode="&#59488;" d="M469.333333 2.346667000000025V128a42.666667 42.666667 0 0 0 85.333334 0v-125.653333A384.170667 384.170667 0 0 1 893.653333 341.33333300000004H768a42.666667 42.666667 0 0 0 0 85.333334h125.653333A384.170667 384.170667 0 0 1 554.666667 765.653333V640a42.666667 42.666667 0 0 0-85.333334 0V765.653333A384.170667 384.170667 0 0 1 130.346667 426.666667H256a42.666667 42.666667 0 0 0 0-85.333334H130.346667A384.170667 384.170667 0 0 1 469.333333 2.346667000000025zM512-85.33333300000004C252.8-85.33333300000004 42.666667 124.79999999999995 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z" horiz-adv-x="1024" />
<glyph glyph-name="disc" unicode="&#59489;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM512 213.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="delete" unicode="&#59490;" d="M896 768a128 128 0 0 0 128-128v-512a128 128 0 0 0-128-128H341.333333a42.666667 42.666667 0 0 0-32.128 14.549333l-298.666666 341.333334a42.666667 42.666667 0 0 0 0 56.234666l298.666666 341.333334A42.666667 42.666667 0 0 0 341.333333 768h554.666667z m0-682.666667a42.666667 42.666667 0 0 1 42.666667 42.666667V640a42.666667 42.666667 0 0 1-42.666667 42.666667H360.704l-261.333333-298.666667 261.333333-298.666667H896zM737.834667 542.165333l-256-256a42.666667 42.666667 0 0 1 60.330666-60.330666l256 256a42.666667 42.666667 0 1 1-60.330666 60.330666zM481.834667 481.834667l256-256a42.666667 42.666667 0 0 1 60.330666 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="download-cloud" unicode="&#59491;" d="M512.468907 17.663999999999987l-140.501334 140.501333a42.666667 42.666667 0 1 1-60.330666-60.330666l170.666666-170.666667a42.666667 42.666667 0 0 1 60.330667 0l170.666667 170.666667a42.666667 42.666667 0 0 1-60.330667 60.330666L512.468907 17.663999999999987zM469.80224 341.33333300000004v-384a42.666667 42.666667 0 0 1 85.333333 0v384a42.666667 42.666667 0 0 1-85.333333 0zM427.988907 765.9946669999999a384 384 0 0 1-331.477334-635.989334 42.666667 42.666667 0 0 1 63.914667 56.576A298.666667 298.666667 0 1 0 673.32224 458.666667a42.666667 42.666667 0 0 1 41.344-32.042667H768.468907a170.666667 170.666667 0 0 0 98.346666-310.272 42.666667 42.666667 0 0 1 49.066667-69.802667A256 256 0 0 1 768.468907 512h-22.101334a384 384 0 0 1-318.293333 253.994667z" horiz-adv-x="1024" />
<glyph glyph-name="download" unicode="&#59492;" d="M85.333333 170.666667v-128a128 128 0 0 1 128-128h597.333334a128 128 0 0 1 128 128v128a42.666667 42.666667 0 0 1-85.333334 0v-128a42.666667 42.666667 0 0 0-42.666666-42.666667H213.333333a42.666667 42.666667 0 0 0-42.666666 42.666667v128a42.666667 42.666667 0 0 1-85.333334 0zM512 273.664l-140.501333 140.501333a42.666667 42.666667 0 1 1-60.330667-60.330666l170.666667-170.666667a42.666667 42.666667 0 0 1 60.330666 0l170.666667 170.666667a42.666667 42.666667 0 0 1-60.330667 60.330666L512 273.664zM469.333333 810.666667v-597.333334a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="droplet" unicode="&#59493;" d="M301.098667 501.034667a290.986667 290.986667 0 0 1-64.853334-320.64c46.250667-109.952 155.136-181.674667 275.968-181.674667s229.717333 71.68 275.968 181.674667a290.986667 290.986667 0 0 1-64.853333 320.64L512 709.162667 301.098667 501.034667z m241.066666 297.301333l241.493334-237.866667a374.144 374.144 0 0 0 83.328-412.245333C807.594667 6.869333 667.562667-85.333333 512.213333-85.333333c-155.306667 0-295.381333 92.16-354.773333 233.557333a374.144 374.144 0 0 0 83.285333 412.202667l241.066667 237.909333a43.093333 43.093333 0 0 0 60.373333 0z" horiz-adv-x="1024" />
<glyph glyph-name="edit-" unicode="&#59494;" d="M170.666667 195.669333V42.666667h153.002666l512 512L682.666667 707.669333l-512-512zM712.832 798.165333l213.333333-213.333333a42.666667 42.666667 0 0 0 0-60.330667l-554.666666-554.666666A42.666667 42.666667 0 0 0 341.333333-42.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666667v213.333333a42.666667 42.666667 0 0 0 12.501334 30.165334l554.666666 554.666666a42.666667 42.666667 0 0 0 60.330667 0z" horiz-adv-x="1024" />
<glyph glyph-name="edit" unicode="&#59495;" d="M810.666667 270.506667V42.666667a42.666667 42.666667 0 0 0-42.666667-42.666667H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 0 0 42.666667 42.666667h227.84a42.666667 42.666667 0 1 1 0 85.333333H170.666667a128 128 0 0 1-128-128v-597.333333a128 128 0 0 1 128-128h597.333333a128 128 0 0 1 128 128v227.84a42.666667 42.666667 0 0 1-85.333333 0zM384 366.336V256h110.336l384 384L768 750.336l-384-384z m414.165333 474.496l170.666667-170.666667a42.666667 42.666667 0 0 0 0-60.330666l-426.666667-426.666667A42.666667 42.666667 0 0 0 512 170.666667H341.333333a42.666667 42.666667 0 0 0-42.666666 42.666666v170.666667a42.666667 42.666667 0 0 0 12.501333 30.165333l426.666667 426.666667a42.666667 42.666667 0 0 0 60.330666 0z" horiz-adv-x="1024" />
<glyph glyph-name="edit-1" unicode="&#59496;" d="M170.666667 323.669333V213.333333h110.336l426.666666 426.666667L597.333333 750.336l-426.666666-426.666667zM627.498667 840.832l170.666666-170.666667a42.666667 42.666667 0 0 0 0-60.330666l-469.333333-469.333334A42.666667 42.666667 0 0 0 298.666667 128H128a42.666667 42.666667 0 0 0-42.666667 42.666667v170.666666a42.666667 42.666667 0 0 0 12.501334 30.165334l469.333333 469.333333a42.666667 42.666667 0 0 0 60.330667 0zM128-85.333333h768a42.666667 42.666667 0 0 1 0 85.333333H128a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="external-link" unicode="&#59497;" d="M725.333333 341.333333v-256a42.666667 42.666667 0 0 0-42.666666-42.666666H213.333333a42.666667 42.666667 0 0 0-42.666666 42.666666V554.666667a42.666667 42.666667 0 0 0 42.666666 42.666666h256a42.666667 42.666667 0 0 1 0 85.333334H213.333333a128 128 0 0 1-128-128v-469.333334a128 128 0 0 1 128-128h469.333334a128 128 0 0 1 128 128v256a42.666667 42.666667 0 0 1-85.333334 0zM853.333333 725.333333v-213.333333a42.666667 42.666667 0 0 1 85.333334 0V768a42.666667 42.666667 0 0 1-42.666667 42.666667h-256a42.666667 42.666667 0 0 1 0-85.333334h213.333333zM456.832 268.501333l469.333333 469.333334a42.666667 42.666667 0 1 1-60.330666 60.330666l-469.333334-469.333333a42.666667 42.666667 0 0 1 60.330667-60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="eye" unicode="&#59498;" d="M109.844053 353.834667c24.533333-37.973333 53.504-75.989333 86.613334-111.36C289.172053 143.744 394.900053 85.333333 512.020053 85.333333c117.12 0 222.890667 58.368 315.52 157.184A789.888 789.888 0 0 1 932.713387 384a789.888 789.888 0 0 1-105.130667 141.482667C734.91072 624.298667 629.140053 682.666667 512.020053 682.666667 394.900053 682.666667 289.129387 624.298667 196.500053 525.482667A789.888 789.888 0 0 1 91.32672 384c5.376-9.301333 11.52-19.413333 18.474667-30.165333zM4.54272 403.072c5.973333 11.989333 17.237333 32 33.621333 57.429333a874.325333 874.325333 0 0 0 96.042667 123.306667C241.556053 698.410667 367.80672 768 512.020053 768c144.213333 0 270.464-69.632 377.813334-184.149333a874.325333 874.325333 0 0 0 96-123.349334c16.426667-25.429333 27.690667-45.44 33.706666-57.429333a42.666667 42.666667 0 0 0 0-38.144c-6.016-11.989333-17.28-32-33.706666-57.429333a874.325333 874.325333 0 0 0-96-123.306667C782.484053 69.589333 656.233387 0 512.020053 0c-144.213333 0-270.464 69.632-377.813333 184.149333a874.325333 874.325333 0 0 0-96 123.349334 648.021333 648.021333 0 0 0-33.706667 57.429333 42.666667 42.666667 0 0 0 0 38.144zM512.020053 213.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="feather" unicode="&#59499;" d="M230.997333 42.66666699999996l-115.498666-115.498667a42.666667 42.666667 0 1 0-60.330667 60.330667L170.666667 102.99733300000003V448a42.666667 42.666667 0 0 0 12.501333 30.165333l288 288a298.794667 298.794667 0 0 0 422.613333-422.570666l-287.573333-288.426667A42.666667 42.666667 0 0 0 576 42.66666699999996H230.997333z m256 256l241.365334-0.085334 104.96 105.301334a213.504 213.504 0 1 1-301.824 301.952L256 430.336v-242.005333l396.501333 396.501333a42.666667 42.666667 0 0 0 60.330667-60.330667L486.997333 298.66666699999996z m156.373334-85.333334H401.664l-85.333333-85.333333h241.92l85.12 85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="facebook" unicode="&#59500;" d="M384 597.333333a256 256 0 0 0 256 256h128a42.666667 42.666667 0 0 0 42.666667-42.666666v-170.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-128v-85.333333h128a42.666667 42.666667 0 0 0 41.386667-53.034667l-42.666667-170.666666A42.666667 42.666667 0 0 0 725.333333 256h-85.333333v-298.666667a42.666667 42.666667 0 0 0-42.666667-42.666666h-170.666666a42.666667 42.666667 0 0 0-42.666667 42.666666v298.666667H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667v170.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h85.333333V597.333333z m341.333333 170.666667h-85.333333a170.666667 170.666667 0 0 1-170.666667-170.666667v-128a42.666667 42.666667 0 0 0-42.666666-42.666666H341.333333v-85.333334h85.333334a42.666667 42.666667 0 0 0 42.666666-42.666666v-298.666667h85.333334v298.666667a42.666667 42.666667 0 0 0 42.666666 42.666666h94.72l21.333334 85.333334H597.333333a42.666667 42.666667 0 0 0-42.666666 42.666666V597.333333a85.333333 85.333333 0 0 0 85.333333 85.333334h85.333333V768z" horiz-adv-x="1024" />
<glyph glyph-name="file-minus" unicode="&#59501;" d="M554.666667 768H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-682.666666a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V512h-213.333334a42.666667 42.666667 0 0 0-42.666666 42.666667V768z m85.333333-60.330667V597.333333h110.336L640 707.669333zM597.333333 853.333333a42.666667 42.666667 0 0 0 30.165334-12.501333l256-256A42.666667 42.666667 0 0 0 896 554.666667v-512a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128V725.333333a128 128 0 0 0 128 128h341.333333zM384 213.33333300000004a42.666667 42.666667 0 0 0 0 85.333334h256a42.666667 42.666667 0 0 0 0-85.333334H384z" horiz-adv-x="1024" />
<glyph glyph-name="eye-off" unicode="&#59502;" d="M284.838065 603.144984a42.644793 42.644793 0 1 1-51.77078 67.805221A829.441232 829.441232 0 0 1 5.642602 403.908509a42.644793 42.644793 0 0 1-0.554382-39.23321c5.970271-11.983187 17.228497-31.983595 33.604097-57.399892 27.164733-42.005122 59.148329-83.967598 95.99343-123.243453C241.937402 69.488038 368.123346-0.06562 512.262748-0.06562a472.546956 472.546956 0 0 1 279.152818 96.590457 42.644793 42.644793 0 1 1-51.68549 67.805222A386.788277 386.788277 0 0 0 511.580431 85.223967c-116.420286 0-222.094084 58.338077-314.718575 157.103419a789.483061 789.483061 0 0 0-104.948837 141.282201 744.151646 744.151646 0 0 0 192.925046 219.535397z m571.78139-327.981107a42.644793 42.644793 0 0 1 65.246534-54.926494 831.573472 831.573472 0 0 1 97.102195 143.414441 42.644793 42.644793 0 0 1 0.511737 39.14792c-5.970271 11.983187-17.228497 31.983595-33.604097 57.399892a873.877107 873.877107 0 0 1-95.99343 123.243453C782.588094 697.987004 656.40215 767.540662 512.262748 767.540662a431.352086 431.352086 0 0 1-99.277079-11.343515 42.644793 42.644793 0 0 1 19.446026-83.072057A346.275723 346.275723 0 0 0 512.177458 682.251075c117.145248 0 222.861691-58.338077 315.443537-157.103419a789.483061 789.483061 0 0 0 105.034127-141.324845 746.283885 746.283885 0 0 0-76.035667-108.658934z m-285.165734 47.250431a85.289587 85.289587 0 1 0-120.514186 120.514187 42.644793 42.644793 0 1 1-58.167498 62.431977 170.579174 170.579174 0 1 1 241.113662-241.113662 42.644793 42.644793 0 1 1-62.431978 58.167498zM13.020151 822.68038l938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738 60.299738l-938.185456 938.185456A42.644793 42.644793 0 1 1 13.020151 822.68038z" horiz-adv-x="1024" />
<glyph glyph-name="fast-forward" unicode="&#59503;" d="M580.864 51.626667A42.666667 42.666667 0 0 0 512 85.333333V682.666667a42.666667 42.666667 0 0 0 68.864 33.706666l384-298.666666a42.666667 42.666667 0 0 0 0-67.413334l-384-298.666666zM869.12 384L597.333333 595.413333v-422.826666L869.162667 384zM111.530667 51.626667A42.666667 42.666667 0 0 0 42.666667 85.333333V682.666667a42.666667 42.666667 0 0 0 68.864 33.706666l384-298.666666a42.666667 42.666667 0 0 0 0-67.413334l-384-298.666666zM399.786667 384L128 595.413333v-422.826666L399.829333 384z" horiz-adv-x="1024" />
<glyph glyph-name="file-text" unicode="&#59504;" d="M554.666667 768H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-682.666666a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V512h-213.333334a42.666667 42.666667 0 0 0-42.666666 42.666667V768z m85.333333-60.330667V597.333333h110.336L640 707.669333zM597.333333 853.333333a42.666667 42.666667 0 0 0 30.165334-12.501333l256-256A42.666667 42.666667 0 0 0 896 554.666667v-512a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128V725.333333a128 128 0 0 0 128 128h341.333333z m85.333334-469.333333a42.666667 42.666667 0 0 0 0-85.333333H341.333333a42.666667 42.666667 0 0 0 0 85.333333h341.333334z m0-170.666667a42.666667 42.666667 0 0 0 0-85.333333H341.333333a42.666667 42.666667 0 0 0 0 85.333333h341.333334z m-256 341.333334a42.666667 42.666667 0 0 0 0-85.333334H341.333333a42.666667 42.666667 0 1 0 0 85.333334h85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="film" unicode="&#59505;" d="M42.666667 717.738667A135.68 135.68 0 0 0 178.261333 853.333333h667.477334A135.68 135.68 0 0 0 981.333333 717.738667v-667.477334A135.68 135.68 0 0 0 845.738667-85.33333300000004H178.261333A135.68 135.68 0 0 0 42.666667 50.261333000000036V717.738667zM341.333333 768v-341.333333h341.333334V768H341.333333z m0-768h341.333334v341.333333H341.333333v-341.333333z m554.666667 426.666667V554.666667h-128v-128h128z m0-85.333334h-128v-128h128v128zM128 341.33333300000004v-128h128v128H128z m0 85.333334h128V554.666667H128v-128z m640 341.333333v-128h128V717.738667A50.346667 50.346667 0 0 1 845.738667 768H768z m128-640h-128v-128h77.738667A50.346667 50.346667 0 0 1 896 50.261333000000036V128zM256 768H178.261333A50.346667 50.346667 0 0 1 128 717.738667V640h128V768z m0-768v128H128v-77.738667C128 22.61333300000001 150.570667 0 178.261333 0H256z" horiz-adv-x="1024" />
<glyph glyph-name="file" unicode="&#59506;" d="M554.666667 853.333333a42.666667 42.666667 0 0 0 30.165333-12.501333l298.666667-298.666667A42.666667 42.666667 0 0 0 896 512v-469.333333a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128V725.333333a128 128 0 0 0 128 128h298.666667z m-42.666667-341.333333V768H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-682.666666a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V469.333333h-256a42.666667 42.666667 0 0 0-42.666667 42.666667z m85.333333 195.669333V554.666667h153.002667L597.333333 707.669333z" horiz-adv-x="1024" />
<glyph glyph-name="file-plus" unicode="&#59507;" d="M554.666667 768H256a42.666667 42.666667 0 0 1-42.666667-42.666667v-682.666666a42.666667 42.666667 0 0 1 42.666667-42.666667h512a42.666667 42.666667 0 0 1 42.666667 42.666667V512h-213.333334a42.666667 42.666667 0 0 0-42.666666 42.666667V768z m85.333333-60.330667V597.333333h110.336L640 707.669333zM597.333333 853.333333a42.666667 42.666667 0 0 0 30.165334-12.501333l256-256A42.666667 42.666667 0 0 0 896 554.666667v-512a128 128 0 0 0-128-128H256a128 128 0 0 0-128 128V725.333333a128 128 0 0 0 128 128h341.333333z m-128-640H384a42.666667 42.666667 0 0 0 0 85.333334h85.333333v85.333333a42.666667 42.666667 0 0 0 85.333334 0v-85.333333h85.333333a42.666667 42.666667 0 0 0 0-85.333334h-85.333333v-85.333333a42.666667 42.666667 0 0 0-85.333334 0v85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="folder" unicode="&#59508;" d="M170.666667 725.333333a42.666667 42.666667 0 0 1-42.666667-42.666666v-597.333334a42.666667 42.666667 0 0 1 42.666667-42.666666h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666666V554.666667a42.666667 42.666667 0 0 1-42.666667 42.666666h-384a42.666667 42.666667 0 0 0-35.498666 18.986667L361.173333 725.333333H170.666667z m682.666666-42.666666a128 128 0 0 0 128-128v-469.333334a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128V682.666667a128 128 0 0 0 128 128h213.333333a42.666667 42.666667 0 0 0 35.498667-18.986667L492.16 682.666667H853.333333z" horiz-adv-x="1024" />
<glyph glyph-name="filter" unicode="&#59509;" d="M384 348.757333l-331.264 391.68A42.666667 42.666667 0 0 0 85.333333 810.666667h853.333334a42.666667 42.666667 0 0 0 32.597333-70.229334L640 348.757333V0a42.666667 42.666667 0 0 0-61.738667-38.144l-170.666666 85.333333A42.666667 42.666667 0 0 0 384 85.33333300000004v263.424zM177.28 725.333333l281.984-333.397333a42.666667 42.666667 0 0 0 10.069333-27.562667v-252.672l85.333334-42.666666V364.373333a42.666667 42.666667 0 0 0 10.069333 27.562667L846.72 725.333333H177.28z" horiz-adv-x="1024" />
<glyph glyph-name="flag" unicode="&#59510;" d="M128-42.66666699999996V768a42.666667 42.666667 0 0 0 12.501333 30.165333c9.386667 9.386667 26.197333 20.608 51.626667 30.762667C230.698667 844.373333 280.064 853.333333 341.333333 853.333333c60.458667 0 101.674667-11.776 186.496-45.738666C603.008 777.557333 636.458667 768 682.666667 768c50.730667 0 89.344 7.04 117.504 18.261333 14.549333 5.845333 21.674667 10.624 22.997333 11.946667C850.048 825.045333 896 805.973333 896 768v-512a42.666667 42.666667 0 0 0-12.501333-30.165333c-9.386667-9.386667-26.197333-20.608-51.626667-30.762667-38.528-15.445333-87.893333-24.405333-149.205333-24.405333-60.458667 0-101.674667 11.776-186.496 45.738666C420.992 246.44266700000003 387.541333 256 341.333333 256c-50.730667 0-89.344-7.04-117.504-18.261333a174.677333 174.677333 0 0 1-10.496-4.608V-42.66666699999996a42.666667 42.666667 0 0 0-85.333333 0z m213.333333 384c60.458667 0 101.674667-11.776 186.496-45.738666 75.178667-30.037333 108.629333-39.594667 154.837334-39.594667 50.730667 0 89.344 7.04 117.504 18.261333 4.053333 1.664 7.552 3.2 10.496 4.608v420.693334c-34.986667-10.794667-77.397333-16.896-128-16.896-60.458667 0-101.674667 11.776-186.496 45.738666C420.992 758.442667 387.541333 768 341.333333 768c-50.730667 0-89.344-7.04-117.504-18.261333A174.677333 174.677333 0 0 1 213.333333 745.130667v-420.693334C248.32 335.23199999999997 290.730667 341.33333300000004 341.333333 341.33333300000004z" horiz-adv-x="1024" />
<glyph glyph-name="globe" unicode="&#59511;" d="M512-85.33333300000004C252.8-85.33333300000004 42.666667 124.79999999999995 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m211.2 426.666666a695.466667 695.466667 0 0 0-114.176-328.96A384.341333 384.341333 0 0 1 893.653333 341.33333300000004H723.2z m-422.272 0H130.346667a384.341333 384.341333 0 0 1 284.629333-328.96A696.789333 696.789333 0 0 0 300.928 341.33333300000004z m308.096 414.293334A696.789333 696.789333 0 0 0 723.072 426.666667h170.581333a384.341333 384.341333 0 0 1-284.629333 328.96z m-194.048 0A384.341333 384.341333 0 0 1 130.346667 426.666667H300.8a695.466667 695.466667 0 0 0 114.176 328.96zM386.474667 341.33333300000004A610.133333 610.133333 0 0 1 512 23.46666700000003 609.621333 609.621333 0 0 1 637.653333 341.33333300000004H386.474667z m251.050666 85.333334A610.133333 610.133333 0 0 1 512 744.533333 609.621333 609.621333 0 0 1 386.346667 426.666667h251.178666z" horiz-adv-x="1024" />
<glyph glyph-name="grid" unicode="&#59512;" d="M170.666667 512h213.333333V725.333333H170.666667v-213.333333zM128 810.666667h298.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-298.666667a42.666667 42.666667 0 0 0-42.666666-42.666666H128a42.666667 42.666667 0 0 0-42.666667 42.666666V768a42.666667 42.666667 0 0 0 42.666667 42.666667zM640 512h213.333333V725.333333h-213.333333v-213.333333z m-42.666667 298.666667h298.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-298.666667a42.666667 42.666667 0 0 0-42.666667-42.666666h-298.666667a42.666667 42.666667 0 0 0-42.666666 42.666666V768a42.666667 42.666667 0 0 0 42.666666 42.666667zM640 42.666667h213.333333v213.333333h-213.333333v-213.333333z m-42.666667 298.666666h298.666667a42.666667 42.666667 0 0 0 42.666667-42.666666v-298.666667a42.666667 42.666667 0 0 0-42.666667-42.666667h-298.666667a42.666667 42.666667 0 0 0-42.666666 42.666667v298.666667a42.666667 42.666667 0 0 0 42.666666 42.666666zM170.666667 42.666667h213.333333v213.333333H170.666667v-213.333333z m-42.666667 298.666666h298.666667a42.666667 42.666667 0 0 0 42.666666-42.666666v-298.666667a42.666667 42.666667 0 0 0-42.666666-42.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666667v298.666667a42.666667 42.666667 0 0 0 42.666667 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="heart" unicode="&#59513;" d="M527.061333 729.472A277.333333 277.333333 0 0 0 1000.618667 533.333333a277.333333 277.333333 0 0 0-81.28-196.138666l-377.173334-377.173334a42.666667 42.666667 0 0 0-60.330666 0l-377.173334 377.173334a277.376 277.376 0 0 0 392.277334 392.277333l15.061333-15.061333 15.061333 15.061333z m286.72-377.173333l45.226667 45.226666a192 192 0 0 1-135.808 327.893334 192 192 0 0 1-135.808-56.32l-45.226667-45.226667a42.666667 42.666667 0 0 0-60.330666 0l-45.226667 45.226667a192.042667 192.042667 0 0 1-271.616-271.573334L512 50.517333l301.781333 301.781334z" horiz-adv-x="1024" />
<glyph glyph-name="home" unicode="&#59514;" d="M101.802667 545.7066669999999l384 298.666666a42.666667 42.666667 0 0 0 52.394666 0l384-298.666666A42.666667 42.666667 0 0 0 938.666667 512v-469.333333a128 128 0 0 0-128-128H213.333333a128 128 0 0 0-128 128V512a42.666667 42.666667 0 0 0 16.469334 33.706667zM682.666667 0h128a42.666667 42.666667 0 0 1 42.666666 42.666667V491.093333l-341.333333 265.514667-341.333333-265.472V42.66666699999996a42.666667 42.666667 0 0 1 42.666666-42.666667h128v384a42.666667 42.666667 0 0 0 42.666667 42.666667h256a42.666667 42.666667 0 0 0 42.666667-42.666667v-384z m-256 0h170.666666v341.333333h-170.666666v-341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="github" unicode="&#59515;" d="M371.754667 83.541333c-91.818667-27.562667-128.896-12.970667-174.805334 43.861334-3.072 3.797333-15.786667 19.968-19.2 24.192-27.477333 33.92-49.408 52.309333-82.048 60.458666a42.666667 42.666667 0 0 1-20.736-82.773333c9.813333-2.474667 19.712-10.752 36.394667-31.36 2.986667-3.626667 15.701333-19.797333 19.2-24.106667 66.304-82.133333 138.026667-110.293333 265.685333-72.021333a42.666667 42.666667 0 0 1-24.490666 81.749333zM960 489.813333a274.773333 274.773333 0 0 1-58.837333 169.856 258.986667 258.986667 0 0 1-12.458667 167.808 42.666667 42.666667 0 0 1-27.093333 24.106667 64.085333 64.085333 0 0 1-8.96 1.877333c-40.064 5.802667-98.858667-10.026667-177.621334-59.989333a613.546667 613.546667 0 0 1-283.392 0C312.874667 843.434667 254.08 859.306667 213.973333 853.461333a64.085333 64.085333 0 0 1-8.96-1.877333 42.666667 42.666667 0 0 1-27.050666-24.106667 258.986667 258.986667 0 0 1-12.458667-167.808A274.773333 274.773333 0 0 1 106.666667 488.32c0-196.778667 87.893333-292.949333 247.466666-329.6a186.453333 186.453333 0 0 1-12.714666-81.92L341.333333-85.333333a42.666667 42.666667 0 0 1 85.333334 0v165.12c-2.133333 31.616 8.106667 59.776 28.117333 80.426666a42.666667 42.666667 0 0 1-25.429333 71.978667C267.52 252.330667 192 315.776 192 488.533333a189.568 189.568 0 0 0 52.224 131.84 42.666667 42.666667 0 0 1 9.088 44.373334 173.653333 173.653333 0 0 0-5.973333 102.058666c2.986667-0.64 6.272-1.493333 9.856-2.56 27.52-7.893333 61.781333-24.490667 103.04-52.181333a42.666667 42.666667 0 0 1 34.944-5.717333 528.213333 528.213333 0 0 0 276.309333 0 42.666667 42.666667 0 0 1 34.944 5.717333c41.258667 27.690667 75.52 44.288 103.04 52.224 3.584 1.024 6.826667 1.877333 9.813333 2.56a173.653333 173.653333 0 0 0-5.930666-102.101333 42.666667 42.666667 0 0 1 9.088-44.373334A189.44 189.44 0 0 0 874.666667 489.813333c0-174.421333-76.032-238.336-236.8-256.256a42.666667 42.666667 0 0 1-25.941334-72.106666 101.12 101.12 0 0 0 28.202667-78.336L640-85.333333a42.666667 42.666667 0 0 1 85.333333 0v165.12a177.237333 177.237333 0 0 1-12.373333 79.658666c158.72 35.2 247.04 132.266667 247.04 330.368z" horiz-adv-x="1024" />
<glyph glyph-name="image" unicode="&#59516;" d="M213.333333-42.66666699999996h-0.213333A127.786667 127.786667 0 0 0 85.333333 85.12V682.88A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.66666699999996H213.333333z m640 401.664v323.84A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88v-597.76c0-18.261333 11.52-33.792 27.648-39.808L652.501333 499.498667a42.666667 42.666667 0 0 0 60.330667 0L853.333333 358.997333z m0-120.661333l-170.666666 170.666667L316.330667 42.66666699999996h494.506666c23.466667 0 42.496 18.986667 42.496 42.453333v153.173333zM362.666667 426.666667a106.666667 106.666667 0 1 0 0 213.333333 106.666667 106.666667 0 0 0 0-213.333333z m0 85.333333a21.333333 21.333333 0 1 1 0 42.666667 21.333333 21.333333 0 0 1 0-42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="inbox" unicode="&#59517;" d="M311.466667 768h401.066666a128 128 0 0 0 117.077334-76.117333l148.053333-333.226667A42.666667 42.666667 0 0 0 981.333333 341.33333300000004v-213.333333a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128v213.333333a42.666667 42.666667 0 0 0 3.669333 17.322667l148.053333 333.226667A128 128 0 0 0 311.466667 768z m561.536-384l-121.386667 273.28A42.666667 42.666667 0 0 1 712.533333 682.666667H311.466667a42.666667 42.666667 0 0 1-39.082667-25.386667L151.04 384H341.333333a42.666667 42.666667 0 0 0 35.498667-18.986667L449.493333 256h125.013334l72.661333 109.013333A42.666667 42.666667 0 0 0 682.666667 384h190.336zM896 128v170.666667h-190.506667l-72.661333-109.013334A42.666667 42.666667 0 0 0 597.333333 170.66666699999996h-170.666666a42.666667 42.666667 0 0 0-35.498667 18.986666L318.506667 298.66666699999996H128v-170.666667a42.666667 42.666667 0 0 1 42.666667-42.666667h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="layers" unicode="&#59518;" d="M492.928 848.810667a42.666667 42.666667 0 0 0 38.144 0l426.666667-213.333334a42.666667 42.666667 0 0 0 0-76.288l-426.666667-213.333333a42.666667 42.666667 0 0 0-38.144 0l-426.666667 213.333333a42.666667 42.666667 0 0 0 0 76.288l426.666667 213.333334zM180.736 597.333333L512 431.701333 843.264 597.333333 512 762.965333 180.736 597.333333zM104.405333 208.810667a42.666667 42.666667 0 0 1-38.144-76.288l426.666667-213.333334a42.666667 42.666667 0 0 1 38.144 0l426.666667 213.333334a42.666667 42.666667 0 0 1-38.144 76.288L512 5.034667l-407.594667 203.776zM104.405333 422.144a42.666667 42.666667 0 0 1-38.144-76.288l426.666667-213.333333a42.666667 42.666667 0 0 1 38.144 0l426.666667 213.333333a42.666667 42.666667 0 0 1-38.144 76.288L512 218.368l-407.594667 203.776z" horiz-adv-x="1024" />
<glyph glyph-name="info" unicode="&#59519;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM554.666667 213.333333v170.666667a42.666667 42.666667 0 0 1-85.333334 0v-170.666667a42.666667 42.666667 0 0 1 85.333334 0zM512 554.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="instagram" unicode="&#59520;" d="M128 597.546667v-427.093334A170.453333 170.453333 0 0 1 298.453333 0h427.093334A170.453333 170.453333 0 0 1 896 170.453333V597.546667A170.453333 170.453333 0 0 1 725.546667 768H298.453333A170.453333 170.453333 0 0 1 128 597.546667z m-85.333333 0A255.786667 255.786667 0 0 0 298.453333 853.333333h427.093334A255.786667 255.786667 0 0 0 981.333333 597.546667v-427.093334A255.786667 255.786667 0 0 0 725.546667-85.333333H298.453333A255.786667 255.786667 0 0 0 42.666667 170.453333V597.546667zM640.426667 404.608a128 128 0 1 1-253.184-37.546667 128 128 0 0 1 253.226666 37.546667z m84.48 12.544a213.333333 213.333333 0 1 0-422.101334-62.592 213.333333 213.333333 0 0 0 422.058667 62.592zM725.333333 640m-42.666666 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="layout" unicode="&#59521;" d="M85.333333 682.88A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.66666699999996H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88zM853.333333 554.666667V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88V554.666667h682.666666z m0-85.333334H426.666667v-426.666666h384.213333c23.466667 0 42.453333 18.986667 42.453333 42.453333V469.333333zM341.333333 42.66666699999996V469.333333H170.666667v-384.213333c0-23.466667 18.986667-42.453333 42.453333-42.453333H341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="link-" unicode="&#59522;" d="M640 554.666667h128a170.666667 170.666667 0 1 0 0-341.333334h-128a42.666667 42.666667 0 0 1 0-85.333333h128a256 256 0 1 1 0 512h-128a42.666667 42.666667 0 0 1 0-85.333333z m-256-341.333334H256a170.666667 170.666667 0 0 0 0 341.333334h128a42.666667 42.666667 0 1 1 0 85.333333H256a256 256 0 1 1 0-512h128a42.666667 42.666667 0 0 1 0 85.333333zM341.333333 341.333333h341.333334a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="life-buoy" unicode="&#59523;" d="M272.298667 83.96799999999996A382.378667 382.378667 0 0 1 512 0a382.378667 382.378667 0 0 1 239.701333 83.968l-122.026666 122.026667A212.352 212.352 0 0 0 512 170.66666699999996a212.352 212.352 0 0 0-117.632 35.328l-122.026667-122.026667z m-60.330667 60.330667l122.026667 122.026666A212.352 212.352 0 0 0 298.666667 384c0 43.52 13.013333 83.925333 35.328 117.632l-122.026667 122.026667A382.378667 382.378667 0 0 1 128 384c0-90.666667 31.402667-173.994667 83.968-239.701333z m60.330667 539.733333l122.026666-122.026667A212.352 212.352 0 0 0 512 597.333333c43.52 0 83.925333-13.013333 117.632-35.328l122.026667 122.026667A382.378667 382.378667 0 0 1 512 768a382.378667 382.378667 0 0 1-239.701333-83.968z m539.733333-60.330667l-122.026667-122.026666c22.314667-33.749333 35.328-74.197333 35.328-117.674667 0-43.52-13.013333-83.925333-35.328-117.632l122.026667-122.026667A382.378667 382.378667 0 0 1 896 384a382.378667 382.378667 0 0 1-83.968 239.701333zM512-85.33333300000004C252.8-85.33333300000004 42.666667 124.79999999999995 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 341.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="link" unicode="&#59524;" d="M392.533333 315.776a256 256 0 0 1 386.005334-27.648l128 128a256 256 0 1 1-361.472 362.496l-73.813334-73.386667a42.666667 42.666667 0 1 1 60.16-60.501333l73.386667 72.96a170.538667 170.538667 0 0 0 238.805333-2.517333 170.666667 170.666667 0 0 0 2.090667-239.232l-127.488-127.488A170.666667 170.666667 0 0 0 460.8 366.933333a42.666667 42.666667 0 1 1-68.352-51.114666zM631.466667 452.224a256 256 0 0 1-386.005334 27.648l-128-128a256 256 0 1 1 361.472-362.496l73.472 73.472a42.666667 42.666667 0 0 1-60.330666 60.330667l-72.96-72.96c-66.432-64.170667-172.885333-63.232-238.72 2.602666a170.666667 170.666667 0 0 0-2.090667 239.232l127.488 127.488a170.666667 170.666667 0 0 0 257.365333-18.432 42.666667 42.666667 0 1 1 68.352 51.114667z" horiz-adv-x="1024" />
<glyph glyph-name="log-in" unicode="&#59525;" d="M597.333333-85.333333h213.333334a128 128 0 0 1 128 128V725.333333a128 128 0 0 1-128 128h-213.333334a42.666667 42.666667 0 0 1 0-85.333333h213.333334a42.666667 42.666667 0 0 0 42.666666-42.666667v-682.666666a42.666667 42.666667 0 0 0-42.666666-42.666667h-213.333334a42.666667 42.666667 0 0 1 0-85.333333zM439.168 243.498667a42.666667 42.666667 0 0 1 60.330667-60.330667l170.666666 170.666667a42.666667 42.666667 0 0 1 0 60.330666l-170.666666 170.666667a42.666667 42.666667 0 0 1-60.330667-60.330667L579.669333 384l-140.501333-140.501333zM640 426.666667H128a42.666667 42.666667 0 0 1 0-85.333334h512a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="list" unicode="&#59526;" d="M341.333333 597.333333h554.666667a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 1 1 0-85.333334zM341.333333 341.333333h554.666667a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334zM341.333333 85.333333h554.666667a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334zM128 640m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM128 384m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM128 128m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="lock" unicode="&#59527;" d="M256 469.333333V597.333333a256 256 0 1 0 512 0v-128h42.88A127.957333 127.957333 0 0 0 938.666667 341.674667v-299.349334A127.701333 127.701333 0 0 0 810.88-85.33333300000004H213.12A127.957333 127.957333 0 0 0 85.333333 42.325333v299.349334A127.701333 127.701333 0 0 0 213.12 469.333333H256z m-85.333333-127.658666v-299.349334c0-23.168 19.157333-42.325333 42.453333-42.325333h597.76c23.466667 0 42.453333 18.944 42.453333 42.325333v299.349334a42.624 42.624 0 0 1-42.453333 42.325333H213.12a42.368 42.368 0 0 1-42.453333-42.325333z m170.666666 127.786666h341.333334V597.333333a170.666667 170.666667 0 1 1-341.333334 0v-127.872z" horiz-adv-x="1024" />
<glyph glyph-name="log-out" unicode="&#59528;" d="M426.666667 0H213.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V725.333333a42.666667 42.666667 0 0 0 42.666666 42.666667h213.333334a42.666667 42.666667 0 0 1 0 85.333333H213.333333a128 128 0 0 1-128-128v-682.666666a128 128 0 0 1 128-128h213.333334a42.666667 42.666667 0 0 1 0 85.333333zM695.168 243.498667a42.666667 42.666667 0 0 1 60.330667-60.330667l170.666666 170.666667a42.666667 42.666667 0 0 1 0 60.330666l-170.666666 170.666667a42.666667 42.666667 0 0 1-60.330667-60.330667L835.669333 384l-140.501333-140.501333zM896 426.666667H384a42.666667 42.666667 0 0 1 0-85.333334h512a42.666667 42.666667 0 0 1 0 85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="loader" unicode="&#59529;" d="M469.333333 810.666667v-170.666667a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0zM469.333333 128v-170.666667a42.666667 42.666667 0 0 1 85.333334 0v170.666667a42.666667 42.666667 0 0 1-85.333334 0zM180.181333 655.488l120.746667-120.746667a42.666667 42.666667 0 0 1 60.330667 60.330667l-120.746667 120.746667a42.666667 42.666667 0 0 1-60.330667-60.330667zM662.741333 172.928l120.746667-120.746667a42.666667 42.666667 0 0 1 60.330667 60.330667l-120.746667 120.746667a42.666667 42.666667 0 0 1-60.330667-60.330667zM85.333333 341.333333h170.666667a42.666667 42.666667 0 0 1 0 85.333334H85.333333a42.666667 42.666667 0 0 1 0-85.333334zM768 341.333333h170.666667a42.666667 42.666667 0 0 1 0 85.333334h-170.666667a42.666667 42.666667 0 0 1 0-85.333334zM240.512 52.181333l120.746667 120.746667a42.666667 42.666667 0 0 1-60.330667 60.330667l-120.746667-120.746667a42.666667 42.666667 0 0 1 60.330667-60.330667zM723.072 534.741333l120.746667 120.746667a42.666667 42.666667 0 1 1-60.330667 60.330667l-120.746667-120.746667a42.666667 42.666667 0 1 1 60.330667-60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="mail" unicode="&#59530;" d="M170.666667 768h682.666666c70.485333 0 128-57.514667 128-128v-512c0-70.485333-57.514667-128-128-128H170.666667c-70.485333 0-128 57.514667-128 128V640c0 70.485333 57.514667 128 128 128z m720.768-108.970667A42.922667 42.922667 0 0 1 853.333333 682.666667H170.666667c-16.554667 0-31.061333-9.685333-38.101334-23.637334L512 393.429333l379.434667 265.6zM896 558.0799999999999l-359.552-251.648a42.666667 42.666667 0 0 0-48.896 0L128 558.037333V128c0-23.381333 19.285333-42.666667 42.666667-42.666667h682.666666c23.381333 0 42.666667 19.285333 42.666667 42.666667V558.0799999999999z" horiz-adv-x="1024" />
<glyph glyph-name="maximize-" unicode="&#59531;" d="M853.333333 725.333333v-213.333333a42.666667 42.666667 0 0 1 85.333334 0V768a42.666667 42.666667 0 0 1-42.666667 42.666667h-256a42.666667 42.666667 0 0 1 0-85.333334h213.333333zM170.666667 256a42.666667 42.666667 0 0 1-85.333334 0v-256a42.666667 42.666667 0 0 1 42.666667-42.666667h256a42.666667 42.666667 0 0 1 0 85.333334H170.666667v213.333333zM865.834667 798.165333l-298.666667-298.666666a42.666667 42.666667 0 1 1 60.330667-60.330667l298.666666 298.666667a42.666667 42.666667 0 1 1-60.330666 60.330666zM158.165333-30.165333l298.666667 298.666666a42.666667 42.666667 0 0 1-60.330667 60.330667l-298.666666-298.666667a42.666667 42.666667 0 0 1 60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="map" unicode="&#59532;" d="M640 613.6320000000001l-256 128v-587.264l256-128V613.6320000000001z m85.333333 1.621333v-584.405333l213.333334 121.898667V737.152L725.333333 615.253333zM319.530667 847.36a42.453333 42.453333 0 0 0 41.642666 1.066667l320.170667-160.042667 278.826667 159.317333A42.666667 42.666667 0 0 0 1024 810.666667v-682.666667a42.666667 42.666667 0 0 0-21.504-37.034667l-298.666667-170.666666a42.666667 42.666667 0 0 0-40.234666-1.109334l-320.938667 160.426667-278.826667-159.317333A42.666667 42.666667 0 0 0 0-42.66666699999996V640a42.666667 42.666667 0 0 0 21.504 37.034667L319.530667 847.36zM298.666667 737.152L85.333333 615.253333v-584.405333l213.333334 121.898667V737.152z" horiz-adv-x="1024" />
<glyph glyph-name="map-pin" unicode="&#59534;" d="M545.408-7.253333a1243.946667 1243.946667 0 0 1 127.616 116.608C786.218667 228.821333 853.333333 351.872 853.333333 469.333333a341.333333 341.333333 0 0 1-682.666666 0c0-117.461333 67.114667-240.469333 180.309333-359.978666A1243.946667 1243.946667 0 0 1 512-32.981333c10.325333 7.68 21.546667 16.213333 33.408 25.685333z m189.568 57.898666a1328.298667 1328.298667 0 0 0-181.504-158.976c-8.32-6.016-14.378667-10.24-17.792-12.501333a42.666667 42.666667 0 0 0-47.36 0c-3.413333 2.304-9.472 6.485333-17.792 12.501333a1328.298667 1328.298667 0 0 0-181.504 158.976C162.218667 184.490667 85.333333 325.461333 85.333333 469.333333 85.333333 704.981333 276.352 896 512 896s426.666667-191.018667 426.666667-426.666667c0-143.872-76.885333-284.842667-203.690667-418.688zM512 298.666667a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z m0 85.333333a85.333333 85.333333 0 1 1 0 170.666667 85.333333 85.333333 0 0 1 0-170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="menu" unicode="&#59535;" d="M128 341.333333h768a42.666667 42.666667 0 0 1 0 85.333334H128a42.666667 42.666667 0 0 1 0-85.333334zM128 597.333333h768a42.666667 42.666667 0 0 1 0 85.333334H128a42.666667 42.666667 0 1 1 0-85.333334zM128 85.333333h768a42.666667 42.666667 0 0 1 0 85.333334H128a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="message-circle" unicode="&#59536;" d="M357.717333 121.557333a42.666667 42.666667 0 0 0 32.725334-2.389333A314.965333 314.965333 0 0 1 533.333333 85.333333a320.085333 320.085333 0 0 1 286.165334 177.066667A314.88 314.88 0 0 1 853.333333 405.248l0.085334 19.114667C844.458667 586.752 714.752 716.373333 554.666667 725.333333h-21.461334a315.093333 315.093333 0 0 1-142.933333-33.92A320 320 0 0 1 213.333333 405.205333a314.88 314.88 0 0 1 33.834667-142.762666 42.666667 42.666667 0 0 0 2.389333-32.725334L195.413333 67.413333l162.261334 54.101334z m538.026667 102.570667A405.333333 405.333333 0 0 0 533.504 0a400.213333 400.213333 0 0 0-165.12 35.157333L141.525333-40.533333a42.666667 42.666667 0 0 0-53.973333 53.973333l75.648 226.901333A405.248 405.248 0 0 0 351.957333 767.701333 400.085333 400.085333 0 0 0 533.333333 810.666667l23.68-0.085334C762.88 799.232 927.232 634.88 938.666667 426.666667v-21.290667a400.042667 400.042667 0 0 0-42.88-181.248z" horiz-adv-x="1024" />
<glyph glyph-name="message-square" unicode="&#59537;" d="M268.501333 200.832A42.666667 42.666667 0 0 0 298.666667 213.333333h512a42.666667 42.666667 0 0 1 42.666666 42.666667V682.666667a42.666667 42.666667 0 0 1-42.666666 42.666666H213.333333a42.666667 42.666667 0 0 1-42.666666-42.666666v-579.669334l97.834666 97.834667z m-110.336-230.997333C131.285333-57.045333 85.333333-38.016 85.333333 0V682.666667a128 128 0 0 0 128 128h597.333334a128 128 0 0 0 128-128v-426.666667a128 128 0 0 0-128-128H316.330667l-158.165334-158.165333z" horiz-adv-x="1024" />
<glyph glyph-name="minimize-" unicode="&#59538;" d="M384 42.666667a42.666667 42.666667 0 0 1 85.333333 0v256a42.666667 42.666667 0 0 1-42.666666 42.666666H170.666667a42.666667 42.666667 0 0 1 0-85.333333h213.333333v-213.333333zM640 725.333333a42.666667 42.666667 0 0 1-85.333333 0v-256a42.666667 42.666667 0 0 1 42.666666-42.666666h256a42.666667 42.666667 0 0 1 0 85.333333h-213.333333V725.333333zM627.498667 439.168l298.666666 298.666667a42.666667 42.666667 0 1 1-60.330666 60.330666l-298.666667-298.666666a42.666667 42.666667 0 1 1 60.330667-60.330667zM158.165333-30.165333l298.666667 298.666666a42.666667 42.666667 0 0 1-60.330667 60.330667l-298.666666-298.666667a42.666667 42.666667 0 0 1 60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="mic-off" unicode="&#59539;" d="M13.020151 822.68038l938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738 60.299738l-938.185456 938.185456A42.644793 42.644793 0 1 1 13.020151 822.68038zM341.683574 511.671902v-127.934381a170.579174 170.579174 0 0 1 291.136005-120.599476 42.644793 42.644793 0 0 1-60.299738 60.385028A85.289587 85.289587 0 0 0 426.973161 383.737521V511.671902a42.644793 42.644793 0 1 1-85.289587 0z m341.158348-14.49923V724.895869a170.579174 170.579174 0 0 1-337.746764 34.07319 42.644793 42.644793 0 0 1 83.583795-16.972628 85.289587 85.289587 0 0 0 168.873382-17.057917V497.172672a42.644793 42.644793 0 0 1 85.289587 0zM695.038333 202.497149A255.868761 255.868761 0 0 0 256.393987 383.439008V469.027108a42.644793 42.644793 0 1 1-85.289587 0v-85.289587a341.158348 341.158348 0 0 1 584.830698-240.943083 42.644793 42.644793 0 0 1-60.896765 59.702711zM768.131509 469.027108v-85.289587c0-15.053612-1.364633-30.064579-4.008611-44.904967a42.644793 42.644793 0 1 1 83.924954-15.096257A341.158348 341.158348 0 0 1 853.421095 383.737521V469.027108a42.644793 42.644793 0 0 1-85.289586 0zM469.617955 85.223967v-170.579174a42.644793 42.644793 0 0 1 85.289586 0v170.579174a42.644793 42.644793 0 0 1-85.289586 0zM341.683574-128h341.158348a42.644793 42.644793 0 0 1 0 85.289587H341.683574a42.644793 42.644793 0 0 1 0-85.289587z" horiz-adv-x="1024" />
<glyph glyph-name="minus-circle" unicode="&#59540;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM341.333333 341.333333h341.333334a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="mic" unicode="&#59541;" d="M682.666667 725.333333v-341.333333a170.666667 170.666667 0 1 0-341.333334 0V725.333333a170.666667 170.666667 0 1 0 341.333334 0z m-170.666667 85.333334a85.333333 85.333333 0 0 1-85.333333-85.333334v-341.333333a85.333333 85.333333 0 1 1 170.666666 0V725.333333a85.333333 85.333333 0 0 1-85.333333 85.333334zM768 469.333333v-85.333333a256 256 0 0 0-512 0v85.333333a42.666667 42.666667 0 1 1-85.333333 0v-85.333333a341.333333 341.333333 0 0 1 682.666666 0v85.333333a42.666667 42.666667 0 0 1-85.333333 0zM469.333333 85.333333v-170.666666a42.666667 42.666667 0 0 1 85.333334 0v170.666666a42.666667 42.666667 0 0 1-85.333334 0zM341.333333-128h341.333334a42.666667 42.666667 0 0 1 0 85.333333H341.333333a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="minus-square" unicode="&#59542;" d="M170.666667 682.88v-597.76c0-23.466667 18.986667-42.453333 42.453333-42.453333h597.76c23.466667 0 42.453333 18.986667 42.453333 42.453333V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88z m-85.333334 0A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.666667H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88zM341.333333 341.333333h341.333334a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="minus" unicode="&#59543;" d="M213.333333 341.333333h597.333334a42.666667 42.666667 0 0 1 0 85.333334H213.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="moon" unicode="&#59544;" d="M476.202667 348.245333a342.058667 342.058667 0 0 0-79.786667 358.229334 341.973333 341.973333 0 1 1 438.016-438.016 342.058667 342.058667 0 0 0-358.229333 79.786666z m462.250666-2.773333A427.477333 427.477333 0 1 0 473.472 810.496c36.778667 3.413333 60.245333-38.272 38.314667-67.968a256.469333 256.469333 0 0 1 358.698666-358.741333c29.696 21.973333 71.381333-1.536 67.968-38.314667z" horiz-adv-x="1024" />
<glyph glyph-name="monitor" unicode="&#59545;" d="M554.666667 128v-85.333333h128a42.666667 42.666667 0 0 0 0-85.333334H341.333333a42.666667 42.666667 0 0 0 0 85.333334h128v85.333333H170.24A127.914667 127.914667 0 0 0 42.666667 256.256V682.410667A128.128 128.128 0 0 0 170.24 810.666667h683.52A127.914667 127.914667 0 0 0 981.333333 682.410667v-426.154667A128.128 128.128 0 0 0 853.76 128H554.666667zM128 682.410667v-426.154667A42.581333 42.581333 0 0 1 170.24 213.33333300000004h683.52c23.04 0 42.24 19.285333 42.24 42.922667V682.410667A42.581333 42.581333 0 0 1 853.76 725.333333H170.24C147.2 725.333333 128 706.048 128 682.410667z" horiz-adv-x="1024" />
<glyph glyph-name="more-vertical" unicode="&#59546;" d="M512 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334zM512 597.333333a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333334a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333zM512-85.333333a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="more-horizontal" unicode="&#59547;" d="M512 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334zM853.333333 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334zM170.666667 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="move" unicode="&#59548;" d="M243.498667 481.834667a42.666667 42.666667 0 0 1-60.330667 60.330666l-128-128a42.666667 42.666667 0 0 1 0-60.330666l128-128a42.666667 42.666667 0 1 1 60.330667 60.330666L145.664 384l97.834667 97.834667zM609.834667 652.501333a42.666667 42.666667 0 0 1 60.330666 60.330667l-128 128a42.666667 42.666667 0 0 1-60.330666 0l-128-128a42.666667 42.666667 0 0 1 60.330666-60.330667L512 750.336l97.834667-97.834667zM414.165333 115.498667a42.666667 42.666667 0 1 1-60.330666-60.330667l128-128a42.666667 42.666667 0 0 1 60.330666 0l128 128a42.666667 42.666667 0 0 1-60.330666 60.330667L512 17.664l-97.834667 97.834667zM780.501333 286.165333a42.666667 42.666667 0 0 1 60.330667-60.330666l128 128a42.666667 42.666667 0 0 1 0 60.330666l-128 128a42.666667 42.666667 0 0 1-60.330667-60.330666L878.336 384l-97.834667-97.834667zM85.333333 341.333333h853.333334a42.666667 42.666667 0 0 1 0 85.333334H85.333333a42.666667 42.666667 0 0 1 0-85.333334zM469.333333 810.666667v-853.333334a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="music" unicode="&#59549;" d="M426.666667 646.528V85.33333300000004a128 128 0 0 0-128-128H213.333333a128 128 0 0 0 0 256h128V682.666667a42.666667 42.666667 0 0 0 35.669334 42.069333l512 85.333333A42.666667 42.666667 0 0 0 938.666667 768v-597.333333a128 128 0 0 0-128-128h-85.333334a128 128 0 0 0 0 256h128V717.653333L426.666667 646.528zM341.333333 128H213.333333a42.666667 42.666667 0 0 1 0-85.333333h85.333334a42.666667 42.666667 0 0 1 42.666666 42.666666v42.666667z m512 85.333333h-128a42.666667 42.666667 0 0 1 0-85.333333h85.333334a42.666667 42.666667 0 0 1 42.666666 42.666667v42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="navigation-" unicode="&#59550;" d="M293.845333 52.48l196.992 112.554667a42.666667 42.666667 0 0 0 42.325334 0l196.992-112.554667L512 644.565333 293.845333 52.48z m-59.306666-132.181333c-34.602667-19.754667-75.008 14.421333-61.226667 51.797333l298.666667 810.666667c13.696 37.205333 66.346667 37.205333 80.042666 0l298.666667-810.666667c13.781333-37.376-26.624-71.552-61.184-51.797333L512 78.848l-277.504-158.549333z" horiz-adv-x="1024" />
<glyph glyph-name="navigation" unicode="&#59551;" d="M479.701333 340.053333a42.666667 42.666667 0 0 0 31.018667-31.018666l56.405333-225.706667 281.856 594.986667-594.986666-281.856 225.706666-56.405334z m-362.069333 2.56c-38.826667 9.728-44.117333 62.805333-7.893333 79.957334l810.666666 384c36.266667 17.152 73.984-20.608 56.832-56.832l-384-810.666667c-17.152-36.224-70.229333-30.933333-79.957333 7.893333l-79.146667 316.501334-316.501333 79.146666z" horiz-adv-x="1024" />
<glyph glyph-name="octagon" unicode="&#59552;" d="M128 542.976v-317.952L353.024 0h317.952L896 225.024V542.976L670.976 768H353.024L128 542.976zM335.36 853.333333h353.28a42.666667 42.666667 0 0 0 30.165333-12.501333l250.026667-250.026667A42.666667 42.666667 0 0 0 981.333333 560.64v-353.28a42.666667 42.666667 0 0 0-12.501333-30.165333l-250.026667-250.026667a42.666667 42.666667 0 0 0-30.165333-12.501333H335.36a42.666667 42.666667 0 0 0-30.165333 12.501333l-250.026667 250.026667A42.666667 42.666667 0 0 0 42.666667 207.36V560.64a42.666667 42.666667 0 0 0 12.501333 30.165333l250.026667 250.026667A42.666667 42.666667 0 0 0 335.36 853.333333z" horiz-adv-x="1024" />
<glyph glyph-name="package" unicode="&#59553;" d="M568.96 872.362667l341.333333-170.666667A128 128 0 0 0 981.333333 587.093333v-406.613333a128 128 0 0 0-70.954666-114.517333l-341.333334-170.666667a128 128 0 0 0-114.517333 0L113.066667 66.00533299999995A127.872 127.872 0 0 0 42.666667 180.90666699999997V587.093333a128 128 0 0 0 70.954666 114.517334L455.04 872.362667a128 128 0 0 0 113.92 0z m274.090667-232.490667l-312.106667 156.074667a42.624 42.624 0 0 1-37.845333 0L394.282667 746.624 725.333333 581.034667l117.717334 58.88zM896 570.965333l-151.125333-75.562666a42.837333 42.837333 0 0 0-0.853334-0.426667L554.666667 400.298667v-416.810667l317.653333 158.848A42.666667 42.666667 0 0 1 896 180.48000000000002V570.965333zM469.333333-16.725332999999978v417.024l-341.333333 170.666666v-390.357333c-0.128-16.213333 8.96-31.104 23.338667-38.357333L469.333333-16.725332999999978zM298.88 698.837333L180.949333 639.914667 512 474.368 629.930667 533.333333 298.88 698.88z" horiz-adv-x="1024" />
<glyph glyph-name="pause-circle" unicode="&#59554;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM469.333333 256V512a42.666667 42.666667 0 0 1-85.333333 0v-256a42.666667 42.666667 0 0 1 85.333333 0zM640 256V512a42.666667 42.666667 0 0 1-85.333333 0v-256a42.666667 42.666667 0 0 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="pause" unicode="&#59555;" d="M298.666667 682.666667v-597.333334h85.333333V682.666667H298.666667zM256 768h170.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-682.666666a42.666667 42.666667 0 0 0-42.666666-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667V725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667zM640 682.666667v-597.333334h85.333333V682.666667h-85.333333z m-42.666667 85.333333h170.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-682.666666a42.666667 42.666667 0 0 0-42.666667-42.666667h-170.666667a42.666667 42.666667 0 0 0-42.666666 42.666667V725.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="percent" unicode="&#59556;" d="M780.501333 712.832l-597.333333-597.333333a42.666667 42.666667 0 0 1 60.330667-60.330667l597.333333 597.333333a42.666667 42.666667 0 1 1-60.330667 60.330667zM277.333333 469.333333a149.333333 149.333333 0 1 0 0 298.666667 149.333333 149.333333 0 0 0 0-298.666667z m0 85.333334a64 64 0 1 1 0 128 64 64 0 0 1 0-128zM746.666667 0a149.333333 149.333333 0 1 0 0 298.666667 149.333333 149.333333 0 0 0 0-298.666667z m0 85.333333a64 64 0 1 1 0 128 64 64 0 0 1 0-128z" horiz-adv-x="1024" />
<glyph glyph-name="phone-call" unicode="&#59557;" d="M981.333333 3.5839999999999463a128 128 0 0 0-140.288-127.914667 886.613333 886.613333 0 0 0-386.474666 137.386667 874.24 874.24 0 0 0-268.928 268.8A887.68 887.68 0 0 0 47.957333 671.146667 128 128 0 0 0 175.36 810.666667H302.933333a128.085333 128.085333 0 0 0 128.042667-110.506667c4.992-37.76 14.250667-74.837333 27.52-110.421333a128.085333 128.085333 0 0 0-28.970667-135.253334l-30.592-30.549333a640 640 0 0 1 195.669334-195.669333l30.72 30.762666a128 128 0 0 0 134.997333 28.842667c35.669333-13.312 72.746667-22.570667 110.933333-27.605333A128 128 0 0 0 981.333333 130.986667v-127.36z m-85.333333 127.829333c0.554667 22.698667-15.232 41.344-36.266667 44.330667a590.72 590.72 0 0 0-129.365333 32.213333 42.581333 42.581333 0 0 1-44.8-9.429333l-54.186667-54.186667a42.666667 42.666667 0 0 0-51.285333-6.912 725.333333 725.333333 0 0 0-272 272 42.666667 42.666667 0 0 0 6.912 51.242667l54.016 54.016a42.666667 42.666667 0 0 1 9.557333 45.098667 589.525333 589.525333 0 0 0-32.128 128.853333A42.794667 42.794667 0 0 1 303.36 725.333333h-128a42.666667 42.666667 0 0 1-42.496-45.824 802.133333 802.133333 0 0 1 124.586667-351.573333 789.802667 789.802667 0 0 1 243.2-243.072 801.024 801.024 0 0 1 348.842666-124.288A42.666667 42.666667 0 0 1 896 3.413332999999966v128zM633.984 598.144a42.666667 42.666667 0 0 0 16.298667 83.712 256 256 0 0 0 202.24-202.24 42.666667 42.666667 0 1 0-83.712-16.298667 170.666667 170.666667 0 0 1-134.826667 134.826667z m3.413333 170.112a42.666667 42.666667 0 1 0 9.429334 84.821333 426.666667 426.666667 0 0 0 376.917333-376.405333 42.666667 42.666667 0 0 0-84.821333-9.557333 341.333333 341.333333 0 0 1-301.482667 301.141333z" horiz-adv-x="1024" />
<glyph glyph-name="phone-forwarded" unicode="&#59558;" d="M780.478569 499.510231a42.665422 42.665422 0 1 1 60.328907-60.328907l170.661689 170.661689a42.665422 42.665422 0 0 1 0 60.328907l-170.661689 170.661689a42.665422 42.665422 0 0 1-60.328907-60.328907L920.975805 640.007466l-140.497236-140.497235zM639.981334 597.342044h341.323378a42.665422 42.665422 0 0 1 0 85.330845h-341.323378a42.665422 42.665422 0 0 1 0-85.330845zM895.547213 129.174366a43.049411 43.049411 0 0 1-36.521601 44.45737 594.542659 594.542659 0 0 0-129.958876 32.34039 42.836084 42.836084 0 0 1-45.097352-9.471724l-54.441079-54.355748c-13.652935-13.652935-34.729654-16.468853-51.53983-6.954464a728.384089 728.384089 0 0 0-273.35736 272.888041 42.750753 42.750753 0 0 0 6.954464 51.454499l54.270417 54.185087c11.775657 11.903653 15.572879 29.524472 9.642385 45.225347-15.65821 41.897445-26.495227 85.37351-32.297724 129.27623-3.029245 21.332711-21.375377 37.033587-43.305404 36.820259H171.259005a42.921415 42.921415 0 0 1-42.708088-45.993325 803.859221 803.859221 0 0 1 125.180349-352.672381 793.107534 793.107534 0 0 1 244.47287-243.918219 805.949826 805.949826 0 0 1 350.581774-124.668363 42.921415 42.921415 0 0 1 46.718638 42.96408v128.422921zM981.304712 0.922106a128.33759 128.33759 0 0 0-41.684118-95.143891 129.190899 129.190899 0 0 0-99.325103-33.193699 892.091314 892.091314 0 0 0-388.468669 137.809314 877.883728 877.883728 0 0 0-270.28545 269.7308 889.574054 889.574054 0 0 0-138.363965 390.559275 128.294925 128.294925 0 0 0 33.108368 98.130471A128.764244 128.764244 0 0 0 171.21634 810.669155H299.511264a128.678914 128.678914 0 0 0 128.678914-110.844767c5.03452-37.886895 14.292916-75.091143 27.647193-110.802101 17.663485-46.931964 6.399813-99.837088-29.097818-135.676043l-30.761769-30.719104a642.669255 642.669255 0 0 1 196.687597-196.260942l30.889765 30.8471a128.764244 128.764244 0 0 0 135.633378 28.927156c35.838955-13.354277 73.128534-22.612674 111.484748-27.689859a128.508252 128.508252 0 0 0 110.63144-129.745549v-127.78294z" horiz-adv-x="1024" />
<glyph glyph-name="phone-missed" unicode="&#59559;" d="M951.140258 840.833609l-255.992533-255.992534a42.665422 42.665422 0 1 1 60.328907-60.328907l255.992533 255.992534a42.665422 42.665422 0 1 1-60.328907 60.328907zM695.147725 780.504702l255.992533-255.992534a42.665422 42.665422 0 0 1 60.328907 60.328907l-255.992533 255.992534a42.665422 42.665422 0 0 1-60.328907-60.328907zM895.547213 129.174366a43.049411 43.049411 0 0 1-36.521601 44.45737 594.542659 594.542659 0 0 0-129.958876 32.34039 42.836084 42.836084 0 0 1-45.097352-9.471724l-54.441079-54.355748c-13.652935-13.652935-34.729654-16.468853-51.53983-6.954464a728.384089 728.384089 0 0 0-273.35736 272.888041 42.750753 42.750753 0 0 0 6.954464 51.454499l54.270417 54.185087c11.775657 11.903653 15.572879 29.524472 9.642385 45.225347-15.65821 41.897445-26.495227 85.37351-32.297724 129.27623-3.029245 21.332711-21.375377 37.033587-43.305404 36.820259H171.259005a42.921415 42.921415 0 0 1-42.708088-45.993325 803.859221 803.859221 0 0 1 125.180349-352.672381 793.107534 793.107534 0 0 1 244.47287-243.918219 805.949826 805.949826 0 0 1 350.581774-124.668363 42.921415 42.921415 0 0 1 46.718638 42.96408v128.422921zM981.304712 0.922106a128.33759 128.33759 0 0 0-41.684118-95.143891 129.190899 129.190899 0 0 0-99.325103-33.193699 892.091314 892.091314 0 0 0-388.468669 137.809314 877.883728 877.883728 0 0 0-270.28545 269.7308 889.574054 889.574054 0 0 0-138.363965 390.559275 128.294925 128.294925 0 0 0 33.108368 98.130471A128.764244 128.764244 0 0 0 171.21634 810.669155H299.511264a128.678914 128.678914 0 0 0 128.678914-110.844767c5.03452-37.886895 14.292916-75.091143 27.647193-110.802101 17.663485-46.931964 6.399813-99.837088-29.097818-135.676043l-30.761769-30.719104a642.669255 642.669255 0 0 1 196.687597-196.260942l30.889765 30.8471a128.764244 128.764244 0 0 0 135.633378 28.927156c35.838955-13.354277 73.128534-22.612674 111.484748-27.689859a128.508252 128.508252 0 0 0 110.63144-129.745549v-127.78294z" horiz-adv-x="1024" />
<glyph glyph-name="phone-off" unicode="&#59560;" d="M485.596263 358.022711a42.644793 42.644793 0 1 1-60.299738-60.299738 724.961489 724.961489 0 0 1 154.502087-117.78492 42.644793 42.644793 0 0 1 51.216397 6.908457l54.158887 54.158888a42.559504 42.559504 0 0 0 44.819678 9.381854c41.791898-15.56535 85.119008-26.354482 129.256369-32.154174a42.559504 42.559504 0 0 0 36.290719-42.644793v-128.318184a42.730083 42.730083 0 0 0-46.482825-42.815373 800.613352 800.613352 0 0 0-348.663831 124.224284c-49.041512 31.130699-94.244994 67.378774-135.056061 108.232485a42.644793 42.644793 0 1 1-60.299738-60.299737 870.806682 870.806682 0 0 1 149.299422-119.703936 886.158808 886.158808 0 0 1 386.276539-137.316235A127.93438 127.93438 0 0 1 980.830249 47.44068V175.204481a127.806446 127.806446 0 0 1-110.023567 127.507933 505.895185 505.895185 0 0 0-110.876463 27.591181 127.93438 127.93438 0 0 1-134.885482-28.82788l-30.746896-30.746896a639.671902 639.671902 0 0 0-108.701578 87.293892z m-228.490803 14.371295a801.295669 801.295669 0 0 0-124.309573 349.431438A42.644793 42.644793 0 0 0 175.312746 767.540662H303.204481c21.834134 0.213224 40.086106-15.48006 43.071242-36.674522 5.757047-43.753558 16.54618-87.080668 32.111529-128.787276a42.644793 42.644793 0 0 0-9.552434-45.075547L314.84651 503.015009a42.644793 42.644793 0 0 1 60.299738-60.299738l54.158888 54.158887a128.01967 128.01967 0 0 1 28.998459 135.141351A504.70113 504.70113 0 0 0 430.712414 742.380234a128.01967 128.01967 0 0 1-127.934381 110.40737H175.270101a127.93438 127.93438 0 0 1-127.337353-139.448474 887.310217 887.310217 0 0 1 137.614748-387.385304 42.644793 42.644793 0 0 1 71.557964 46.397535zM950.68038 882.980118l-938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738-60.299738l938.185456 938.185456A42.644793 42.644793 0 1 1 950.68038 882.980118z" horiz-adv-x="1024" />
<glyph glyph-name="phone-incoming" unicode="&#59561;" d="M725.312178 768.003733a42.665422 42.665422 0 0 1-85.330844 0v-255.992533a42.665422 42.665422 0 0 1 42.665422-42.665423h255.992534a42.665422 42.665422 0 0 1 0 85.330845h-213.327112V768.003733zM951.140258 840.833609l-298.657955-298.657956a42.665422 42.665422 0 1 1 60.328907-60.328907l298.657955 298.657956a42.665422 42.665422 0 1 1-60.328907 60.328907zM895.547213 129.174366a43.049411 43.049411 0 0 1-36.521601 44.45737 594.542659 594.542659 0 0 0-129.958876 32.34039 42.836084 42.836084 0 0 1-45.097352-9.471724l-54.441079-54.355748c-13.652935-13.652935-34.729654-16.468853-51.53983-6.954464a728.384089 728.384089 0 0 0-273.35736 272.888041 42.750753 42.750753 0 0 0 6.954464 51.454499l54.270417 54.185087c11.775657 11.903653 15.572879 29.524472 9.642385 45.225347-15.65821 41.897445-26.495227 85.37351-32.297724 129.27623-3.029245 21.332711-21.375377 37.033587-43.305404 36.820259H171.259005a42.921415 42.921415 0 0 1-42.708088-45.993325 803.859221 803.859221 0 0 1 125.180349-352.672381 793.107534 793.107534 0 0 1 244.47287-243.918219 805.949826 805.949826 0 0 1 350.581774-124.668363 42.921415 42.921415 0 0 1 46.718638 42.96408v128.422921zM981.304712 0.922106a128.33759 128.33759 0 0 0-41.684118-95.143891 129.190899 129.190899 0 0 0-99.325103-33.193699 892.091314 892.091314 0 0 0-388.468669 137.809314 877.883728 877.883728 0 0 0-270.28545 269.7308 889.574054 889.574054 0 0 0-138.363965 390.559275 128.294925 128.294925 0 0 0 33.108368 98.130471A128.764244 128.764244 0 0 0 171.21634 810.669155H299.511264a128.678914 128.678914 0 0 0 128.678914-110.844767c5.03452-37.886895 14.292916-75.091143 27.647193-110.802101 17.663485-46.931964 6.399813-99.837088-29.097818-135.676043l-30.761769-30.719104a642.669255 642.669255 0 0 1 196.687597-196.260942l30.889765 30.8471a128.764244 128.764244 0 0 0 135.633378 28.927156c35.838955-13.354277 73.128534-22.612674 111.484748-27.689859a128.508252 128.508252 0 0 0 110.63144-129.745549v-127.78294z" horiz-adv-x="1024" />
<glyph glyph-name="phone" unicode="&#59562;" d="M895.573333 171.818667a43.050667 43.050667 0 0 1-36.522666 44.458666 594.56 594.56 0 0 0-129.962667 32.341334 42.837333 42.837333 0 0 1-45.098667-9.472l-54.442666-54.357334c-13.653333-13.653333-34.730667-16.469333-51.541334-6.954666a728.405333 728.405333 0 0 0-273.365333 272.896 42.752 42.752 0 0 0 6.954667 51.456l54.272 54.186666c11.776 11.904 15.573333 29.525333 9.642666 45.226667-15.658667 41.898667-26.496 85.376-32.298666 129.28-3.029333 21.333333-21.376 37.034667-43.306667 36.821333H171.264a42.922667 42.922667 0 0 1-42.709333-45.994666 803.882667 803.882667 0 0 1 125.184-352.682667 793.130667 793.130667 0 0 1 244.48-243.925333 805.973333 805.973333 0 0 1 350.592-124.672 42.922667 42.922667 0 0 1 46.72 42.965333v128.426667zM981.333333 43.562667a128.341333 128.341333 0 0 0-41.685333-95.146667 129.194667 129.194667 0 0 0-99.328-33.194667 892.117333 892.117333 0 0 0-388.48 137.813334 877.909333 877.909333 0 0 0-270.293333 269.738666 889.6 889.6 0 0 0-138.368 390.570667 128.298667 128.298667 0 0 0 33.109333 98.133333A128.768 128.768 0 0 0 171.221333 853.333333H299.52a128.682667 128.682667 0 0 0 128.682667-110.848c5.034667-37.888 14.293333-75.093333 27.648-110.805333 17.664-46.933333 6.4-99.84-29.098667-135.68l-30.762667-30.72a642.688 642.688 0 0 1 196.693334-196.266667l30.890666 30.848a128.768 128.768 0 0 0 135.637334 28.928c35.84-13.354667 73.130667-22.613333 111.488-27.690666a128.512 128.512 0 0 0 110.634666-129.749334v-127.786666z" horiz-adv-x="1024" />
<glyph glyph-name="phone-outgoing" unicode="&#59563;" d="M938.63929 768.003733v-213.327111a42.665422 42.665422 0 0 1 85.330844 0V810.669155a42.665422 42.665422 0 0 1-42.665422 42.665423h-255.992534a42.665422 42.665422 0 0 1 0-85.330845h213.327112zM712.81121 481.846746l298.657955 298.657956a42.665422 42.665422 0 1 1-60.328907 60.328907l-298.657955-298.657956a42.665422 42.665422 0 1 1 60.328907-60.328907zM895.973867 131.435633c0.55465 22.698005-15.231556 41.342794-36.265608 44.329374a590.702771 590.702771 0 0 0-129.361561 32.212394 42.580091 42.580091 0 0 1-44.798693-9.429059l-54.185086-54.185086a42.665422 42.665422 0 0 0-51.283838-6.911798 725.312178 725.312178 0 0 0-271.992067 271.992067 42.665422 42.665422 0 0 0 6.911799 51.241172l54.014424 54.014424a42.665422 42.665422 0 0 1 9.557055 45.097352 589.508139 589.508139 0 0 0-32.127063 128.849575A42.793419 42.793419 0 0 1 303.351152 725.338311h-127.996267a42.665422 42.665422 0 0 1-42.49476-45.822664 802.109938 802.109938 0 0 1 124.583033-351.563079 789.779631 789.779631 0 0 1 243.192907-243.064911 801.000637 801.000637 0 0 1 348.832492-124.284375A42.665422 42.665422 0 0 1 895.973867 3.439366v127.996267z m85.330845-130.513527a128.33759 128.33759 0 0 0-41.684118-95.143891 129.190899 129.190899 0 0 0-99.325103-33.193699 892.091314 892.091314 0 0 0-388.468669 137.809314 877.883728 877.883728 0 0 0-270.28545 269.7308 889.574054 889.574054 0 0 0-138.363965 390.559275 128.294925 128.294925 0 0 0 33.108368 98.130471A128.764244 128.764244 0 0 0 171.21634 810.669155H299.511264a128.678914 128.678914 0 0 0 128.678914-110.844767c5.03452-37.886895 14.292916-75.091143 27.647193-110.802101 17.663485-46.931964 6.399813-99.837088-29.097818-135.676043l-30.761769-30.719104a642.669255 642.669255 0 0 1 196.687597-196.260942l30.889765 30.8471a128.764244 128.764244 0 0 0 135.633378 28.927156c35.838955-13.354277 73.128534-22.612674 111.484748-27.689859a128.508252 128.508252 0 0 0 110.63144-129.745549v-127.78294z" horiz-adv-x="1024" />
<glyph glyph-name="pie-chart" unicode="&#59564;" d="M865.664 234.666667A384 384 0 1 0 358.4 736.085333a42.666667 42.666667 0 0 1-34.133333 78.250667A469.333333 469.333333 0 1 1 944.256 201.386667a42.666667 42.666667 0 0 1-78.592 33.194666zM981.333333 384a42.666667 42.666667 0 0 0-42.666666-42.666667H512a42.666667 42.666667 0 0 0-42.666667 42.666667V810.666667a42.666667 42.666667 0 0 0 42.666667 42.666666 469.333333 469.333333 0 0 0 469.333333-469.333333z m-197.802666 271.530667A384 384 0 0 1 554.666667 765.610667V426.666667h338.944a384 384 0 0 1-110.08 228.864z" horiz-adv-x="1024" />
<glyph glyph-name="play-circle" unicode="&#59565;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM469.333333 293.077333L605.738667 384 469.333333 474.922667v-181.845334z m-18.986666 297.088l256-170.666666a42.666667 42.666667 0 0 0 0-70.997334l-256-170.666666A42.666667 42.666667 0 0 0 384 213.333333V554.666667a42.666667 42.666667 0 0 0 66.346667 35.498666z" horiz-adv-x="1024" />
<glyph glyph-name="play" unicode="&#59566;" d="M256 78.165333L731.733333 384 256 689.834667v-611.669334z m-19.626667 725.76l597.333334-384a42.666667 42.666667 0 0 0 0-71.808l-597.333334-384A42.666667 42.666667 0 0 0 170.666667 0V768a42.666667 42.666667 0 0 0 65.706666 35.882667z" horiz-adv-x="1024" />
<glyph glyph-name="plus-square" unicode="&#59567;" d="M170.666667 682.88v-597.76c0-23.466667 18.986667-42.453333 42.453333-42.453333h597.76c23.466667 0 42.453333 18.986667 42.453333 42.453333V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88z m-85.333334 0A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.666667H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88zM469.333333 554.666667v-341.333334a42.666667 42.666667 0 0 1 85.333334 0V554.666667a42.666667 42.666667 0 0 1-85.333334 0zM341.333333 341.333333h341.333334a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="plus-circle" unicode="&#59568;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM469.333333 554.666667v-341.333334a42.666667 42.666667 0 0 1 85.333334 0V554.666667a42.666667 42.666667 0 0 1-85.333334 0zM341.333333 341.333333h341.333334a42.666667 42.666667 0 0 1 0 85.333334H341.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="plus" unicode="&#59569;" d="M469.333333 682.666667v-597.333334a42.666667 42.666667 0 0 1 85.333334 0V682.666667a42.666667 42.666667 0 0 1-85.333334 0zM213.333333 341.333333h597.333334a42.666667 42.666667 0 0 1 0 85.333334H213.333333a42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="pocket" unicode="&#59570;" d="M128 682.666667v-256a384 384 0 1 1 768 0V682.666667a42.666667 42.666667 0 0 1-42.666667 42.666666H170.666667a42.666667 42.666667 0 0 1-42.666667-42.666666z m725.333333 128a128 128 0 0 0 128-128v-256c0-259.2-210.133333-469.333333-469.333333-469.333334A469.333333 469.333333 0 0 0 42.666667 426.666667V682.666667a128 128 0 0 0 128 128h682.666666zM371.498667 499.498667a42.666667 42.666667 0 1 1-60.330667-60.330667l170.666667-170.666667a42.666667 42.666667 0 0 1 60.330666 0l170.666667 170.666667a42.666667 42.666667 0 1 1-60.330667 60.330667L512 358.997333 371.498667 499.498667z" horiz-adv-x="1024" />
<glyph glyph-name="printer" unicode="&#59571;" d="M298.666667 554.666667h426.666666V768H298.666667v-213.333333zM213.333333 554.666667V810.666667a42.666667 42.666667 0 0 0 42.666667 42.666666h512a42.666667 42.666667 0 0 0 42.666667-42.666666v-256h42.666666a128 128 0 0 0 128-128v-213.333334a128 128 0 0 0-128-128h-85.333333a42.666667 42.666667 0 0 0 0 85.333334h85.333333a42.666667 42.666667 0 0 1 42.666667 42.666666v213.333334a42.666667 42.666667 0 0 1-42.666667 42.666666H170.666667a42.666667 42.666667 0 0 1-42.666667-42.666666v-213.333334a42.666667 42.666667 0 0 1 42.666667-42.666666h85.333333a42.666667 42.666667 0 0 0 0-85.333334H170.666667a128 128 0 0 0-128 128v213.333334a128 128 0 0 0 128 128h42.666666zM298.666667 0h426.666666v256H298.666667v-256z m-42.666667 341.333333h512a42.666667 42.666667 0 0 0 42.666667-42.666666v-341.333334a42.666667 42.666667 0 0 0-42.666667-42.666666H256a42.666667 42.666667 0 0 0-42.666667 42.666666v341.333334a42.666667 42.666667 0 0 0 42.666667 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="power" unicode="&#59572;" d="M753.408 582.528a341.333333 341.333333 0 1 0-482.816 0 42.666667 42.666667 0 1 1-60.330667 60.330667c-166.613333-166.656-166.570667-436.778667 0.042667-603.349334 166.613333-166.613333 436.778667-166.613333 603.392 0 166.613333 166.570667 166.656 436.693333 0.042667 603.349334a42.666667 42.666667 0 1 1-60.330667-60.330667zM469.333333 810.666667v-426.666667a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="radio" unicode="&#59573;" d="M512 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334zM662.741333 534.741333a213.333333 213.333333 0 0 0 0-301.866666 42.666667 42.666667 0 1 1 60.330667-60.373334 298.666667 298.666667 0 0 1 0 422.613334 42.666667 42.666667 0 1 1-60.330667-60.373334z m-301.482666-301.482666a213.333333 213.333333 0 0 0 0 301.866666 42.666667 42.666667 0 0 1-60.330667 60.373334 298.666667 298.666667 0 0 1 0-422.613334 42.666667 42.666667 0 1 1 60.330667 60.373334z m422.229333 422.229333a384 384 0 0 0 0-542.976 42.666667 42.666667 0 1 1 60.330667-60.330667c183.210667 183.253333 183.210667 480.384 0 663.637334a42.666667 42.666667 0 1 1-60.330667-60.330667zM240.512 112.512a384 384 0 0 0 0 542.976 42.666667 42.666667 0 0 1-60.330667 60.330667c-183.210667-183.253333-183.210667-480.384 0-663.637334a42.666667 42.666667 0 1 1 60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="repeat" unicode="&#59574;" d="M695.074022 542.346875a42.644776 42.644776 0 1 1 60.299713-60.299713l170.579103 170.579103a42.644776 42.644776 0 0 1 0 60.299713l-170.579103 170.579103a42.644776 42.644776 0 0 1-60.299713-60.299713L835.503268 682.776122l-140.429246-140.429247zM170.841795 426.907468V512.197019a127.934327 127.934327 0 0 0 127.934327 127.934327h597.026859a42.644776 42.644776 0 0 1 0 85.289551H298.776122a213.223878 213.223878 0 0 1-213.223879-213.223878v-85.289551a42.644776 42.644776 0 0 1 85.289552 0zM328.925978 226.178508a42.644776 42.644776 0 0 1-60.299713 60.299713l-170.579103-170.579103a42.644776 42.644776 0 0 1 0-60.299712l170.579103-170.579103a42.644776 42.644776 0 1 1 60.299713 60.299713L188.496732 85.749262l140.429246 140.429246zM853.158205 341.617916v-85.289551a127.934327 127.934327 0 0 0-127.934327-127.934327H128.197019a42.644776 42.644776 0 0 1 0-85.289552h597.026859a213.223878 213.223878 0 0 1 213.223879 213.223879v85.289551a42.644776 42.644776 0 0 1-85.289552 0z" horiz-adv-x="1024" />
<glyph glyph-name="refresh-ccw" unicode="&#59575;" d="M85.378987 725.333333a42.666667 42.666667 0 1 1-85.333334 0v-256a42.666667 42.666667 0 0 1 42.666667-42.666666h256a42.666667 42.666667 0 0 1 0 85.333333H85.378987V725.333333zM938.71232 42.666667a42.666667 42.666667 0 0 1 85.333333 0v256a42.666667 42.666667 0 0 1-42.666666 42.666666h-256a42.666667 42.666667 0 0 1 0-85.333333h213.333333v-213.333333zM914.52032 526.250667a426.666667 426.666667 0 0 1-704 159.274666L13.485653 500.437333a42.666667 42.666667 0 0 1 58.453334-62.208l197.973333 186.026667a341.973333 341.973333 0 0 0 317.696 92.586667 341.333333 341.333333 0 0 0 246.442667-219.093334 42.666667 42.666667 0 0 1 80.469333 28.501334z m37.632-196.48l-197.973333-186.026667a341.973333 341.973333 0 0 0-317.696-92.586667 341.333333 341.333333 0 0 0-246.442667 219.093334 42.666667 42.666667 0 0 1-80.469333-28.501334 426.666667 426.666667 0 0 1 704-159.274666l197.034666 185.088a42.666667 42.666667 0 0 1-58.453333 62.208z" horiz-adv-x="1024" />
<glyph glyph-name="rewind" unicode="&#59576;" d="M426.666667 595.413333L154.837333 384 426.666667 172.586667v422.826666z m16.469333-543.744l-384 298.666667a42.666667 42.666667 0 0 0 0 67.328l384 298.666667A42.666667 42.666667 0 0 0 512 682.666667v-597.333334a42.666667 42.666667 0 0 0-68.864-33.706666zM896 172.586667v422.826666L624.170667 384 896 172.586667z m16.469333-120.917334l-384 298.666667a42.666667 42.666667 0 0 0 0 67.328l384 298.666667A42.666667 42.666667 0 0 0 981.333333 682.666667v-597.333334a42.666667 42.666667 0 0 0-68.864-33.706666z" horiz-adv-x="1024" />
<glyph glyph-name="rotate-ccw" unicode="&#59577;" d="M128 725.333333a42.666667 42.666667 0 1 1-85.333333 0v-256a42.666667 42.666667 0 0 1 42.666666-42.666666h256a42.666667 42.666667 0 0 1 0 85.333333H128V725.333333zM152.192 242.218667a426.666667 426.666667 0 1 1 100.949333 443.733333l-197.034666-185.173333a42.666667 42.666667 0 1 1 58.453333-62.165334l197.973333 186.026667a341.76 341.76 0 0 0 407.210667 58.069333 341.333333 341.333333 0 1 0-487.082667-412.16 42.666667 42.666667 0 1 1-80.469333-28.330666z" horiz-adv-x="1024" />
<glyph glyph-name="refresh-cw" unicode="&#59578;" d="M725.378987 512a42.666667 42.666667 0 0 1 0-85.333333h256a42.666667 42.666667 0 0 1 42.666666 42.666666V725.333333a42.666667 42.666667 0 0 1-85.333333 0v-213.333333h-213.333333zM85.378987 256h213.333333a42.666667 42.666667 0 0 1 0 85.333333H42.71232a42.666667 42.666667 0 0 1-42.666667-42.666666v-256a42.666667 42.666667 0 0 1 85.333334 0v213.333333zM190.04032 497.749333a341.333333 341.333333 0 0 0 563.2 127.445334l198.912-186.965334a42.666667 42.666667 0 0 1 58.453333 62.208l-197.973333 186.026667A426.026667 426.026667 0 0 1 417.666987 800a426.666667 426.666667 0 0 1-308.053334-273.792 42.666667 42.666667 0 0 1 80.426667-28.501333zM13.485653 267.562667l197.973334-186.026667a426.026667 426.026667 0 0 1 394.965333-113.578667 426.666667 426.666667 0 0 1 308.053333 273.792 42.666667 42.666667 0 0 1-80.426666 28.501334 341.333333 341.333333 0 0 0-563.2-127.445334l-198.912 186.965334a42.666667 42.666667 0 0 1-58.453334-62.208z" horiz-adv-x="1024" />
<glyph glyph-name="rotate-cw" unicode="&#59579;" d="M682.666667 512a42.666667 42.666667 0 0 1 0-85.333333h256a42.666667 42.666667 0 0 1 42.666666 42.666666V725.333333a42.666667 42.666667 0 0 1-85.333333 0v-213.333333h-213.333333zM791.338667 270.208a341.333333 341.333333 0 1 0-80.384 354.986667l198.442666-186.922667a42.666667 42.666667 0 0 1 58.538667 62.122667l-197.546667 186.026666c-133.418667 133.546667-340.48 162.901333-506.88 71.125334a426.666667 426.666667 0 1 1 608.298667-515.754667 42.666667 42.666667 0 1 1-80.469333 28.416z" horiz-adv-x="1024" />
<glyph glyph-name="save" unicode="&#59580;" d="M341.333333 725.333333v-128h298.666667a42.666667 42.666667 0 0 0 0-85.333333H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V725.333333H213.333333a42.666667 42.666667 0 0 1-42.666666-42.666666v-597.333334a42.666667 42.666667 0 0 1 42.666666-42.666666h42.666667v298.666666a42.666667 42.666667 0 0 0 42.666667 42.666667h426.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-298.666666h42.666667a42.666667 42.666667 0 0 1 42.666666 42.666666V537.002667L665.002667 725.333333H341.333333z m341.333334-682.666666v256H341.333333v-256h341.333334z m128-85.333334H213.333333a128 128 0 0 0-128 128V682.666667a128 128 0 0 0 128 128h469.333334a42.666667 42.666667 0 0 0 30.165333-12.501334l213.333333-213.333333A42.666667 42.666667 0 0 0 938.666667 554.666667v-469.333334a128 128 0 0 0-128-128z" horiz-adv-x="1024" />
<glyph glyph-name="search" unicode="&#59581;" d="M732.842667 223.48800000000006l193.322666-193.28a42.666667 42.666667 0 0 0-60.330666-60.373333l-193.322667 193.322666a362.666667 362.666667 0 1 0 60.330667 60.330667zM448 170.66666699999996a277.333333 277.333333 0 1 1 0 554.666666 277.333333 277.333333 0 0 1 0-554.666666z" horiz-adv-x="1024" />
<glyph glyph-name="server" unicode="&#59582;" d="M128 725.418667v-170.837334A42.24 42.24 0 0 1 170.24 512h683.52c23.125333 0 42.24 19.157333 42.24 42.581333V725.418667A42.24 42.24 0 0 1 853.76 768H170.24a42.624 42.624 0 0 1-42.24-42.581333z m-85.333333 0A127.957333 127.957333 0 0 0 170.24 853.333333h683.52A127.573333 127.573333 0 0 0 981.333333 725.418667v-170.837334A127.957333 127.957333 0 0 0 853.76 426.666667H170.24A127.573333 127.573333 0 0 0 42.666667 554.581333V725.418667zM128 213.418667v-170.837334a42.24 42.24 0 0 1 42.24-42.581333h683.52c23.125333 0 42.24 19.157333 42.24 42.581333v170.837334a42.24 42.24 0 0 1-42.24 42.581333H170.24a42.624 42.624 0 0 1-42.24-42.581333z m-85.333333 0A127.957333 127.957333 0 0 0 170.24 341.333333h683.52A127.573333 127.573333 0 0 0 981.333333 213.418667v-170.837334A127.957333 127.957333 0 0 0 853.76-85.333333H170.24A127.573333 127.573333 0 0 0 42.666667 42.581333v170.837334zM298.666667 128m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0ZM298.666667 640m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="scissors" unicode="&#59583;" d="M298.666667 469.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM298.666667-42.66666699999996a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM494.336 384L358.954667 519.381333a42.666667 42.666667 0 0 0 60.330666 60.330667L554.666667 444.330667l311.168 311.168a42.666667 42.666667 0 0 0 60.330666-60.330667l-506.88-506.88a42.666667 42.666667 0 1 0-60.330666 60.330667L494.336 384z m135.594667-136.021333a42.666667 42.666667 0 0 0 60.245333 60.416l235.946667-235.52a42.666667 42.666667 0 0 0-60.245334-60.416l-235.946666 235.52z" horiz-adv-x="1024" />
<glyph glyph-name="share-" unicode="&#59584;" d="M768 512a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z m0 85.333333a85.333333 85.333333 0 1 1 0 170.666667 85.333333 85.333333 0 0 1 0-170.666667zM256 213.33333300000004a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM768-85.33333300000004a170.666667 170.666667 0 1 0 0 341.333333 170.666667 170.666667 0 0 0 0-341.333333z m0 85.333333a85.333333 85.333333 0 1 1 0 170.666667 85.333333 85.333333 0 0 1 0-170.666667zM345.045333 282.709333a42.666667 42.666667 0 1 0 42.922667 73.728l291.413333-169.813333a42.666667 42.666667 0 1 0-42.922666-73.728l-291.413334 169.813333z m290.944 372.394667a42.666667 42.666667 0 1 0 43.008-73.728l-290.986666-169.813333a42.666667 42.666667 0 1 0-43.008 73.728l290.986666 169.813333z" horiz-adv-x="1024" />
<glyph glyph-name="share" unicode="&#59585;" d="M128 384v-341.333333a128 128 0 0 1 128-128h512a128 128 0 0 1 128 128v341.333333a42.666667 42.666667 0 0 1-85.333333 0v-341.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H256a42.666667 42.666667 0 0 0-42.666667 42.666667v341.333333a42.666667 42.666667 0 0 1-85.333333 0zM652.501333 609.834667a42.666667 42.666667 0 0 1 60.330667 60.330666l-170.666667 170.666667a42.666667 42.666667 0 0 1-60.330666 0l-170.666667-170.666667a42.666667 42.666667 0 0 1 60.330667-60.330666L512 750.336l140.501333-140.501333zM469.333333 810.666667v-554.666667a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="shield" unicode="&#59586;" d="M531.072-80.810667a42.666667 42.666667 0 0 0-38.144 0 738.56 738.56 0 0 0-56.874667 32.64 958.506667 958.506667 0 0 0-122.837333 90.709334C198.229333 143.232 128 257.322667 128 384V725.333333a42.666667 42.666667 0 0 0 32.298667 41.386667l341.333333 85.333333a42.666667 42.666667 0 0 0 20.736 0l341.333333-85.333333A42.666667 42.666667 0 0 0 896 725.333333v-341.333333c0-126.72-70.229333-240.810667-185.216-341.461333a958.506667 958.506667 0 0 0-122.837333-90.709334 738.56 738.56 0 0 0-56.874667-32.64z m11.648 104.96a874.24 874.24 0 0 1 111.829333 82.645334C752.896 192.810667 810.666667 286.677333 810.666667 384V692.053333l-298.666667 74.666667-298.666667-74.666667V384c0-97.28 57.770667-191.189333 156.117334-277.205333A874.24 874.24 0 0 1 512 5.845333c9.429333 5.376 19.754667 11.477333 30.72 18.346667z" horiz-adv-x="1024" />
<glyph glyph-name="settings" unicode="&#59587;" d="M512 213.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM272.768 680.234667l-2.56 2.56a42.666667 42.666667 0 1 1-60.416-60.416l2.901333-2.901334c32.298667-33.024 41.258667-82.432 23.637334-122.197333A113.365333 113.365333 0 0 0 131.84 423.253333H128a42.666667 42.666667 0 0 1 0-85.333333h7.424a112.896 112.896 0 0 0 103.253333-68.096 113.237333 113.237333 0 0 0-22.912-125.056l-2.56-2.56a42.666667 42.666667 0 1 1 60.416-60.416l2.901334 2.901333c33.024 32.298667 82.432 41.258667 122.197333 23.637334a113.365333 113.365333 0 0 0 74.026667-104.490667V0a42.666667 42.666667 0 0 1 85.333333 0v7.424a112.896 112.896 0 0 0 68.096 103.253333 113.237333 113.237333 0 0 0 125.056-22.912l2.56-2.56a42.666667 42.666667 0 1 1 60.416 60.416l-2.901333 2.901334a113.066667 113.066667 0 0 0-22.613334 124.714666A112.981333 112.981333 0 0 0 892.16 341.333333H896a42.666667 42.666667 0 0 1 0 85.333334h-7.424a113.066667 113.066667 0 0 0-103.466667 68.522666l-3.456 8.064v4.266667a113.28 113.28 0 0 0 26.581334 115.712l2.56 2.56a42.666667 42.666667 0 1 1-60.416 60.416l-2.901334-2.901333a112.896 112.896 0 0 0-124.288-22.784A113.109333 113.109333 0 0 0 554.666667 764.16V768a42.666667 42.666667 0 0 1-85.333334 0v-7.424a113.066667 113.066667 0 0 0-68.522666-103.466667l-8.064-3.456h-4.266667a113.28 113.28 0 0 0-115.712 26.581334zM888.746667 512H896a128 128 0 0 0 0-256h-3.669333a27.733333 27.733333 0 0 1-25.386667-16.810667 27.733333 27.733333 0 0 1 5.034667-30.677333l2.56-2.56a128 128 0 1 0-181.077334-181.077333l-2.218666 2.218666a27.904 27.904 0 0 1-31.018667 5.376 27.690667 27.690667 0 0 1-16.810667-25.216V0a128 128 0 0 0-256 0 29.781333 29.781333 0 0 1-20.650666 29.226667 27.605333 27.605333 0 0 1-30.250667-5.205334l-2.56-2.56a128 128 0 1 0-181.077333 181.077334l2.218666 2.218666a27.904 27.904 0 0 1 5.376 31.018667 27.690667 27.690667 0 0 1-25.216 16.810667H128a128 128 0 0 0 0 256 29.781333 29.781333 0 0 1 29.226667 20.650666 27.605333 27.605333 0 0 1-5.205334 30.250667l-2.56 2.56a128 128 0 1 0 181.077334 181.077333l2.218666-2.218666a27.733333 27.733333 0 0 1 30.592-5.546667l8.234667 3.626667A25.258667 25.258667 0 0 1 384 760.746667V768a128 128 0 0 0 256 0v-3.669333c0.042667-11.093333 6.656-21.034667 17.237333-25.6a27.605333 27.605333 0 0 1 30.250667 5.248l2.56 2.56a128 128 0 1 0 181.077333-181.077334l-2.218666-2.218666a27.733333 27.733333 0 0 1-5.546667-30.592l3.626667-8.234667c5.12-8.277333 13.184-12.373333 21.76-12.416z" horiz-adv-x="1024" />
<glyph glyph-name="skip-back" unicode="&#59588;" d="M768 636.586667L452.266667 384l315.733333-252.586667V636.586667z m16-627.2l-426.666667 341.333333a42.666667 42.666667 0 0 0 0 66.56l426.666667 341.333333A42.666667 42.666667 0 0 0 853.333333 725.333333v-682.666666a42.666667 42.666667 0 0 0-69.333333-33.28zM256 85.333333V682.666667a42.666667 42.666667 0 1 1-85.333333 0v-597.333334a42.666667 42.666667 0 0 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="shuffle" unicode="&#59589;" d="M853.333333 554.666667a42.666667 42.666667 0 0 1 85.333334 0V768a42.666667 42.666667 0 0 1-42.666667 42.666667h-213.333333a42.666667 42.666667 0 0 1 0-85.333334h170.666666v-170.666666zM200.832 12.501333l725.333333 725.333334a42.666667 42.666667 0 1 1-60.330666 60.330666l-725.333334-725.333333a42.666667 42.666667 0 0 1 60.330667-60.330667zM682.666667 42.666667a42.666667 42.666667 0 0 1 0-85.333334h213.333333a42.666667 42.666667 0 0 1 42.666667 42.666667v213.333333a42.666667 42.666667 0 0 1-85.333334 0v-170.666666h-170.666666zM609.834667 225.834667l256-256a42.666667 42.666667 0 0 1 60.330666 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666-60.330666zM140.501333 695.168l213.333334-213.333333a42.666667 42.666667 0 1 1 60.330666 60.330666l-213.333333 213.333334a42.666667 42.666667 0 0 1-60.330667-60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="sidebar" unicode="&#59590;" d="M85.333333 682.88A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.66666699999996H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88zM341.333333 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88v-597.76c0-23.466667 18.986667-42.453333 42.453333-42.453333H341.333333V725.333333z m85.333334 0v-682.666666h384.213333c23.466667 0 42.453333 18.986667 42.453333 42.453333V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H426.666667z" horiz-adv-x="1024" />
<glyph glyph-name="skip-forward" unicode="&#59591;" d="M256 131.413333L571.733333 384 256 636.586667v-505.173334z m-16 627.2l426.666667-341.333333a42.666667 42.666667 0 0 0 0-66.56l-426.666667-341.333333A42.666667 42.666667 0 0 0 170.666667 42.666667V725.333333a42.666667 42.666667 0 0 0 69.333333 33.28zM768 682.666667v-597.333334a42.666667 42.666667 0 0 1 85.333333 0V682.666667a42.666667 42.666667 0 0 1-85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="slack" unicode="&#59592;" d="M983.271856 524.026176c103.487213-343.691869 14.332936-507.582171-330.937263-611.495959C308.514752-190.956996 144.539135-101.845377 40.540031 243.339506-62.947182 587.074033 26.207095 750.964335 371.477293 854.920781 716.320916 958.706596 879.614012 870.405471 983.271856 524.026176z m-81.817179-24.52809C811.361935 800.788351 695.632005 863.324318 396.090699 773.14626 95.781557 682.754914 32.477754 566.342464 122.357209 267.952912c90.434003-300.223827 206.889111-363.527629 505.363979-273.690832 300.309142 90.434003 363.612944 206.803796 273.733489 505.236006zM495.866705 626.61758l152.714024-443.638505a42.657549 42.657549 0 0 1 80.708082 27.727406l-152.714024 443.638506a42.657549 42.657549 0 0 1-80.708082-27.727407zM294.523076 557.512352l152.714024-443.638506a42.657549 42.657549 0 0 1 80.708082 27.727407l-152.714024 443.638505a42.657549 42.657549 0 0 1-80.708082-27.727406zM685.308879 601.492284l-443.638506-152.714024a42.657549 42.657549 0 0 1 27.727407-80.708082l443.638505 152.714024a42.657549 42.657549 0 0 1-27.727406 80.708082zM754.414107 400.148655l-443.638505-152.714024a42.657549 42.657549 0 0 1 27.727406-80.708082l443.638506 152.714024a42.657549 42.657549 0 0 1-27.727407 80.708082z" horiz-adv-x="1024" />
<glyph glyph-name="slash" unicode="&#59593;" d="M512-85.33333300000004C252.8-85.33333300000004 42.666667 124.79999999999995 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m239.701333 169.301333L211.968 623.701333a384 384 0 0 1 539.733333-539.733333zM272.298667 684.032l539.733333-539.733333a384 384 0 0 1-539.733333 539.733333z" horiz-adv-x="1024" />
<glyph glyph-name="smartphone" unicode="&#59594;" d="M256 725.76v-683.52c0-23.04 19.285333-42.24 42.922667-42.24h426.154666A42.581333 42.581333 0 0 1 768 42.24V725.76c0 23.04-19.285333 42.24-42.922667 42.24H298.922667A42.581333 42.581333 0 0 1 256 725.76z m-85.333333 0A127.914667 127.914667 0 0 0 298.922667 853.333333h426.154666A128.128 128.128 0 0 0 853.333333 725.76v-683.52A127.914667 127.914667 0 0 0 725.077333-85.333333H298.922667A128.128 128.128 0 0 0 170.666667 42.24V725.76zM512 128m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="square" unicode="&#59595;" d="M170.666667 682.88v-597.76c0-23.466667 18.986667-42.453333 42.453333-42.453333h597.76c23.466667 0 42.453333 18.986667 42.453333 42.453333V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88z m-85.333334 0A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.666667H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88z" horiz-adv-x="1024" />
<glyph glyph-name="speaker" unicode="&#59596;" d="M213.333333 725.76v-683.52c0-23.125333 19.114667-42.24 42.410667-42.24h512.512a42.410667 42.410667 0 0 1 42.410667 42.24V725.76a42.538667 42.538667 0 0 1-42.410667 42.24H255.744A42.410667 42.410667 0 0 1 213.333333 725.76z m-85.333333 0A127.744 127.744 0 0 0 255.744 853.333333h512.512A127.872 127.872 0 0 0 896 725.76v-683.52A127.744 127.744 0 0 0 768.256-85.333333H255.744A127.872 127.872 0 0 0 128 42.24V725.76zM512 640m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0ZM512 85.333333a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333334a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="star" unicode="&#59597;" d="M418.432 525.056a42.666667 42.666667 0 0 0-32.085333-23.338667l-209.365334-30.549333 151.466667-147.370667c10.069333-9.770667 14.634667-23.893333 12.288-37.717333l-35.754667-208.085333 187.178667 98.304a42.666667 42.666667 0 0 0 39.68 0l187.178667-98.304-35.754667 208.085333a42.581333 42.581333 0 0 0 12.288 37.717333l151.466667 147.370667-209.365334 30.549333a42.666667 42.666667 0 0 0-32.085333 23.338667L512 714.410667 418.432 525.056z m55.296 304.512a42.666667 42.666667 0 0 0 76.544 0l121.898667-246.741333 272.64-39.808a42.624 42.624 0 0 0 23.637333-72.704l-197.248-191.914667 46.506667-271.146667a42.666667 42.666667 0 0 0-61.866667-44.928L512 90.410667l-243.84-128.085334a42.666667 42.666667 0 0 0-61.866667 44.928l46.506667 271.146667-197.248 191.914667a42.624 42.624 0 0 0 23.594667 72.704l272.64 39.808 121.941333 246.741333z" horiz-adv-x="1024" />
<glyph glyph-name="stop-circle" unicode="&#59598;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM426.666667 469.333333v-170.666666h170.666666v170.666666h-170.666666zM384 554.666667h256a42.666667 42.666667 0 0 0 42.666667-42.666667v-256a42.666667 42.666667 0 0 0-42.666667-42.666667H384a42.666667 42.666667 0 0 0-42.666667 42.666667V512a42.666667 42.666667 0 0 0 42.666667 42.666667z" horiz-adv-x="1024" />
<glyph glyph-name="sun" unicode="&#59599;" d="M512 128a256 256 0 1 0 0 512 256 256 0 0 0 0-512z m0 85.333333a170.666667 170.666667 0 1 1 0 341.333334 170.666667 170.666667 0 0 1 0-341.333334zM469.333333 853.333333v-85.333333a42.666667 42.666667 0 0 1 85.333334 0V853.333333a42.666667 42.666667 0 0 1-85.333334 0zM469.333333 0v-85.333333a42.666667 42.666667 0 0 1 85.333334 0v85.333333a42.666667 42.666667 0 0 1-85.333334 0zM149.888 685.781333l60.586667-60.586666a42.666667 42.666667 0 0 1 60.330666 60.330666l-60.586666 60.586667a42.666667 42.666667 0 0 1-60.330667-60.330667zM753.194667 82.474667l60.586666-60.586667a42.666667 42.666667 0 0 1 60.330667 60.330667l-60.586667 60.586666a42.666667 42.666667 0 0 1-60.330666-60.330666zM42.666667 341.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334H42.666667a42.666667 42.666667 0 0 1 0-85.333334zM896 341.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334h-85.333333a42.666667 42.666667 0 0 1 0-85.333334zM210.218667 21.888l60.586666 60.586667a42.666667 42.666667 0 0 1-60.330666 60.330666l-60.586667-60.586666a42.666667 42.666667 0 0 1 60.330667-60.330667zM813.525333 625.194667l60.586667 60.586666a42.666667 42.666667 0 1 1-60.330667 60.330667l-60.586666-60.586667a42.666667 42.666667 0 1 1 60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="sunrise" unicode="&#59600;" d="M768 128a256 256 0 1 1-512 0 42.666667 42.666667 0 0 1 85.333333 0 170.666667 170.666667 0 1 0 341.333334 0 42.666667 42.666667 0 0 1 85.333333 0zM469.333333 810.666667v-298.666667a42.666667 42.666667 0 0 1 85.333334 0V810.666667a42.666667 42.666667 0 0 1-85.333334 0zM149.888 429.781333l60.586667-60.586666a42.666667 42.666667 0 1 1 60.330666 60.330666l-60.586666 60.586667a42.666667 42.666667 0 1 1-60.330667-60.330667zM42.666667 85.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334H42.666667a42.666667 42.666667 0 0 1 0-85.333334zM896 85.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334h-85.333333a42.666667 42.666667 0 0 1 0-85.333334zM813.525333 369.194667l60.586667 60.586666a42.666667 42.666667 0 1 1-60.330667 60.330667l-60.586666-60.586667a42.666667 42.666667 0 0 1 60.330666-60.330666zM981.333333 0H42.666667a42.666667 42.666667 0 0 1 0-85.333333h938.666666a42.666667 42.666667 0 0 1 0 85.333333zM652.501333 609.834667a42.666667 42.666667 0 0 1 60.330667 60.330666l-170.666667 170.666667a42.666667 42.666667 0 0 1-60.330666 0l-170.666667-170.666667a42.666667 42.666667 0 0 1 60.330667-60.330666L512 750.336l140.501333-140.501333z" horiz-adv-x="1024" />
<glyph glyph-name="tablet" unicode="&#59601;" d="M810.666667 42.24V725.76a42.538667 42.538667 0 0 1-42.410667 42.24H255.744A42.410667 42.410667 0 0 1 213.333333 725.76v-683.52c0-23.125333 19.114667-42.24 42.410667-42.24h512.512a42.410667 42.410667 0 0 1 42.410667 42.24z m85.333333 0A127.744 127.744 0 0 0 768.256-85.333333H255.744A127.872 127.872 0 0 0 128 42.24V725.76A127.744 127.744 0 0 0 255.744 853.333333h512.512A127.872 127.872 0 0 0 896 725.76v-683.52zM512 128m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="tag" unicode="&#59602;" d="M841.813333 417.536l-351.146666 351.146667H127.317333V405.333333l351.146667-350.72a42.325333 42.325333 0 0 1 59.904 0l303.36 303.36a42.282667 42.282667 0 0 1 0.085333 59.562667z m59.946667-119.253333l-303.530667-303.488a126.976 126.976 0 0 0-179.626666-0.042667l-363.52 363.093333A42.325333 42.325333 0 0 0 42.666667 387.84V811.093333C42.666667 834.346667 61.610667 853.333333 84.992 853.333333h423.210667c11.221333 0 21.973333-4.48 29.909333-12.373333l363.648-363.648a126.976 126.976 0 0 0 0-179.029333zM298.666667 597.333333m-42.666667 0a42.666667 42.666667 0 1 1 85.333333 0 42.666667 42.666667 0 1 1-85.333333 0Z" horiz-adv-x="1024" />
<glyph glyph-name="sunset" unicode="&#59603;" d="M768 128a256 256 0 1 1-512 0 42.666667 42.666667 0 0 1 85.333333 0 170.666667 170.666667 0 1 0 341.333334 0 42.666667 42.666667 0 0 1 85.333333 0zM554.666667 512V810.666667a42.666667 42.666667 0 0 1-85.333334 0v-298.666667a42.666667 42.666667 0 0 1 85.333334 0zM149.888 429.781333l60.586667-60.586666a42.666667 42.666667 0 1 1 60.330666 60.330666l-60.586666 60.586667a42.666667 42.666667 0 1 1-60.330667-60.330667zM42.666667 85.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334H42.666667a42.666667 42.666667 0 0 1 0-85.333334zM896 85.333333h85.333333a42.666667 42.666667 0 0 1 0 85.333334h-85.333333a42.666667 42.666667 0 0 1 0-85.333334zM813.525333 369.194667l60.586667 60.586666a42.666667 42.666667 0 1 1-60.330667 60.330667l-60.586666-60.586667a42.666667 42.666667 0 0 1 60.330666-60.330666zM981.333333 0H42.666667a42.666667 42.666667 0 0 1 0-85.333333h938.666666a42.666667 42.666667 0 0 1 0 85.333333zM371.498667 712.832a42.666667 42.666667 0 0 1-60.330667-60.330667l170.666667-170.666666a42.666667 42.666667 0 0 1 60.330666 0l170.666667 170.666666a42.666667 42.666667 0 1 1-60.330667 60.330667L512 572.330667 371.498667 712.832z" horiz-adv-x="1024" />
<glyph glyph-name="target" unicode="&#59604;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM512 85.333333a298.666667 298.666667 0 1 0 0 597.333334 298.666667 298.666667 0 0 0 0-597.333334z m0 85.333334a213.333333 213.333333 0 1 1 0 426.666666 213.333333 213.333333 0 0 1 0-426.666666zM512 256a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="thermometer" unicode="&#59605;" d="M715.216338 38.506413A234.660898 234.660898 0 1 0 341.337529 287.673621V746.670338a149.329662 149.329662 0 0 0 298.659324 0v-459.039382a234.660898 234.660898 0 0 0 75.219485-249.167208zM554.665618 266.255481V746.670338a63.998427 63.998427 0 0 1-127.996854 0v-480.414857a42.665618 42.665618 0 0 0-18.943534-35.455128 149.329662 149.329662 0 1 1 165.883922 0A42.665618 42.665618 0 0 0 554.665618 266.255481z" horiz-adv-x="1024" />
<glyph glyph-name="thumbs-up" unicode="&#59606;" d="M850.005333 554.666667a130.730667 130.730667 0 0 0 99.456-43.989334c25.002667-28.373333 36.138667-66.090667 30.378667-103.253333l-59.733333-383.957333c-9.685333-63.146667-65.109333-109.525333-129.365334-108.8H302.421333c-23.893333 0-43.306667 19.114667-43.306666 42.666666V426.666667c0 5.973333 1.28 11.861333 3.754666 17.322666l173.141334 384c6.954667 15.402667 22.442667 25.344 39.552 25.344 95.658667 0 173.184-76.373333 173.184-170.666666v-128h201.258666z m-58.794666-554.666667a43.093333 43.093333 0 0 1 43.306666 36.352l59.733334 383.914667a42.24 42.24 0 0 1-10.112 34.389333 43.861333 43.861333 0 0 1-33.664 14.677333H605.44c-23.893333 0-43.264 19.114667-43.264 42.666667V682.666667c0 38.101333-25.344 70.357333-60.288 81.322666l-156.16-346.368V0h445.482667z m-532.053334 384h-86.613333c-23.893333 0-43.306667-19.114667-43.306667-42.666667v-298.666666c0-23.552 19.413333-42.666667 43.306667-42.666667h86.613333v384z m43.264-469.333333H172.544C100.821333-85.333333 42.666667-28.032 42.666667 42.666667v298.666666c0 70.698667 58.154667 128 129.877333 128h129.877333c23.893333 0 43.264-19.114667 43.264-42.666666v-469.333334c0-23.552-19.370667-42.666667-43.264-42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="thumbs-down" unicode="&#59607;" d="M173.482667 213.333333a130.005333 130.005333 0 0 0-98.858667 43.733334 127.104 127.104 0 0 0-30.464 103.637333l59.818667 383.914667A128.853333 128.853333 0 0 0 232.832 853.333333H721.92a42.666667 42.666667 0 0 0 42.666667-42.666666v-469.333334a42.666667 42.666667 0 0 0-3.754667-17.578666l-173.44-384a42.666667 42.666667 0 0 0-38.869333-25.088c-95.274667 0-172.757333 76.245333-172.757334 170.666666v128h-202.24z m58.88 554.666667a43.648 43.648 0 0 1-44.074667-36.437333l-59.818667-383.957334a41.728 41.728 0 0 1 10.112-34.048c8.448-9.557333 20.906667-15.061333 34.432-14.933333h245.376a42.666667 42.666667 0 0 0 42.666667-42.666667v-170.666666c0-38.229333 25.856-70.741333 61.568-81.493334l156.586667 346.709334V768H232.362667z m532.181333-384h73.813333A57.088 57.088 0 0 1 896 429.952V721.92c-4.906667 26.794667-29.141333 46.506667-58.325333 46.037333H764.586667v-384z m-42.666667 469.333333h115.029334C909.184 854.528 971.178667 802.133333 980.906667 731.093333L981.333333 725.333333v-298.666666l-0.426666-5.845334A142.122667 142.122667 0 0 0 837.674667 298.666667H721.92a42.666667 42.666667 0 0 0-42.666667 42.666666V810.666667a42.666667 42.666667 0 0 0 42.666667 42.666666z" horiz-adv-x="1024" />
<glyph glyph-name="toggle-left" unicode="&#59608;" d="M85.333333 384c0-141.184 114.602667-256 255.616-256h342.101334A255.786667 255.786667 0 0 1 938.666667 384c0 141.184-114.602667 256-255.616 256H340.906667A255.786667 255.786667 0 0 1 85.333333 384z m-85.333333 0c0 188.501333 152.618667 341.333333 340.949333 341.333333h342.101334C871.253333 725.333333 1024 572.288 1024 384c0-188.501333-152.618667-341.333333-340.949333-341.333333H340.906667C152.746667 42.666667 0 195.712 0 384zM341.333333 213.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="toggle-right" unicode="&#59609;" d="M85.333333 384c0-141.184 114.602667-256 255.616-256h342.101334A255.786667 255.786667 0 0 1 938.666667 384c0 141.184-114.602667 256-255.616 256H340.906667A255.786667 255.786667 0 0 1 85.333333 384z m-85.333333 0c0 188.501333 152.618667 341.333333 340.949333 341.333333h342.101334C871.253333 725.333333 1024 572.288 1024 384c0-188.501333-152.618667-341.333333-340.949333-341.333333H340.906667C152.746667 42.666667 0 195.712 0 384zM682.666667 213.333333a170.666667 170.666667 0 1 0 0 341.333334 170.666667 170.666667 0 0 0 0-341.333334z m0 85.333334a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="trash-" unicode="&#59610;" d="M128 597.333333h768a42.666667 42.666667 0 0 1 0 85.333334H128a42.666667 42.666667 0 1 1 0-85.333334zM768 640v-597.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 1 1-85.333333 0v-597.333333a128 128 0 0 1 128-128h426.666666a128 128 0 0 1 128 128V640a42.666667 42.666667 0 0 1-85.333333 0zM384 640V725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h170.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 1 85.333333 0V725.333333a128 128 0 0 1-128 128h-170.666666a128 128 0 0 1-128-128v-85.333333a42.666667 42.666667 0 1 1 85.333333 0zM384 426.666667v-256a42.666667 42.666667 0 0 1 85.333333 0v256a42.666667 42.666667 0 0 1-85.333333 0zM554.666667 426.666667v-256a42.666667 42.666667 0 0 1 85.333333 0v256a42.666667 42.666667 0 0 1-85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="trash" unicode="&#59611;" d="M128 597.333333h768a42.666667 42.666667 0 0 1 0 85.333334H128a42.666667 42.666667 0 1 1 0-85.333334zM768 640v-597.333333a42.666667 42.666667 0 0 0-42.666667-42.666667H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V640a42.666667 42.666667 0 1 1-85.333333 0v-597.333333a128 128 0 0 1 128-128h426.666666a128 128 0 0 1 128 128V640a42.666667 42.666667 0 0 1-85.333333 0zM384 640V725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h170.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-85.333333a42.666667 42.666667 0 0 1 85.333333 0V725.333333a128 128 0 0 1-128 128h-170.666666a128 128 0 0 1-128-128v-85.333333a42.666667 42.666667 0 1 1 85.333333 0z" horiz-adv-x="1024" />
<glyph glyph-name="trending-up" unicode="&#59612;" d="M392.832 478.165333a42.666667 42.666667 0 0 1-60.330667 0l-320-320a42.666667 42.666667 0 0 1 60.330667-60.330666L362.666667 387.669333l183.168-183.168a42.666667 42.666667 0 0 1 60.330666 0l405.333334 405.333334a42.666667 42.666667 0 1 1-60.330667 60.330666L576 294.997333 392.832 478.165333zM938.666667 384a42.666667 42.666667 0 0 1 85.333333 0V640a42.666667 42.666667 0 0 1-42.666667 42.666667h-256a42.666667 42.666667 0 0 1 0-85.333334h213.333334v-213.333333z" horiz-adv-x="1024" />
<glyph glyph-name="trending-down" unicode="&#59613;" d="M72.832 670.165333A42.666667 42.666667 0 0 1 12.501333 609.834667l320-320a42.666667 42.666667 0 0 1 60.330667 0L576 473.002667l375.168-375.168a42.666667 42.666667 0 0 1 60.330667 60.330666l-405.333334 405.333334a42.666667 42.666667 0 0 1-60.330666 0L362.666667 380.330667 72.832 670.165333zM725.333333 170.666667a42.666667 42.666667 0 0 1 0-85.333334h256a42.666667 42.666667 0 0 1 42.666667 42.666667v256a42.666667 42.666667 0 0 1-85.333333 0v-213.333333h-213.333334z" horiz-adv-x="1024" />
<glyph glyph-name="triangle" unicode="&#59614;" d="M402.517333 753.237333a128.128 128.128 0 0 0 219.136 0L983.466667 149.333333a128 128 0 0 0-109.909334-192H150.144a128 128 0 0 0-109.098667 192.597334l361.472 603.306666zM114.602667 106.666667A42.666667 42.666667 0 0 1 150.613333 42.666667h722.474667a42.666667 42.666667 0 0 1 36.821333 63.402666L548.565333 709.162667a42.666667 42.666667 0 0 1-72.96 0.085333L114.645333 106.666667z" horiz-adv-x="1024" />
<glyph glyph-name="type" unicode="&#59615;" d="M213.333333 682.666667h597.333334v-85.333334a42.666667 42.666667 0 0 1 85.333333 0V725.333333a42.666667 42.666667 0 0 1-42.666667 42.666667H170.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-128a42.666667 42.666667 0 1 1 85.333333 0V682.666667zM384 0h256a42.666667 42.666667 0 0 1 0 85.333333H384a42.666667 42.666667 0 0 1 0-85.333333zM469.333333 725.333333v-682.666666a42.666667 42.666667 0 0 1 85.333334 0V725.333333a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="twitter" unicode="&#59616;" d="M956.843947 759.765333c32.213333 22.741333 75.349333-6.698667 66.048-45.056a372.736 372.736 0 0 0-85.12-161.28c0.64-6.869333 0.938667-13.866667 0.981333-20.864C938.75328 25.856 450.390613-234.410667 22.01728 3.925333c-39.253333 21.802667-22.485333 81.792 22.442667 80a453.461333 453.461333 0 0 1 207.957333 41.344c-94.037333 58.026667-154.24 134.869333-183.808 225.792-30.506667 93.866667-26.026667 192.512-0.597333 286.208 7.68 28.330667 15.530667 49.664 21.077333 62.208a42.666667 42.666667 0 0 0 73.898667 7.168A412.032 412.032 0 0 1 469.419947 532.309333a234.112 234.112 0 0 0 150.4 220.288 233.6 233.6 0 0 0 239.274666-44.202666 422.186667 422.186667 0 0 1 97.706667 51.370666z m-97.109334-141.226666a42.666667 42.666667 0 0 0-44.501333 12.885333 148.352 148.352 0 0 1-164.949333 41.344A148.906667 148.906667 0 0 1 554.75328 531.285333v-42.709333a42.666667 42.666667 0 0 0-41.557333-42.709333c-139.093333-3.626667-272.042667 51.2-367.872 148.906666-16.853333-72.832-18.090667-147.925333 4.437333-217.258666 28.885333-88.917333 95.018667-161.066667 208.981333-211.797334 30.592-13.610667 34.346667-55.552 6.656-74.368a538.922667 538.922667 0 0 0-154.88-72.490666C538.198613-67.456 853.419947 150.357333 853.419947 532.437333a149.76 149.76 0 0 1-2.645334 27.562667 42.752 42.752 0 0 0 11.946667 38.442667c9.514667 9.386667 18.304 19.413333 26.368 29.952-9.685333-3.584-19.456-6.826667-29.354667-9.813334z" horiz-adv-x="1024" />
<glyph glyph-name="upload" unicode="&#59617;" d="M554.666667 665.002667V256a42.666667 42.666667 0 0 0-85.333334 0V665.002667L328.832 524.5013329999999a42.666667 42.666667 0 0 0-60.330667 60.330667l213.333334 213.333333a42.666667 42.666667 0 0 0 60.330666 0l213.333334-213.333333a42.666667 42.666667 0 1 0-60.330667-60.330667L554.666667 665.002667zM853.333333 256a42.666667 42.666667 0 0 0 85.333334 0v-170.666667a128 128 0 0 0-128-128H213.333333a128 128 0 0 0-128 128v170.666667a42.666667 42.666667 0 0 0 85.333334 0v-170.666667a42.666667 42.666667 0 0 1 42.666666-42.666666h597.333334a42.666667 42.666667 0 0 1 42.666666 42.666666v170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="umbrella" unicode="&#59618;" d="M554.666667 341.33333300000004v-256a85.333333 85.333333 0 1 1 170.666666 0 42.666667 42.666667 0 0 0 85.333334 0 170.666667 170.666667 0 1 0-341.333334 0v256H42.666667a42.666667 42.666667 0 0 0-42.453334 46.72 514.133333 514.133333 0 0 0 1023.573334 0A42.666667 42.666667 0 0 0 981.333333 341.33333300000004H554.666667zM512 768c-205.098667 0-379.008-144.64-419.84-341.333333h839.68c-40.832 196.693333-214.741333 341.333333-419.84 341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="upload-cloud" unicode="&#59619;" d="M652.517547 183.168a42.666667 42.666667 0 0 1 60.330666 60.330667l-170.666666 170.666666a42.666667 42.666667 0 0 1-60.330667 0l-170.666667-170.666666a42.666667 42.666667 0 0 1 60.330667-60.330667L512.016213 323.669333l140.501334-140.501333zM469.349547 384v-384a42.666667 42.666667 0 0 1 85.333333 0v384a42.666667 42.666667 0 0 1-85.333333 0zM427.57888 808.106667a384 384 0 0 1-331.306667-635.818667 42.666667 42.666667 0 1 1 63.957334 56.490667A298.666667 298.666667 0 1 0 673.168213 501.333333a42.666667 42.666667 0 0 1 41.301334-32h53.76a170.666667 170.666667 0 0 0 81.578666-320.512 42.666667 42.666667 0 1 1 40.832-74.922666A256 256 0 0 1 768.272213 554.666667h-22.229333a384 384 0 0 1-318.464 253.44zM652.517547 183.168a42.666667 42.666667 0 0 1 60.330666 60.330667l-170.666666 170.666666a42.666667 42.666667 0 0 1-60.330667 0l-170.666667-170.666666a42.666667 42.666667 0 0 1 60.330667-60.330667L512.016213 323.669333l140.501334-140.501333z" horiz-adv-x="1024" />
<glyph glyph-name="unlock" unicode="&#59620;" d="M256 469.333333V597.205333c-0.128 131.413333 100.266667 241.621333 232.192 254.805334 131.968 13.226667 252.586667-74.837333 278.954667-203.648a42.666667 42.666667 0 0 0-33.621334-50.261334 43.008 43.008 0 0 0-50.730666 33.28c-17.578667 85.888-97.962667 144.597333-185.941334 135.765334-87.978667-8.789333-154.88-82.218667-154.794666-169.898667V469.333333h468.821333A127.957333 127.957333 0 0 0 938.666667 341.674667v-299.349334A127.701333 127.701333 0 0 0 810.88-85.33333300000004H213.12A127.957333 127.957333 0 0 0 85.333333 42.325333v299.349334A127.701333 127.701333 0 0 0 213.12 469.333333H256z m-85.333333-127.658666v-299.349334c0-23.168 19.157333-42.325333 42.453333-42.325333h597.76c23.466667 0 42.453333 18.944 42.453333 42.325333v299.349334a42.624 42.624 0 0 1-42.453333 42.325333H213.12a42.368 42.368 0 0 1-42.453333-42.325333z" horiz-adv-x="1024" />
<glyph glyph-name="user-check" unicode="&#59621;" d="M725.333333 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H213.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h298.666667a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM362.666667 384a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256zM755.498667 456.832a42.666667 42.666667 0 0 1-60.330667-60.330667l85.333333-85.333333a42.666667 42.666667 0 0 1 60.330667 0l170.666667 170.666667a42.666667 42.666667 0 1 1-60.330667 60.330666L810.666667 401.664l-55.168 55.168z" horiz-adv-x="1024" />
<glyph glyph-name="user-minus" unicode="&#59622;" d="M725.333333 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H213.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h298.666667a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM362.666667 384a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256zM981.333333 469.333333h-256a42.666667 42.666667 0 0 1 0-85.333333h256a42.666667 42.666667 0 0 1 0 85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="user-plus" unicode="&#59623;" d="M725.333333 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H213.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h298.666667a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM362.666667 384a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256zM810.666667 554.666667v-256a42.666667 42.666667 0 0 1 85.333333 0V554.666667a42.666667 42.666667 0 0 1-85.333333 0zM981.333333 469.333333h-256a42.666667 42.666667 0 0 1 0-85.333333h256a42.666667 42.666667 0 0 1 0 85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="user-x" unicode="&#59624;" d="M725.333333 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H213.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h298.666667a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM362.666667 384a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256zM737.834667 524.501333l213.333333-213.333333a42.666667 42.666667 0 0 1 60.330667 60.330667l-213.333334 213.333333a42.666667 42.666667 0 0 1-60.330666-60.330667zM951.168 584.832l-213.333333-213.333333a42.666667 42.666667 0 0 1 60.330666-60.330667l213.333334 213.333333a42.666667 42.666667 0 1 1-60.330667 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="user" unicode="&#59625;" d="M896 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H341.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h341.333334a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM512 384a213.333333 213.333333 0 1 0 0 426.666667 213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="users" unicode="&#59626;" d="M768 0v85.333333a213.333333 213.333333 0 0 1-213.333333 213.333334H213.333333a213.333333 213.333333 0 0 1-213.333333-213.333334v-85.333333a42.666667 42.666667 0 0 1 85.333333 0v85.333333a128 128 0 0 0 128 128h341.333334a128 128 0 0 0 128-128v-85.333333a42.666667 42.666667 0 0 1 85.333333 0zM384 384A213.333333 213.333333 0 1 0 384 810.666667a213.333333 213.333333 0 0 0 0-426.666667z m0 85.333333a128 128 0 1 1 0 256 128 128 0 0 1 0-256zM1024 0v85.333333a213.333333 213.333333 0 0 1-160 206.421334 42.666667 42.666667 0 1 1-21.333333-82.602667A128 128 0 0 0 938.666667 85.290667V0a42.666667 42.666667 0 0 1 85.333333 0zM672.085333 721.109333a128 128 0 0 0 0-247.978666 42.666667 42.666667 0 0 1 21.162667-82.688 213.333333 213.333333 0 0 1 0 413.354666 42.666667 42.666667 0 0 1-21.162667-82.688z" horiz-adv-x="1024" />
<glyph glyph-name="video-off" unicode="&#59627;" d="M640.197128 213.158348v-42.644794a42.644793 42.644793 0 0 0-42.644793-42.644793H128.459607a42.644793 42.644793 0 0 0-42.644793 42.644793V596.961489a42.644793 42.644793 0 0 0 42.644793 42.644793h85.289587a42.644793 42.644793 0 1 1 0 85.289587H128.459607a127.93438 127.93438 0 0 1-127.93438-127.93438v-426.447935a127.93438 127.93438 0 0 1 127.93438-127.93438h469.092728a127.93438 127.93438 0 0 1 127.93438 127.93438v42.644794a42.644793 42.644793 0 0 1-85.289587 0z m316.168499 418.345423l-255.868761-185.078403 55.139718-4.392414-42.644793 42.644793 12.494924-30.149869V596.961489a127.93438 127.93438 0 0 1-127.93438 127.93438h-142.43361a42.644793 42.644793 0 0 1 0-85.289587H597.552335a42.644793 42.644793 0 0 0 42.644793-42.644793v-142.433611a42.644793 42.644793 0 0 1 12.494925-30.149869l42.644793-42.644793a42.644793 42.644793 0 0 1 55.139718-4.392414L938.710682 513.462983V170.513554a42.644793 42.644793 0 0 1 85.289587 0V596.961489a42.644793 42.644793 0 0 1-67.634642 34.542282zM13.020151 822.68038l938.185456-938.185456a42.644793 42.644793 0 0 1 60.299738 60.299738l-938.185456 938.185456A42.644793 42.644793 0 1 1 13.020151 822.68038z" horiz-adv-x="1024" />
<glyph glyph-name="video" unicode="&#59628;" d="M956.544427 632.064A42.666667 42.666667 0 0 0 1024.000427 597.333333v-426.666666a42.666667 42.666667 0 0 0-67.456-34.730667l-298.666667 213.333333a42.666667 42.666667 0 0 0 0 69.461334l298.666667 213.333333zM756.05376 384L938.667093 253.568V514.432L756.05376 384zM85.33376 597.077333v-426.154666A42.581333 42.581333 0 0 1 127.659093 128h470.016A42.666667 42.666667 0 0 1 640.000427 170.922667V597.077333A42.581333 42.581333 0 0 1 597.675093 640H127.659093A42.666667 42.666667 0 0 1 85.33376 597.077333z m-85.333333 0A128 128 0 0 0 127.659093 725.333333h470.016A127.914667 127.914667 0 0 0 725.33376 597.077333v-426.154666A128 128 0 0 0 597.675093 42.666667H127.659093A127.914667 127.914667 0 0 0 0.000427 170.922667V597.077333z" horiz-adv-x="1024" />
<glyph glyph-name="voicemail" unicode="&#59629;" d="M608.306773 256a234.666667 234.666667 0 1 0 181.034667-85.333333h-554.666667a234.666667 234.666667 0 1 0 181.034667 85.333333h192.597333zM234.674773 256a149.333333 149.333333 0 1 1 0 298.666667 149.333333 149.333333 0 0 1 0-298.666667z m554.666667 0a149.333333 149.333333 0 1 1 0 298.666667 149.333333 149.333333 0 0 1 0-298.666667z" horiz-adv-x="1024" />
<glyph glyph-name="volume-x" unicode="&#59630;" d="M442.666667 715.946667A42.666667 42.666667 0 0 0 512 682.666667v-597.333334a42.666667 42.666667 0 0 0-69.333333-33.28L241.066667 213.333333H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V512a42.666667 42.666667 0 0 0 42.666666 42.666667h155.733334l201.6 161.28z m-160-237.226667A42.666667 42.666667 0 0 0 256 469.333333H128v-170.666666h128a42.666667 42.666667 0 0 0 26.666667-9.386667L426.666667 174.08V593.92l-144-115.2zM951.168 542.165333l-256-256a42.666667 42.666667 0 0 1 60.330667-60.330666l256 256a42.666667 42.666667 0 1 1-60.330667 60.330666zM695.168 481.834667l256-256a42.666667 42.666667 0 0 1 60.330667 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330667-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="volume-" unicode="&#59631;" d="M528 715.946667A42.666667 42.666667 0 0 0 597.333333 682.666667v-597.333334a42.666667 42.666667 0 0 0-69.333333-33.28L326.4 213.333333H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V512a42.666667 42.666667 0 0 0 42.666667 42.666667h155.733333l201.6 161.28z m-160-237.226667A42.666667 42.666667 0 0 0 341.333333 469.333333H213.333333v-170.666666h128a42.666667 42.666667 0 0 0 26.666667-9.386667L512 174.08V593.92l-144-115.2zM718.208 504.874667a170.666667 170.666667 0 0 0 0-241.322667 42.666667 42.666667 0 1 1 60.330667-60.330667 256 256 0 0 1 0 361.984 42.666667 42.666667 0 1 1-60.330667-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="volume-1" unicode="&#59632;" d="M442.666667 715.946667A42.666667 42.666667 0 0 0 512 682.666667v-597.333334a42.666667 42.666667 0 0 0-69.333333-33.28L241.066667 213.333333H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V512a42.666667 42.666667 0 0 0 42.666666 42.666667h155.733334l201.6 161.28z m-160-237.226667A42.666667 42.666667 0 0 0 256 469.333333H128v-170.666666h128a42.666667 42.666667 0 0 0 26.666667-9.386667L426.666667 174.08V593.92l-144-115.2zM783.488 655.488a384 384 0 0 0 0-542.976 42.666667 42.666667 0 1 1 60.330667-60.330667c183.210667 183.253333 183.210667 480.384 0 663.637334a42.666667 42.666667 0 1 1-60.330667-60.330667z m-150.613333-150.613333a170.666667 170.666667 0 0 0 0-241.322667 42.666667 42.666667 0 1 1 60.330666-60.330667 256 256 0 0 1 0 361.984 42.666667 42.666667 0 1 1-60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="volume" unicode="&#59633;" d="M656 715.946667A42.666667 42.666667 0 0 0 725.333333 682.666667v-597.333334a42.666667 42.666667 0 0 0-69.333333-33.28L454.4 213.333333H298.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V512a42.666667 42.666667 0 0 0 42.666667 42.666667h155.733333l201.6 161.28z m-160-237.226667A42.666667 42.666667 0 0 0 469.333333 469.333333H341.333333v-170.666666h128a42.666667 42.666667 0 0 0 26.666667-9.386667L640 174.08V593.92l-144-115.2z" horiz-adv-x="1024" />
<glyph glyph-name="watch" unicode="&#59634;" d="M512 42.66716399999996a341.332622 341.332622 0 1 0 0 682.665245 341.332622 341.332622 0 0 0 0-682.665245z m0 85.333156a255.999467 255.999467 0 1 1 0 511.998933 255.999467 255.999467 0 0 1 0-511.998933zM554.666578 511.99952v-110.33577l51.498559-51.49856a42.666578 42.666578 0 0 0-60.330541-60.33054l-63.999866 63.999866A42.666578 42.666578 0 0 0 469.333422 383.99978699999997V511.99952a42.666578 42.666578 0 0 0 85.333156 0z m107.263776-352.383266a42.666578 42.666578 0 0 0 84.991823-7.765317l-14.933302-163.370326A127.957067 127.957067 0 0 0 604.159808-127.999147H419.584193a127.999733 127.999733 0 0 0-127.999734 116.437091l-14.933302 163.412993a42.666578 42.666578 0 0 0 84.991823 7.765317l14.933302-163.455659c2.005329-22.058621 20.522624-38.911919 42.837244-38.826586h184.916948a42.666578 42.666578 0 0 1 42.666578 38.869252l14.933302 163.412993zM362.069646 608.383319a42.666578 42.666578 0 1 0-84.991823 7.765317l14.933302 163.370327A127.999733 127.999733 0 0 0 419.413526 895.99872h185.428947a127.999733 127.999733 0 0 0 127.999734-116.437091l14.933302-163.412993a42.666578 42.666578 0 0 0-84.991823-7.765317l-14.933302 163.45566A42.709244 42.709244 0 0 1 605.01314 810.665564H419.413526a42.666578 42.666578 0 0 1-42.410578-38.869252l-14.933302-163.412993z" horiz-adv-x="1024" />
<glyph glyph-name="wifi" unicode="&#59635;" d="M240.64 327.765333a426.666667 426.666667 0 0 0 546.133333 0 42.666667 42.666667 0 0 1 54.613334 65.536 512 512 0 0 1-655.36 0 42.666667 42.666667 0 1 1 54.613333-65.536zM88.405333 480a640 640 0 0 0 846.762667 0 42.666667 42.666667 0 0 1 56.490667 64C717.44 785.877333 306.133333 785.877333 31.914667 544a42.666667 42.666667 0 1 1 56.490666-64z m299.818667-306.133333a213.333333 213.333333 0 0 0 247.125333 0 42.666667 42.666667 0 0 1 49.408 69.546666 298.666667 298.666667 0 0 1-345.941333 0 42.666667 42.666667 0 0 1 49.408-69.546666zM512 42.666667m-42.666667 0a42.666667 42.666667 0 1 1 85.333334 0 42.666667 42.666667 0 1 1-85.333334 0Z" horiz-adv-x="1024" />
<glyph glyph-name="x-square" unicode="&#59636;" d="M170.666667 682.88v-597.76c0-23.466667 18.986667-42.453333 42.453333-42.453333h597.76c23.466667 0 42.453333 18.986667 42.453333 42.453333V682.88A42.453333 42.453333 0 0 1 810.88 725.333333H213.12A42.453333 42.453333 0 0 1 170.666667 682.88z m-85.333334 0A127.786667 127.786667 0 0 0 213.12 810.666667h597.76A127.786667 127.786667 0 0 0 938.666667 682.88v-597.76A127.786667 127.786667 0 0 0 810.88-42.666667H213.12A127.786667 127.786667 0 0 0 85.333333 85.12V682.88zM353.834667 481.834667l256-256a42.666667 42.666667 0 0 1 60.330666 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666-60.330666zM609.834667 542.165333l-256-256a42.666667 42.666667 0 0 1 60.330666-60.330666l256 256a42.666667 42.666667 0 1 1-60.330666 60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="wind" unicode="&#59637;" d="M439.466667 670.08A42.666667 42.666667 0 1 0 469.461333 597.333333H85.333333a42.666667 42.666667 0 1 1 0-85.333333h384a127.957333 127.957333 0 0 1 64.298667 238.890667 128 128 0 0 1-154.709333-20.650667 42.666667 42.666667 0 0 1 60.501333-60.16z m67.413333-632.32A128 128 0 1 1 597.205333 256H85.333333a42.666667 42.666667 0 0 1 0-85.333333h512a42.709333 42.709333 0 0 0 21.674667-79.616 42.666667 42.666667 0 0 0-51.584 6.869333 42.666667 42.666667 0 1 1-60.501333-60.16z m279.722667 498.218667A64 64 0 1 0 831.914667 426.666667H85.333333a42.666667 42.666667 0 0 1 0-85.333334h746.666667a149.333333 149.333333 0 1 1-105.642667 255.061334 42.666667 42.666667 0 1 1 60.245334-60.416z" horiz-adv-x="1024" />
<glyph glyph-name="x" unicode="&#59638;" d="M737.834667 670.165333l-512-512a42.666667 42.666667 0 0 1 60.330666-60.330666l512 512a42.666667 42.666667 0 1 1-60.330666 60.330666zM225.834667 609.834667l512-512a42.666667 42.666667 0 0 1 60.330666 60.330666l-512 512a42.666667 42.666667 0 0 1-60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="x-circle" unicode="&#59639;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768zM609.834667 542.165333l-256-256a42.666667 42.666667 0 0 1 60.330666-60.330666l256 256a42.666667 42.666667 0 1 1-60.330666 60.330666zM353.834667 481.834667l256-256a42.666667 42.666667 0 0 1 60.330666 60.330666l-256 256a42.666667 42.666667 0 0 1-60.330666-60.330666z" horiz-adv-x="1024" />
<glyph glyph-name="zap" unicode="&#59640;" d="M128 256a42.666667 42.666667 0 0 0-32.768 69.973333l426.666667 512c27.264 32.725333 80.384 9.685333 75.093333-32.597333L560.298667 512H896a42.666667 42.666667 0 0 0 32.768-69.973333l-426.666667-512c-27.264-32.725333-80.384-9.685333-75.093333 32.597333l36.693333 293.376H128z m91.093333 85.333333H512a42.666667 42.666667 0 0 0 42.325333-47.957333l-24.618666-196.949333 275.2 330.24H512a42.666667 42.666667 0 0 0-42.325333 47.957333l24.618666 196.949333L219.093333 341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="zoom-in" unicode="&#59641;" d="M469.333333 42.666667a384 384 0 1 0 300.032 144.298666l156.8-156.8a42.666667 42.666667 0 0 0-60.330666-60.330666l-156.8 156.8A382.378667 382.378667 0 0 0 469.333333 42.666667z m0 85.333333a298.666667 298.666667 0 1 1 0 597.333333 298.666667 298.666667 0 0 1 0-597.333333zM426.666667 554.666667v-256a42.666667 42.666667 0 0 1 85.333333 0V554.666667a42.666667 42.666667 0 0 1-85.333333 0zM341.333333 384h256a42.666667 42.666667 0 0 1 0 85.333333H341.333333a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="zoom-out" unicode="&#59642;" d="M709.034667 126.634667a384 384 0 1 0 60.330666 60.330666l156.8-156.8a42.666667 42.666667 0 0 0-60.330666-60.330666l-156.8 156.8zM469.333333 128a298.666667 298.666667 0 1 1 0 597.333333 298.666667 298.666667 0 0 1 0-597.333333zM341.333333 384h256a42.666667 42.666667 0 0 1 0 85.333333H341.333333a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="command" unicode="&#59643;" d="M597.333333 213.33333300000004h-170.666666v-85.333333a170.666667 170.666667 0 1 0-170.666667 170.666667h85.333333v170.666666H256a170.666667 170.666667 0 1 0 170.666667 170.666667v-85.333333h170.666666V640a170.666667 170.666667 0 1 0 170.666667-170.666667h-85.333333v-170.666666h85.333333a170.666667 170.666667 0 1 0-170.666667-170.666667v85.333333z m-170.666666 256v-170.666666h170.666666v170.666666h-170.666666zM341.333333 554.666667V640a85.333333 85.333333 0 1 1-85.333333-85.333333h85.333333z m0-341.333334H256a85.333333 85.333333 0 1 1 85.333333-85.333333v85.333333z m341.333334-85.333333a85.333333 85.333333 0 1 1 85.333333 85.333333h-85.333333v-85.333333z m85.333333 426.666667a85.333333 85.333333 0 1 1-85.333333 85.333333v-85.333333h85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="cloud" unicode="&#59644;" d="M768.190293 512a255.914667 255.914667 0 1 0 0-511.829333H384.318293A383.914667 383.914667 0 1 0 745.918293 512h22.186667z m0-85.290667h-53.76a42.666667 42.666667 0 0 0-41.301333 32 298.581333 298.581333 0 1 1-288.853333-373.248h383.914666a170.624 170.624 0 1 1 0 341.248z" horiz-adv-x="1044" />
<glyph glyph-name="hash" unicode="&#59645;" d="M170.666667 469.333333h682.666666a42.666667 42.666667 0 0 1 0 85.333334H170.666667a42.666667 42.666667 0 1 1 0-85.333334zM170.666667 213.33333300000004h682.666666a42.666667 42.666667 0 0 1 0 85.333334H170.666667a42.666667 42.666667 0 0 1 0-85.333334zM384.256 772.6933329999999l-85.333333-768a42.666667 42.666667 0 1 1 84.821333-9.386666l85.333333 768a42.666667 42.666667 0 1 1-84.821333 9.386666zM640.256 772.6933329999999l-85.333333-768a42.666667 42.666667 0 1 1 84.821333-9.386666l85.333333 768a42.666667 42.666667 0 1 1-84.821333 9.386666z" horiz-adv-x="1024" />
<glyph glyph-name="headphones" unicode="&#59646;" d="M85.333333 213.33333300000004v170.666667C85.333333 619.648 276.352 810.666667 512 810.666667s426.666667-191.018667 426.666667-426.666667v-298.666667a128 128 0 0 0-128-128h-42.666667a128 128 0 0 0-128 128v128a128 128 0 0 0 128 128h85.333333v42.666667a341.333333 341.333333 0 0 1-682.666666 0v-42.666667h85.333333a128 128 0 0 0 128-128v-128a128 128 0 0 0-128-128H213.333333a128 128 0 0 0-128 128v128z m768 42.666667h-85.333333a42.666667 42.666667 0 0 1-42.666667-42.666667v-128a42.666667 42.666667 0 0 1 42.666667-42.666666h42.666667a42.666667 42.666667 0 0 1 42.666666 42.666666v170.666667zM170.666667 256v-170.666667a42.666667 42.666667 0 0 1 42.666666-42.666666h42.666667a42.666667 42.666667 0 0 1 42.666667 42.666666v128a42.666667 42.666667 0 0 1-42.666667 42.666667H170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="underline" unicode="&#59647;" d="M213.333333 768a42.666667 42.666667 0 1 0 85.333334 0v-298.666667a213.333333 213.333333 0 0 1 426.666666 0V768a42.666667 42.666667 0 0 0 85.333334 0v-298.666667a298.666667 298.666667 0 0 0-597.333334 0V768zM170.666667-42.666667a42.666667 42.666667 0 0 0 0 85.333334h682.666666a42.666667 42.666667 0 0 0 0-85.333334H170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="italic" unicode="&#59648;" d="M669.568 682.666667H810.666667a42.666667 42.666667 0 0 1 0 85.333333h-384a42.666667 42.666667 0 1 1 0-85.333333h151.765333l-224-597.333334H213.333333a42.666667 42.666667 0 0 1 0-85.333333h384a42.666667 42.666667 0 0 1 0 85.333333h-151.765333l224 597.333334z" horiz-adv-x="1024" />
<glyph glyph-name="bold" unicode="&#59649;" d="M743.936 399.701333A213.333333 213.333333 0 0 0 640 0H256a42.666667 42.666667 0 0 0-42.666667 42.666667V725.333333a42.666667 42.666667 0 0 0 42.666667 42.666667h341.333333a213.333333 213.333333 0 0 0 146.602667-368.298667zM298.666667 682.666667v-256h298.666666a128 128 0 0 1 0 256H298.666667z m0-597.333334h341.333333a128 128 0 0 1 0 256H298.666667v-256z" horiz-adv-x="1024" />
<glyph glyph-name="crop" unicode="&#59650;" d="M302.764169 679.379651L682.710044 682.664978a127.999733 127.999733 0 0 0 127.999734-127.999734v-383.9992h170.666311a42.666578 42.666578 0 0 0 0-85.333155h-170.666311v-170.666311a42.666578 42.666578 0 0 0-85.333156 0v170.666311H341.377422c-70.698519 0-127.999733 57.301214-127.999733 128.383732l3.285326 379.561876-173.567638-1.49333a42.666578 42.666578 0 0 0-0.767998 85.333156l175.060968 1.535996L218.924344 853.715288a42.666578 42.666578 0 0 0 85.333156-0.767998l-1.493331-173.567639z m-0.767998-85.333155L298.710844 213.332622a42.666578 42.666578 0 0 1 42.666578-42.666578h383.9992V554.665244c0 23.551951-19.114627 42.666578-42.282578 42.666578l-381.097873-3.285326z" horiz-adv-x="1024" />
<glyph glyph-name="help-circle" unicode="&#59651;" d="M512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z m0 128a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 0 0-85.333333z m-83.925333 369.834667a42.666667 42.666667 0 1 0-80.469334 28.330666A170.666667 170.666667 0 0 0 679.253333 469.333333c0-54.613333-32.341333-97.706667-82.986666-131.498666a323.2 323.2 0 0 0-74.197334-36.992 42.666667 42.666667 0 1 0-26.965333 80.981333 255.488 255.488 0 0 1 53.845333 27.008c29.312 19.584 44.970667 40.448 44.970667 60.586667a85.333333 85.333333 0 0 1-165.845333 28.416z" horiz-adv-x="1024" />
<glyph glyph-name="paperclip" unicode="&#59652;" d="M884.522667 428.586667l-392.106667-392.106667a213.461333 213.461333 0 0 0-301.909333 301.909333l392.106666 392.106667a128.085333 128.085333 0 1 0 181.162667-181.162667l-392.533333-392.106666a42.709333 42.709333 0 1 0-60.416 60.416l362.24 361.813333a42.666667 42.666667 0 0 1-60.288 60.330667l-362.24-361.813334a128.042667 128.042667 0 1 1 181.034666-181.077333l392.533334 392.106667a213.418667 213.418667 0 1 1-301.824 301.824l-392.106667-392.106667a298.794667 298.794667 0 1 1 422.570667-422.570667l392.106666 392.106667a42.666667 42.666667 0 0 1-60.330666 60.330667z" horiz-adv-x="1024" />
<glyph glyph-name="shopping-cart" unicode="&#59653;" d="M341.333333-128a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334z m512-85.333333a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333334 42.666667 42.666667 0 0 1 0-85.333334zM278.912 682.666667H981.333333a42.666667 42.666667 0 0 0 41.813334-51.029334l-71.68-357.930666A127.786667 127.786667 0 0 0 824.32 170.666667H373.674667a128 128 0 0 0-128 111.36L180.864 773.546667A42.666667 42.666667 0 0 1 138.666667 810.666667H42.666667a42.666667 42.666667 0 1 0 0 85.333333h96.085333a128 128 0 0 0 126.72-111.36L278.869333 682.666667z m51.413333-389.546667c2.773333-21.376 21.077333-37.290667 43.008-37.12h451.84a42.666667 42.666667 0 0 1 42.666667 34.389333L929.28 597.333333H290.133333l40.192-304.213333z" horiz-adv-x="1024" />
<glyph glyph-name="tv" unicode="&#59654;" d="M409.002667 640L268.501333 780.501333a42.666667 42.666667 0 0 0 60.330667 60.330667L512 657.664l183.168 183.168a42.666667 42.666667 0 0 0 60.330667-60.330667L614.997333 640H853.333333a128 128 0 0 0 128-128v-469.333333a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128V512a128 128 0 0 0 128 128h238.336zM170.666667 554.666667a42.666667 42.666667 0 0 1-42.666667-42.666667v-469.333333a42.666667 42.666667 0 0 1 42.666667-42.666667h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666667V512a42.666667 42.666667 0 0 1-42.666667 42.666667H170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="wifi-off" unicode="&#59655;" d="M669.172142 166.544518a42.497957 42.497957 0 0 0-33.035022 7.033262 213.129173 213.129173 0 0 1-246.888835 0 42.625835 42.625835 0 1 0-49.360716 69.480111 298.167714 298.167714 0 0 0 198.721641 54.006932l-118.542446 118.585072a423.700797 423.700797 0 0 1-178.602247-88.278103 42.625835 42.625835 0 1 0-54.688946 65.38803A508.952466 508.952466 0 0 0 350.92766 484.703748L251.950472 583.766187a635.551195 635.551195 0 0 1-162.233927-104.305417A42.625835 42.625835 0 1 0 33.27994 543.31427 720.802864 720.802864 0 0 0 187.926468 647.790191L13.458927 822.300358A42.625835 42.625835 0 1 0 73.731857 882.530663l217.604886-217.562261 1.321401-1.364026 168.158918-168.158918c2.685428-2.131292 5.1151-4.518338 7.246392-7.203766l543.479392-543.479392a42.625835 42.625835 0 0 0-60.315556-60.27293l-282.055148 282.012522zM512.479573-0.122496a42.625835 42.625835 0 1 0 0 85.251669 42.625835 42.625835 0 0 0 0-85.251669z m182.481199 385.380171a42.625835 42.625835 0 0 0 37.425482 76.641251c38.107496-18.62749 73.742694-41.901195 106.053077-69.352233a42.625835 42.625835 0 1 0-55.15783-64.961772 423.700797 423.700797 0 0 1-88.320729 57.672754z m-234.015833 252.003935a42.625835 42.625835 0 0 0-6.862759 84.995914A724.639189 724.639189 0 0 0 991.679207 543.356896a42.625835 42.625835 0 0 0-56.436605-63.938752A639.38752 639.38752 0 0 1 460.902313 637.26161z" horiz-adv-x="1024" />
<glyph glyph-name="minimize" unicode="&#59533;" d="M298.666667 768v-128a42.666667 42.666667 0 0 0-42.666667-42.666667H128a42.666667 42.666667 0 1 1 0-85.333333h128a128 128 0 0 1 128 128V768a42.666667 42.666667 0 1 1-85.333333 0z m597.333333-170.666667h-128a42.666667 42.666667 0 0 0-42.666667 42.666667V768a42.666667 42.666667 0 0 1-85.333333 0v-128a128 128 0 0 1 128-128h128a42.666667 42.666667 0 0 1 0 85.333333z m-170.666667-597.333333v128a42.666667 42.666667 0 0 0 42.666667 42.666667h128a42.666667 42.666667 0 0 1 0 85.333333h-128a128 128 0 0 1-128-128v-128a42.666667 42.666667 0 0 1 85.333333 0zM128 170.666667h128a42.666667 42.666667 0 0 0 42.666667-42.666667v-128a42.666667 42.666667 0 0 1 85.333333 0v128a128 128 0 0 1-128 128H128a42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="maximize" unicode="&#59656;" d="M341.333333 810.666667H213.333333a128 128 0 0 1-128-128v-128a42.666667 42.666667 0 1 1 85.333334 0V682.666667a42.666667 42.666667 0 0 0 42.666666 42.666666h128a42.666667 42.666667 0 1 1 0 85.333334z m597.333334-256V682.666667a128 128 0 0 1-128 128h-128a42.666667 42.666667 0 0 1 0-85.333334h128a42.666667 42.666667 0 0 0 42.666666-42.666666v-128a42.666667 42.666667 0 0 1 85.333334 0z m-256-597.333334h128a128 128 0 0 1 128 128v128a42.666667 42.666667 0 0 1-85.333334 0v-128a42.666667 42.666667 0 0 0-42.666666-42.666666h-128a42.666667 42.666667 0 0 1 0-85.333334zM85.333333 213.333333v-128a128 128 0 0 1 128-128h128a42.666667 42.666667 0 0 1 0 85.333334H213.333333a42.666667 42.666667 0 0 0-42.666666 42.666666v128a42.666667 42.666667 0 0 1-85.333334 0z" horiz-adv-x="1024" />
<glyph glyph-name="gitlab" unicode="&#59657;" d="M537.088-82.730667a42.666667 42.666667 0 0 0-50.176 0L32.341333 247.637333a78.421333 78.421333 0 0 0-28.16 87.594667l52.053334 161.365333 104.96 322.645334c3.413333 8.832 8.832 16.725333 15.701333 22.912a61.269333 61.269333 0 0 0 83.157333-0.810667 59.733333 59.733333 0 0 0 15.616-25.173333L370.176 526.08h283.648l95.274667 293.12c3.413333 8.874667 8.874667 16.768 15.744 22.954667a61.269333 61.269333 0 0 0 83.157333-0.810667 59.733333 59.733333 0 0 0 15.616-25.173333l103.936-319.957334 54.741333-162.133333a78.506667 78.506667 0 0 0-31.573333-87.125333l-453.632-329.685334zM86.869333 313.514667L512 4.522667l426.794667 310.186666-52.224 154.666667-80.725334 248.490667L725.333333 470.229333a42.666667 42.666667 0 0 0-40.576-29.482666h-345.6A42.666667 42.666667 0 0 0 298.666667 470.186667L217.898667 717.952 137.472 470.314667l-50.602667-156.8z" horiz-adv-x="1025" />
<glyph glyph-name="sliders" unicode="&#59658;" d="M810.666667 170.666667v-170.666667a42.666667 42.666667 0 0 1 85.333333 0v170.666667h85.333333a42.666667 42.666667 0 0 1 0 85.333333h-256a42.666667 42.666667 0 0 1 0-85.333333h85.333334zM469.333333 597.333333V768a42.666667 42.666667 0 0 0 85.333334 0v-170.666667h85.333333a42.666667 42.666667 0 0 0 0-85.333333H384a42.666667 42.666667 0 1 0 0 85.333333h85.333333z m-341.333333-341.333333v-256a42.666667 42.666667 0 0 1 85.333333 0v256h85.333334a42.666667 42.666667 0 0 1 0 85.333333H42.666667a42.666667 42.666667 0 0 1 0-85.333333h85.333333z m85.333333 213.333333a42.666667 42.666667 0 0 0-85.333333 0V768a42.666667 42.666667 0 1 0 85.333333 0v-298.666667z m341.333334-469.333333a42.666667 42.666667 0 0 0-85.333334 0v384a42.666667 42.666667 0 0 0 85.333334 0v-384z m341.333333 384a42.666667 42.666667 0 0 0-85.333333 0V768a42.666667 42.666667 0 0 0 85.333333 0v-384z" horiz-adv-x="1024" />
<glyph glyph-name="star-on" unicode="&#59659;" d="M473.728 829.568a42.666667 42.666667 0 0 0 76.544 0l121.898667-246.741333 272.64-39.808a42.624 42.624 0 0 0 23.637333-72.704l-197.248-191.914667 46.506667-271.146667a42.666667 42.666667 0 0 0-61.866667-44.928L512 90.410667l-243.84-128.085334a42.666667 42.666667 0 0 0-61.866667 44.928l46.506667 271.146667-197.248 191.914667a42.624 42.624 0 0 0 23.594667 72.704l272.64 39.808 121.941333 246.741333z" horiz-adv-x="1024" />
<glyph glyph-name="heart-on" unicode="&#59660;" d="M527.061333 729.472A277.333333 277.333333 0 0 0 1000.618667 533.333333a277.333333 277.333333 0 0 0-81.28-196.138666l-377.173334-377.173334a42.666667 42.666667 0 0 0-60.330666 0l-377.173334 377.173334a277.376 277.376 0 0 0 392.277334 392.277333l15.061333-15.061333 15.061333 15.061333z" horiz-adv-x="1024" />
<glyph glyph-name="archive" unicode="&#59661;" d="M853.333333 512H170.666667v-469.333333h682.666666V512z m85.333334 0v-512a42.666667 42.666667 0 0 0-42.666667-42.666667H128a42.666667 42.666667 0 0 0-42.666667 42.666667V512H42.666667a42.666667 42.666667 0 0 0-42.666667 42.666667V768a42.666667 42.666667 0 0 0 42.666667 42.666667h938.666666a42.666667 42.666667 0 0 0 42.666667-42.666667v-213.333333a42.666667 42.666667 0 0 0-42.666667-42.666667h-42.666666zM85.333333 725.333333v-128h853.333334V725.333333H85.333333z m341.333334-384a42.666667 42.666667 0 0 0 0 85.333334h170.666666a42.666667 42.666667 0 0 0 0-85.333334h-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-down-circle" unicode="&#59662;" d="M469.333333 316.330667V554.666667a42.666667 42.666667 0 0 0 85.333334 0v-238.336l97.834666 97.834666a42.666667 42.666667 0 0 0 60.330667-60.330666l-170.666667-170.666667a42.666667 42.666667 0 0 0-60.330666 0l-170.666667 170.666667a42.666667 42.666667 0 0 0 60.330667 60.330666L469.333333 316.330667zM512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-up-circle" unicode="&#59663;" d="M554.666667 451.669333V213.333333a42.666667 42.666667 0 0 0-85.333334 0v238.336l-97.834666-97.834666a42.666667 42.666667 0 1 0-60.330667 60.330666l170.666667 170.666667a42.666667 42.666667 0 0 0 60.330666 0l170.666667-170.666667a42.666667 42.666667 0 0 0-60.330667-60.330666L554.666667 451.669333zM512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-left-circle" unicode="&#59664;" d="M444.330667 426.666667H682.666667a42.666667 42.666667 0 0 0 0-85.333334h-238.336l97.834666-97.834666a42.666667 42.666667 0 0 0-60.330666-60.330667l-170.666667 170.666667a42.666667 42.666667 0 0 0 0 60.330666l170.666667 170.666667a42.666667 42.666667 0 0 0 60.330666-60.330667L444.330667 426.666667zM512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="arrow-right-circle" unicode="&#59665;" d="M579.669333 341.333333H341.333333a42.666667 42.666667 0 0 0 0 85.333334h238.336l-97.834666 97.834666a42.666667 42.666667 0 1 0 60.330666 60.330667l170.666667-170.666667a42.666667 42.666667 0 0 0 0-60.330666l-170.666667-170.666667a42.666667 42.666667 0 0 0-60.330666 60.330667L579.669333 341.333333zM512-85.333333C252.8-85.333333 42.666667 124.8 42.666667 384S252.8 853.333333 512 853.333333s469.333333-210.133333 469.333333-469.333333-210.133333-469.333333-469.333333-469.333333z m0 85.333333a384 384 0 1 1 0 768 384 384 0 0 1 0-768z" horiz-adv-x="1024" />
<glyph glyph-name="bar-chart-line-" unicode="&#59666;" d="M810.666667 42.666667a42.666667 42.666667 0 0 0-85.333334 0V469.333333a42.666667 42.666667 0 0 0 85.333334 0v-426.666666z m-256 0a42.666667 42.666667 0 0 0-85.333334 0V725.333333a42.666667 42.666667 0 0 0 85.333334 0v-682.666666z m-256 0a42.666667 42.666667 0 0 0-85.333334 0v256a42.666667 42.666667 0 0 0 85.333334 0v-256z" horiz-adv-x="1024" />
<glyph glyph-name="bar-chart-line" unicode="&#59667;" d="M554.666667 42.666667a42.666667 42.666667 0 0 0-85.333334 0V469.333333a42.666667 42.666667 0 0 0 85.333334 0v-426.666666z m256 0a42.666667 42.666667 0 0 0-85.333334 0V725.333333a42.666667 42.666667 0 0 0 85.333334 0v-682.666666zM298.666667 42.666667a42.666667 42.666667 0 0 0-85.333334 0v170.666666a42.666667 42.666667 0 0 0 85.333334 0v-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="book-open" unicode="&#59668;" d="M128 725.333333v-554.666666h256c31.104 0 60.245333-8.32 85.333333-22.826667V597.333333a128 128 0 0 1-128 128H128z m384-768c-21.333333 0-42.666667 14.208-42.666667 42.666667a85.333333 85.333333 0 0 1-85.333333 85.333333H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V768a42.666667 42.666667 0 0 0 42.666666 42.666667h256c69.802667 0 131.754667-33.493333 170.666667-85.333334a212.992 212.992 0 0 0 170.666667 85.333334h256a42.666667 42.666667 0 0 0 42.666666-42.666667v-640a42.666667 42.666667 0 0 0-42.666666-42.666667h-298.666667a85.333333 85.333333 0 0 1-85.333333-85.333333c0-28.458667-21.333333-42.666667-42.666667-42.666667s-42.666667 14.208-42.666667 42.666667c0 63.146667 34.304 118.314667 85.333334 147.84V0c0-28.458667-21.333333-42.666667-42.666667-42.666667z m384 768h-213.333333a128 128 0 0 1-128-128v-449.493333A169.898667 169.898667 0 0 0 640 170.666667h256V725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="code" unicode="&#59669;" d="M652.501333 609.834667a42.666667 42.666667 0 1 0 60.330667 60.330666l256-256a42.666667 42.666667 0 0 0 0-60.330666l-256-256a42.666667 42.666667 0 0 0-60.330667 60.330666L878.336 384l-225.834667 225.834667zM145.664 384l225.834667-225.834667a42.666667 42.666667 0 0 0-60.330667-60.330666l-256 256a42.666667 42.666667 0 0 0 0 60.330666l256 256a42.666667 42.666667 0 0 0 60.330667-60.330666L145.664 384z" horiz-adv-x="1024" />
<glyph glyph-name="database" unicode="&#59670;" d="M170.666667 574.805333V384c0-34.688 151.722667-85.333333 341.333333-85.333333s341.333333 50.645333 341.333333 85.333333V574.805333C775.466667 534.357333 651.52 512 512 512c-139.52 0-263.466667 22.357333-341.333333 62.805333zM85.333333 682.666667c0 106.965333 191.146667 170.666667 426.666667 170.666666s426.666667-63.701333 426.666667-170.666666v-597.333334c0-107.178667-190.208-170.666667-426.666667-170.666666S85.333333-21.845333 85.333333 85.333333V682.666667z m768-406.741334C775.637333 235.52 651.946667 213.333333 512 213.333333c-139.946667 0-263.637333 22.229333-341.333333 62.592V85.333333c0-34.688 151.722667-85.333333 341.333333-85.333333s341.333333 50.645333 341.333333 85.333333v190.592zM512 597.333333c188.586667 0 341.333333 50.901333 341.333333 85.333334 0 34.432-152.746667 85.333333-341.333333 85.333333S170.666667 717.098667 170.666667 682.666667c0-34.432 152.746667-85.333333 341.333333-85.333334z" horiz-adv-x="1024" />
<glyph glyph-name="dollar-sign" unicode="&#59671;" d="M554.666667 725.333333h170.666666a42.666667 42.666667 0 0 0 0-85.333333h-170.666666v-213.333333h64a192 192 0 0 0 0-384H554.666667v-128a42.666667 42.666667 0 0 0-85.333334 0v128H256a42.666667 42.666667 0 0 0 0 85.333333h213.333333v213.333333H405.333333a192 192 0 1 0 0 384H469.333333V853.333333a42.666667 42.666667 0 0 0 85.333334 0v-128z m0-384v-213.333333h64a106.666667 106.666667 0 0 1 0 213.333333H554.666667z m-85.333334 85.333334V640H405.333333a106.666667 106.666667 0 1 1 0-213.333333H469.333333z" horiz-adv-x="1024" />
<glyph glyph-name="folder-plus" unicode="&#59672;" d="M554.666667 341.333333h85.333333a42.666667 42.666667 0 0 0 0-85.333333h-85.333333v-85.333333a42.666667 42.666667 0 0 0-85.333334 0v85.333333H384a42.666667 42.666667 0 0 0 0 85.333333h85.333333v85.333334a42.666667 42.666667 0 0 0 85.333334 0v-85.333334z m-62.506667 341.333334H853.333333a128 128 0 0 0 128-128v-469.333334a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128V682.666667a128 128 0 0 0 128 128h213.333333a42.666667 42.666667 0 0 0 35.498667-18.986667L492.16 682.666667z m-130.986667 42.666666H170.666667a42.666667 42.666667 0 0 1-42.666667-42.666666v-597.333334a42.666667 42.666667 0 0 1 42.666667-42.666666h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666666V554.666667a42.666667 42.666667 0 0 1-42.666667 42.666666h-384a42.666667 42.666667 0 0 0-35.498666 18.986667L361.173333 725.333333z" horiz-adv-x="1024" />
<glyph glyph-name="gift" unicode="&#59673;" d="M838.954667 640H938.666667a42.666667 42.666667 0 0 0 42.666666-42.666667v-213.333333a42.666667 42.666667 0 0 0-42.666666-42.666667h-42.666667v-384a42.666667 42.666667 0 0 0-42.666667-42.666666H170.666667a42.666667 42.666667 0 0 0-42.666667 42.666666v384H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666667V597.333333a42.666667 42.666667 0 0 0 42.666666 42.666667h99.712A149.333333 149.333333 0 0 0 320 853.333333c83.626667 0 145.962667-49.834667 189.397333-128.768l2.602667-4.821333 2.602667 4.821333C558.08 803.498667 620.373333 853.333333 704 853.333333a149.333333 149.333333 0 0 0 134.954667-213.333333zM554.666667 554.666667v-128h341.333333V554.666667h-341.333333z m-85.333334 0H128v-128h341.333333V554.666667z m85.333334-554.666667h256v341.333333h-256v-341.333333z m-85.333334 0v341.333333H213.333333v-341.333333h256z m-34.730666 683.434667C404.693333 737.834667 367.018667 768 320 768a64 64 0 0 1 0-128h134.570667a347.904 347.904 0 0 1-19.968 43.434667zM704 640a64 64 0 0 1 0 128c-47.018667 0-84.693333-30.165333-114.602667-84.565333A347.861333 347.861333 0 0 1 569.429333 640H704z" horiz-adv-x="1024" />
<glyph glyph-name="folder-minus" unicode="&#59674;" d="M492.16 682.666667H853.333333a128 128 0 0 0 128-128v-469.333334a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128V682.666667a128 128 0 0 0 128 128h213.333333a42.666667 42.666667 0 0 0 35.498667-18.986667L492.16 682.666667z m-130.986667 42.666666H170.666667a42.666667 42.666667 0 0 1-42.666667-42.666666v-597.333334a42.666667 42.666667 0 0 1 42.666667-42.666666h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666666V554.666667a42.666667 42.666667 0 0 1-42.666667 42.666666h-384a42.666667 42.666667 0 0 0-35.498666 18.986667L361.173333 725.333333zM384 256a42.666667 42.666667 0 0 0 0 85.333333h256a42.666667 42.666667 0 0 0 0-85.333333H384z" horiz-adv-x="1024" />
<glyph glyph-name="git-commit" unicode="&#59675;" d="M721.109333 341.589333a213.418667 213.418667 0 0 0-418.218666-0.042666A43.178667 43.178667 0 0 0 298.666667 341.333333H44.8a42.666667 42.666667 0 0 0 0 85.333334H298.666667c1.408 0 2.816-0.085333 4.224-0.213334a213.418667 213.418667 0 0 0 418.218666 0c1.536 0.128 3.072 0.213333 4.650667 0.213334h253.866667a42.666667 42.666667 0 0 0 0-85.333334h-253.866667c-1.578667 0-3.114667 0.085333-4.650667 0.256zM512 256a128 128 0 1 1 0 256 128 128 0 0 1 0-256z" horiz-adv-x="1024" />
<glyph glyph-name="git-branch" unicode="&#59676;" d="M421.717333 86.997333A170.752 170.752 0 0 0 85.333333 128a170.752 170.752 0 0 0 128 165.290667V768a42.666667 42.666667 0 1 0 85.333334 0v-474.709333a170.965333 170.965333 0 0 0 122.112-120.661334 341.461333 341.461333 0 0 1 302.592 302.592A170.752 170.752 0 0 0 768 810.666667a170.666667 170.666667 0 0 0 41.002667-336.384 426.794667 426.794667 0 0 0-387.285334-387.285334zM768 554.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM256 42.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="git-pull-request" unicode="&#59677;" d="M213.333333 474.709333A170.752 170.752 0 0 0 256 810.666667a170.666667 170.666667 0 0 0 42.666667-335.957334V0a42.666667 42.666667 0 0 0-85.333334 0V474.709333z m512-181.418666V554.666667a42.666667 42.666667 0 0 1-42.666666 42.666666h-128a42.666667 42.666667 0 0 0 0 85.333334h128a128 128 0 0 0 128-128v-261.376A170.752 170.752 0 0 0 768-42.666667a170.666667 170.666667 0 0 0-42.666667 335.957334zM768 42.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM256 554.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="git-merge" unicode="&#59678;" d="M602.282667 86.997333A426.154667 426.154667 0 0 0 298.666667 255.957333V0a42.666667 42.666667 0 0 0-85.333334 0V474.709333A170.752 170.752 0 0 0 256 810.666667a170.666667 170.666667 0 0 0 44.629333-335.445334 341.461333 341.461333 0 0 1 302.592-302.592A170.752 170.752 0 0 0 938.666667 128a170.666667 170.666667 0 0 0-336.384-41.002667zM768 42.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666zM256 554.666667a85.333333 85.333333 0 1 1 0 170.666666 85.333333 85.333333 0 0 1 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="linkedin" unicode="&#59679;" d="M682.666667 554.666667a298.666667 298.666667 0 0 0 298.666666-298.666667v-298.666667a42.666667 42.666667 0 0 0-42.666666-42.666666h-170.666667a42.666667 42.666667 0 0 0-42.666667 42.666666v298.666667a42.666667 42.666667 0 0 1-85.333333 0v-298.666667a42.666667 42.666667 0 0 0-42.666667-42.666666h-170.666666a42.666667 42.666667 0 0 0-42.666667 42.666666v298.666667a298.666667 298.666667 0 0 0 298.666667 298.666667z m213.333333-554.666667v256a213.333333 213.333333 0 0 1-426.666667 0v-256h85.333334v256a128 128 0 0 0 256 0v-256h85.333333zM85.333333 512h170.666667a42.666667 42.666667 0 0 0 42.666667-42.666667v-512a42.666667 42.666667 0 0 0-42.666667-42.666666H85.333333a42.666667 42.666667 0 0 0-42.666666 42.666666V469.333333a42.666667 42.666667 0 0 0 42.666666 42.666667z m42.666667-85.333333v-426.666667h85.333333V426.666667H128z m42.666667 128a128 128 0 1 0 0 256 128 128 0 0 0 0-256z m0 85.333333a42.666667 42.666667 0 1 1 0 85.333333 42.666667 42.666667 0 0 1 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="hard-drive" unicode="&#59680;" d="M976.426667 403.882667A42.368 42.368 0 0 0 981.333333 384v-256a128 128 0 0 0-128-128H170.666667a128 128 0 0 0-128 128v256a42.666667 42.666667 0 0 0 4.906666 19.882667l146.773334 293.12A128 128 0 0 0 308.906667 768h406.186666c48.597333 0 92.970667-27.562667 114.517334-70.912l146.816-293.205333zM869.589333 426.666667l-116.352 232.32A42.666667 42.666667 0 0 1 715.093333 682.666667H308.906667a42.666667 42.666667 0 0 1-38.144-23.68L154.410667 426.666667h715.178666zM896 341.333333H128v-213.333333a42.666667 42.666667 0 0 1 42.666667-42.666667h682.666666a42.666667 42.666667 0 0 1 42.666667 42.666667v213.333333zM256 170.666667a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 0 0-85.333333z m170.666667 0a42.666667 42.666667 0 1 0 0 85.333333 42.666667 42.666667 0 0 0 0-85.333333z" horiz-adv-x="1024" />
<glyph glyph-name="more-vertical-" unicode="&#59681;" d="M512 298.666667a85.333333 85.333333 0 1 0 0 170.666666 85.333333 85.333333 0 0 0 0-170.666666z m0 298.666666a85.333333 85.333333 0 1 0 0 170.666667 85.333333 85.333333 0 0 0 0-170.666667z m0-597.333333a85.333333 85.333333 0 1 0 0 170.666667 85.333333 85.333333 0 0 0 0-170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="more-horizontal-" unicode="&#59682;" d="M512 298.666667a85.333333 85.333333 0 1 0 0 170.666666 85.333333 85.333333 0 0 0 0-170.666666z m298.666667 0a85.333333 85.333333 0 1 0 0 170.666666 85.333333 85.333333 0 0 0 0-170.666666zM213.333333 298.666667a85.333333 85.333333 0 1 0 0 170.666666 85.333333 85.333333 0 0 0 0-170.666666z" horiz-adv-x="1024" />
<glyph glyph-name="rss" unicode="&#59683;" d="M170.666667 384a42.666667 42.666667 0 0 0 0 85.333333c235.648 0 426.666667-191.018667 426.666666-426.666666a42.666667 42.666667 0 0 0-85.333333 0 341.333333 341.333333 0 0 1-341.333333 341.333333z m0 298.666667a42.666667 42.666667 0 1 0 0 85.333333c400.597333 0 725.333333-324.736 725.333333-725.333333a42.666667 42.666667 0 0 0-85.333333 0c0 353.450667-286.549333 640-640 640z m42.666666-682.666667a85.333333 85.333333 0 1 0 0 170.666667 85.333333 85.333333 0 0 0 0-170.666667z" horiz-adv-x="1024" />
<glyph glyph-name="send" unicode="&#59684;" d="M923.690667 850.645333a42.666667 42.666667 0 0 0 54.954666-54.954666l-298.368-852.48c-12.8-36.437333-63.573333-38.528-79.274666-3.2l-164.010667 368.981333-368.981333 164.010667c-35.328 15.701333-33.28 66.517333 3.242666 79.274666l852.437334 298.368z m-147.413334-141.994666L201.002667 507.264l258.901333-115.029333 316.373333 316.416z m60.373334-60.373334l-316.416-316.373333 115.029333-258.901333 201.386667 575.274666z" horiz-adv-x="1024" />
<glyph glyph-name="shield-off" unicode="&#59685;" d="M781.789867 174.592l0.426666-0.426667 229.290667-229.333333a42.666667 42.666667 0 0 0-60.330667-60.330667l-198.528 198.528a908.373333 908.373333 0 0 0-220.714666-163.413333 42.666667 42.666667 0 0 0-38.997334-0.426667 738.56 738.56 0 0 0-56.874666 32.64 958.506667 958.506667 0 0 0-122.837334 90.709334C198.237867 143.232 128.008533 257.322667 128.008533 384V682.666667c0 7.125333 1.792 13.994667 4.992 20.010666L12.509867 823.168A42.666667 42.666667 0 1 0 72.840533 883.498667l158.506667-158.506667 1.322667-1.28 549.12-549.12zM213.341867 622.336V384c0-97.28 57.770667-191.189333 156.117333-277.205333a874.24 874.24 0 0 1 142.506667-100.906667 823.04 823.04 0 0 1 180.352 137.472L213.341867 622.336z m298.666666 142.762667L392.1152 720.341333a42.666667 42.666667 0 0 0-29.866667 79.957334l134.826667 50.346666a42.666667 42.666667 0 0 0 29.909333 0l341.333334-128A42.666667 42.666667 0 0 0 896.008533 682.666667v-298.965334a337.066667 337.066667 0 0 0-15.146666-97.706666 42.666667 42.666667 0 0 0-81.493334 25.301333A251.306667 251.306667 0 0 1 810.6752 384V653.098667l-298.666667 112z" horiz-adv-x="1024" />
<glyph glyph-name="shopping-bag" unicode="&#59686;" d="M929.877333 665.941333A42.794667 42.794667 0 0 0 938.666667 640v-597.333333a128 128 0 0 0-128-128H213.333333a128 128 0 0 0-128 128V640a42.666667 42.666667 0 0 0 8.789334 25.941333L221.866667 836.266667A42.666667 42.666667 0 0 0 256 853.333333h512a42.666667 42.666667 0 0 0 34.133333-17.066666l127.744-170.325334zM810.666667 682.666667l-64 85.333333h-469.333334L213.333333 682.666667h597.333334z m42.666666-85.333334H170.666667v-554.666666a42.666667 42.666667 0 0 1 42.666666-42.666667h597.333334a42.666667 42.666667 0 0 1 42.666666 42.666667V597.333333z m-213.333333-128a42.666667 42.666667 0 0 0 85.333333 0 213.333333 213.333333 0 0 0-426.666666 0 42.666667 42.666667 0 1 0 85.333333 0 128 128 0 0 1 256 0z" horiz-adv-x="1024" />
<glyph glyph-name="terminal" unicode="&#59687;" d="M140.501333 652.501333a42.666667 42.666667 0 0 0 60.330667 60.330667l256-256a42.666667 42.666667 0 0 0 0-60.330667l-256-256a42.666667 42.666667 0 1 0-60.330667 60.330667L366.336 426.666667 140.501333 652.501333zM512 42.666667a42.666667 42.666667 0 0 0 0 85.333333h341.333333a42.666667 42.666667 0 0 0 0-85.333333h-341.333333z" horiz-adv-x="1024" />
<glyph glyph-name="truck" unicode="&#59688;" d="M924.288 170.666667a149.333333 149.333333 0 1 0-269.909333 0H369.621333a149.333333 149.333333 0 1 0-269.909333 0H42.666667a42.666667 42.666667 0 0 0-42.666667 42.666666V768a42.666667 42.666667 0 0 0 42.666667 42.666667h640a42.666667 42.666667 0 0 0 42.666666-42.666667v-170.666667h128a42.666667 42.666667 0 0 0 30.165334-12.501333l128-128A42.666667 42.666667 0 0 0 1024 426.666667v-213.333334a42.666667 42.666667 0 0 0-42.666667-42.666666h-57.045333zM640 554.666667V725.333333H85.333333v-469.333333h554.666667V554.666667z m85.333333-42.666667v-256h213.333334v153.002667L835.669333 512H725.333333zM234.666667 42.666667a64 64 0 1 1 0 128 64 64 0 0 1 0-128z m554.666666 0a64 64 0 1 1 0 128 64 64 0 0 1 0-128z" horiz-adv-x="1024" />
<glyph glyph-name="zap-off" unicode="&#59689;" d="M283.613867 552.064L12.509867 823.168A42.666667 42.666667 0 1 0 72.840533 883.498667L371.208533 585.130667l0.682667-0.682667 340.650667-340.650667 0.682666-0.682666 298.282667-298.24a42.666667 42.666667 0 0 0-60.330667-60.373334l-265.642666 265.642667-183.424-220.16c-27.264-32.682667-80.384-9.642667-75.093334 32.64l36.693334 293.376H128.008533a42.666667 42.666667 0 0 0-32.768 69.973333L283.613867 552.106667z m60.586666-60.586667L219.101867 341.333333h275.2L344.2432 491.477333z m208.810667-208.810666l-23.296-186.24 95.232 114.304-71.936 71.936zM483.805867 658.773333A42.666667 42.666667 0 1 0 418.141867 713.386667l103.68 124.586666c27.264 32.725333 80.384 9.728 75.136-32.554666l-25.173334-202.666667a42.666667 42.666667 0 1 0-84.650666 10.496l7.253333 58.282667-10.666667-12.757334zM668.168533 426.666667a42.666667 42.666667 0 0 0 0 85.333333H896.008533a42.666667 42.666667 0 0 0 32.768-70.016l-103.68-124.16a42.666667 42.666667 0 0 0-65.536 54.698667L804.7872 426.666667H668.168533z" horiz-adv-x="1024" />
<glyph glyph-name="youtube" unicode="&#59690;" d="M1003.093333 632.448l0.64-2.773333A1278.72 1278.72 0 0 0 1024 394.837333a1279.573333 1279.573333 0 0 0-20.906667-234.538666 161.536 161.536 0 0 0-113.152-116.181334c-32.426667-8.661333-95.658667-13.994667-184.618666-17.365333a5295.061333 5295.061333 0 0 0-253.781334-3.242667c-45.269333 0.554667-90.538667 1.621333-132.906666 3.242667-88.917333 3.413333-152.192 8.704-184.832 17.408-54.442667 14.933333-97.109333 57.173333-113.493334 115.498667A1278.464 1278.464 0 0 0 0 394.453333C-0.426667 472.746667 6.4 550.912 20.906667 630.741333a161.536 161.536 0 0 0 113.109333 116.181334c32.426667 8.661333 95.701333 13.994667 184.618667 17.365333a5295.061333 5295.061333 0 0 0 253.738666 3.285333c45.226667-0.512 90.496-1.450667 132.821334-2.944 88.661333-3.072 151.765333-7.936 185.344-16.170666a161.28 161.28 0 0 0 112.554666-116.053334z m-83.072-19.498667a75.392 75.392 0 0 1-51.2 53.034667c-24.064 5.845333-84.48 10.496-166.570666 13.354667a5711.914667 5711.914667 0 0 1-249.6 2.858666c-44.586667-0.554667-89.173333-1.578667-130.688-3.157333-81.792-3.114667-142.08-8.192-165.248-14.378667-26.197333-7.424-46.421333-28.245333-52.394667-51.84A1196.202667 1196.202667 0 0 1 85.333333 394.368c-0.469333-73.6 5.845333-147.072 17.962667-215.466667 7.253333-25.514667 27.392-45.397333 52.778667-52.352 23.765333-6.357333 84.053333-11.434667 165.845333-14.506666a5212.416 5212.416 0 0 1 249.429333-3.2c44.586667 0.554667 89.173333 1.578667 130.688 3.157333 81.792 3.114667 142.08 8.192 165.248 14.378667 26.197333 7.424 46.421333 28.245333 52.394667 51.84 12.885333 71.381333 19.2 143.786667 18.986667 216.746666a1194.666667 1194.666667 0 0 1-18.688 218.026667z m-482.901333-394.88a42.666667 42.666667 0 0 0-63.744 37.077334V534.186667a42.666667 42.666667 0 0 0 63.744 37.12l245.333333-139.52a42.666667 42.666667 0 0 0 0-74.24l-245.333333-139.52z m137.941333 176.597334L458.666667 460.8v-132.266667l116.352 66.133334z" horiz-adv-x="1024" />
</font>
</defs></svg>

Before

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large Load Diff
-15
View File
@@ -1,15 +0,0 @@
export default {
// Endpoints
loginEndpoint: '/jwt/login',
registerEndpoint: '/jwt/register',
refreshEndpoint: '/jwt/refresh-token',
logoutEndpoint: '/jwt/logout',
// This will be prefixed in authorization header with token
// e.g. Authorization: Bearer <token>
tokenType: 'Bearer',
// Value of this property will be used as key to store JWT token in storage
storageTokenKeyName: 'accessToken',
storageRefreshTokenKeyName: 'refreshToken',
}
-111
View File
@@ -1,111 +0,0 @@
import jwtDefaultConfig from './jwtDefaultConfig'
export default class JwtService {
// Will be used by this service for making API calls
axiosIns = null
// jwtConfig <= Will be used by this service
jwtConfig = { ...jwtDefaultConfig }
// For Refreshing Token
isAlreadyFetchingAccessToken = false
// For Refreshing Token
subscribers = []
constructor(axiosIns, jwtOverrideConfig) {
this.axiosIns = axiosIns
this.jwtConfig = { ...this.jwtConfig, ...jwtOverrideConfig }
// Request Interceptor
this.axiosIns.interceptors.request.use(
config => {
// Get token from localStorage
const accessToken = this.getToken()
// If token is present add it to request's Authorization Header
if (accessToken) {
// eslint-disable-next-line no-param-reassign
config.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`
}
return config
},
error => Promise.reject(error),
)
// Add request/response interceptor
this.axiosIns.interceptors.response.use(
response => response,
error => {
// const { config, response: { status } } = error
const { config, response } = error
const originalRequest = config
// if (status === 401) {
if (response && response.status === 401) {
if (!this.isAlreadyFetchingAccessToken) {
this.isAlreadyFetchingAccessToken = true
this.refreshToken().then(r => {
this.isAlreadyFetchingAccessToken = false
// Update accessToken in localStorage
this.setToken(r.data.accessToken)
this.setRefreshToken(r.data.refreshToken)
this.onAccessTokenFetched(r.data.accessToken)
})
}
const retryOriginalRequest = new Promise(resolve => {
this.addSubscriber(accessToken => {
// Make sure to assign accessToken according to your response.
// Check: https://pixinvent.ticksy.com/ticket/2413870
// Change Authorization header
originalRequest.headers.Authorization = `${this.jwtConfig.tokenType} ${accessToken}`
resolve(this.axiosIns(originalRequest))
})
})
return retryOriginalRequest
}
return Promise.reject(error)
},
)
}
onAccessTokenFetched(accessToken) {
this.subscribers = this.subscribers.filter(callback => callback(accessToken))
}
addSubscriber(callback) {
this.subscribers.push(callback)
}
getToken() {
return localStorage.getItem(this.jwtConfig.storageTokenKeyName)
}
getRefreshToken() {
return localStorage.getItem(this.jwtConfig.storageRefreshTokenKeyName)
}
setToken(value) {
localStorage.setItem(this.jwtConfig.storageTokenKeyName, value)
}
setRefreshToken(value) {
localStorage.setItem(this.jwtConfig.storageRefreshTokenKeyName, value)
}
login(...args) {
return this.axiosIns.post(this.jwtConfig.loginEndpoint, ...args)
}
register(...args) {
return this.axiosIns.post(this.jwtConfig.registerEndpoint, ...args)
}
refreshToken() {
return this.axiosIns.post(this.jwtConfig.refreshEndpoint, {
refreshToken: this.getRefreshToken(),
})
}
}
-9
View File
@@ -1,9 +0,0 @@
import JwtService from './jwtService'
export default function useJwt(axiosIns, jwtOverrideConfig) {
const jwt = new JwtService(axiosIns, jwtOverrideConfig)
return {
jwt,
}
}
@@ -1,23 +0,0 @@
export const useInputImageRenderer = (inputEl, callback) => {
const inputImageRenderer = () => {
const file = inputEl.value.files[0]
const reader = new FileReader()
reader.addEventListener(
'load',
() => {
callback(reader.result)
},
false,
)
if (file) {
reader.readAsDataURL(file)
}
}
return {
inputImageRenderer,
}
}
export const _ = null
@@ -1,66 +0,0 @@
import { ref, nextTick } from '@vue/composition-api'
// ===========================================================
// ! This is coupled with "veeValidate" plugin
// ===========================================================
export default function formValidation(resetFormData, clearFormData = () => {}) {
// ------------------------------------------------
// refFormObserver
// ! This is for veeValidate Observer
// * Used for veeValidate form observer
// ------------------------------------------------
const refFormObserver = ref(null)
// ------------------------------------------------
// resetObserver
// ! This function is coupled with veeValidate
// * It resets form observer
// ------------------------------------------------
const resetObserver = () => {
refFormObserver.value.reset()
}
// ------------------------------------------------
// getValidationState
// ! This function is coupled with veeValidate
// * It returns true/false based on validation
// ------------------------------------------------
// eslint-disable-next-line object-curly-newline
const getValidationState = ({ dirty, validated, required: fieldRequired, changed, valid = null }) => {
const result = dirty || validated ? valid : null
return !fieldRequired && !changed ? null : result
}
// ------------------------------------------------
// resetForm
// ! This function is coupled with veeValidate
// * This uses resetFormData arg to reset form data
// ------------------------------------------------
const resetForm = () => {
resetFormData()
nextTick(() => {
resetObserver()
})
}
// ------------------------------------------------
// clearForm
// ! This function is coupled with veeValidate
// * This uses clearFormData arg to reset form data
// ------------------------------------------------
const clearForm = () => {
clearFormData()
nextTick(() => {
resetObserver()
})
}
return {
refFormObserver,
resetObserver,
getValidationState,
resetForm,
clearForm,
}
}
@@ -1,20 +0,0 @@
import { ref, onUnmounted } from '@vue/composition-api'
export const useScrollListener = () => {
const scrolledTo = ref(null)
const scrollHandler = () => {
scrolledTo.value = window.scrollY
}
window.addEventListener('scroll', scrollHandler)
onUnmounted(() => {
window.removeEventListener('scroll', scrollHandler)
})
return {
scrolledTo,
}
}
export const _ = null
-18
View File
@@ -1,18 +0,0 @@
import store from '@/store'
import { ref, watch, computed } from '@vue/composition-api'
export const useResponsiveAppLeftSidebarVisibility = () => {
const mqShallShowLeftSidebar = ref(false)
// Close Active Sidebars and other stuff when going in large device
const currentBreakPoint = computed(() => store.getters['app/currentBreakPoint'])
watch(currentBreakPoint, (val, oldVal) => {
// Reset chats & contacts left sidebar
if (oldVal === 'md' && val === 'lg') mqShallShowLeftSidebar.value = false
})
return {
mqShallShowLeftSidebar,
}
}
export const _ = {}
@@ -1,21 +0,0 @@
import { onBeforeUnmount } from '@vue/composition-api'
import userAppConfig from '@core/app-config/useAppConfig'
/**
* Collapse vertical menu when route is visited and restore the state on route leave
*/
export const useCollapseMenuOnVisit = () => {
const { isVerticalMenuCollapsed } = userAppConfig()
const wasVerticalMenuCollapsed = isVerticalMenuCollapsed.value
if (!wasVerticalMenuCollapsed.value) {
isVerticalMenuCollapsed.value = true
}
// Restore the original collapse value
onBeforeUnmount(() => {
isVerticalMenuCollapsed.value = wasVerticalMenuCollapsed
})
}
export const _ = null
@@ -1,128 +0,0 @@
<template>
<div class="app-auto-suggest">
<input
v-model="searchQuery"
type="text"
v-bind="inputProps"
>
<ul class="auto-suggest-suggestions-list">
<li
v-for="(suggestion_list, grp_name, grp_index) in filteredData"
:key="grp_index"
class="suggestions-groups-list"
>
<!-- Group Header -->
<p class="suggestion-group-title">
<slot
name="group"
:group_name="grp_name"
>
<span>
{{ grp_name }}
</span>
</slot>
</p>
<!-- Suggestion List of each group -->
<ul>
<li
v-for="(suggestion, index) in suggestion_list"
:key="index"
class="suggestion-group-suggestion cursor-pointer"
@click="suggestionSelected(suggestion)"
>
<slot
:name="grp_name"
:suggestion="suggestion"
>
<span>{{ suggestion[data[grp_name].key] }}</span>
</slot>
</li>
<li
v-if="!suggestion_list.length && searchQuery"
class="suggestion-group-suggestion no-results"
>
<slot
name="noResult"
:group_name="grp_name"
>
<p>No Results Found.</p>
</slot>
</li>
</ul>
</li>
</ul>
</div>
</template>
<script>
import useAutoSuggest from './useAutoSuggest'
export default {
props: {
inputProps: {
type: Object,
default: () => {},
},
data: {
type: Object,
required: true,
},
searchLimit: {
type: Number,
default: 4,
},
},
setup(props, { emit }) {
// eslint-disable-next-line no-console
console.warn('This component is still in Development. Please do not use it.')
const { searchQuery, filteredData, resetsearchQuery } = useAutoSuggest(props)
const suggestionSelected = suggestion => {
resetsearchQuery()
emit('suggestion-selected', suggestion)
}
return {
searchQuery, filteredData, suggestionSelected,
}
},
}
</script>
<style scoped>
ul
{
list-style: none;
padding: 0;
margin: 0;
}
p {
margin: 0;
}
.app-auto-suggest {
position: relative;
}
.auto-suggest-suggestions-list {
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, 0.1);
border-radius: 6px;
position: absolute;
top: calc(100% + 1rem);
background-color: white;
width: 100%;
}
.suggestion-group-title {
font-weight: 500;
padding: .75rem 1rem .25rem;
}
.suggestion-group-suggestion {
padding: .75rem 1rem
}
</style>
@@ -1,55 +0,0 @@
import { ref, watch } from '@vue/composition-api'
export default function useAutoSuggest(props) {
const filteredData = ref({})
/**
* Filter group against provided query
* Grp Structure:
* {
* key: 'title',
* data: [
* title: 'Admin', img: 'someImage.png',
* title: 'Template', img: 'otherImage.png',
* ]
* }
* @param {Object} grp Group object to perform filter on
* @param {String} query Query string to filter
*/
const filterGrp = (grp, query) => {
const exactEle = grp.data.filter(item => item[grp.key].toLowerCase().startsWith(query.toLowerCase()))
const containEle = grp.data.filter(
// prettier-ignore
item => !item[grp.key].toLowerCase().startsWith(query.toLowerCase()) && item[grp.key].toLowerCase().indexOf(query.toLowerCase()) > -1,
)
return exactEle.concat(containEle).slice(0, props.searchLimit)
}
const searchQuery = ref('')
const resetsearchQuery = () => {
searchQuery.value = ''
}
const handleSearchQueryUpdate = val => {
if (val === '') {
filteredData.value = {}
} else {
const queriedData = {}
const dataGrps = Object.keys(props.data)
dataGrps.forEach((grp, i) => {
queriedData[dataGrps[i]] = filterGrp(props.data[grp], val)
})
filteredData.value = queriedData
}
}
watch(searchQuery, val => handleSearchQueryUpdate(val))
return {
searchQuery,
resetsearchQuery,
filteredData,
}
}
@@ -1,54 +0,0 @@
<template>
<div
role="tablist"
class="collapse-icon"
:class="collapseClasses"
>
<slot />
</div>
</template>
<script>
import { v4 as uuidv4 } from 'uuid'
export default {
props: {
accordion: {
type: Boolean,
default: false,
},
hover: {
type: Boolean,
default: false,
},
type: {
type: String,
default: 'default',
},
},
data() {
return {
collapseID: '',
}
},
computed: {
collapseClasses() {
const classes = []
// Collapse Type
const collapseVariants = {
default: 'collapse-default',
border: 'collapse-border',
shadow: 'collapse-shadow',
margin: 'collapse-margin',
}
classes.push(collapseVariants[this.type])
return classes
},
},
created() {
this.collapseID = uuidv4()
},
}
</script>
@@ -1,87 +0,0 @@
<template>
<b-card
no-body
:class="{'open': visible}"
@mouseenter="collapseOpen"
@mouseleave="collapseClose"
>
<b-card-header
:class="{'collapsed': !visible}"
:aria-expanded="visible ? 'true' : 'false'"
:aria-controls="collapseItemID"
role="tab"
data-toggle="collapse"
@click="updateVisible(!visible)"
>
<slot name="header">
<span class="lead collapse-title">{{ title }}</span>
</slot>
</b-card-header>
<b-collapse
:id="collapseItemID"
v-model="visible"
:accordion="accordion"
role="tabpanel"
>
<b-card-body>
<slot />
</b-card-body>
</b-collapse>
</b-card>
</template>
<script>
import {
BCard, BCardHeader, BCardBody, BCollapse,
} from 'bootstrap-vue'
import { v4 as uuidv4 } from 'uuid'
export default {
components: {
BCard,
BCardHeader,
BCardBody,
BCollapse,
},
props: {
isVisible: {
type: Boolean,
default: false,
},
title: {
type: String,
required: true,
},
},
data() {
return {
visible: false,
collapseItemID: '',
openOnHover: this.$parent.hover,
}
},
computed: {
accordion() {
return this.$parent.accordion ? `accordion-${this.$parent.collapseID}` : null
},
},
created() {
this.collapseItemID = uuidv4()
this.visible = this.isVisible
},
methods: {
updateVisible(val = true) {
this.visible = val
this.$emit('visible', val)
},
collapseOpen() {
if (this.openOnHover) this.updateVisible(true)
},
collapseClose() {
if (this.openOnHover) this.updateVisible(false)
},
},
}
</script>
@@ -1,23 +0,0 @@
<template>
<ul
v-bind="$attrs"
class="app-timeline"
v-on="$listeners"
>
<slot />
</ul>
</template>
<script>
export default {}
</script>
<style lang="scss" scoped>
.app-timeline {
list-style: none;
padding: 0;
margin: 0;
position: relative;
margin-left: 1rem;
}
</style>
@@ -1,182 +0,0 @@
<template>
<li
v-bind="$attrs"
class="timeline-item"
:class="[`timeline-variant-${variant}`, fillBorder ? `timeline-item-fill-border-${variant}` : null]"
v-on="$listeners"
>
<div
v-if="!icon"
class="timeline-item-point"
/>
<div
v-else
class="timeline-item-icon d-flex align-items-center justify-content-center rounded-circle"
>
<feather-icon :icon="icon" />
</div>
<slot>
<div class="d-flex flex-sm-row flex-column flex-wrap justify-content-between mb-1 mb-sm-0">
<h6 v-text="title" />
<small
class="timeline-item-time text-nowrap text-muted"
v-text="time"
/>
</div>
<p
class="mb-0"
v-text="subtitle"
/>
</slot>
</li>
</template>
<script>
export default {
props: {
variant: {
type: String,
default: 'primary',
},
title: {
type: String,
default: null,
},
subtitle: {
type: String,
default: null,
},
time: {
type: String,
default: null,
},
icon: {
type: String,
default: null,
},
fillBorder: {
type: Boolean,
default: false,
},
},
}
</script>
<style lang="scss" scoped>
@import '~@core/scss/base/bootstrap-extended/include'; // Bootstrap includes
@import '~@core/scss/base/components/include'; // Components includes
// Color palettes
@import '~@core/scss/base/core/colors/palette-variables.scss';
$timeline-border-color: $border-color;
/* Generate:
* Apply background color to dot
*/
@each $color_name, $color in $colors {
@each $color_type, $color_value in $color {
@if $color_type== 'base' {
.timeline-variant-#{$color_name} {
&.timeline-item-fill-border-#{$color_name} {
border-color: $color_value !important;
&:last-of-type {
&:after {
background: linear-gradient($color_value, $white);
}
}
}
.timeline-item-point {
background-color: $color_value;
&:before {
background-color: rgba($color_value, 0.12);
}
}
.timeline-item-icon {
color: $color_value;
border: 1px solid $color_value;
}
}
}
}
}
.timeline-item {
padding-left: 2.5rem;
position: relative;
&:not(:last-of-type) {
padding-bottom: 2rem;
border-left: 1px solid $timeline-border-color;
}
// This gives shade to last timeline-item but isn't that revolutionary
&:last-of-type {
&:after {
content: '';
position: absolute;
left: 0;
bottom: 0;
width: 1px;
height: 100%;
background: linear-gradient($timeline-border-color, $white);
}
}
.timeline-item-point {
position: absolute;
left: -6px;
width: 12px;
height: 12px;
top: 0;
border-radius: 50%;
z-index: 1;
&:before {
content: '';
z-index: 1;
border-radius: 50%;
width: 20px;
height: 20px;
position: absolute;
top: -4px;
left: -4px;
bottom: 0;
right: 0;
}
}
.timeline-item-icon {
position: absolute;
left: -12px;
top: 0;
width: 24px;
height: 24px;
background-color: $white;
z-index: 1;
}
}
// *===============================================---*
// *--------- Dark Layout ---------------------------------------*
// *===============================================---*
.dark-layout {
.timeline-item {
&:last-of-type {
&:after {
background: linear-gradient($theme-dark-border-color, $theme-dark-card-bg);
}
}
&:not(:last-of-type) {
border-left-color: $theme-dark-border-color;
}
.timeline-item-icon {
background-color: $theme-dark-card-bg;
}
}
}
</style>
-117
View File
@@ -1,117 +0,0 @@
<!-- =========================================================================================
File Name: VxTour.vue
Description: Tour Component
----------------------------------------------------------------------------------------
Item Name: Vuexy - Vuejs, HTML & Laravel Admin Dashboard Template
Author: Pixinvent
Author URL: http://www.themeforest.net/user/pixinvent
========================================================================================== -->
<template>
<v-tour
name="vuexyTour"
:steps="steps"
>
<template slot-scope="tour">
<transition name="fade">
<!-- eslint-disable vue/no-use-v-if-with-v-for -->
<v-step
v-for="(step, index) of tour.steps"
v-if="tour.currentStep === index"
:key="index"
:step="step"
:previous-step="tour.previousStep"
:next-step="tour.nextStep"
:stop="tour.stop"
:is-first="tour.isFirst"
:is-last="tour.isLast"
:labels="tour.labels"
>
<div
slot="actions"
class="tour-actions d-flex justify-content-between"
>
<!-- Skip Button -->
<b-button
v-if="tour.currentStep != tour.steps.length - 1"
size="sm"
variant="outline-primary"
class="btn-tour-skip mr-1"
@click="tour.stop"
>
<span class="mr-25 align-middle">Skip</span>
<feather-icon
icon="XIcon"
size="12"
/>
</b-button>
<!-- Previous Button -->
<b-button
v-if="tour.currentStep"
size="sm"
variant="outline-primary mr-1"
@click="tour.previousStep"
>
<feather-icon
icon="ChevronLeftIcon"
size="12"
/>
<span class="ml-25 align-middle">Previous</span>
</b-button>
<!-- Next Button -->
<b-button
v-if="tour.currentStep != tour.steps.length - 1"
size="sm"
variant="primary"
class="btn-tour-next"
@click="tour.nextStep"
>
<span class="mr-25 align-middle">Next</span>
<feather-icon
icon="ChevronRightIcon"
size="12"
/>
</b-button>
<!-- Finish Button -->
<b-button
v-if="tour.currentStep == tour.steps.length - 1"
size="sm"
variant="primary"
class="btn-tour-finish"
@click="tour.stop"
>
<span class="mr-25 align-middle">Finish</span>
<feather-icon
icon="CheckCircleIcon"
size="12"
/>
</b-button>
</div>
</v-step>
<!-- eslint-enable vue/no-use-v-if-with-v-for -->
</transition>
</template>
</v-tour>
</template>
<script>
import { BButton } from 'bootstrap-vue'
export default {
name: 'VxTour',
components: {
BButton,
},
props: {
steps: {
required: true,
type: Array,
},
},
}
</script>
@@ -1,195 +0,0 @@
<template>
<b-overlay
v-if="!cardClosed"
variant="white"
:show="showLoading"
spinner-variant="primary"
blur="0"
opacity=".75"
rounded="sm"
>
<b-card
ref="bCard"
v-bind="cardAttrs"
no-body
:aria-expanded="!content_visible ? 'true' : 'false'"
:aria-controls="parentID"
:style="cardStyles"
v-on="$listeners"
>
<div
v-if="showHeader"
class="card-header"
>
<!-- Title & SubTitle -->
<div>
<b-card-title>{{ $attrs.title }}</b-card-title>
<b-card-sub-title v-if="$attrs['sub-title']">
{{ $attrs['sub-title'] }}
</b-card-sub-title>
</div>
<!-- Card Actions -->
<b-card-actions-container
v-if="showActions"
:available-actions="availableActions"
:is-collapsed="!content_visible"
@collapse="triggerCollapse"
@refresh="triggerRefresh"
@close="triggerClose"
/>
</div>
<!-- Collapsible Content -->
<b-collapse
:id="parentID"
v-model="content_visible"
:visible="content_visible"
class="card-content"
>
<!-- Handle no-body -->
<slot v-if="$attrs['no-body'] !== undefined" />
<b-card-body v-else>
<slot />
</b-card-body>
</b-collapse>
</b-card>
</b-overlay>
</template>
<script>
import {
BCard, BCardTitle, BCardSubTitle, BCardBody, BCollapse, BOverlay,
} from 'bootstrap-vue'
import BCardActionsContainer from './BCardActionsContainer.vue'
export default {
components: {
BCardActionsContainer,
BCard,
BCardTitle,
BCardSubTitle,
BCardBody,
BCollapse,
BOverlay,
},
inheritAttrs: false,
props: {
collapsed: {
type: Boolean,
default: false,
},
noActions: {
type: Boolean,
default: false,
},
actionCollapse: {
type: Boolean,
default: false,
},
actionRefresh: {
type: Boolean,
default: false,
},
actionClose: {
type: Boolean,
default: false,
},
},
data() {
return {
parentID: '',
content_visible: !this.collapsed,
showLoading: false,
cardClosed: false,
cardStyles: {},
}
},
computed: {
cardAttrs() {
const cardAttrs = JSON.parse(JSON.stringify(this.$attrs))
delete cardAttrs.title
delete cardAttrs['sub-title']
return cardAttrs
},
showHeader() {
return this.$attrs.title || this.$attrs['sub-title'] || !this.noActions
},
showActions() {
if (this.noActions) return false
return true
},
availableActions() {
const actions = []
const allFalse = (this.actionCollapse || this.actionRefresh || this.actionClose) === false
if (this.actionCollapse || allFalse) actions.push('collapse')
if (this.actionRefresh || allFalse) actions.push('refresh')
if (this.actionClose || allFalse) actions.push('close')
return actions
},
},
created() {
this.parentID = String(Math.floor(Math.random() * 10) + 1)
},
methods: {
removeCard() {
this.$set(this.cardStyles, 'maxHeight', `${this.$refs.bCard.clientHeight}px`)
setTimeout(() => {
this.$set(this.cardStyles, 'maxHeight', '0px')
this.$set(this.cardStyles, 'overflow', 'hidden')
// this.$set(this.cardStyles, 'marginBottom', '0')
}, 10)
},
triggerCollapse() {
this.content_visible = !this.content_visible
this.$emit('collapse')
},
triggerRefresh() {
this.showLoading = true
this.$emit('refresh')
},
triggerClose() {
this.removeCard()
this.$emit('close')
},
},
}
</script>
<style lang="scss" scoped>
@import '~@core/scss/base/bootstrap-extended/include';
@import '~@core/scss/base/components/variables-dark';
.card {
::v-deep .card-header {
.heading-elements {
position: static;
cursor: inherit;
.list-inline {
display: block;
li {
a {
padding: 0;
}
&:not(:last-child) {
margin-right: 1rem;
}
}
}
}
}
}
.dark-layout {
.b-overlay-wrap ::v-deep .b-overlay {
// border: 10px solid red;
.bg-white {
background-color: $theme-dark-body-bg !important;
}
}
}
</style>
@@ -1,55 +0,0 @@
<template>
<div class="heading-elements">
<ul class="list-inline mb-0">
<li v-if="availableActions.includes('collapse')">
<a
data-action="collapse"
:class="{ rotate: isCollapsed }"
@click="$emit('collapse')"
>
<feather-icon
icon="ChevronDownIcon"
size="16"
/>
</a>
</li>
<li v-if="availableActions.includes('refresh')">
<a
data-action="reload"
@click="$emit('refresh')"
>
<feather-icon
icon="RotateCwIcon"
size="14"
/>
</a>
</li>
<li v-if="availableActions.includes('close')">
<a
data-action="close"
@click="$emit('close')"
>
<feather-icon
icon="XIcon"
size="14"
/>
</a>
</li>
</ul>
</div>
</template>
<script>
export default {
props: {
isCollapsed: {
type: Boolean,
requried: true,
},
availableActions: {
type: Array,
default: () => [],
},
},
}
</script>
@@ -1,2 +0,0 @@
export { default as BCardActions } from './BCardActions.vue'
export { default as BCardActionsContainer } from './BCardActionsContainer.vue'
@@ -1,166 +0,0 @@
<template>
<b-card
v-bind="cardAttrs"
no-body
v-on="$listeners"
>
<div class="card-header">
<!-- Title & SubTitle -->
<div>
<b-card-title>{{ $attrs.title }}</b-card-title>
<b-card-sub-title v-if="$attrs['sub-title']">
{{ $attrs['sub-title'] }}
</b-card-sub-title>
</div>
<i
class="code-toggler feather icon-code cursor-pointer"
:aria-expanded="!code_visible ? 'true' : 'false'"
:aria-controls="parentID"
@click="code_visible = !code_visible"
/>
</div>
<template v-if="$attrs['no-body'] !== undefined">
<slot />
<!-- Code Content -->
<b-collapse
:id="parentID"
v-model="code_visible"
class="card-code"
:visible="code_visible"
>
<b-card-body>
<prism :language="codeLanguage">
<slot name="code" />
</prism>
</b-card-body>
</b-collapse>
</template>
<b-card-body v-else>
<!-- Card Content -->
<slot />
<!-- Code Content -->
<b-collapse
:id="parentID"
v-model="code_visible"
class="card-code"
:visible="code_visible"
>
<div class="p-1" />
<prism :language="codeLanguage">
<slot name="code" />
</prism>
</b-collapse>
</b-card-body>
</b-card>
</template>
<script>
import {
BCard, BCardTitle, BCardSubTitle, BCardBody, BCollapse,
} from 'bootstrap-vue'
import 'prismjs'
import 'prismjs/themes/prism-tomorrow.css'
import Prism from 'vue-prism-component'
export default {
components: {
BCard,
BCardTitle,
BCardSubTitle,
BCardBody,
BCollapse,
Prism,
},
inheritAttrs: false,
props: {
codeLanguage: {
default: 'markup',
type: String,
},
},
data() {
return {
parentID: '',
code_visible: false,
}
},
computed: {
cardAttrs() {
const cardAttrs = JSON.parse(JSON.stringify(this.$attrs))
delete cardAttrs.title
delete cardAttrs['sub-title']
return cardAttrs
},
},
created() {
this.parentID = String(Math.floor(Math.random() * 10) + 1)
},
}
</script>
<style lang="scss" scoped>
@import 'bootstrap/scss/functions';
@import '~@core/scss/base/bootstrap-extended/variables';
@import 'bootstrap/scss/variables';
@import '~@core/scss/base/components/variables-dark';
.card-code {
pre[class*='language-'] {
margin: 0;
max-height: 350px;
border-radius: 0.5rem;
}
/* width */
::-webkit-scrollbar {
width: 8px;
height: 8px;
background: #2d2d2d;
border-radius: 100%;
.dark-layout & {
background-color: $theme-dark-body-bg !important;
}
}
/* Track */
::-webkit-scrollbar-track {
background: transparent;
}
/* Handle */
::-webkit-scrollbar-thumb {
border-radius: 0.5rem;
background: rgba(241,241,241,.4);
}
/* Handle on hover */
// ::-webkit-scrollbar-thumb:hover {
// }
::-webkit-scrollbar-corner {
display: none;
}
}
.code-toggler {
border-bottom: 1px solid transparent;
&[aria-expanded='false'] {
border-bottom-color: $primary;
}
}
// HTML
.card {
.card-header .heading-elements {
position: static;
background: red;
}
}
</style>
@@ -1,3 +0,0 @@
import BCardCode from './BCardCode.vue'
export default BCardCode
@@ -1,50 +0,0 @@
<template>
<e-charts
ref="line"
autoresize
:options="option"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/bar'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
optionData: {
type: Object,
default: null,
},
},
data() {
return {
option: {
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'shadow',
},
},
legend: {
left: 0,
},
grid: this.optionData.grid,
xAxis: this.optionData.xAxis,
yAxis: this.optionData.yAxis,
series: this.optionData.series,
},
}
},
}
</script>
@@ -1,46 +0,0 @@
<template>
<e-charts
ref="line"
autoresize
:options="option"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/pie'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
series: {
type: Array,
default: null,
},
},
data() {
return {
option: {
tooltip: {
trigger: 'item',
formatter: '{a} <br/>{b}: {c} ({d}%)',
},
legend: {
left: 10,
bottom: '0',
},
series: this.series,
},
}
},
}
</script>
@@ -1,72 +0,0 @@
<template>
<e-charts
ref="line"
autoresize
:options="line"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/line'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
optionData: {
type: Object,
default: null,
},
},
data() {
return {
line: {
// Make gradient line here
visualMap: [{
show: true,
type: 'continuous',
min: 0,
max: 400,
}],
grid: {
width: '96%',
left: '30px',
top: '10px',
show: false,
},
tooltip: {
trigger: 'axis',
},
xAxis: [{
boundaryGap: false,
data: this.optionData.xAxisData,
}],
yAxis: {
type: 'value',
splitLine: { show: false },
},
series: {
type: 'line',
showSymbol: false,
data: this.optionData.series,
},
},
}
},
}
</script>
<style>
.echarts {
width: 100% !important;
}
</style>
@@ -1,73 +0,0 @@
<template>
<e-charts
ref="line"
autoresize
:options="option"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/radar'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
optionData: {
type: Object,
default: null,
},
},
data() {
return {
option: {
title: {
text: 'Basic radar chart',
},
tooltip: {},
legend: {
data: ['Point One', 'Point Two'],
bottom: '0',
left: '0',
},
radar: {
name: {
textStyle: {
color: '#626262',
fontWeight: 'bold',
borderRadius: 3,
padding: [3, 5],
},
},
indicator: this.optionData.indicator,
splitArea: {
show: false,
},
splitLine: {
lineStyle: {
color: [
'#eeeeee',
],
},
},
axisLine: {
lineStyle: {
color: '#eeeeee',
},
},
},
series: this.optionData.series,
},
}
},
}
</script>
@@ -1,66 +0,0 @@
<template>
<e-charts
ref="line"
:options="option"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/scatter'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
optionData: {
type: Object,
default: null,
},
},
data() {
return {
option: {
grid: {
width: '95%',
left: '30px',
right: '40px',
containLabel: false,
},
legend: {
enable: true,
left: '0',
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985',
},
},
},
xAxis: {
boundaryGap: false,
scale: true,
splitNumber: 10,
min: 0,
},
yAxis: {
splitLine: { show: false },
scale: true,
},
series: this.optionData.series,
},
}
},
}
</script>
@@ -1,72 +0,0 @@
<template>
<e-charts
ref="line"
autoresize
:options="option"
theme="theme-color"
auto-resize
/>
</template>
<script>
import ECharts from 'vue-echarts'
import 'echarts/lib/component/tooltip'
import 'echarts/lib/component/legend'
import 'echarts/lib/chart/line'
import theme from './theme.json'
ECharts.registerTheme('theme-color', theme)
export default {
components: {
ECharts,
},
props: {
optionData: {
type: Object,
default: null,
},
},
data() {
return {
option: {
title: {
text: 'Stacked area chart',
},
tooltip: {
trigger: 'axis',
axisPointer: {
type: 'cross',
label: {
backgroundColor: '#6a7985',
},
},
},
legend: {
left: '0',
},
grid: {
width: '95%',
left: '40px',
right: '4%',
containLabel: false,
},
xAxis: [
{
type: 'category',
boundaryGap: false,
data: this.optionData.xAxisData,
},
],
yAxis: [
{
type: 'value',
splitLine: { show: false },
},
],
series: this.optionData.series,
},
}
},
}
</script>
@@ -1,475 +0,0 @@
{
"color": [
"#826AF9",
"#9F87FF",
"#D2B0FF",
"#F8D3FF"
],
"backgroundColor": "rgba(0,0,0,0)",
"textStyle": {},
"title": {
"textStyle": {
"color": "#666666"
},
"subtextStyle": {
"color": "#999999"
}
},
"line": {
"itemStyle": {
"normal": {
"borderWidth": "1"
}
},
"lineStyle": {
"normal": {
"width": "1"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": false
},
"radar": {
"itemStyle": {
"normal": {
"borderWidth": "2"
}
},
"lineStyle": {
"normal": {
"width": "3"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true
},
"bar": {
"itemStyle": {
"normal": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
},
"emphasis": {
"barBorderWidth": "0",
"barBorderColor": "#444444"
}
}
},
"pie": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"scatter": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"boxplot": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"parallel": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"sankey": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"funnel": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"gauge": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
},
"emphasis": {
"borderWidth": "0",
"borderColor": "#444444"
}
}
},
"candlestick": {
"itemStyle": {
"normal": {
"color": "#d0648a",
"color0": "#ffffff",
"borderColor": "#d0648a",
"borderColor0": "#22c3aa",
"borderWidth": 1
}
}
},
"graph": {
"itemStyle": {
"normal": {
"borderWidth": "0",
"borderColor": "#444444"
}
},
"lineStyle": {
"normal": {
"width": 1,
"color": "#aaa"
}
},
"symbolSize": "10",
"symbol": "emptyCircle",
"smooth": true,
"color": [
"#4ea397",
"#22c3aa",
"#7bd9a5"
],
"label": {
"normal": {
"textStyle": {
"color": "#ffffff"
}
}
}
},
"map": {
"itemStyle": {
"normal": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
}
},
"label": {
"normal": {
"textStyle": {
"color": "#28544e"
}
},
"emphasis": {
"textStyle": {
"color": "rgb(52,158,142)"
}
}
}
},
"geo": {
"itemStyle": {
"normal": {
"areaColor": "#eeeeee",
"borderColor": "#999999",
"borderWidth": "0.5"
},
"emphasis": {
"areaColor": "rgba(34,195,170,0.25)",
"borderColor": "#22c3aa",
"borderWidth": "0.5"
}
},
"label": {
"normal": {
"textStyle": {
"color": "#28544e"
}
},
"emphasis": {
"textStyle": {
"color": "rgb(52,158,142)"
}
}
}
},
"categoryAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"valueAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"logAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"timeAxis": {
"axisLine": {
"show": true,
"lineStyle": {
"color": "#cccccc"
}
},
"axisTick": {
"show": false,
"lineStyle": {
"color": "#333333"
}
},
"axisLabel": {
"show": true,
"textStyle": {
"color": "#999999"
}
},
"splitLine": {
"show": true,
"lineStyle": {
"color": [
"#eeeeee"
]
}
},
"splitArea": {
"show": false,
"areaStyle": {
"color": [
"rgba(250,250,250,0.3)",
"rgba(200,200,200,0.3)"
]
}
}
},
"toolbox": {
"iconStyle": {
"normal": {
"borderColor": "#aaaaaa"
},
"emphasis": {
"borderColor": "#666"
}
}
},
"legend": {
"textStyle": {
"color": "#999999"
}
},
"tooltip": {
"axisPointer": {
"lineStyle": {
"color": "#ccc",
"width": 1
},
"crossStyle": {
"color": "#ccc",
"width": 1
}
}
},
"timeline": {
"lineStyle": {
"color": "#349e8e",
"width": 1
},
"itemStyle": {
"normal": {
"color": "#349e8e",
"borderWidth": "1"
},
"emphasis": {
"color": "#57e8d2"
}
},
"controlStyle": {
"normal": {
"color": "#349e8e",
"borderColor": "#349e8e",
"borderWidth": "0"
}
},
"checkpointStyle": {
"color": "#22c3aa",
"borderColor": "rgba(34,195,170,0.25)"
},
"label": {
"normal": {
"textStyle": {
"color": "#349e8e"
}
}
}
},
"visualMap": {
"color": [
"#d0648a",
"#22c3aa",
"rgba(123,217,165,0.2)"
]
},
"dataZoom": {
"backgroundColor": "#fff",
"dataBackgroundColor": "#dedede",
"fillerColor": "rgba(34,195,170,0.25)",
"handleColor": "#dddddd",
"handleSize": "100%",
"textStyle": {
"color": "#999"
}
},
"markPoint": {
"label": {
"normal": {
"textStyle": {
"color": "#ffffff"
}
},
"emphasis": {
"textStyle": {
"color": "#ffffff"
}
}
}
}
}
@@ -1,45 +0,0 @@
<script>
import * as icons from 'vue-feather-icons'
export default {
name: 'FeatherIcon',
functional: true,
props: {
icon: {
required: true,
type: [String, Object],
},
size: {
type: String,
default: '14',
},
badge: {
type: [String, Object, Number],
default: null,
},
badgeClasses: {
type: [String, Object, Array],
default: 'badge-primary',
},
},
render(h, { props, data }) {
// Create Feather Icon
const svg = h(icons[props.icon], { props: { size: props.size }, ...data })
// If no badge is provided => Render just SVG
if (!props.badge) return svg
// Badge
const badgeEl = h('span', { staticClass: 'badge badge-up badge-pill', class: props.badgeClasses }, [props.badge])
// Return span with children
return h('span', { staticClass: 'feather-icon position-relative' }, [svg, badgeEl])
},
}
</script>
<style lang="scss">
svg.feather {
outline: none
}
</style>
@@ -1,67 +0,0 @@
<template>
<div
class="btn-scroll-to-top"
:class="{'show': y > 250}"
>
<!-- We have wrapper because ripple effect give position relative to this absolute positioned btn -->
<!-- Hence due to that our btn get lost -->
<b-button
v-ripple.400="'rgba(255, 255, 255, 0.15)'"
variant="primary"
class="btn-icon"
@click="scrollToTop"
>
<feather-icon
icon="ArrowUpIcon"
size="16"
/>
</b-button>
</div>
</template>
<script>
import { useWindowScroll } from '@vueuse/core'
import { BButton } from 'bootstrap-vue'
import Ripple from 'vue-ripple-directive'
export default {
directives: {
Ripple,
},
components: {
BButton,
},
setup() {
const { y } = useWindowScroll()
const scrollToTop = () => {
const rootEle = document.documentElement
rootEle.scrollTo({
top: 0,
behavior: 'smooth',
})
}
return { y, scrollToTop }
},
}
</script>
<style lang="scss" scoped>
.btn-scroll-to-top {
position: fixed;
bottom: 5%;
right: 30px;
z-index: 99;
opacity: 0;
// transform: translateY(100px);
transition: all .5s ease;
&.show {
opacity: 1;
// transform: translateY(0)
}
}
</style>
@@ -1,51 +0,0 @@
<template>
<b-card no-body>
<b-card-body class="d-flex justify-content-between align-items-center">
<div class="truncate">
<h2 class="mb-25 font-weight-bolder">
{{ statistic }}
</h2>
<span>{{ statisticTitle }}</span>
</div>
<b-avatar
:variant="`light-${color}`"
size="45"
>
<feather-icon
size="21"
:icon="icon"
/>
</b-avatar>
</b-card-body>
</b-card>
</template>
<script>
import { BCard, BCardBody, BAvatar } from 'bootstrap-vue'
export default {
components: {
BCard,
BCardBody,
BAvatar,
},
props: {
icon: {
type: String,
required: true,
},
statistic: {
type: [Number, String],
required: true,
},
statisticTitle: {
type: String,
default: '',
},
color: {
type: String,
default: 'primary',
},
},
}
</script>
@@ -1,49 +0,0 @@
<template>
<b-card class="text-center">
<b-avatar
class="mb-1"
:variant="`light-${color}`"
size="45"
>
<feather-icon
size="21"
:icon="icon"
/>
</b-avatar>
<div class="truncate">
<h2 class="mb-25 font-weight-bolder">
{{ statistic }}
</h2>
<span>{{ statisticTitle }}</span>
</div>
</b-card>
</template>
<script>
import { BCard, BAvatar } from 'bootstrap-vue'
export default {
components: {
BCard,
BAvatar,
},
props: {
icon: {
type: String,
required: true,
},
statistic: {
type: [Number, String],
required: true,
},
statisticTitle: {
type: String,
default: '',
},
color: {
type: String,
default: 'primary',
},
},
}
</script>
@@ -1,83 +0,0 @@
<template>
<b-card no-body>
<b-card-body class="pb-0">
<b-avatar
class="mb-1"
:variant="`light-${color}`"
size="45"
>
<feather-icon
size="21"
:icon="icon"
/>
</b-avatar>
<div class="truncate">
<h2 class="mb-25 font-weight-bolder">
{{ statistic }}
</h2>
<span>{{ statisticTitle }}</span>
</div>
</b-card-body>
<vue-apex-charts
type="area"
height="100"
width="100%"
:options="chartOptionsComputed"
:series="chartData"
/>
</b-card>
</template>
<script>
import { BCard, BCardBody, BAvatar } from 'bootstrap-vue'
import VueApexCharts from 'vue-apexcharts'
import { $themeColors } from '@themeConfig'
import { areaChartOptions } from './chartOptions'
export default {
components: {
VueApexCharts,
BCard,
BCardBody,
BAvatar,
},
props: {
icon: {
type: String,
required: true,
},
statistic: {
type: [Number, String],
required: true,
},
statisticTitle: {
type: String,
default: '',
},
color: {
type: String,
default: 'primary',
},
chartData: {
type: Array,
default: () => [],
},
chartOptions: {
type: Object,
default: null,
},
},
computed: {
chartOptionsComputed() {
if (this.chartOptions === null) {
const options = JSON.parse(JSON.stringify(areaChartOptions))
options.theme.monochrome.color = $themeColors[this.color]
return options
}
return this.chartOptions
},
},
}
</script>
@@ -1,101 +0,0 @@
<template>
<b-card no-body>
<b-card-body class="d-flex justify-content-between align-items-center pb-0">
<div class="truncate">
<h2 class="font-weight-bolder">
{{ statistic }}
</h2>
<span>{{ statisticTitle }}</span>
</div>
<b-avatar
:variant="`light-${color}`"
size="45"
>
<feather-icon
size="21"
:icon="icon"
/>
</b-avatar>
</b-card-body>
<vue-apex-charts
type="line"
height="100"
width="100%"
:options="chartOptionsComputed"
:series="chartData"
/>
</b-card>
</template>
<script>
import { BCard, BCardBody, BAvatar } from 'bootstrap-vue'
import VueApexCharts from 'vue-apexcharts'
import { $themeColors } from '@themeConfig'
import { lineChartOptions } from './chartOptions'
export default {
components: {
VueApexCharts,
BCard,
BCardBody,
BAvatar,
},
props: {
icon: {
type: String,
required: true,
},
statistic: {
type: [Number, String],
required: true,
},
statisticTitle: {
type: String,
default: '',
},
color: {
type: String,
default: 'primary',
},
chartData: {
type: Array,
default: () => [],
},
chartOptions: {
type: Object,
default: null,
},
},
computed: {
chartOptionsComputed() {
if (this.chartOptions === null) {
const options = JSON.parse(JSON.stringify(lineChartOptions))
options.fill.gradient.gradientToColors = [this.gradientToColor(this.color)]
options.colors = [$themeColors[this.color]]
return options
}
return this.chartOptions
},
},
methods: {
gradientToColor(color) {
const gradientToColors = {
primary: '#A9A2F6',
success: '#55DD92',
warning: '#ffc085',
danger: '#F97794',
info: '#59E0F0',
secondary: '#B4B9BF',
light: '#D0D4DB',
dark: '#919191',
}
return gradientToColors[color]
},
},
}
</script>
@@ -1,122 +0,0 @@
import { $themeColors } from '@themeConfig'
export const areaChartOptions = {
grid: {
show: false,
padding: {
left: 0,
right: 0,
},
},
chart: {
toolbar: {
show: false,
},
sparkline: {
enabled: true,
},
},
dataLabels: {
enabled: false,
},
stroke: {
curve: 'smooth',
width: 2.5,
},
fill: {
type: 'gradient',
gradient: {
shadeIntensity: 0.9,
opacityFrom: 0.5,
opacityTo: 0.2,
stops: [0, 80, 100],
},
},
xaxis: {
type: 'numeric',
lines: {
show: false,
},
axisBorder: {
show: false,
},
labels: { show: false },
},
yaxis: [
{
y: 0,
offsetX: 0,
offsetY: 0,
padding: {
left: 0,
right: 0,
},
},
],
tooltip: {
x: { show: false },
},
theme: {
monochrome: {
enabled: true,
color: $themeColors.primary,
shadeTo: 'light',
shadeIntensity: 0.65,
},
},
}
export const lineChartOptions = {
grid: {
show: false,
padding: {
left: 0,
right: 0,
},
},
chart: {
type: 'line',
dropShadow: {
enabled: true,
top: 5,
left: 0,
blur: 4,
opacity: 0.1,
},
toolbar: {
show: false,
},
sparkline: {
enabled: true,
},
},
stroke: {
width: 5,
curve: 'smooth',
},
xaxis: {
type: 'numeric',
},
colors: [$themeColors.primary],
fill: {
type: 'gradient',
gradient: {
shade: 'dark',
gradientToColors: ['#A9A2F6'],
shadeIntensity: 1,
type: 'horizontal',
opacityFrom: 1,
opacityTo: 1,
stops: [0, 100, 100, 100],
},
},
markers: {
size: 0,
hover: {
size: 5,
},
},
tooltip: {
x: { show: false },
},
}
@@ -1,84 +0,0 @@
<template>
<div class="toastification">
<div class="d-flex align-items-start">
<b-avatar
:variant="variant"
size="1.8rem"
class="mr-75 flex-shrink-0"
>
<feather-icon
:icon="icon"
size="15"
/>
</b-avatar>
<div class="d-flex flex-grow-1">
<div>
<h5
v-if="title"
class="mb-0 font-weight-bolder toastification-title"
:class="`text-${variant}`"
v-text="title"
/>
<small
v-if="text"
class="d-inline-block text-body"
v-text="text"
/>
</div>
<span
class="cursor-pointer toastification-close-icon ml-auto "
@click="$emit('close-toast')"
>
<feather-icon
v-if="!hideClose"
icon="XIcon"
class="text-body"
/>
</span>
</div>
</div>
</div>
</template>
<script>
import { BAvatar } from 'bootstrap-vue'
export default {
components: {
BAvatar,
},
props: {
variant: {
type: String,
default: 'primary',
},
icon: {
type: String,
default: null,
},
title: {
type: String,
default: null,
},
text: {
type: String,
default: null,
},
hideClose: {
type: Boolean,
default: false,
},
},
}
</script>
<style lang="scss" scoped>
.toastification-close-icon,
.toastification-title {
line-height: 26px;
}
.toastification-title {
color: inherit;
}
</style>
-32
View File
@@ -1,32 +0,0 @@
export const heightFade = {
/* eslint-disable no-param-reassign */
inserted(el, binding) {
const height = `${el.offsetHeight}px`
if (binding.modifiers.appear) {
el.style.overflow = 'hidden'
el.style.maxHeight = '0px'
el.style.opacity = 0
// Focus the element
setTimeout(() => {
el.style.maxHeight = height
el.style.opacity = 1
setTimeout(() => {
el.style.overflow = 'unset'
}, 300)
}, 100)
} else {
el.style.maxHeight = height
}
},
unbind(el) {
if (el.style === undefined) return
el.style.overflow = 'hidden'
el.style.maxHeight = '0px'
el.style.opacity = 0
},
/* eslint-enable no-param-reassign */
}
export const temp = 2
@@ -1,69 +0,0 @@
<template>
<b-row
v-if="$route.meta.breadcrumb || $route.meta.pageTitle"
class="content-header"
>
<!-- Content Left -->
<b-col
class="content-header-left mb-2"
cols="12"
md="9"
>
<b-row class="breadcrumbs-top">
<b-col cols="12">
<h2 class="content-header-title float-left pr-1 mb-0">
{{ $route.meta.pageTitle }}
</h2>
<div class="breadcrumb-wrapper">
<b-breadcrumb>
<b-breadcrumb-item to="/">
<feather-icon
icon="HomeIcon"
size="16"
class="align-text-top"
/>
</b-breadcrumb-item>
<b-breadcrumb-item
v-for="item in $route.meta.breadcrumb"
:key="item.text"
:active="item.active"
:to="item.to"
>
{{ item.text }}
</b-breadcrumb-item>
</b-breadcrumb>
</div>
</b-col>
</b-row>
</b-col>
<!-- Content Right -->
<b-col
class="content-header-right text-md-right d-md-block d-none mb-1"
md="3"
cols="12"
>
&nbsp;
</b-col>
</b-row>
</template>
<script>
import {
BBreadcrumb, BBreadcrumbItem, BRow, BCol,
} from 'bootstrap-vue'
import Ripple from 'vue-ripple-directive'
export default {
directives: {
Ripple,
},
components: {
BBreadcrumb,
BBreadcrumbItem,
BRow,
BCol,
},
}
</script>
@@ -1,43 +0,0 @@
<template>
<p class="clearfix mb-0">
<span class="float-md-left d-block d-md-inline-block mt-25">
Powered By
<b-link
class="ml-25 font-weight-bolder"
href="#"
target="_blank"
>Ping.pub</b-link>
</span>
<span class="float-md-right d-none d-md-block">Buy me a cup of coffee.
<span
v-b-popover.hover.topleft="'Atom: cosmos1ev0vtddkl7jlwfawlk06yzncapw2x9quyxx75u'"
v-ripple.400="'rgba(113, 102, 240, 0.15)'"
title="Thanks for your donation!"
variant="outline-primary"
>
<feather-icon
icon="HeartIcon"
size="21"
class="text-danger stroke-current"
/>
</span>
</span>
</p>
</template>
<script>
import { BLink, VBPopover } from 'bootstrap-vue'
import Ripple from 'vue-ripple-directive'
export default {
name: 'AppFooter',
components: {
BLink,
},
directives: {
'b-popover': VBPopover,
Ripple,
},
}
</script>
-188
View File
@@ -1,188 +0,0 @@
<template>
<svg
id="Layer_1"
version="1.1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
x="0px"
y="0px"
width="150px"
height="150px"
viewBox="0 0 150 150"
enable-background="new 0 0 150 150"
xml:space="preserve"
> <image
id="image0"
width="150"
height="150"
x="0"
y="0"
href="data:image/png;base64,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"
/>
</svg>
</template>
@@ -1,344 +0,0 @@
<template>
<div
class="customizer d-none d-md-block"
:class="{'open': isCustomizerOpen}"
>
<!-- Toggler -->
<b-link
class="customizer-toggle d-flex align-items-center justify-content-center"
@click="isCustomizerOpen = !isCustomizerOpen"
>
<feather-icon
icon="SettingsIcon"
size="15"
class="spinner"
/>
</b-link>
<!-- /Toggler -->
<!-- Header -->
<div class="customizer-section d-flex justify-content-between align-items-center">
<div>
<h4 class="text-uppercase mb-0">
Theme Customizer
</h4>
<small>Customize &amp; Preview in Real Time</small>
</div>
<feather-icon
icon="XIcon"
size="18"
class="cursor-pointer"
@click="isCustomizerOpen = !isCustomizerOpen"
/>
</div>
<!-- Header -->
<vue-perfect-scrollbar
:settings="perfectScrollbarSettings"
class="ps-customizer-area scroll-area"
>
<!-- Skin, RTL, Router Animation -->
<div class="customizer-section">
<!-- Skin -->
<b-form-group label="Skin">
<b-form-radio-group
id="skin-radio-group"
v-model="skin"
name="skin"
:options="skinOptions"
/>
</b-form-group>
<!-- Skin -->
<b-form-group label="Content Width">
<b-form-radio-group
id="content-width-radio-group"
v-model="contentWidth"
name="content-width"
:options="contentWidthOptions"
/>
</b-form-group>
<!-- RTL -->
<b-form-group
label="RTL"
label-cols="10"
>
<b-form-checkbox
v-model="isRTL"
class="mr-0 mt-50"
name="is-rtl"
switch
inline
/>
</b-form-group>
<!-- Router Transition -->
<b-form-group
label="Router Transition"
label-cols="6"
>
<v-select
v-model="routerTransition"
:dir="$store.state.appConfig.isRTL ? 'rtl' : 'ltr'"
:clearable="false"
label="title"
:options="routerTransitionOptions"
:reduce="option => option.value"
/>
</b-form-group>
</div>
<!-- /Skin, RTL, Router Animation -->
<!-- SECTION: Menu -->
<div class="customizer-section">
<!-- Layout Type -->
<b-form-group
label="Menu Layout"
>
<b-form-radio-group
v-model="layoutType"
name="layout-type"
:options="layoutTypeOptions"
/>
</b-form-group>
<!-- Collapsible -->
<div
v-if="layoutType === 'vertical'"
class="d-flex justify-content-between align-items-center mt-2"
>
<span class="font-weight-bold">Menu Collapsed</span>
<b-form-checkbox
v-model="isVerticalMenuCollapsed"
name="is-vertical-menu-collapsed"
class="mr-0"
switch
inline
/>
</div>
<!-- Menu Visiblity -->
<div class="d-flex justify-content-between align-items-center mt-2">
<span class="font-weight-bold">Menu Hidden</span>
<b-form-checkbox
v-model="isNavMenuHidden"
name="is-menu-visible"
class="mr-0"
switch
inline
/>
</div>
</div>
<!-- SECTION: Navbar -->
<div class="customizer-section">
<!-- Navbar Color -->
<b-form-group
v-show="layoutType === 'vertical'"
label="Navbar Color"
>
<div
v-for="(color, index) in navbarColors"
:key="color"
class="p-1 d-inline-block rounded mr-1 cursor-pointer"
:class="[`bg-${color}`, {'border border-light': !index}, {'mark-active': navbarBackgroundColor === color}]"
@click="navbarBackgroundColor = color"
/>
</b-form-group>
<!-- Navbar Type -->
<b-form-group :label="layoutType === 'vertical' ? 'Navbar Type' : 'Menu Type'">
<b-form-radio-group
v-model="navbarType"
name="navbar-type"
:options="navbarTypes"
/>
</b-form-group>
</div>
<!-- SECTION: Footer -->
<div class="customizer-section">
<!-- Footer Type -->
<b-form-group label="Footer Type">
<b-form-radio-group
v-model="footerType"
name="footer-type"
:options="footerTypes"
/>
</b-form-group>
</div>
</vue-perfect-scrollbar>
</div>
</template>
<script>
import {
BLink, BFormRadioGroup, BFormGroup, BFormCheckbox,
} from 'bootstrap-vue'
import vSelect from 'vue-select'
import VuePerfectScrollbar from 'vue-perfect-scrollbar'
import useAppCustomizer from './useAppCustomizer'
export default {
components: {
// BSV
BLink,
BFormRadioGroup,
BFormCheckbox,
BFormGroup,
// 3rd party
vSelect,
VuePerfectScrollbar,
},
setup() {
const {
// Vertical Menu
isVerticalMenuCollapsed,
// Customizer
isCustomizerOpen,
// Skin
skin,
skinOptions,
// Content Width
contentWidth,
contentWidthOptions,
// RTL
isRTL,
// routerTransition
routerTransition,
routerTransitionOptions,
// Layout Type
layoutType,
layoutTypeOptions,
// NavMenu Hidden
isNavMenuHidden,
// Navbar
navbarColors,
navbarTypes,
navbarBackgroundColor,
navbarType,
// Footer
footerTypes,
footerType,
} = useAppCustomizer()
if (layoutType.value === 'horizontal') {
// Remove semi-dark skin option in horizontal layout
const skinSemiDarkIndex = skinOptions.findIndex(s => s.value === 'semi-dark')
delete skinOptions[skinSemiDarkIndex]
// Remove menu hidden radio in horizontal layout => As we already have switch for it
const menuHiddneIndex = navbarTypes.findIndex(t => t.value === 'hidden')
delete navbarTypes[menuHiddneIndex]
}
// Perfect Scrollbar
const perfectScrollbarSettings = {
maxScrollbarLength: 60,
wheelPropagation: false,
}
return {
// Vertical Menu
isVerticalMenuCollapsed,
// Customizer
isCustomizerOpen,
// Skin
skin,
skinOptions,
// Content Width
contentWidth,
contentWidthOptions,
// RTL
isRTL,
// routerTransition
routerTransition,
routerTransitionOptions,
// Layout Type
layoutType,
layoutTypeOptions,
// NavMenu Hidden
isNavMenuHidden,
// Navbar
navbarColors,
navbarTypes,
navbarBackgroundColor,
navbarType,
// Footer
footerTypes,
footerType,
// Perfect Scrollbar
perfectScrollbarSettings,
}
},
}
</script>
<style lang="scss">
@import '@core/scss/vue/libs/vue-select.scss';
</style>
<style lang="scss" scoped>
@import '~@core/scss/base/bootstrap-extended/include';
@import '~@core/scss/base/components/variables-dark';
.customizer-section {
padding: 1.5rem;
border-bottom: 1px solid #ebe9f1;
.dark-layout & {
border-color: $theme-dark-border-color;
}
#skin-radio-group ::v-deep {
.custom-control-inline {
margin-right: 0.7rem;
}
}
.form-group {
margin-bottom: 1.5rem;;
&:last-of-type {
margin-bottom: 0;
}
::v-deep legend {
font-weight: 500;
}
}
}
.mark-active {
box-shadow: 0 0 0 0.2rem rgba(38,143,255,.5);
}
.ps-customizer-area {
height: calc(100% - 83px)
}
</style>
@@ -1,109 +0,0 @@
import { ref } from '@vue/composition-api'
import useAppConfig from '@core/app-config/useAppConfig'
export default function useAppCustomizer() {
// Customizer
const isCustomizerOpen = ref(false)
// Skin
const skinOptions = [
{ text: 'Light', value: 'light' },
{ text: 'Bordered', value: 'bordered' },
{ text: 'Dark', value: 'dark' },
{ text: 'Semi Dark', value: 'semi-dark' },
]
// Content Width Options
const contentWidthOptions = [
{ text: 'Full Width', value: 'full' },
{ text: 'Boxed', value: 'boxed' },
]
// Router Transition
const routerTransitionOptions = [
{ title: 'Zoom Fade', value: 'zoom-fade' },
{ title: 'Fade', value: 'fade' },
{ title: 'Fade Bottom', value: 'fade-bottom' },
{ title: 'Slide Fade', value: 'slide-fade' },
{ title: 'Zoom Out', value: 'zoom-out' },
{ title: 'None', value: 'none' },
]
// Router Transition
const layoutTypeOptions = [
{ text: 'Vertical', value: 'vertical' },
{ text: 'Horizontal', value: 'horizontal' },
]
// Navbar
const navbarColors = ['', 'primary', 'secondary', 'success', 'danger', 'warning', 'info', 'dark']
// Navbar Types
const navbarTypes = [
{ text: 'Floating', value: 'floating' },
{ text: 'Sticky', value: 'sticky' },
{ text: 'Static', value: 'static' },
{ text: 'Hidden', value: 'hidden' },
]
// Footer Types
const footerTypes = [
{ text: 'Sticky', value: 'sticky' },
{ text: 'Static', value: 'static' },
{ text: 'Hidden', value: 'hidden' },
]
// eslint-disable-next-line object-curly-newline
const {
isRTL,
skin,
contentWidth,
routerTransition,
layoutType,
isNavMenuHidden,
isVerticalMenuCollapsed,
navbarBackgroundColor,
navbarType,
footerType,
} = useAppConfig()
return {
// Customizer
isCustomizerOpen,
// Vertical Menu
isVerticalMenuCollapsed,
// Skin
skin,
skinOptions,
// Content Width
contentWidth,
contentWidthOptions,
// RTL
isRTL,
// routerTransition
routerTransition,
routerTransitionOptions,
// Layout Type
layoutType,
layoutTypeOptions,
// NavMenu Hidden
isNavMenuHidden,
// Navbar
navbarColors,
navbarTypes,
navbarBackgroundColor,
navbarType,
// Footer
footerTypes,
footerType,
}
}
@@ -1,72 +0,0 @@
<template>
<div class="navbar-container d-flex content align-items-center">
<!-- Nav Menu Toggler -->
<ul class="nav navbar-nav d-xl-none">
<li class="nav-item">
<b-link
class="nav-link"
@click="toggleVerticalMenuActive"
>
<feather-icon
icon="MenuIcon"
size="21"
/>
</b-link>
</li>
</ul>
<!-- Left Col -->
<div class="bookmark-wrapper align-items-center flex-grow-1 d-none d-lg-flex">
<bookmarks />
</div>
<!-- Right Col -->
<b-navbar-nav class="nav align-items-center ml-auto">
<dark-Toggler class="d-none d-lg-block" />
<search-bar />
<notification-dropdown />
<template #button-content>
<b-button
v-ripple.400="'rgba(255, 255, 255, 0.15)'"
variant="primary"
class="btn-icon"
>
<feather-icon icon="SettingsIcon" />
</b-button>
</template>
</b-navbar-nav>
</div>
</template>
<script>
import {
BLink, BNavbarNav, BButton,
} from 'bootstrap-vue'
import Bookmarks from './components/Bookmarks.vue'
// import Locale from './components/Locale.vue'
import DarkToggler from './components/DarkToggler.vue'
import SearchBar from './components/SearchBar.vue'
import NotificationDropdown from './components/NotificationDropdown.vue'
export default {
components: {
BLink,
// Navbar Components
BNavbarNav,
Bookmarks,
DarkToggler,
SearchBar,
NotificationDropdown,
BButton,
},
props: {
toggleVerticalMenuActive: {
type: Function,
default: () => {},
},
},
}
</script>
@@ -1,46 +0,0 @@
<template>
<div class="navbar-header d-xl-block d-none">
<ul class="nav navbar-nav">
<li class="nav-item">
<b-link
class="navbar-brand"
to="/"
>
<span class="brand-logo">
<b-img
:src="appLogoImage"
alt="logo"
/>
</span>
<h2 class="brand-text mb-0">
{{ appName }}
</h2>
</b-link>
</li>
</ul>
</div>
</template>
<script>
import { BLink, BImg } from 'bootstrap-vue'
import { $themeConfig } from '@themeConfig'
export default {
components: {
BLink,
BImg,
},
setup() {
// App Name
const { appName, appLogoImage } = $themeConfig.app
return {
appName,
appLogoImage,
}
},
}
</script>
<style>
</style>
@@ -1,61 +0,0 @@
<template>
<div class="navbar-container d-flex content align-items-center">
<!-- Nav Menu Toggler -->
<ul class="nav navbar-nav d-xl-none">
<li class="nav-item">
<b-link
class="nav-link"
@click="toggleVerticalMenuActive"
>
<feather-icon
icon="MenuIcon"
size="21"
/>
</b-link>
</li>
</ul>
<!-- Left Col -->
<div class="bookmark-wrapper align-items-center flex-grow-1 d-none d-lg-flex">
<!-- Bookmarks Container -->
<bookmarks />
</div>
<b-navbar-nav class="nav align-items-center ml-auto">
<dark-Toggler class="d-none d-lg-block" />
<search-bar />
<notification-dropdown />
</b-navbar-nav>
</div>
</template>
<script>
import {
BLink, BNavbarNav,
} from 'bootstrap-vue'
import Bookmarks from './components/Bookmarks.vue'
import SearchBar from './components/SearchBar.vue'
import DarkToggler from './components/DarkToggler.vue'
import NotificationDropdown from './components/NotificationDropdown.vue'
export default {
components: {
BLink,
// Navbar Components
BNavbarNav,
Bookmarks,
SearchBar,
DarkToggler,
NotificationDropdown,
},
props: {
toggleVerticalMenuActive: {
type: Function,
default: () => {},
},
},
}
</script>
@@ -1,196 +0,0 @@
<template>
<b-navbar-nav class="nav">
<b-nav-item
v-for="(bookmark, index) in bookmarks"
:id="`bookmark-${index}`"
:key="index"
:to="bookmark.route"
>
<feather-icon
:icon="bookmark.icon"
size="21"
/>
<b-tooltip
triggers="hover"
:target="`bookmark-${index}`"
:title="bookmark.title"
:delay="{ show: 1000, hide: 50 }"
/>
</b-nav-item>
<b-nav-item-dropdown
link-classes="bookmark-star"
lazy
@hidden="resetsearchQuery"
>
<feather-icon
slot="button-content"
icon="StarIcon"
size="21"
class="text-warning"
/>
<!-- Dropdown Content -->
<li style="min-width:300px">
<div class="p-1">
<b-form-input
id="boomark-search-input"
v-model="searchQuery"
placeholder="Explore Vuexy..."
autofocus
/>
</div>
<vue-perfect-scrollbar
:settings="perfectScrollbarSettings"
class="search-list search-list-bookmark scroll-area"
:class="{'show': filteredData.pages && filteredData.pages.length }"
tagname="ul"
>
<b-dropdown-item
v-for="(suggestion, index) in filteredData.pages || bookmarks"
:key="index"
class="suggestion-group-suggestion cursor-pointer"
link-class="d-flex align-items-center"
:to="suggestion.route"
@mouseenter="currentSelected = index"
>
<feather-icon
:icon="suggestion.icon"
class="mr-75"
size="18"
/>
<span class="align-middle">{{ suggestion.title }}</span>
<feather-icon
icon="StarIcon"
class="ml-auto"
size="16"
:class="{'text-warning': suggestion.isBookmarked}"
@click.stop.prevent="toggleBookmarked(suggestion)"
/>
</b-dropdown-item>
<b-dropdown-item
v-show="!(filteredData.pages && filteredData.pages.length) && searchQuery"
disabled
>
No Results Found.
</b-dropdown-item></vue-perfect-scrollbar>
</li>
</b-nav-item-dropdown>
</b-navbar-nav>
</template>
<script>
import {
BNavbarNav, BNavItem, BTooltip, BNavItemDropdown, BFormInput, BDropdownItem,
} from 'bootstrap-vue'
import VuePerfectScrollbar from 'vue-perfect-scrollbar'
import useAutoSuggest from '@core/components/app-auto-suggest/useAutoSuggest'
import { ref, watch } from '@vue/composition-api'
import router from '@/router'
import store from '@/store'
import searchAndBookmarkData from '../search-and-bookmark-data'
export default {
components: {
BNavbarNav, BNavItem, BTooltip, BNavItemDropdown, BFormInput, VuePerfectScrollbar, BDropdownItem,
},
setup() {
const searchAndBookmarkDataPages = ref(searchAndBookmarkData.pages)
const bookmarks = ref(searchAndBookmarkData.pages.data.filter(page => page.isBookmarked))
const currentSelected = ref(-1)
const perfectScrollbarSettings = {
maxScrollbarLength: 60,
}
const {
searchQuery,
resetsearchQuery,
filteredData,
} = useAutoSuggest({ data: { pages: searchAndBookmarkDataPages.value }, searchLimit: 6 })
watch(searchQuery, val => {
store.commit('app/TOGGLE_OVERLAY', Boolean(val))
})
watch(filteredData, val => {
currentSelected.value = val.pages && !val.pages.length ? -1 : 0
})
const suggestionSelected = () => {
const suggestion = filteredData.value.pages[currentSelected.value]
router.push(suggestion.route).catch(() => {})
resetsearchQuery()
}
const toggleBookmarked = item => {
// Find Index of item/page in bookmarks' array
const pageIndexInBookmarks = bookmarks.value.findIndex(i => i.route === item.route)
// If index is > -1 => Item is bookmarked => Remove item from bookmarks array using index
// Else => Item is not bookmarked => Add item to bookmarks' array
if (pageIndexInBookmarks > -1) {
bookmarks.value[pageIndexInBookmarks].isBookmarked = false
bookmarks.value.splice(pageIndexInBookmarks, 1)
} else {
bookmarks.value.push(item)
bookmarks.value[bookmarks.value.length - 1].isBookmarked = true
}
}
return {
bookmarks,
perfectScrollbarSettings,
currentSelected,
suggestionSelected,
toggleBookmarked,
// AutoSuggest
searchQuery,
resetsearchQuery,
filteredData,
}
},
}
</script>
<style lang="scss" scoped>
@import '~@core/scss/base/bootstrap-extended/include';
ul
{
list-style: none;
padding: 0;
margin: 0;
}
p {
margin: 0;
}
.nav-bookmar-content-overlay {
position: fixed;
opacity: 0;
width: 100%;
height: 100%;
top: 0;
left: 0;
right: 0;
bottom: 0;
background-color: rgba(0, 0, 0, 0.5);
-webkit-transition: all 0.7s;
transition: all 0.7s;
z-index: -1;
&:not(.show) {
pointer-events: none;
}
&.show {
cursor: pointer;
z-index: 10;
opacity: 1;
}
}
</style>
@@ -1,177 +0,0 @@
<template>
<b-nav-item-dropdown
class="dropdown-cart mr-25"
menu-class="dropdown-menu-media"
right
@show="fetchItems"
>
<template #button-content>
<feather-icon
:badge="$store.state['app-ecommerce'].cartItemsCount"
class="text-body"
icon="ShoppingCartIcon"
size="21"
/>
</template>
<!-- Header -->
<li class="dropdown-menu-header">
<div class="dropdown-header d-flex">
<h4 class="notification-title mb-0 mr-auto">
My Cart
</h4>
<b-badge
pill
variant="light-primary"
>
{{ $store.state['app-ecommerce'].cartItemsCount }} Items
</b-badge>
</div>
</li>
<!-- Cart Items -->
<vue-perfect-scrollbar
v-if="items.length"
:settings="perfectScrollbarSettings"
class="scrollable-container media-list scroll-area"
tagname="li"
>
<b-media
v-for="item in items"
:key="item.name"
>
<template #aside>
<b-img
:src="item.image"
:alt="item.name"
rounded
width="62px"
/>
</template>
<feather-icon
icon="XIcon"
class="cart-item-remove cursor-pointer"
@click.stop="removeItemFromCart(item.id)"
/>
<div class="media-heading">
<h6 class="cart-item-title">
<b-link class="text-body">
{{ item.name }}
</b-link>
</h6>
<small class="cart-item-by">By {{ item.brand }}</small>
</div>
<div class="cart-item-qty ml-1">
<b-form-spinbutton
v-model="item.qty"
min="1"
size="sm"
/>
</div>
<h5 class="cart-item-price">
${{ item.price }}
</h5>
</b-media>
</vue-perfect-scrollbar>
<!-- Cart Footer -->
<li
v-if="items.length"
class="dropdown-menu-footer"
>
<div class="d-flex justify-content-between mb-1">
<h6 class="font-weight-bolder mb-0">
Total:
</h6>
<h6 class="text-primary font-weight-bolder mb-0">
${{ totalAmount }}
</h6>
</div>
<b-button
v-ripple.400="'rgba(255, 255, 255, 0.15)'"
variant="primary"
block
:to="{ name: 'apps-e-commerce-checkout' }"
>
Checkout
</b-button>
</li>
<p
v-if="!items.length"
class="m-0 p-1 text-center"
>
Your cart is empty
</p>
</b-nav-item-dropdown>
</template>
<script>
// import {
// BNavItemDropdown, BBadge, BMedia, BLink, BImg, BFormSpinbutton, BButton,
// } from 'bootstrap-vue'
// import VuePerfectScrollbar from 'vue-perfect-scrollbar'
// import Ripple from 'vue-ripple-directive'
// export default {
// components: {
// BNavItemDropdown,
// BBadge,
// BMedia,
// BLink,
// BImg,
// BFormSpinbutton,
// VuePerfectScrollbar,
// BButton,
// },
// directives: {
// Ripple,
// },
// data() {
// return {
// items: [],
// perfectScrollbarSettings: {
// maxScrollbarLength: 60,
// wheelPropagation: false,
// },
// }
// },
// computed: {
// totalAmount() {
// let total = 0
// this.items.forEach(i => { total += i.price })
// return total
// },
// },
// methods: {
// fetchItems() {
// this.$store.dispatch('app-ecommerce/fetchCartProducts')
// .then(response => {
// this.items = response.data.products
// })
// },
// removeItemFromCart(productId) {
// this.$store.dispatch('app-ecommerce/removeProductFromCart', { productId })
// .then(() => {
// const itemIndex = this.items.findIndex(p => p.id === productId)
// this.items.splice(itemIndex, 1)
// // Update count in cart items state
// this.$store.commit('app-ecommerce/UPDATE_CART_ITEMS_COUNT', this.items.length)
// })
// },
// },
// }
</script>
<style lang="scss" scoped>
.dropdown-cart {
.media {
.media-aside {
align-items: center;
}
}
}
</style>
@@ -1,27 +0,0 @@
<template>
<b-nav-item @click="skin = isDark ? 'light' : 'dark'">
<feather-icon
size="21"
:icon="`${isDark ? 'Sun' : 'Moon'}Icon`"
/>
</b-nav-item>
</template>
<script>
import useAppConfig from '@core/app-config/useAppConfig'
import { computed } from '@vue/composition-api'
import { BNavItem } from 'bootstrap-vue'
export default {
components: {
BNavItem,
},
setup() {
const { skin } = useAppConfig()
const isDark = computed(() => skin.value === 'dark')
return { skin, isDark }
},
}
</script>
@@ -1,83 +0,0 @@
<template>
<b-nav-item-dropdown
id="dropdown-grouped"
variant="link"
class="dropdown-language"
right
>
<template #button-content>
<b-img
:src="currentLocale.img"
height="14px"
width="22px"
:alt="currentLocale.locale"
/>
<span class="ml-50 text-body d-none">{{ currentLocale.name }}</span>
</template>
<b-dropdown-item
v-for="localeObj in locales"
:key="localeObj.locale"
@click="$i18n.locale = localeObj.locale"
>
<b-img
:src="localeObj.img"
height="14px"
width="22px"
:alt="localeObj.locale"
/>
<span class="ml-50">{{ localeObj.name }}</span>
</b-dropdown-item>
</b-nav-item-dropdown>
</template>
<script>
import { BNavItemDropdown, BDropdownItem, BImg } from 'bootstrap-vue'
export default {
components: {
BNavItemDropdown,
BDropdownItem,
BImg,
},
// ! Need to move this computed property to comp function once we get to Vue 3
computed: {
currentLocale() {
return this.locales.find(l => l.locale === this.$i18n.locale)
},
},
setup() {
/* eslint-disable global-require */
const locales = [
{
locale: 'en',
img: require('@/assets/images/flags/en.png'),
name: 'English',
},
{
locale: 'fr',
img: require('@/assets/images/flags/fr.png'),
name: 'French',
},
{
locale: 'de',
img: require('@/assets/images/flags/de.png'),
name: 'German',
},
{
locale: 'pt',
img: require('@/assets/images/flags/pt.png'),
name: 'Portuguese',
},
]
/* eslint-disable global-require */
return {
locales,
}
},
}
</script>
<style>
</style>
@@ -1,189 +0,0 @@
<template>
<b-nav-item-dropdown
class="dropdown-notification mr-25"
menu-class="dropdown-menu-media"
right
>
<template #button-content>
<feather-icon
badge="6"
badge-classes="bg-danger"
class="text-body"
icon="BellIcon"
size="21"
/>
</template>
<!-- Header -->
<li class="dropdown-menu-header">
<div class="dropdown-header d-flex">
<h4 class="notification-title mb-0 mr-auto">
Notifications
</h4>
<b-badge
pill
variant="light-primary"
>
6 New
</b-badge>
</div>
</li>
<!-- Notifications -->
<vue-perfect-scrollbar
v-once
:settings="perfectScrollbarSettings"
class="scrollable-container media-list scroll-area"
tagname="li"
>
<!-- Account Notification -->
<b-link
v-for="notification in notifications"
:key="notification.subtitle"
>
<b-media>
<template #aside>
<b-avatar
size="32"
:src="notification.avatar"
:text="notification.avatar"
:variant="notification.type"
/>
</template>
<p class="media-heading">
<span class="font-weight-bolder">
{{ notification.title }}
</span>
</p>
<small class="notification-text">{{ notification.subtitle }}</small>
</b-media>
</b-link>
<!-- System Notification Toggler -->
<div class="media d-flex align-items-center">
<h6 class="font-weight-bolder mr-auto mb-0">
System Notifications
</h6>
<b-form-checkbox
:checked="true"
switch
/>
</div>
<!-- System Notifications -->
<b-link
v-for="notification in systemNotifications"
:key="notification.subtitle"
>
<b-media>
<template #aside>
<b-avatar
size="32"
:variant="notification.type"
>
<feather-icon :icon="notification.icon" />
</b-avatar>
</template>
<p class="media-heading">
<span class="font-weight-bolder">
{{ notification.title }}
</span>
</p>
<small class="notification-text">{{ notification.subtitle }}</small>
</b-media>
</b-link>
</vue-perfect-scrollbar>
<!-- Cart Footer -->
<li class="dropdown-menu-footer"><b-button
v-ripple.400="'rgba(255, 255, 255, 0.15)'"
variant="primary"
block
>Read all notifications</b-button>
</li>
</b-nav-item-dropdown>
</template>
<script>
import {
BNavItemDropdown, BBadge, BMedia, BLink, BAvatar, BButton, BFormCheckbox,
} from 'bootstrap-vue'
import VuePerfectScrollbar from 'vue-perfect-scrollbar'
import Ripple from 'vue-ripple-directive'
export default {
components: {
BNavItemDropdown,
BBadge,
BMedia,
BLink,
BAvatar,
VuePerfectScrollbar,
BButton,
BFormCheckbox,
},
directives: {
Ripple,
},
setup() {
/* eslint-disable global-require */
const notifications = [
{
title: 'Congratulation Sam 🎉',
avatar: require('@/assets/images/avatars/6-small.png'),
subtitle: 'Won the monthly best seller badge',
type: 'light-success',
},
{
title: 'New message received',
avatar: require('@/assets/images/avatars/9-small.png'),
subtitle: 'You have 10 unread messages',
type: 'light-info',
},
{
title: 'Revised Order 👋',
avatar: 'MD',
subtitle: 'MD Inc. order updated',
type: 'light-danger',
},
]
/* eslint-disable global-require */
const systemNotifications = [
{
title: 'Server down',
subtitle: 'USA Server is down due to hight CPU usage',
type: 'light-danger',
icon: 'XIcon',
},
{
title: 'Sales report generated',
subtitle: 'Last month sales report generated',
type: 'light-success',
icon: 'CheckIcon',
},
{
title: 'High memory usage',
subtitle: 'BLR Server using high memory',
type: 'light-warning',
icon: 'AlertTriangleIcon',
},
]
const perfectScrollbarSettings = {
maxScrollbarLength: 60,
wheelPropagation: false,
}
return {
notifications,
systemNotifications,
perfectScrollbarSettings,
}
},
}
</script>
<style>
</style>
@@ -1,140 +0,0 @@
<template>
<li class="nav-item nav-search">
<!-- Icon -->
<a
href="javascript:void(0)"
class="nav-link nav-link-search"
@click="showSearchBar = true"
>
<feather-icon
icon="SearchIcon"
size="21"
/>
</a>
<!-- Input -->
<div
class="search-input"
:class="{'open': showSearchBar}"
>
<div class="search-input-icon">
<feather-icon icon="SearchIcon" />
</div>
<!-- <input type="text" placeholder="Explore Vuexy...." class="form-control-input"> -->
<!-- @keyup.esc="escPressed" -->
<!-- @keyup.enter="suggestionSelected" -->
<b-form-input
v-if="showSearchBar"
v-model="searchQuery"
placeholder="Search Height/Transaction/Address"
autofocus
autocomplete="off"
@keyup.enter="doQuery"
/>
<div
class="search-input-close"
@click="showSearchBar = false;"
>
<feather-icon icon="XIcon" />
</div>
</div>
</li>
</template>
<script>
import { BFormInput } from 'bootstrap-vue'
import { ref } from '@vue/composition-api'
import { title } from '@core/utils/filter'
import store from '@/store'
export default {
components: {
BFormInput,
},
setup() {
const showSearchBar = ref(false)
const perfectScrollbarSettings = {
maxScrollbarLength: 60,
}
return {
showSearchBar,
perfectScrollbarSettings,
title,
}
},
data() {
return {
searchQuery: null,
}
},
methods: {
doQuery() {
const height = /^\d+$/
const txhash = /^[A-Z\d]{64}$/
const addr = /^[a-z]{2,6}1[a-z\d]{38}$/
const key = this.searchQuery
const c = store.state.chains.selected
if (!Object.values(this.$route.params).includes(key)) {
if (height.test(key)) {
this.$router.push({ name: 'block', params: { chain: c.chain_name, height: key } })
} else if (txhash.test(key)) {
this.$router.push({ name: 'transaction', params: { chain: c.chain_name, hash: key } })
} else if (addr.test(key)) {
this.$router.push({ name: 'chain-account', params: { chain: c.chain_name, address: key } })
// console.log('address', key)
}
}
// this.$router.push('/')
},
},
}
</script>
<style lang="scss" scoped>
@import '~@core/scss/base/bootstrap-extended/include';
@import '~@core/scss/base/components/variables-dark';
ul
{
list-style: none;
padding: 0;
margin: 0;
}
p {
margin: 0;
}
/* .app-auto-suggest {
position: relative;
}
.auto-suggest-suggestions-list {
box-shadow: 0 4px 24px 0 rgba(34, 41, 47, 0.1);
border-radius: 6px;
position: absolute;
top: calc(100% + 1rem);
background-color: white;
width: 100%;
} */
.suggestion-group-title {
font-weight: 500;
padding: .75rem 1rem .25rem;
}
.suggestion-group-suggestion {
padding: .75rem 1rem
}
.suggestion-current-selected {
background-color: $body-bg;
.dark-layout & {
background-color: $theme-dark-body-bg;
}
}
</style>
@@ -1,162 +0,0 @@
<template>
<b-nav-item-dropdown
right
toggle-class="d-flex align-items-center dropdown-user-link"
class="dropdown-user"
>
<template #button-content>
<div class="d-sm-flex d-none user-nav">
<p class="user-name font-weight-bolder mb-0">
{{ userData.fullName || userData.username }}
</p>
<span class="user-status">{{ userData.role }}</span>
</div>
<b-avatar
size="40"
:src="userData.avatar"
variant="light-primary"
badge
class="badge-minimal"
badge-variant="success"
>
<feather-icon
v-if="!userData.fullName"
icon="UserIcon"
size="22"
/>
</b-avatar>
</template>
<b-dropdown-item
:to="{ name: 'pages-profile'}"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="UserIcon"
class="mr-50"
/>
<span>Profile</span>
</b-dropdown-item>
<b-dropdown-item
:to="{ name: 'apps-email' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="MailIcon"
class="mr-50"
/>
<span>Inbox</span>
</b-dropdown-item>
<b-dropdown-item
:to="{ name: 'apps-todo' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="CheckSquareIcon"
class="mr-50"
/>
<span>Task</span>
</b-dropdown-item>
<b-dropdown-item
:to="{ name: 'apps-chat' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="MessageSquareIcon"
class="mr-50"
/>
<span>Chat</span>
</b-dropdown-item>
<b-dropdown-divider />
<b-dropdown-item
:to="{ name: 'pages-account-setting' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="SettingsIcon"
class="mr-50"
/>
<span>Settings</span>
</b-dropdown-item>
<b-dropdown-item
:to="{ name: 'pages-pricing' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="CreditCardIcon"
class="mr-50"
/>
<span>Pricing</span>
</b-dropdown-item>
<b-dropdown-item
:to="{ name: 'pages-faq' }"
link-class="d-flex align-items-center"
>
<feather-icon
size="16"
icon="HelpCircleIcon"
class="mr-50"
/>
<span>FAQ</span>
</b-dropdown-item>
<b-dropdown-item
link-class="d-flex align-items-center"
@click="logout"
>
<feather-icon
size="16"
icon="LogOutIcon"
class="mr-50"
/>
<span>Logout</span>
</b-dropdown-item></b-nav-item-dropdown>
</template>
<script>
import {
BNavItemDropdown, BDropdownItem, BDropdownDivider, BAvatar,
} from 'bootstrap-vue'
import { initialAbility } from '@/libs/acl/config'
import useJwt from '@/auth/jwt/useJwt'
import { avatarText } from '@core/utils/filter'
export default {
components: {
BNavItemDropdown,
BDropdownItem,
BDropdownDivider,
BAvatar,
},
data() {
return {
userData: JSON.parse(localStorage.getItem('userData')),
avatarText,
}
},
methods: {
logout() {
// Remove userData from localStorage
// ? You just removed token from localStorage. If you like, you can also make API call to backend to blacklist used token
localStorage.removeItem(useJwt.jwtConfig.storageTokenKeyName)
localStorage.removeItem(useJwt.jwtConfig.storageRefreshTokenKeyName)
// Remove userData from localStorage
localStorage.removeItem('userData')
// Reset ability
this.$ability.update(initialAbility)
// Redirect to login page
this.$router.push({ name: 'auth-login' })
},
},
}
</script>
@@ -1,295 +0,0 @@
/* eslint-disable */
// prettier-ignore
export default {
pages: {
key: 'title',
data: [
{ title: 'Access Control', route: { name: 'access-control' }, icon: 'ShieldIcon', isBookmarked: false },
{ title: 'Account Settings', route: { name: 'pages-account-setting' }, icon: 'SettingsIcon', isBookmarked: false },
{ title: 'Advance Card', route: { name: 'card-advance' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Alerts', route: { name: 'components-alert' }, icon: 'AlertTriangleIcon', isBookmarked: false },
{ title: 'Analytics Cards', route: { name: 'card-analytic' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Apex Chart', route: { name: 'charts-apex-chart' }, icon: 'PieChartIcon', isBookmarked: false },
{ title: 'Aspect', route: { name: 'components-aspect' }, icon: 'AirplayIcon', isBookmarked: false },
{ title: 'Auto Suggest', route: { name: 'extensions-auto-suggest' }, icon: 'AlignLeftIcon', isBookmarked: false },
{ title: 'Avatar', route: { name: 'components-avatar' }, icon: 'UserIcon', isBookmarked: false },
{ title: 'Badge', route: { name: 'components-badge' }, icon: 'TagIcon', isBookmarked: false },
{ title: 'Basic Card', route: { name: 'card-basic' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Blog Detail', route: { name: 'pages-blog-detail', params: { id: 1 } }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Blog Edit', route: { name: 'pages-blog-edit', params: { id: 1 } }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Blog List', route: { name: 'pages-blog-list' }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Breadcrumb', route: { name: 'components-breadcrumb' }, icon: 'HomeIcon', isBookmarked: false },
{ title: 'BS Table', route: { name: 'table-bs-table' }, icon: 'GridIcon', isBookmarked: false },
{ title: 'Button Group', route: { name: 'components-button-group' }, icon: 'BoldIcon', isBookmarked: false },
{ title: 'Button Toolbar', route: { name: 'components-button-toolbar' }, icon: 'BoldIcon', isBookmarked: false },
{ title: 'Button', route: { name: 'components-button' }, icon: 'BoldIcon', isBookmarked: false },
{ title: 'Calendar App', route: { name: 'apps-calendar' }, icon: 'CalendarIcon', isBookmarked: true },
{ title: 'Calendar Component', route: { name: 'components-calendar' }, icon: 'CalendarIcon', isBookmarked: false },
{ title: 'Card Actions', route: { name: 'card-action' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Carousel', route: { name: 'components-carousel' }, icon: 'CopyIcon', isBookmarked: false },
{ title: 'Chartjs', route: { name: 'charts-chartjs' }, icon: 'PieChartIcon', isBookmarked: false },
{ title: 'Chat', route: { name: 'apps-chat' }, icon: 'MessageSquareIcon', isBookmarked: true },
{ title: 'Checkbox', route: { name: 'forms-element-checkbox' }, icon: 'CheckSquareIcon', isBookmarked: false },
{ title: 'Checkout', route: { name: 'apps-e-commerce-checkout' }, icon: 'DollarSignIcon', isBookmarked: false },
{ title: 'Clipboard', route: { name: 'extensions-clipboard' }, icon: 'ClipboardIcon', isBookmarked: false },
{ title: 'Collapse', route: { name: 'components-collapse' }, icon: 'PlusIcon', isBookmarked: false },
{ title: 'Colors', route: { name: 'ui-colors' }, icon: 'DropletIcon', isBookmarked: false },
{ title: 'Coming Soon', route: { name: 'misc-coming-soon' }, icon: 'ClockIcon', isBookmarked: false },
{ title: 'Context Menu', route: { name: 'extensions-context-menu' }, icon: 'MoreVerticalIcon', isBookmarked: false },
{ title: 'Dashboard Analytics', route: { name: 'dashboard-analytics' }, icon: 'ActivityIcon', isBookmarked: false },
{ title: 'Dashboard ECommerce', route: { name: 'dashboard-ecommerce' }, icon: 'ShoppingCartIcon', isBookmarked: false },
{ title: 'Date Time Picker', route: { name: 'extensions-date-time-picker' }, icon: 'ClockIcon', isBookmarked: false },
{ title: 'Drag & Drop', route: { name: 'extensions-drag-and-drop' }, icon: 'CopyIcon', isBookmarked: false },
{ title: 'Dropdown', route: { name: 'components-dropdown' }, icon: 'MoreHorizontalIcon', isBookmarked: false },
{ title: 'Echart', route: { name: 'charts-echart' }, icon: 'PieChartIcon', isBookmarked: false },
{ title: 'Email', route: { name: 'apps-email' }, icon: 'MailIcon', isBookmarked: true },
{ title: 'Embed', route: { name: 'components-embed' }, icon: 'TvIcon', isBookmarked: false },
{ title: 'Error 404', route: { name: 'error-404' }, icon: 'AlertTriangleIcon', isBookmarked: false },
{ title: 'Error', route: { name: 'misc-error' }, icon: 'AlertTriangleIcon', isBookmarked: false },
{ title: 'FAQ', route: { name: 'pages-faq' }, icon: 'HelpCircleIcon', isBookmarked: false },
{ title: 'Feather', route: { name: 'ui-feather' }, icon: 'FeatherIcon', isBookmarked: false },
{ title: 'File Input', route: { name: 'forms-element-file-input' }, icon: 'FileIcon', isBookmarked: false },
{ title: 'Forgot Password V1', route: { name: 'auth-forgot-password-v1' }, icon: 'KeyIcon', isBookmarked: false },
{ title: 'Forgot Password V2', route: { name: 'auth-forgot-password-v2' }, icon: 'KeyIcon', isBookmarked: false },
{ title: 'Form Datepicker', route: { name: 'forms-element-datepicker' }, icon: 'ClockIcon', isBookmarked: false },
{ title: 'Form Layout', route: { name: 'form-layout' }, icon: 'GridIcon', isBookmarked: false },
{ title: 'Form Rating', route: { name: 'forms-element-rating' }, icon: 'StarIcon', isBookmarked: false },
{ title: 'Form Repeater', route: { name: 'form-repeater' }, icon: 'StarIcon', isBookmarked: false },
{ title: 'Form Tag', route: { name: 'forms-element-tag' }, icon: 'TagIcon', isBookmarked: false },
{ title: 'Form Timepicker', route: { name: 'forms-element-timepicker' }, icon: 'ClockIcon', isBookmarked: false },
{ title: 'Form Validation', route: { name: 'form-validation' }, icon: 'CheckCircleIcon', isBookmarked: false },
{ title: 'Form Wizard', route: { name: 'form-wizard' }, icon: 'GitCommitIcon', isBookmarked: false },
{ title: 'Good Table', route: { name: 'table-good-table' }, icon: 'GridIcon', isBookmarked: false },
{ title: 'I18n', route: { name: 'extensions-i18n' }, icon: 'GlobeIcon', isBookmarked: false },
{ title: 'Image', route: { name: 'components-image' }, icon: 'ImageIcon', isBookmarked: false },
{ title: 'Input Group', route: { name: 'forms-element-input-group' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Input Mask', route: { name: 'forms-element-input-mask' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Input', route: { name: 'forms-element-input' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Invoice Add', route: { name: 'apps-invoice-add' }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Invoice Edit', route: { name: 'apps-invoice-edit', params: { id: 4987 } }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Invoice List', route: { name: 'apps-invoice-list' }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Invoice Preview', route: { name: 'apps-invoice-preview', params: { id: 4987 } }, icon: 'FileTextIcon', isBookmarked: false },
{ title: 'Knowledge Base Category', route: { name: 'pages-knowledge-base-category' }, icon: 'InfoIcon', isBookmarked: false, },
{ title: 'Knowledge Base Question', route: { name: 'pages-knowledge-base-question' }, icon: 'InfoIcon', isBookmarked: false, },
{ title: 'Knowledge Base', route: { name: 'pages-knowledge-base' }, icon: 'InfoIcon', isBookmarked: false },
{ title: 'Leaflet', route: { name: 'maps-leaflet' }, icon: 'MapPinIcon', isBookmarked: false },
{ title: 'List Group', route: { name: 'components-list-group' }, icon: 'ListIcon', isBookmarked: false },
{ title: 'Login V1', route: { name: 'auth-login-v1' }, icon: 'LogInIcon', isBookmarked: false },
{ title: 'Login V2', route: { name: 'auth-login-v2' }, icon: 'LogInIcon', isBookmarked: false },
{ title: 'Media Objects', route: { name: 'components-media' }, icon: 'ImageIcon', isBookmarked: false },
{ title: 'Modal', route: { name: 'components-modal' }, icon: 'CopyIcon', isBookmarked: false },
{ title: 'Nav', route: { name: 'components-nav' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Not Authorized', route: { name: 'misc-not-authorized' }, icon: 'XOctagonIcon', isBookmarked: false },
{ title: 'Overlay', route: { name: 'components-overlay' }, icon: 'CopyIcon', isBookmarked: false },
{ title: 'Pagination Nav', route: { name: 'components-pagination-nav' }, icon: 'HashIcon', isBookmarked: false },
{ title: 'Pagination', route: { name: 'components-pagination' }, icon: 'HashIcon', isBookmarked: false },
{ title: 'Pill Badge', route: { name: 'components-pill-badge' }, icon: 'TagIcon', isBookmarked: false },
{ title: 'Pill', route: { name: 'components-pill' }, icon: 'TagIcon', isBookmarked: false },
{ title: 'Popover', route: { name: 'components-popover' }, icon: 'TagIcon', isBookmarked: false },
{ title: 'Pricing', route: { name: 'pages-pricing' }, icon: 'DollarSignIcon', isBookmarked: false },
{ title: 'Product Details', route: { name: 'apps-e-commerce-product-details', params: { slug: 'apple-watch-series-5-27' } }, icon: 'BoxIcon', isBookmarked: false, },
{ title: 'Profile', route: { name: 'pages-profile' }, icon: 'UserIcon', isBookmarked: false },
{ title: 'Progress', route: { name: 'components-progress' }, icon: 'ChevronsRightIcon', isBookmarked: false },
{ title: 'Quill Editor', route: { name: 'extensions-quill-editor' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Radio', route: { name: 'forms-element-radio' }, icon: 'DiscIcon', isBookmarked: false },
{ title: 'Register V1', route: { name: 'auth-register-v1' }, icon: 'UserPlusIcon', isBookmarked: false },
{ title: 'Register V2', route: { name: 'auth-register-v2' }, icon: 'UserPlusIcon', isBookmarked: false },
{ title: 'Reset Password V1', route: { name: 'auth-reset-password-v1' }, icon: 'KeyIcon', isBookmarked: false },
{ title: 'Reset Password V2', route: { name: 'auth-reset-password-v2' }, icon: 'KeyIcon', isBookmarked: false },
{ title: 'Select', route: { name: 'forms-element-select' }, icon: 'AlignCenterIcon', isBookmarked: false },
{ title: 'Shop', route: { name: 'apps-e-commerce-shop' }, icon: 'ArchiveIcon', isBookmarked: false },
{ title: 'Sidebar', route: { name: 'components-sidebar' }, icon: 'SidebarIcon', isBookmarked: false },
{ title: 'Slider', route: { name: 'extensions-slider' }, icon: 'GitCommitIcon', isBookmarked: false },
{ title: 'Spinbutton', route: { name: 'forms-element-spinbutton' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Spinner', route: { name: 'components-spinner' }, icon: 'LoaderIcon', isBookmarked: false },
{ title: 'Statistics Cards', route: { name: 'card-statistic' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Sweet Alert', route: { name: 'extensions-sweet-alert' }, icon: 'BellIcon', isBookmarked: false },
{ title: 'Swiper', route: { name: 'extensions-swiper' }, icon: 'ImageIcon', isBookmarked: false },
{ title: 'Switch', route: { name: 'forms-element-switch' }, icon: 'ToggleRightIcon', isBookmarked: false },
{ title: 'Tab', route: { name: 'components-tab' }, icon: 'CreditCardIcon', isBookmarked: false },
{ title: 'Textarea', route: { name: 'forms-element-textarea' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Time', route: { name: 'components-time' }, icon: 'ClockIcon', isBookmarked: false },
{ title: 'Timeline', route: { name: 'components-timeline' }, icon: 'GitCommitIcon', isBookmarked: false },
{ title: 'Toastification', route: { name: 'extensions-toastification' }, icon: 'BellIcon', isBookmarked: false },
{ title: 'Toasts', route: { name: 'components-toasts' }, icon: 'BellIcon', isBookmarked: false },
{ title: 'Todo', route: { name: 'apps-todo' }, icon: 'CheckSquareIcon', isBookmarked: true },
{ title: 'Tooltip', route: { name: 'components-tooltip' }, icon: 'CopyIcon', isBookmarked: false },
{ title: 'Tour', route: { name: 'extensions-tour' }, icon: 'GlobeIcon', isBookmarked: false },
// { title: 'Tree', route: { name: 'extensions-tree' }, icon: 'GitCommitIcon', isBookmarked: false },
{ title: 'Typography', route: { name: 'ui-typography' }, icon: 'TypeIcon', isBookmarked: false },
{ title: 'Under Maintenance', route: { name: 'misc-under-maintenance' }, icon: 'MonitorIcon', isBookmarked: false },
{ title: 'Users Edit', route: { name: 'apps-users-edit', params: { id: 21 } }, icon: 'UserIcon', isBookmarked: false },
{ title: 'Users List', route: { name: 'apps-users-list' }, icon: 'UserIcon', isBookmarked: false },
{ title: 'Users View', route: { name: 'apps-users-view', params: { id: 21 } }, icon: 'UserIcon', isBookmarked: false },
{ title: 'Vue Select', route: { name: 'extensions-vue-select' }, icon: 'AlignCenterIcon', isBookmarked: false },
{ title: 'Wishlist', route: { name: 'apps-e-commerce-wishlist' }, icon: 'HeartIcon', isBookmarked: false },
],
},
files: {
key: 'file_name',
data: [
{
file_name: "Joe's CV",
from: 'Stacy Watson',
icon: require('@/assets/images/icons/doc.png'),
size: '1.7 mb',
},
{
file_name: 'Passport Image',
from: 'Ben Sinitiere',
icon: require('@/assets/images/icons/jpg.png'),
size: ' 52 kb',
},
{
file_name: 'Questions',
from: 'Charleen Patti',
icon: require('@/assets/images/icons/doc.png'),
size: '1.5 gb',
},
{
file_name: 'Parenting Guide',
from: 'Doyle Blatteau',
icon: require('@/assets/images/icons/doc.png'),
size: '2.3 mb',
},
{
file_name: 'Class Notes',
from: 'Gwen Greenlow',
icon: require('@/assets/images/icons/doc.png'),
size: ' 30 kb',
},
{
file_name: 'Class Attendance',
from: 'Tom Alred',
icon: require('@/assets/images/icons/xls.png'),
size: '52 mb',
},
{
file_name: 'Company Salary',
from: 'Nellie Dezan',
icon: require('@/assets/images/icons/xls.png'),
size: '29 mb',
},
{
file_name: 'Company Logo',
from: 'Steve Sheldon',
icon: require('@/assets/images/icons/jpg.png'),
size: '1.3 mb',
},
{
file_name: 'Crime Rates',
from: 'Sherlock Holmes',
icon: require('@/assets/images/icons/xls.png'),
size: '37 kb',
},
{
file_name: 'Ulysses',
from: 'Theresia Wrenne',
icon: require('@/assets/images/icons/pdf.png'),
size: '7.2 mb',
},
{
file_name: 'War and Peace',
from: 'Goldie Highnote',
icon: require('@/assets/images/icons/pdf.png'),
size: '10.5 mb',
},
{
file_name: 'Vedas',
from: 'Ajay Patel',
icon: require('@/assets/images/icons/pdf.png'),
size: '8.3 mb',
},
{
file_name: 'The Trial',
from: 'Sirena Linkert',
icon: require('@/assets/images/icons/pdf.png'),
size: '1.5 mb',
},
],
},
contacts: {
key: 'name',
data: [
{
img: require('@/assets/images/portrait/small/avatar-s-4.jpg'),
name: 'Rena Brant',
email: 'nephrod@preany.co.uk',
time: '21/05/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
name: 'Mariano Packard',
email: 'seek@sparaxis.org',
time: '14/01/2018',
},
{
img: require('@/assets/images/portrait/small/avatar-s-24.jpg'),
name: 'Risa Montufar',
email: 'vagary@unblist.org',
time: '10/08/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-15.jpg'),
name: 'Maragaret Cimo',
email: 'designed@insanely.net',
time: '01/12/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-7.jpg'),
name: 'Jona Prattis',
email: 'unwieldable@unblist.org',
time: '21/05/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-5.jpg'),
name: 'Edmond Chicon',
email: 'museist@anaphyte.co.uk',
time: '15/11/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-25.jpg'),
name: 'Abbey Darden',
email: 'astema@defectively.co.uk',
time: '07/05/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-10.jpg'),
name: 'Seema Moallankamp',
email: 'fernando@storkish.co.uk',
time: '13/08/2017',
},
{
img: require('@/assets/images/portrait/small/avatar-s-2.jpg'),
name: 'Charleen Warmington',
email: 'furphy@cannibal.net',
time: '11/08/1891',
},
{
img: require('@/assets/images/portrait/small/avatar-s-25.jpg'),
name: 'Geri Linch',
email: 'insignia@markab.org',
time: '18/01/2015',
},
{
img: require('@/assets/images/portrait/small/avatar-s-23.jpg'),
name: 'Shellie Muster',
email: 'maxillary@equalize.co.uk',
time: '26/07/2019',
},
{
img: require('@/assets/images/portrait/small/avatar-s-20.jpg'),
name: 'Jesenia Vanbramer',
email: 'hypotony@phonetist.net',
time: '12/09/2017',
},
{
img: require('@/assets/images/portrait/small/avatar-s-23.jpg'),
name: 'Mardell Channey',
email: 'peseta@myrica.com',
time: '11/11/2019',
},
],
},
}
/* eslint-enable */
@@ -1,52 +0,0 @@
<template>
<div class="cws-container cws-sidebar-right">
<!-- content -->
<div class="cws-content">
<slot />
</div>
<!-- Sidebar -->
<div class="cws-sidebar">
<slot name="sidebar" />
</div>
</div>
</template>
<script>
export default {
}
</script>
<style lang="scss">
@import '~@core/scss/base/bootstrap-extended/include';
$cws-sidebar-width: 260px;
$gap: 2rem;
.cws-container {
position: relative;
.cws-content {
width: calc(100% - #{$cws-sidebar-width} - #{$gap});
@media (max-width: (map-get($grid-breakpoints, lg))) {
width: 100%;
}
}
.cws-sidebar {
width: 260px;
position: absolute;
right: 0;
top: 0;
@media (max-width: (map-get($grid-breakpoints, lg))) {
margin-top: $gap;
position: static;
width: 100%;
}
}
}
</style>
@@ -1,47 +0,0 @@
<template>
<div
class="app-content content"
:class="[{'show-overlay': $store.state.app.shallShowOverlay}, $route.meta.contentClass]"
>
<div class="content-overlay" />
<div class="header-navbar-shadow" />
<div
class="content-wrapper"
:class="contentWidth === 'boxed' ? 'container p-0' : null"
>
<slot name="breadcrumb">
<app-breadcrumb />
</slot>
<div class="content-body">
<transition
:name="routerTransition"
mode="out-in"
>
<slot />
</transition>
</div>
</div>
</div>
</template>
<script>
import AppBreadcrumb from '@core/layouts/components/AppBreadcrumb.vue'
import useAppConfig from '@core/app-config/useAppConfig'
export default {
components: {
AppBreadcrumb,
},
setup() {
const { routerTransition, contentWidth } = useAppConfig()
return {
routerTransition, contentWidth,
}
},
}
</script>
<style>
</style>
@@ -1,55 +0,0 @@
<template>
<div
class="app-content content"
:class="[{'show-overlay': $store.state.app.shallShowOverlay}, $route.meta.contentClass]"
>
<div class="content-overlay" />
<div class="header-navbar-shadow" />
<transition
:name="routerTransition"
mode="out-in"
>
<div
class="content-area-wrapper"
:class="contentWidth === 'boxed' ? 'container p-0' : null"
>
<slot name="breadcrumb">
<app-breadcrumb />
</slot>
<portal-target
name="content-renderer-sidebar-left"
slim
/>
<div class="content-right">
<div class="content-wrapper">
<div class="content-body">
<slot />
</div>
</div>
</div>
</div>
</transition>
</div>
</template>
<script>
import AppBreadcrumb from '@core/layouts/components/AppBreadcrumb.vue'
import useAppConfig from '@core/app-config/useAppConfig'
export default {
components: {
AppBreadcrumb,
},
setup() {
const { routerTransition, contentWidth } = useAppConfig()
return {
routerTransition, contentWidth,
}
},
}
</script>
<style>
</style>
@@ -1,55 +0,0 @@
<template>
<div
class="app-content content"
:class="[{'show-overlay': $store.state.app.shallShowOverlay}, $route.meta.contentClass]"
>
<div class="content-overlay" />
<div class="header-navbar-shadow" />
<transition
:name="routerTransition"
mode="out-in"
>
<div
class="content-wrapper clearfix"
:class="contentWidth === 'boxed' ? 'container p-0' : null"
>
<slot name="breadcrumb">
<app-breadcrumb />
</slot>
<div class="content-detached content-right">
<div class="content-wrapper">
<div class="content-body">
<slot />
</div>
</div>
</div>
<portal-target
name="content-renderer-sidebar-detached-left"
slim
/>
</div>
</transition>
</div>
</template>
<script>
import AppBreadcrumb from '@core/layouts/components/AppBreadcrumb.vue'
import useAppConfig from '@core/app-config/useAppConfig'
export default {
components: {
AppBreadcrumb,
},
setup() {
const { routerTransition, contentWidth } = useAppConfig()
return {
routerTransition, contentWidth,
}
},
}
</script>
<style>
</style>
@@ -1,16 +0,0 @@
<template>
<div :class="contentWidth === 'boxed' ? 'container p-0' : null">
<router-view />
</div>
</template>
<script>
import useAppConfig from '@core/app-config/useAppConfig'
export default {
setup() {
const { contentWidth } = useAppConfig()
return { contentWidth }
},
}
</script>
@@ -1,216 +0,0 @@
<template>
<div
class="horizontal-layout"
:class="[layoutClasses]"
:data-col="isNavMenuHidden ? '1-column' : null"
style="height:inherit"
>
<!-- NAVBAR -->
<b-navbar
:style="{
backgroundColor: navbarType === 'static' && scrolledTo && skin === 'light' ? 'white' : null,
boxShadow: navbarType === 'static' && scrolledTo ? 'rgba(0, 0, 0, 0.05) 0px 4px 20px 0px' : null,
}"
:toggleable="false"
class="header-navbar navbar-shadow align-items-center navbar-brand-center navbar-fixed"
:class="{'fixed-top': $store.getters['app/currentBreakPoint'] !== 'xl'}"
>
<slot
name="navbar"
:toggleVerticalMenuActive="toggleVerticalMenuActive"
>
<app-navbar-horizontal-layout-brand />
<app-navbar-horizontal-layout :toggle-vertical-menu-active="toggleVerticalMenuActive" />
</slot>
</b-navbar>
<!--/ NAVBAR -->
<div class="horizontal-menu-wrapper">
<div
v-if="!isNavMenuHidden"
class="header-navbar navbar-expand-sm navbar navbar-horizontal navbar-light navbar-shadow menu-border d-none d-xl-block"
:class="[navbarMenuTypeClass]"
>
<horizontal-nav-menu />
</div>
<!-- Vertical Nav Menu -->
<vertical-nav-menu
:is-vertical-menu-active="isVerticalMenuActive"
:toggle-vertical-menu-active="toggleVerticalMenuActive"
class="d-block d-xl-none"
>
<template #header="slotProps">
<slot
name="vertical-menu-header"
v-bind="slotProps"
/>
</template>
</vertical-nav-menu>
<!-- /Vertical Nav Menu -->
</div>
<!-- Vertical Nav Menu Overlay -->
<div
class="sidenav-overlay"
:class="overlayClasses"
@click="isVerticalMenuActive = false"
/>
<!-- /Vertical Nav Menu Overlay -->
<!-- CONTENT -->
<!-- CONTENT TYPE: Left -->
<transition
:name="routerTransition"
mode="out-in"
>
<component
:is="layoutContentRenderer"
:key="layoutContentRenderer === 'layout-content-renderer-left' ? $route.meta.navActiveLink || $route.name : null"
>
<template
v-for="(index, name) in $scopedSlots"
v-slot:[name]="data"
>
<slot
:name="name"
v-bind="data"
/>
</template>
</component>
</transition>
<!--/ Content -->
<!--/ CONTENT -->
<!-- Footer -->
<footer
class="footer footer-light"
:class="[footerTypeClass]"
>
<slot name="footer">
<app-footer />
</slot>
</footer>
<slot name="customizer" />
</div>
</template>
<script>
import AppBreadcrumb from '@core/layouts/components/AppBreadcrumb.vue'
import AppNavbarHorizontalLayout from '@core/layouts/components/app-navbar/AppNavbarHorizontalLayout.vue'
import AppNavbarHorizontalLayoutBrand from '@core/layouts/components/app-navbar/AppNavbarHorizontalLayoutBrand.vue'
import AppFooter from '@core/layouts/components/AppFooter.vue'
import useAppConfig from '@core/app-config/useAppConfig'
import { BNavbar } from 'bootstrap-vue'
import { useScrollListener } from '@core/comp-functions/misc/event-listeners'
import { onUnmounted } from '@vue/composition-api'
// Content Renderer
import LayoutContentRendererDefault from '@core/layouts/components/layout-content-renderer/LayoutContentRendererDefault.vue'
import LayoutContentRendererLeft from '@core/layouts/components/layout-content-renderer/LayoutContentRendererLeft.vue'
import LayoutContentRendererLeftDetached from '@core/layouts/components/layout-content-renderer/LayoutContentRendererLeftDetached.vue'
import useLayoutHorizontal from './useLayoutHorizontal'
import HorizontalNavMenu from './components/horizontal-nav-menu/HorizontalNavMenu.vue'
// Vertical Menu
/* eslint-disable import/order */
import VerticalNavMenu from '@core/layouts/layout-vertical/components/vertical-nav-menu/VerticalNavMenu.vue'
import useVerticalLayout from '@core/layouts/layout-vertical/useVerticalLayout'
import mixinLayoutHorizontal from './mixinLayoutHorizontal'
/* eslint-enable import/order */
export default {
components: {
AppBreadcrumb,
AppNavbarHorizontalLayout,
AppNavbarHorizontalLayoutBrand,
AppFooter,
HorizontalNavMenu,
BNavbar,
// Content Renderer
LayoutContentRendererDefault,
LayoutContentRendererLeft,
LayoutContentRendererLeftDetached,
// Vertical Menu
VerticalNavMenu,
},
mixins: [mixinLayoutHorizontal],
computed: {
layoutContentRenderer() {
const rendererType = this.$route.meta.contentRenderer
if (rendererType === 'sidebar-left') return 'layout-content-renderer-left'
if (rendererType === 'sidebar-left-detached') return 'layout-content-renderer-left-detached'
return 'layout-content-renderer-default'
},
},
setup() {
const {
skin,
navbarType,
footerType,
routerTransition,
isNavMenuHidden,
} = useAppConfig()
// Vertical Menu
const {
isVerticalMenuActive, toggleVerticalMenuActive, overlayClasses, resizeHandler,
} = useVerticalLayout(navbarType, footerType)
// Resize handler
resizeHandler()
window.addEventListener('resize', resizeHandler)
onUnmounted(() => {
window.removeEventListener('resize', resizeHandler)
})
const {
navbarMenuTypeClass,
layoutClasses,
footerTypeClass,
} = useLayoutHorizontal(navbarType, footerType, isVerticalMenuActive)
// Scroll Listener
const { scrolledTo } = useScrollListener()
return {
// skin
skin,
// Layout
layoutClasses,
// Navbar
navbarType,
navbarMenuTypeClass,
// Menu Hidden
isNavMenuHidden,
// Router Transition
routerTransition,
// Footer
footerTypeClass,
// Scroll Listeners
scrolledTo,
// Vertical Menu
isVerticalMenuActive,
toggleVerticalMenuActive,
overlayClasses,
}
},
}
</script>
<style lang="scss">
@import "~@core/scss/base/themes/bordered-layout.scss";
</style>
@@ -1,25 +0,0 @@
<template>
<div class="navbar-container main-menu-content">
<horizontal-nav-menu-items :items="navMenuItems" />
</div>
</template>
<script>
import navMenuItems from '@/navigation/horizontal'
import HorizontalNavMenuItems from './components/horizontal-nav-menu-items/HorizontalNavMenuItems.vue'
export default {
components: {
HorizontalNavMenuItems,
},
setup() {
return {
navMenuItems,
}
},
}
</script>
<style lang="scss">
@import "~@core/scss/base/core/menu/menu-types/horizontal-menu.scss";
</style>
@@ -1,96 +0,0 @@
<template>
<li
v-if="canViewVerticalNavMenuGroup(item)"
class="dropdown dropdown-submenu"
:class="{
'show': isOpen,
'disabled': item.disabled,
'sidebar-group-active active open': isActive,
'openLeft': openChildDropdownOnLeft
}"
@mouseenter="() => updateGroupOpen(true)"
@mouseleave="() => updateGroupOpen(false)"
>
<b-link
class="dropdown-item"
href="#"
:class="{'dropdown-toggle': item.children}"
@click="() => updateGroupOpen(!isOpen)"
>
<feather-icon :icon="item.icon || 'CircleIcon'" />
<span class="menu-title">{{ t(item.title) }}</span>
</b-link>
<ul
ref="refChildDropdown"
class="dropdown-menu"
>
<component
:is="resolveNavItemComponent(child)"
v-for="child in item.children"
:key="child.header || child.title"
ref="groupChild"
:item="child"
/>
</ul>
</li>
</template>
<script>
import { BLink } from 'bootstrap-vue'
import { resolveHorizontalNavMenuItemComponent as resolveNavItemComponent } from '@core/layouts/utils'
import { useUtils as useI18nUtils } from '@core/libs/i18n'
import { useUtils as useAclUtils } from '@core/libs/acl'
import HorizontalNavMenuLink from '../horizontal-nav-menu-link/HorizontalNavMenuLink.vue'
// Composition Function
import useHorizontalNavMenuGroup from './useHorizontalNavMenuGroup'
import mixinHorizontalNavMenuGroup from './mixinHorizontalNavMenuGroup'
export default {
name: 'HorizontalNavMenuGroup',
components: {
HorizontalNavMenuLink,
BLink,
},
mixins: [mixinHorizontalNavMenuGroup],
props: {
item: {
type: Object,
required: true,
},
},
setup(props) {
const {
refChildDropdown,
isActive,
isOpen,
updateGroupOpen,
updateIsActive,
openChildDropdownOnLeft,
} = useHorizontalNavMenuGroup(props.item)
const { t } = useI18nUtils()
const { canViewVerticalNavMenuGroup } = useAclUtils()
return {
refChildDropdown,
openChildDropdownOnLeft,
resolveNavItemComponent,
isOpen,
isActive,
updateGroupOpen,
updateIsActive,
// ACL
canViewVerticalNavMenuGroup,
// i18n
t,
}
},
}
</script>
<style>
</style>
@@ -1,10 +0,0 @@
export default {
watch: {
$route: {
immediate: true,
handler() {
this.updateIsActive()
},
},
},
}
@@ -1,61 +0,0 @@
// eslint-disable-next-line object-curly-newline
import { ref, nextTick } from '@vue/composition-api'
// import store from '@/store'
import { isNavGroupActive } from '@core/layouts/utils'
export default function useHorizontalNavMenuGroup(item) {
// ------------------------------------------------
// childDropdown
// ------------------------------------------------
const refChildDropdown = ref(null)
const openChildDropdownOnLeft = ref(false)
// ------------------------------------------------
// isActive
// ------------------------------------------------
const isOpen = ref(false)
const updateGroupOpen = val => {
isOpen.value = val
if (val) {
nextTick(() => {
const childDropdownWidth = refChildDropdown.value.offsetWidth
const windowContentWidth = window.innerWidth - 16
const { left: childDropdownLeft } = refChildDropdown.value.getBoundingClientRect()
const shallDropLeft = childDropdownLeft + childDropdownWidth - windowContentWidth
openChildDropdownOnLeft.value = shallDropLeft > 0
// Add scroll to child dd if don't have much space
const refChildDropdownTop = refChildDropdown.value.getBoundingClientRect().top
const refChildDropdownHeight = refChildDropdown.value.getBoundingClientRect().height
if (window.innerHeight - refChildDropdownTop - refChildDropdownHeight - 28 < 1) {
const maxHeight = window.innerHeight - refChildDropdownTop - 70
refChildDropdown.value.style.maxHeight = `${maxHeight}px`
refChildDropdown.value.style.overflowY = 'auto'
refChildDropdown.value.style.overflowX = 'hidden'
}
})
} else {
openChildDropdownOnLeft.value = false
}
}
// ------------------------------------------------
// isActive
// ------------------------------------------------
const isActive = ref(false)
const updateIsActive = () => {
isActive.value = isNavGroupActive(item.children)
}
return {
isOpen,
isActive,
updateGroupOpen,
updateIsActive,
refChildDropdown,
openChildDropdownOnLeft,
}
}
@@ -1,80 +0,0 @@
<template>
<li
v-if="canViewHorizontalNavMenuHeaderGroup(item)"
class="dropdown nav-item"
:class="{
'sidebar-group-active active open': isActive,
'show': isOpen,
}"
@mouseenter="() => updateGroupOpen(true)"
@mouseleave="() => updateGroupOpen(false)"
>
<b-link class="nav-link dropdown-toggle d-flex align-items-center">
<feather-icon
size="14"
:icon="item.icon"
/>
<span>{{ t(item.header) }}</span>
</b-link>
<ul class="dropdown-menu">
<component
:is="resolveHorizontalNavMenuItemComponent(child)"
v-for="child in item.children"
:key="child.title"
:item="child"
/>
</ul>
</li>
</template>
<script>
import { BLink } from 'bootstrap-vue'
import { resolveHorizontalNavMenuItemComponent } from '@core/layouts/utils'
import { useUtils as useAclUtils } from '@core/libs/acl'
import { useUtils as useI18nUtils } from '@core/libs/i18n'
import useHorizontalNavMenuHeaderGroup from './useHorizontalNavMenuHeaderGroup'
import mixinHorizontalNavMenuHeaderGroup from './mixinHorizontalNavMenuHeaderGroup'
import HorizontalNavMenuGroup from '../horizontal-nav-menu-group/HorizontalNavMenuGroup.vue'
import HorizontalNavMenuLink from '../horizontal-nav-menu-link/HorizontalNavMenuLink.vue'
export default {
components: {
BLink,
HorizontalNavMenuGroup,
HorizontalNavMenuLink,
},
mixins: [mixinHorizontalNavMenuHeaderGroup],
props: {
item: {
type: Object,
required: true,
},
},
setup(props) {
const {
isActive,
updateIsActive,
isOpen,
updateGroupOpen,
} = useHorizontalNavMenuHeaderGroup(props.item)
const { t } = useI18nUtils()
const { canViewHorizontalNavMenuHeaderGroup } = useAclUtils()
return {
isOpen,
isActive,
updateGroupOpen,
updateIsActive,
resolveHorizontalNavMenuItemComponent,
// ACL
canViewHorizontalNavMenuHeaderGroup,
// i18n
t,
}
},
}
</script>

Some files were not shown because too many files have changed in this diff Show More